2009 Walker Challenge
For 2009 I really wanted to enter the walking robot race at the Robogames in San Francisco. It was almost an obsession. The year before we had recently moved, and recently had a baby, so taking a trip to see robots seemed out of the question. This year I knew it would be difficult so I really had to resolve that I would do it.
A New Walker
Last year I built "Fluffly" (my sons name-- he is five), a quadruped. I'm interested in quads, I think because everyone else builds hexapods. Fluffy was based on a discontinued quad model at Curst Crawler. He worked out well and is still an excellent test bed for software and sensors. The problem is that fluffy has never gotten near 5 cm clearance on his back legs, and never would. So Fluffy could not do the competition. I needed a new walker.
Strange Layouts
The first layout I wanted to try was very strange. I was trying to see how few motors I could use to build a four legged walker. Fewer motors is simpler, and it can improve your power to weight. At first I thought I would try a five motor walker. It was really way too difficult to make work. Who knows if it was even a good idea. So I switched to a six motor design.
The core of my six motor design was two very strong servos from Robotzone. The servos I used have over 1,000 ounce/inches of torque. By comparison the servos I used on fluffy had servos with about 57 ounce/ inch of torque. The difference in lifting power is quite severe. The two Robotzone servos acted as shoulders, each one lifting two legs in the vertical plane. The reason why I realized I could get away with two motors is that I always only lift two legs at a time. Four quarter scale servos move the legs in the horizontal plane, attached in Lynxmotion servo brackets.
Once I went to two robotzone servos as the shoulders it made sense to make a box the central chassis of the robot. I was looking for something that I could open and close and easily drill. I needed room for batteries and a Spin Studio card. I settled on a plastic shoe storage box.
The plastic box (it looks like Tupperware to me) worked, but it also was probably a poor design choice. It was bulky, bulkier than I really needed. The robot was getting so wide that it would be a problem staying on the course. It was not tall enough to get the servo housing to stand vertically, so the robot always had some balance problems. It also was not strong enough and had to be reinforced to keep from bending too much.
For the legs I used aluminum tubes from Lynxmotion which fit well with the servo brackets. For feet I initially tried the rubber end caps that Lynxmotion sells for feet for their hexapods. These were not strong enough and quickly tore.
I wanted to find a foot with a little more surface area, but that was curved along front to back axis of the walker because where the foot touched the ground curved along that axis. I got the idea of taking a really big wooden dowel, the kind used for a big broom handle, and cutting it into little cylinders. I drilled holes into the center of the wooden cylinders and put the aluminum tubes into them and hot glued them together. This made them look exactly like little mallets. I know because my boys can never resist picking one up.
I used a Spin Studio card for the controller, with a board for attaching servos, a board for a digital compass, and a board for TV output. I put the board on a small piece of lexan that I cut to fit inside the chassis. I put in three 7.2 v NiCad batteries. Two for the motors, one for the controller board. There was still plenty of room inside the chassis for tons of stuff.
I made a quick and dirty program to cycle all the servos on a sine table of varying periods, with a central rhythm. You can read more about the technique of central pattern generators here.
Testing and Refinement
Strangely, this worked. It walked awkwardly, but it walked. Forward, backward and turning in either direction. It looked very awkward and shook itself violently with each stride. It was pretty fast and could handle uneven terrain. For example, it could walk well across grass, something I had yet to get a quad to do well.
It had one fatal flaw. It did not have the ground clearance on its back legs to complete the walker challenge. This is a common problem for me with quads. Moving forward your weight naturally shifts back. The gate I like to use only keeps two feet on the ground at a time. It is natural for the body to rock back and lean into the lifted back leg so that it doesn't get far above the ground, if at all.
Many hobby walking robots have these problems, probably most. When you see a video of a hobby robot walking across a smooth surface it often has almost no ground clearance on some of its legs and would not be able to clear even the smallest step. Hexapods do have some clearance, because they usually always have a stable tripod to lift the other three legs from. Bipeds and quads often really don't get that much clearance.
The clearance problem had a number of causes, and a variety of ways to come at with a solution, or at least an improvement. One problem was that the plastic box that formed the chassis bent instead of staying rigid. That meant that it twisted upward in the direction of the legs pressing against the ground, and sagged downward in the direction of the lifted legs, reducing clearance. While this wasn't the only problem, it was very fundamental in the sense that it could have prevented the robot from ever working well. I could have addressed it by coming up with another chassis--- and probably should have-- but instead I ran a 12" threaded through the chassis as reinfocement. That kept the distance between the two shoulder servos constant and reduced flex.
The other problem was that the robot could not balance well on two legs. The width of the chassis cause the legs to be very far apart, with a rounded surface at the point of contact. The heaviest component, the shoulder servos, were not correctly balanced. There are many ways to address that sort of problem. With time and attention it might have been possible to address it with acclerometers or pressure sensors on the legs. But the easier solution was to make the feet bigger and flatter so that they naturally held the robot up straight.
To get the walker to balance better I added four more quarter scale servos on Lynxmotion brackets to pivot shorter rod legs. At the end of the legs I put 3.5" x 5" flat wooden rectangles. This worked surprisingly well. The robot got good ground clearance on all limbs and kept its balance on very uneven terrain. I made some videos of it when I got it working.
The addition of servos really helped, but they were extremely awkward. I had made no plan for the wiring and a lot of the assembly was fragile. I actually got the required ground clearance with less than two weeks to go.
Disaster
The week before I added a couple electrical and software improvements, including a push button to launch the robot at the correct time. I really wanted to add Ping sensors, but there was no time. I started tuning the robot to get it to go straighter and faster.
Three days before, while I was tuning it for speed, disaster struck. I put the robot on a faster gate and it twisted two of the lynxmotion servo brakcets holding the new ankle servos. Two feet also came off. The feet were fixable, the ankle brackets would have to be ordered. Worse, the fact that they had failed so badly after such a short time showed that the design was very flawed.
At that point I had just a couple days-- really two nights because my work had been quite busy-- to do anything. So immeadiataly I began dissasembling what was left of the ankles and going back to the original mallet feet. With almost no time to spare I got them back. I tested the robot a couple times with them, but only a few times for fear it might break again.
The Event
I went up to San Francisco with my older son Spencer. I wasn't sure I wanted to do that, he is only five. It turned out to be a great trip. We stayed with my parents in Piedmont, and with my sister and her family in San Francisco. My son and her son really like to hang out, and they wanted to go to the robogames, so it all worked out well.
The event is at Fort Mason. The weather was terrific and it is quite a scenic site. I showed up for a while carrying around my robot, until I found a table to put it down.
There was a lot to see at the show. The kids love robot combat, but they also enjoyed the firefighting race and the robot hockey. It was nice to meet other people building robots. There were so many strangers that I had a lot to talk to about. I also found that it was a very understanding croud. I was disapointed with how my robot worked out, and how it was built, but other robot builders were generally pretty encouraging. I met David, the organizer. He knew who I was and was very nice and very friendly. I also got to meet Nick Donaldson, the organizer of the event.
Nick Donaldson makes a number of really cool robots, including a very trick custom hexapod. I have seen videos of it, and it wins pretty much every year. I think one of the things that inspire me to make a quad is knowing that I would probably never make a hex as good as his. It turns out he has kids too and is a very nice guy.
When it came time to do the race my robot did OK, but it had a crucial flaw I did not expect. It did not come close to going straight, in fact it practically circled. In earlier incarnations I had tuned the servo commands to get it to go straight, but the truth is I really didn't need to much. Once I put the mallet feet back on I only tested it a couple times for fear it would break again and I would really be sunk. I don't know if it got out of alignment when I put the feet on, or from shaking around in the car. It turns out riding around in a shaky car is very tough on a robot.
Anyway, the robot did not have trouble with obstacles up to the steps, but it did not go straight enough to get to the steps without veering off the course. I don't think it could do the steps with the mallet feet, but it turned out none of the robots competing autonomously could either. It was also probably the fastest robot, for how far it went-- admittedly not far for veering off course. If I had brought a lap top I could have tuned the program and done a little better. As it was I got third out of three. Not great, but this was a learning year.
My Learning Year
I definately want to do the walker challenge again. I don't think I will have any trouble getting Spencer to go back. I'll probably try to build another walker next year. But I also think that with some simple changes and repairs Sterylite could be quite competitive.
We also got to see many other events. I was most impressed by the robots in the Firefighting, the Mech Wars event, and the Robo Magellean. I would love to enter more than one event next year, perhaps something I can do with Spencer.
|
|
RoboGames 2009
Robot Videos
Robot Building Tips
Notes on Robot Parts
My Embarrassing Hobby
|