I’d like to discuss 4-leg walking algorithms with anyone who cares. I notice that most folks seem to have gone hex, perhaps because Lynx has gait-software already working??
It does appear that hex is fundamentally much easier than quad.
My thoughts are that it’s all about knowing where the center of gravity (COG) is at any given time. With hex, the alternating tripod is straightforward because the COG can be within a wide area while moving. But with quad, there are a couple of issues: 1) Can’t lift more than 1 leg at a time (unless you’re planning to balance on 2 legs), and 2) Knowing which leg is not really supporting the weight at the moment.
Lifting the wrong leg just causes you to tilt, and the opposite leg goes off the ground.
So, now some thoughts on solutions to problem 2) above.
One approach: Before lifting a leg, shift the COG away from that leg by bending the knees/hips. Move the free leg in the desired direction, then shift the COG to an adjacent leg. The complete gait would involve moving the COG in a circular pattern, while the legs take small steps in the desired direction.
Another approach to controlling the COG: Add a turntable-like device on the bot. The turntable has a weight attached in one spot on the edge. By rotating the turntable to various positions, the COG actually moves even though the bot did not move. I’m thinking of a turntable perhaps 6" in diameter, with several ounces of weight on it. For any quad, it would seem important that heavy HW like batteries be mounted exactly in the center, so that the static COG is as close to center as possible.
A third idea: Add a spring-plunger type device to the bottom of each foot. Or, make the hip joints ‘squishy’. I’m thinking that this aids in getting the COG to shift (if other legs move correctly at the same time). I’m not sure what benefit this idea really has - I haven’t got my “head around it” quite yet…
I think the turntable idea sounds elegant and cool, and would also allow the bot to walk better on uneven or sloped terrain. The turntable could be combined with a sensor or two, like a rotating radar antenna.
In reply to myself: I stumbled on the quad-gait sample pgms in the Lynx download area. It looks like I have over-complicated the problem (sort of). For example, the third code example (the one that includes explanation of what it’s doing) appears to simply lift a leg, move the other 3 legs back at the same time, then plant the leg again.
I suppose this must work ‘adequately’ on regular floors and such. But it would seem that depending on where the COG is, sometimes it will tilt onto that leg, and then have to ‘drag’ it forward. On rough terrain, this would seem like a problem.
But, it’s nice to know that there is a simple starting point that should be easy to get going.
Looks like MRJones has already covered it, but you might want to begin by watching a pet walk around. My cats, for instance, almost always move their back leg forward, then the front leg forward, then do the same thing with the two legs on the opposite side, keeping 3 legs on the ground at any given time. When running, that changes. If you have pets, a video camera, and a strobe light, try filming them while the light is on. Just toss something down a hallway and film them running for it. That should give you a lot of information on what to model your robot’s locomotion after.
Another idea I had, and may or may not use for my robot, is of making a simple 2 axis level, with digital feedback. If you have ever seen a leveling bubble, its the same idea. You can find them at hardware stores that are basically a dome on top of a flat surface, the bubble rising to the top. They are used for levelling desks, tables, etc. My idea is to make something similar, but replace the liquid and bubble with a small drop of a conducting liquid (mercury maybe?) that will roll to the low side. Inside the disc, arrayed in a circle, I’ll put contacts, and in this way, I’ll know which way the robot is leaning, and also how far.
If you use a system like that to sense where your robot is leaning, you can just move a leg on the opposite side (one that is already in the air) further away from the center of gravity to compensate for being off balance. This all applies, of course, if you are moving two legs at a time, from opposing corners. To life both front or both rear legs simultaneously, I’m not sure how you would do that, but I imagine it would require a fair amount of momentum or some really strong servos.
The device you described is called a “tilt sensor” I think. There are little gadgets about the size of a dime that give you electrical outputs of your current position, including how much you are tilted. For very rough terrain, that sort of thing would be required to avoid tipping over. For my purposes, I’m going to assume that the terrain is never that steep.
That web site has told me about everything I wanted to know about 4-leg walking. I see that my earlier idea of a turntable with an off-center mass is equivalent to the cat’s head and tail, which move around to give extra stability as needed.
One of the pages analyzes the possible 4-leg ‘creep’ gaits, and points out that there is only one right way to do it (the way that cats do it). So, I’ll start by imitating that gait.
…But I’ll need a few weeks/months to get the basics in place…
It shows the varieties of the “creep,” the gait where three legs are always down and 1 is up. There are 24 different combinations of movements, but they reduce down to only 6. Of these 6 possible leg movement sequences, only 1 is stable in all states and this is the one used by animals like cats and dogs.
Lime legs mean ‘starting to go up’
Dark green legs mean ‘just going down’
so, all legs are shown ‘down’
The quadrapod must be balanced with COG set to middle
this is a ‘forward’ gait, i mean you must reverse the gait order to go ‘back’
i’m working on the quadrapod gaits with 3 DOF Legs (with crab walk, turn etc…like the H3-R), i’m about to solve the translations problem in any direction…
with the 5 steps gait, you must end it during the 2 first steps to stop the quadrapod in a secure position,
and during the 3 first steps with the 7 steps gait.
this gait is ‘balanced’ but you can enhance the stability with a system moving the accus pack to front when moving up a rear leg, and moving it to rear when moving up a front leg…it need to mount the accus pack on a slidding system, moved by a servo synchronized to the gait…
Iv been trying to convert the hex code into a quad code
im still understanding some of the code, especially when it comes to indexing.
let me explain…
In the hexapod code, i can take out the middle legs (only leaving four legs, Front + Rear). and after studying the hexapod ripple gait, or creep gait, i feel i could create a quad code using this type of gait! obviously with a few tweeks!!
do you know were i can find a ripple gait, or creep gait for the hex?
What method are you planning to use for a “turntable”? Are you going to modify a servo to rotate 360 degrees?
I had thought about using two 180 degree (balance) servos, one for the front and another for the rear. Each servo swinging a 1" (or 2" or 3 - whatever works best through trial and error) arm with a weight attached to the end. When the right front leg is lifting up and swinging forward, both the balance servos position their weights on the left side, and the same thing for the right rear leg. Then just the opposite for the left legs. If you swing the weights so that they are as far apart from each other as possible (toward the front and rear of the quad), then when the right front leg is lifted up the balance weights are above the left front and left rear legs and is pulling the COG away from the center of the quad.
I have found a servo-gearbox that turns 315 degrees. There is 45 degrees not usable, but if you place the servo correctly, you wouldn’t need them. Then you could use one servo and swing your weight directly opposite the one foot that is in the air.