Everyone is going nuts for the BB-8 bot that is appearing in the new Star Wars Film. There’s already tons of speculation out there as to how this thing works. I’ve seen some pretty bizarre claims. I figured I might as well toss my thoughts into the pool since I’ve had this discussion with so many people already.
The most important part to remember with my idea. When you’re filming on a movie set, complexity is the enemy. It needs to be as simple as possible and as reliable as possible. There are many ways it could be done, this is the way I’d do it if I was hired for the job.
In short, I think that everything is housed in the big ball, the head is largely passive. There may be some animatronic bits up there for expression, but it has no part in the actual locomotion. Actually, all I see in the head are a few lights. The lens isn’t animated in this demo. There may be nothing up there but some magnets, roller bearings, and batteries.
I think XKCD got it right, back in 2012.
This basic idea would be the most cost effective and simplest way to control the system. No complicated ballancing, just basic radio control. There are a few key modifications that would need to be addressed though.
First, the head.
Many are claiming the head is actually the driving force, like a ball balancing bot. I don’t believe this to be the case at all since the head goes off axis too frequently and not in tandem with any body motion. If the head goes off axis and doesn’t cause the ball to move, it can’t possibly be the driving force. Any workaround for that is just overly complicated and inefficient to design.
Simply moving the “arm” shown in XKCD’s comic to the center would allow you to basically build an XY turret that could allow for a full range of motion across the top of the ball. A 2 DOF turret, or pan/tilt head, is nothing new or complex.
Turning the head side to side would be as easy as adding another actuator at the tip for rotation. Again, the head would be completely passive in all of this.
It would appear that what XKCD made would work for the most part. However, if you’ve played with toys like the sphero or made your own hamster ball bot, you’ll know that using a simple weight has its disadvantages. You have to build up inertia, then fight against it every time you move or stop. You can overcome the rebound from stopping with some elegant acceleration code in your controls, but turning in place as the BB-8 does on stage is incredibly difficult.
To pull that off, the easiest way I can think of is to use a flywheel based gyroscope. One horizontal and one vertical would allow for some incredible control and cut wobble out of the equation. It would be dirt cheap and wouldn’t require crazy software.
This could all be done with off the shelf RC parts. No fancy computer necessary like XKCD’s.
I can’t wait till the actual plans are revealed. I could be completely wrong, but if I had to build this today, this would be my fastest and cheapest route to creating the same thing. However they pulled it off, they did a fantastic job. That thing is expressive and intriguing.
A side note on magnetic levitation: I’ve read a couple articles where people (even roboticists!) talk about how the head could be magnetic levitation. If those people have ever played with magnetic levitation they would know that this would be an absolute nightmare. The theory sounds good, but levitating things with magnets while jostling them around doesn’t mix well. Especially not at this scale. Works great as a stationary toy on your desk, works horrible in motion on a movie set… where every second required to re-set is TONS of money.
Someone will undoubtedly link me to a video of an incredibly complex and large machine doing fine movements via magnetic levitation on small floating items. This would not be cost effective for a movie prop.