



The other day I was walking around the house and, as happens to me occasionally, I noticed that I’m really good at it. You’re really good at it too… try it! Walk around a little bit! The smoothness of movement, economy of action, flexibility of adapting to circumstance, variety of execution, exquisiteness of balance — you’re like a ballet dancer. Stunning!
It’s a seemingly straightforward physical task, and almost all of us (including our pets) easily and completely blow away the finest and most high tech engineering on the planet. That’s always been very attention-grabbing for me. If we could even get close to making devices which move as flexibly, robustly, and accurately as we do, an industry that could rival that of the automobile would open up.
In the summer of 2000 I decided to experiment with a simple legged robot named Bing. I knew absolutely nothing about electronics or mechanics. I got the legs mostly constructed, but did not finish the robot. The geometry was awkward, the linkage mechanism was stupid, the motors were not strong enough, and the joints were poorly designed and wobbly. I had great fun, though, and learned some things. Read about it here if you want.
Years later, in 2004, I discovered the Japanese Robo-One competition and that rekindled my interest in robots that walk. Following the generally-used design ideas for Robo-One competitors, I designed and built a little humanoid using a lot of hobby servos. Again I learned a lot about electronics and mechanical things. I got Bing 2 to take a few steps and perform a few other maneuvers Here’s a couple of very short videos:
Unfortunately, there is a huge problem with this type of robot — it has no sensor feedback, so the only programming you can do is play back canned sequences of movements and hope they work properly. The severe impact of this limitation became clear to me as I experimented with the device, and I put it aside.
Another two years went by and I decided to have a go at a third generation. Bing 3 was designed to have a lot of sensor feedback — pressure-sensitive pads on its feet, position and electrical power feedback from each joint, and a “guidance system” based on a set of accelerometers and gyroscopes. In addition, I built a computer-controlled milling machine to help me build the parts. Once again, I had great fun constructing it, learning a lot in the process — my skills with mechanical and electrical stuff are now at the “not bad” level. I documented the project in a very detailed thread on a hobby robot forum.
I did some interesting programming on Bing 3, including sensor conditioning / integration, and a 3-D geometric representation of the robot’s body that let me compute things like the theoretical center of mass and whatnot. The model included inverse kinematics to help control the limbs.
But two things caused me to stop working on Bing 3: The first and most devastating — which I should really have discovered as early as my first work in 2000 — is the terrible inappropriateness of “hobby servos” for complex control of articulated robots. For those who don’t know, the interface to servos like these is to give it a desired position, and then a controller on a computer chip inside the servo works as hard as it can to achieve that position as quickly as possible and maintain it at all costs. This is a very rigid and frustrating way to control a “simulated muscle”, and I was unable to achieve any sort of fluid, efficient, or flexible motion. This continual “clenching” also caused me to ruin a couple of motors.
The second problem was the sheer complexity of the task. Controlling an articulated robot with sensor feedback is very hard. Bing 3 has 19 motors and a total of 52 channels of sensor feedback. Figuring out a walking method for such a complex device starting from scratch proved to be too difficult for me.
Now it’s 2009 and I’m once again thinking about this task. Time to build more robots. Because of the complexity problem I’m not going to build another “humanoid” though — I want to try to come at the problem from a much simpler perspective, which means starting with just a few degrees of freedom, with a goal of masterful control of a simple robotic system. I will keep the sensor-rich approach from Bing 3, but get some motors that I can operate in “torque mode” — instead of telling the motor what position to go to, just tell it how hard to push.
Additionally, since I am so interested in AI and modelling and learning these days, I want to start thinking about control systems somehow in a more adaptable and less ad-hoc way. Hopefully this change of persepective will be fruitful — instead of viewing the task as a walking problem, I will think about it as a modelling problem, which should also shed some light on the more general issues of how to build effective models.
Since Microsoft has chosen an unfortunate name for its new search engine, I need to pick a new robot name: Zing.
Stay tuned for gory-detailed build reports as the summer moves forward!










More Options ...

Categories
Tag Cloud
Blog RSS
Comments RSS


Void (Default)
Life
Earth
Wind
Water
Fire
Lightweight