All the news that's fit to assimilate[ Home | Blogs | Events | Robots | Humans | Projects | Podcasts | About | Account ]
This past week I took a break from graduate school to go back to Anybots to help prepare for and run our booth at the Robo-Development Expo in San Jose California. We showed both Monty's manipulation ability including handing out business cards and interacting with the crowd and Dexter's brand new gait. The security attendants and the show told me that we were the most popular booth there which was very gratifying to hear along with many of the comments from the conference attendees. For our very first conference it went amazingly well. We almost made it through without a single technical failure, only having a component fail in Monty's right hand 3 hours before the end. It was also a good learning experience of what it takes to deploy our robots out of the lab and run Monty full blast all for two days.
There was a fare amount of press at the show and having the only full sized humanoid robots we attracted a lot of attention there too. Much of the press was nice, some not as much, since this is my blog though I'd like to make a couple of points from the insider's perspective. Of course a number of people were disappointed that Monty was tele-operated, a fact we never tried to hide, "man behind the curtain" jokes aside. I would have been disappointed and even disinterested because of that when I was focused on autonomy myself. Spending a lot of time on tele-operation, I really think that our incremental autonomy approach is the right path for useful robots right now.
Autonomy will be added as the technology to enable it matures. Right now the lowest level walking and two wheeled balancing is automated but the driver tells the robot where to go. The next level of autonomy might be having the robot navigate from place to place and notify the operator when it arrives so they can start work. I believe the iRobot Packbot uses something like this since path planing, obstacle avoidance, etc. are pretty well solved at this point. After that autonomy might assist the user by picking up objects automatically once the user puts the hand near by and signals the command. As the level of autonomy increases the number of robots which a single operator can control will increase. The main point is that we don't have to wait for high level autonomy to mature to develop robotic systems and make them practical.
The other thing I'd like to mention is our new gait for Dexter. A significant hardware and software update enabled us to develop a much more aggressive and robust walking gait. While it is still far from perfect, as Dexter fell down a number of times during the show, this gait takes more advantage of our dynamic walking techniques and our use of pneumatics. Unlike ASIMO or HRP-2 or other robots using ZMP to walk, we don't have to precalculate each step based on complete knowledge of the kinematics of the robot but, like a human, figure out during the step where the foot needs to go to keep from falling over. One advantage to this is that if we get pushed or pulled while walking, we don't just fall over. Dr. Blackwell demonstrated this by pulling Dexter backward while he was trying to walk forward, the result was that he walked backward but didn't fall over. Pneumatics is important for kind of walking for two reasons: first electric motors strong enough to support a robot can't move fast enough unless they are made huge and second because the aggressive motions of this gait would shock any gear train to death in minutes. Finally this new gait is a big step toward jogging or running. I can't wait to see how things have advanced when I come back full time in January.
Robot Dreams has written a nice article on our robot Monty. It includes a number of photographs and a video of me controlling Monty through our telepresense system.
Anybots will be one of the main exhibitors at the Robot Development Conference in San Jose this October. We will be showing both Dexter and Monty with demos ongoing over the course of the two day event. This will be the first time Dexter and Monty will appear in public and we're doing a great deal to prepare so I'm anticipating a good presentation.
Another robotics event I've been meaning to post about for a while was the Homebrew Robotics Club meeting I attended last month. People brought a wide variety of robots, the most advanced of which were two RoboMagellancontestants from the San Francisco robotics contest. The most interesting thing for me, however, was the kids. A lot of the club members brought their children with them and I was interesting to see these 5-10 year olds who had clearly grown up with robots and enjoyed torturing them by waving sweaters in front of their cameras, running circles around them etc. I was also impressed by a couple of kids who showed a really good level of understanding of how the robots they'd build (presumably with parental help) worked and what they were capable of. Going along with that, there were a good number of parents who were thinking about how to teach their young children about robotics and programming. Doing a little searching, I found a tutorial on Python programming for elementary school aged children which is an awesome thing to have.
The other thing I saw at meeting was the difference between hobby and professional robotics and how lucky I am in my current job. Not to disparage any of the robots there, most of which were built for only tens to hundreds of dollars, but after my robotics projects in college and graduate school and a month working on Dexter and Monty, I was a little nonplused. Once you've gone pro, I guess you can't go back. Daily exposure to the cutting edge is a great inspiration. Right now I'm starting the design work for a new hobby robot of my own but it is going to be quite a cut above what I've done before. It'll be interesting to see how far I actually get and how quickly.
This week I began working at Anybots, a start-up company in Silicon Valley working on humanoid robots. We presently have two robots, Dexter, a bi-pedal robot which is the world's first human sized, fully dynamically balancing bi-pedal robot, and Montey, a two wheeled balancing robot with two dexterous arms. See the official website for more details. I will be working here at least through the end of August.
Anybots being such a small company I was expecting to wind up doing a little bit of everything; my first day typified this idea. In the first 10 hours I: worked on repairing the robot's hand, designed a new circuit board for the next generation hand, started writing firmware for that board and translated research material from Japanese into English. It is hard but exciting work and I have to say it's nice to be in a group where everyone is as passionate about robotics as I am.
The hand I'm working on is Montey's right hand which is operated via a waldo glove and replicates a human hand as closely as possible. It's an impressive piece of complex engineering with 18 degrees of freedom in the fingers alone. The only anthropomorphic hand I am aware of which is more advanced than ours is that of Shadow Robotics in the UK but they lack even a wrist, let alone the rest of the arm. Montey's left hand has a classic robotic claw and just like in the movies, it's grip is far stronger than human hands.
One hears the term "Generic Programming" every once in a while in computer science or programming circles as a good practice for code reusability or sometimes just as a buzz word. It is often described as "programming with concepts" or software patterns. I tend to think of the process as writing algorithms without applications. That is, when you write the algorithm, you don't include anything which is specific to one application, hence making it generic.
I am not an expert on the topic and this is not a tutorial, though I have collected a few good links below. What I want to do is advocate everyone who does any programming trying it at least once. Recently I created a library implementing generic Markov chains. I did have an application in mind but decided as an exercise to make in as generic as possible because I anticipate having many future uses for this library. It turned out to be a fun challenge and rewarding to have completed something I'll be able to use for other projects. My implementation was in Python which made it slightly easier due to its weak typing, however, even in Python, one needs to be careful not to assume anything about the type being used (numeric, iterable, etc.) anywhere or to assume too much about the application.
2012 Top 10 Robot Christmas Gift Ideas
DARPA Robotics Challenge Kick Off
2012 ASABE Robot Contest Photos
Interview with David L. Heiserman
David Anderson on Subsumption Robots
Review: Apocalyptic AI by Robert M. Geraci
Raspberry Pi Interview with Eben Upton
2012 VEX Robotics World Championship
Giant Dallas Robot Cited as Best Public Art
There's More Than One Way to Skin a Robot
Day of the Androids at Hanson Robotics