BB-8 is the much loved new droid introduced in the 2016 movie Star Wars: The Force Awakens, though in my case from the very first trailer released in 2014 I liked it for the interesting engineering problems it posed. How would you make a robot that’s a ball that rolls along, but with a head that stays on top while the ball rolls under it?
To make the ball roll, the answer most people found obvious at first was to use the analogy of a hamster wheel. The hamster running inside makes the wheel turn. In the BB-8 building world, which is quite large, the drive mechanism has come to be called a hamster drive, or just a hamster.
For the head, it seemed obvious that there would be magnets inside the ball, perhaps held in place near the top of the ball by a post extending up from the hamster. Corresponding magnets in attraction would then be attached to the underside of the head, and balls (also mounted under the head) would keep the head moving smoothly over the ball.
The magnet approach for the head has turned out to be the method used by all BB-8 builders that I’ve seen. However, the hamster has turned out to be only one of multiple solutions. Since the original debut many different methods have been used in builds and we’re going to have a lot of fun looking at each separate approach. It’s almost like revealing a magic trick; but really it’s all just clever engineering.
Note that for the actual movie, a combination of 7 or 8 props and CGI were used. The official working BB-8s that are shown at various promotional events were built after the movie was made and as of this writing, few details of their construction have been released. One notable detail, however, is that they aren’t using hamster drives.
Below are details of all the different BB-8 drive systems I’ve seen so far that have been built along with how they work.
Axle Drive aka Pendulum Drive
With an axle drive, an axle runs horizontally inside the ball across the middle halfway up. At one or both ends of the axle is a motor and the ball is attached to the motor’s shaft.
A large mass is suspended from the middle of the axle and is fixed to the axle. When the motors turn the ball, the ball rotates as expected. The large mass swings forward in the direction of the ball’s motion. But you may have expected the mass to swing backward.
If you’ve ever held a motor in your hand while turning something substantial or that’s difficult to rotate then you’ll recall that the motor wanted to rotate in the opposite direction. It’s dangerous so don’t actually do it, but imagine while drilling a hole in a piece of wood that you lock the motor to the on position and let go of the drill. If the wood is clamped down and the hole is tight enough, the result is that the drill will rotate in the opposite direction. The same happens here. The motor and mass rotate in the opposite direction that the ball rotates.
Another way to look at it that’s perhaps more correct is that when you swing the mass forward, that shifts the center of mass forward and the ball rotates in that direction. It’s for this reason it’s also called a pendulum drive (PDF) (section 2.2.4). The pendulum swings forward and the ball rotates in that direction.
Providing I have my physics right, the larger the pendulum mass, the less the pendulum should swing forward. This also happens more during the acceleration.
Turning is not done by the motors on the axle. To turn the ball, a mass is suspended from the center of the axle. The pendulum mass mentioned above can serve this purpose. A motor then swings this mass in either direction in line with the axle.
Swinging the mass to one side makes the ball tilt toward that side and the ball then moves in the direction of that side. Look carefully at the above illustration and you’ll see that the axle and ball are in fact tilted, while the pendulum stays horizontal due to its larger mass. This turning technique means the ball cannot rotate on the spot, but must be moving either forward or backward (though backward and forward lose meaning with a BB-8 since the head may be able to point in either direction.)
Forward and backward wobble can be minimized by again using the pendulum mass driven by the axle motors to swing the pendulum in the opposite direction of the wobble. To do this an IMU (Inertial Measurement Unit) is attached somewhere on the device. The IMU is a chip on a board that knows its orientation relative to the Earth (e.g. the BNO055 breakout board from Adafruit). Something like an Arduino takes that information from the IMU and uses it to turn on and off the motors to move the pendulum and gradually eliminate the wobble. The source code to do this is called a PID loop (Proportional Integral Derivative).
Sideways wobble can similarly be handled by swinging a mass sideways in the opposite direction, though I haven’t seen that done yet in any finished axle drive BB-8s. Either it hasn’t been handled or there was enough mass low down and relatively little mass high up, keeping the problem too small to notice.
I’ve seen three completed axle drive BB-8’s online so far and an excellent one with copious making details is [Ed Zarick]’s shown in the photo.
The Hamster Drive
The hamster is typically a two wheeled vehicle that sits inside the ball, not physically attached to the ball in any way. Further support is usually given with casters or free turning balls extending out the front and back to contact the ball and help keep the two-wheeled hamster stable. Moving is done by rotating both wheels in the same direction.
Turning is done by rotating the wheels in opposite directions. This means that each wheel has its own motor. This is called differential drive or tank drive, since it’s how two-tracked tanks turn.
Some have stabilized back and forth wobble by using an IMU to detect the wobble and driving the motors forward and backward in a PID loop. There isn’t a lot of room in the bottom of a hamster for a pendulum type mass that can be swung around for stabilization. However, the more fixed mass as low as possible, the more stable it tends to be.
You can see [Wayne Neumaier]’s hamster drive BB-8 shown in the photo during final testing before painting the ball. He has his two wheels near the bottom.
Hubless Wheel Drive
The hubless wheel has a similarity to the hamster drive in that there’s a vehicle inside that is independent of the ball. This design is best known as the one that [James Bruton] has done for his BB-8 version 3. The difference from the hamster is that with the hubless wheel, the so called vehicle inside is constrained to a track that’s a part of the ball. In the illustration below the sides of the ball are not shown, though they’re normally attached to the track. This track is what’s called the hubless wheel, as there is no hub at the center of it.
There’s a drive wheel that’s part of the vehicle that presses against the hubless wheel and makes it rotate (see the illustration). It serves the same purpose as the wheels in the hamster except that in this case there’s only one of them. The vehicle is constrained by a ridge all around the two sides of the the hubless wheel.
One of the reasons for this design is that the section of the ball that is the hubless wheel can be made with no seam in it.
With a normal ball there’s a seam where the two hemispheres of the ball come together and that can interfere with the smooth operation of the vehicle inside. With a hubless wheel drive, a central halo of the ball — the path the vehicle moves on can — be manufactured as one solid piece. The inside surface that the vehicle has to run on is smooth. Sure, there will be seams when the rest of the globe is added, but they will have no effect on the operation of the hubless wheel vehicle inside.
An advantage of this design over the others is also that the two sides of the ball can have access panels that open just like the BB-8 in the movie, even though the movie used props and CGI to do it.
Turning is accomplished in the same manner as with the axle drive. The vehicle has a section that hangs down like a pendulum, and can be swung to either side. The mass of the pendulum illustrated here is a heavy flywheel (colored red). A motor can then swing that mass to either side to tilt the ball. And just as with the axle drive, tilting the ball causes the entire robot to move in the direction of the tilt.
Stabilization is done using a combination of techniques similar to the axle and hamster drives. For back and forth stability the vehicle in the track moves back and forth, countering wobble. And for side-to-side stability, the suspended mass is moved from side-to-side to counter that wobble.
The massive flywheel can also be rotated rapidly around its own axis, which causes the rest of the BB-8 to rotate in the opposite direction, allowing it the added trick of turning on the spot.
In the photo above you can see [James Bruton’s] hubless wheel BB-8 version 3 during final testing before doing all the cosmetics.
Omni Wheel Drive
An omni wheel drive is similar to a hamster drive in that a vehicle drives around inside the ball but with the difference that the vehicle can move in any direction. This is done with three or four omni wheels, each with its own motor and oriented in its own direction.
I may have missed it but I haven’t seen any completed omni wheel drive BB-8 builds yet. I have seen one omni wheel drive (like the one shown in the photo) that drives a ball but with no head as yet. I’ve also seen one BB-8 with a working head that use omni wheels but as far as I can tell they’re used just as hamster drive wheels, though I may have missed some subtle difference supplied by the use of omni wheels.
There they are, and for me, knowing the many ways to bring BB-8 to life makes the robot builds themselves even more magical. I wouldn’t be surprised — in fact I’ll be delighted — if I’ve missed some. Let us know about any others you’ve encountered. These are very complex systems and I’d also love to hear your take on the subtleties of each. Leave those remarks, and any other BB-8 ideas in the comments below.