Walking gaits for 6 legged 18DOF robot?

Hi - I recently built a robot that employs 6 3-DOF legs for motion. I designed the hardware so that two motors serve essentially as a 2DOF
ball joint at the base of the robot, while the third motor acts as a sort of knee.
Today I got working a very simple tripod gait for forward movement. It would be simple enough to switch this over to backward movement as well. My question is this: are there any standard algorithms for walking in circles? What about turning in place? Thanks!
-Mike
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Have you been able to ratio your stride to some unit-length?
Have you been able to rotate your steps to a vector from the center of the body?
We've used a RF Joystick controller (PS-2) to control our walker. It steps shorter or longer depending on the amount of deflection from the center on the joystick. It also steps out in any X/Y direction according to direction of the joystick

Turning in place is easier than walking in circles. For a crude turn in place, you can just reverse the sweep direction on the other half of your tripod gate. Half the legs go forward, half backwards.
If you can scale your stride, the turn will be improved by ratioing the length of the stride to the distance from body center. It's easier if the hexapod is round, since that is unity for all legs.
Walking in a circle is much more complicated. You have to do a ratioing and rotation for each leg. Essentially the problem is much like Ackerman steering. All the legs must inscribe an arc which goes around a central point, so each leg will have a different radius. Stretching the gait will give a crude approximation if the turn point is outside the body of the robot.
When refined, both turn about a point and turn around a circle become the same problem. When the point of turn is far from the bodies, the legs movements are just slightly different by stroke lengths. When the point of turn comes closer and is placed under one leg, its ratio is taken to zero, and makes no stroke at all. Once the turning point is inside the legs, some leg's stroke will begin to extend out again in the negative direction. When the turn point is in the center of the robot, one set of strokes are full unity positive, and the other set full unity negative.
I don't know about standard algorythms, I haven't ever seen any. I worked all these above points out myself.
--
Randy M. Dumse
www.newmicros.com
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Thanks David.
Well, that video shows much more than I was talking about above here, so, credit where credit is due. The basic gait structure you see in the video was worked out by Mike Keesling on his robot called Mamby, and was presented in an article for N&V iirc.
The issues of turning I discussed about were the points I worked out and added to my robot starting on the base Mike built. Credit goes to Mike for the idea of stretching and rotating gaits for linear walking in any direction. I've worked pretty hard trying to improve his base walking gait, perhaps I've speeded it up a bit, I added the turns, but haven't made much of a dent in extending the basic ideas of gait control he laid down.
--
Randy M. Dumse
www.newmicros.com
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I also have a hexapod with 3 degrees of freedom/leg. I have employed a static tripod translation gait that can be used in any direction along with a static tripod turning gait which works much the same way.
For an inline hexapod design, the difference between a basic translation and turning tripod gait is the direction the 3 legs on the ground on opposite sides travel (I guess you've probably worked this out) which you can do crudely with a 2-DOF design as well..
If you're using linear algebra to control your robot walking you might be able to combine a turning and translating gait so you can get your robot to walk in an arc or do somthing fancy. Their is a neat hexapod at this website http://hexapod.lindquists.se/ you might want to look at.
The robot I've built walks in an arc by using a static tripod translation gait with a constantly changing direction vector (I haven't actually made this a function as such because I dont see a use for it, but it could easily be done). This might be an idea if you want to walk in an arc without actually turning the robot. Take a look at the last video on http://mikael.geekland.org/ where I walk the robot kind-of in a big circle...
mikael
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Yesterday I ended up implementing something alot like what you're talking about, I believe. I set up two signed int arrays forward[6] and right[6]. Thus for each leg I can set how much I want it to move forward/back and right/left. In this way, by writing to this array, it is quite simple to tell it to move forward, move sideways, or even turn in place. It's working amazingly nicely.
Now on tosome more interesting programming stuffs.
-Mike
mikael wrote:

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.