This BB8 from Star Wars is a self-balancing robot I developed with Anton Vanhoucke and Ellen Pennings. It’s based on the previous generation of the balancing ball bot, but this one uses omniwheels to drive. In addition to balancing, this allows the robot to turn its head. Balancing happens autonomously using a control loop that runs about 40 times per second. The IR remote is used to control the robot’s speed and head orientation. The video shows the internals of the robot as well, revealing the four motors and two gyro sensors.

The program is available on github, though the latest version is still to be uploaded. It’s written in Python and it runs on ev3dev Linux. The control loop is quite similar to an LQR controller, which was also used for the simpler segway program published previously. We demoed the robot at LEGOWorld Utrecht last weekend and the kids loved it. Most of them immediately recognized it as the Star Wars BB8.

8 Responses
  1. Kris

    Great project. The interest in a robotics projects increase manyfold when it is a fanbot project!
    Could you achieve better stability by using a hollow ball and some kind of pendulum inside magnetically connected to the balancing head in order to lower the point of gravity?

  2. Daniel

    How did you determine the parameters of the controller?
    I have a smaller ball and therefore have to adjust the parameters.

  3. Jong hyun Lee

    Hello, I enjoyed watching your artwork! Can I get a diagram of how to assemble a robot? It will be published by the university.

Leave a Reply

Discover LEGO MINDSTORMS EV3

EV3 Discovery

Discover the many features of the EV3 set, and learn to build and program your own robots! Learn more

Start Building Robots

ev3set

Website Maintenance

Robotsquare is currently being updated, which means that it may look a little different (and not very polished) for a while. All the content and pages should still be there, though. It should be back and fully operational soon. Thanks for your patience!