Kudu
Kudu is a new type of quadruped that I hope to have ready in time for this year's Robogames. I decided to make Kudu when I realized I had a number of quarter-scale brackets from Sterylite that I could use again in another robot. The quarter-scale brackets have been very strong and dependable, if a bit heavy. I wanted to think of a way to use them in a robot that would be different.
I decided to try and make a quad with all the leg servos turning in the same plane. The idea was that it would make the gait more like a mammal's gait and be more efficient when it moves in a straight line. I was influenced by the robots of innerbreed and the Sony Aibo.
To this point, except for Sterylite, all the quads I have worked on have a design that is something like a hexapod with two fewer legs. The legs of these hexapods reach out and then bend down at the elbows. The motion of the feet is sort of like the rowing of a boat: you lift the foot up, move the leg forward from the side, put it down again, and then move it back. It's more like the way a crab or an insect walks then like a horse or a dog.
I wanted to build a robot with big, flat feet to help it cope with uneven terrain. I wanted to use as few joints as possible to minimize weight and complexity. I believe that keeping all the joints in one plane gives me enough axis of freedom to keep the feet flat and moving in a straight line along the forward axis of the robot. This robot will not be able to turn very well, but it should tend to go straight.
Since I already had a lot of Lynxmotion brackets for the servos, it made sense to make the frame out of more Lynxmotion parts. They are really handy and quite flexible. I love how getting different pieces has allowed me to try different things while reusing parts.
Because my goal was to have a robot with 5 cm of vertical clearance, I made the legs pretty long. Originally I had planned on using a T-Hex frame for the body. As the legs became longer, this got impractical so I switched to a simple twelve inch aluminum channel. This really makes the body extremely simple. Probably I am going to have to add more to it to mount electronics on it.
This isn't the greatest picture; I took it with my phone:
It looks kind of high and narrow, but because the servos are the heaviest part, and they are in the feet, the center of gravity is pretty low. I wish I could put the batteries in the feet. For some robot in the future I am going to try and do that.
Here you can see how it has 6cm of ground clearance:
I hope to have this walking in the next couple weeks. I am going to use a propeller servo controller. I will need to add some servo cables to finish it up.
March 13
I am just starting to get Kudu close to walking. I haven't had much time to work on it, but after a couple weekends and evenings I have just gotten Kudu to start to do a basic gait. In my head this was so simple! In practice, it is much harder to get to work. Here is a video of where I am at:
Kudu is being controlled by the Parallx servo controller on top, which has been reprogrammed. The USB cable is plugged in to power the controller, not to actually control the robot. I need to run power to the controller, but my plan is to control this robot with the propeller platform from the Gadget Gangster. So all of this is temporary. The controller is 'mounted' on a piece of paper, that came unscrewed from the aluminum channel.
It is so much harder to program a gait for Kudu. By comparision, I spent about quarter of the time to program Quokka to walk. Quokka doesn't walk very smoothly, but it does go forward, and turn reliably. The main reason why I haven't tuned Quokka is because of the time I have put into getting Kudu this far.
The difference in the difficulty for me is the type of legs and feet that they have. Kudu has legs with three servos all along the same axis with large flat feet. Because they are along the same axis the final position of the feet depends on all three servos in a different way then in Quokka legs, which has two servos on one axis and another on horizontal axis.
With Quokka you can think about how two servos position the feet in a vertical way, because the way I bend the servos they really only move the foot up or down. The third servo takes care of the horizontal movement. The horizontal servo may not be tuned perfectly, but that doesn't really affect the vertical servos.
Kudu is also more complicated then Quokka because it has big, flat feet. Quokka doesn't really need to think about the angle of the feet and legs when they touch the ground. If Quokka doesn't keep its feet flat it is likely to tip over. The angle of the feet is dependent on the ankle, the knee and the hip servo. Any of the three being out of calibration causes a problem and all three of the servos on a leg need to be calibrated together.
One thing I have learned is that taking video of a walking robot is actually very useful. Watching the video of Kudu's gait it seems obvious that the timing of its knee bends are off. It wasn't as easy for me to see when I was testing it as it is on a video.
Another thing I have realized is that Kudu is much less stable then I thought. It tips on its side all the time. I would like to make the feet and body wider to make the robot less prone to falling on its side.
At the rate I am going it does not look like I will achieve anything like 5 centimeter ground clearance. In the video I am barely clearing one centimeter and I am not very stable on flat ground. In the long run I really like this style of walker, but it will take a lot of improvements to make this something that can overcome 5 centimeter obstacles.
Despite the difficulty with Kudu, the code I am using for Kudo and Quokka is the same, with the only differences being the data that is loaded into EEPROM. I am trying to create a general definition for a robots leg layout and gaits that are robust enough to allow different structured robots to work interchangeably without custom code. That does seem to be possible and I could see putting the same code on Fluffy with different values stored in EEPROM for its leg and sensor layout.
July 17
Here are some updates to Kudu walking, and a new frame piece I built to give it a wider stance.