Six-Legged Walker
Index:
When it comes to pure looks while in action, nothing can beat al walking robot (at least in my opinion). Because of this, I am working on a six-legged walker.
Some specs:
- Length: 32cm
- Width: 30cm
- Height: 15cm (extended legs)
- Weight: approx 2.3kg
Some pictures (click picture for large view):
Each one of the legs uses two servo's to control it. One to move the leg up and down, and one to move the leg forward and afterward. On top of the robot a processor board is mounted to control the 12 servo's.
Between the 'shoulders' of the legs are two 7.2V 2000mAh NiCd batteries.
As a processor I'm currently using an 8051 microcontroller. Click picture for larger view.
The board is salvaged from an earlier project. The controller generates the timing signals for the servos using a 100kHz square wave generator (the IC right from the processorboard woth the potentiometer) an internal timer and software. The timing signals are then send to the servos via two 8-bit shift registers. Because the shift registers are serial devices only 4 pins of the controller are required fo the control of up to 14 servos.
First, in order to understand how this robot can walk, you need to able to keep an overview of the legs. So the first step is to give each one of the six legs a number.

A topview of the robot.
Each one of the left legs has an odd number, each one of the right legs has an even number. This way all legs can be identified.
Currently, I've tested two mode of walking. 3-3 mode and 2-4 mode.
Mode 3-3 means: 3 legs used for moving and at least 3 legs on the ground at all times.
The timing for the legs is as follows:
F=leg forward, B=leg backward, U=leg up, D=leg down
| LEG: | 1 | 2 | 3 | 4 | 5 | 6 |
| STATE 1 | F,D | B,D | B,D | F,D | F,D | B,D |
| STATE 2 | F,D | B,U | B,U | F,D | F,D | B,U |
| STATE 3 | B,D | F,U | F,U | B,D | B,D | F,U |
| STATE 4 | B,D | F,D | F,D | B,D | B,D | F,D |
| STATE 5 | B,U | F,D | F,D | B,U | B,U | F,D |
| STATE 6 | F,U | B,D | B,D | F,U | F,U | B,D |
From state six the legs need to go back to state one in order to complete one cycle.
When I first tested this walking mode it did not allow the robot to walk in a 'natural' motion. Whenever the legs moved from state 2->3 or 5->6 the servo's of the three legs that were down on the ground needed to move the 2.3kg mass of the robot forward. This caused high stress on the servo's and if the robot moved the three legs to far to the back it would fall on it's face because of the inertia. Also, because the robot's mass was standing on only 3 legs in state two, three, five and six this sometimes caused the robot to 'sink' through a leg because the servo could not hold the power. Clearly, a different mode of walking was needed to prevent this.
Mode 2-4 means: 2 legs used for moving and 4 legs on the ground at all times.
The timing for the legs is as follows:
F=leg forward, M= leg in the middle, B=leg backward, U=leg up, D=leg down
| LEG: | 1 | 2 | 3 | 4 | 5 | 6 |
| STATE 1 | B,D | F,D | F,D | M,D | M,D | B,D |
| STATE 2 | B,U | F,D | F,D | M,D | M,D | B,U |
| STATE 3 | F,U | M,D | M,D | B,D | B,D | F,U |
| STATE 4 | F,D | M,D | M,D | B,D | B,D | F,D |
| STATE 5 | F,D | M,D | M,D | B,U | B,U | F,D |
| STATE 6 | M,D | B,D | B,D | F,U | F,U | M,D |
| STATE 7 | M,D | B,D | B,D | F,D | F,D | M,D |
| STATE 8 | M,D | B,U | B,U | F,D | F,D | M,D |
| STATE 9 | B,D | F,U | F,U | M,D | M,D | B,D |
| STATE 10 | B,D | F,D | F,D | M,D | M,D | B,D |
| STATE 11 | B,U | F,D | F,D | M,D | M,D | B,U |
| STATE 12 | F,U | M,D | M,D | B,D | B,D | F,U |
| STATE 13 | F,D | M,D | M,D | B,D | B,D | F,D |
| STATE 14 | F,D | M,D | M,D | B,U | B,U | F,D |
| STATE 15 | M,D | B,D | B,D | F,U | F,U | M,D |
| STATE 16 | M,D | B,D | B,D | F,D | F,D | M,D |
| STATE 17 | M,D | B,U | B,U | F,D | F,D | M,D |
| STATE 18 | B,D | F,U | F,U | M,D | M,D | B,D |
From state eightteen the legs need to go back to state one in order to complete one cycle.
When this walking mode was tested it proved to be much better when compared to the 3-3 mode. Because the robot now has four legs on the ground when moving forward the servo's have less stress. Also, because these servo's don't need to move from front to back but from front to middle (or middle to back) the robot's inertia is moved over less distance. this also decreases stress on the servo's because the robot's 2.3 kg has less speed. Also, because four legs are on the ground at all time the robot is more stable. No more problems with 'sinking' through legs were observed. This mode allowed for a much more 'natural' motion of the robot while walking.
Theoreticly, the robot should be much slower because the servo's need to go through more states. In practice, because of the reduced stress and weight on each individual servo the servo's are able to move faster so the robot is not much slower when compared to the 3-3 mode.
The chassis will ofcourse need some sensors in order to operate without user intervention. Sensors I am considering are:
- Ultrasonic sensors (obstacle
detectors)
- Infrared detectors (beacon detectors)
- Touch sensors (because ultrasonic sensors can't 'see' every
obstacle)
- Feet sensors (to confirm a leg has touched the ground and not a
hole)
- Real time clock (to automaticly switch off at night)
- Battery condition sensor (to detect when the batteries are
empty/full)
In order to gather as much
information about the surroundings of the robot as possible a
wide field of 'vision' is required. In order to obtain a wide
field of vision, I've build a rotating sensor pod (head) on the
front of the robot. This head currently carries the ultrasonic,
infrared and touch sensors. This head can rotate 180 degrees (left,
front, right) in order to use it's sensors in a wide field of
vision.
Anyone can build one of these. You can download a set of instructions by following the link on the links page (680 Kb). You will need the Turbocad 2D software. Follow the link on the links page to download a 7Mb free version.
(last update: 01-12-2001)