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.