THE SIX LEGGED WALKER GOKIBURI

It is made of plexiglass. Aluminum was too difficult to process with enough precision, wood did not look very durable, and are there any other materials around?. Plexiglass is heavy. This robot uses 3mm thick plexiglass throughout (even for the legs), and it weighs about 600 gr without batteries. The plexiglass parts weigh 160gr in total.

It uses micro size radio controlled airplane servos as actuators. These are just powerful enough to move it around. These were the cheapest servos I could find, so I had to do with them... I later learned that, these servos are specially made for motorcycles and mini cars, and have a high performance (according to the manufacturer!).

The Specs are;
Sanwa (Airtronics) SM-541 servo.

Here is some basic info on how to control these servos, and here is information about producing the required signals

The legs are directly attached to the leg-lift servo arms. The leg-swinging servos are fixed to the body with hinges made of plexiglass. Their power is transferred to the body with ball links, which have zero slop, but are somewhat expensive. You can get a technical drawing of the robot (.ps)

Control is by the on board microcomputer card. The CPU is Z84C015; basically a Z80CPU in a QFP, with peripherals such as timers, serial & parallel I/O etc. There is 32K of ROM and RAM each. It runs at 10MHz. The code was written in assembly (great for masoists!). I had no tools for debugging! It turned out to be quite compact; about 700 lines. Currently, it only repeats certain leg movements, and no sensor processing. When I have more time, I will add collision sensors, and also pressure sensors to the soles of the feet to make it more adaptive. (anyone know about cheapish and fairly accurate pressure sensors? -please, not the IC packing foam!)

Software is divided into three hierarchies;

Servo position control reads a table, and produces the PWM waveform for the servos. This level is interrupt driven, and runs transparently from the other tasks.

Servo speed control reads position commands from the high level control, and adjusts them using a time base, so that servos can move at a required speed. It then writes the servo position table. Speed control softens the movements, and is useful for more complicated control tasks too. This level is also interrupt driven, and is transparent from the other processes.

High level control is only a test version now. All it does is to read predefined positions from ROM and place them in a list, where the speed control can read them. It makes the thing walk OK. This is where subsumption etc. would go in the future... (future is always in the future for me, thus it never comes)

Here is a graphical representation of the control program.

One gimmick is that, when you want to transport the robot, you can remove the ball links, lift up the legs parallel to the underside of the body, and fold the servos into the space under the controller PCB. This makes everything nice and compact, with minimum disassembly. Put it in a box, and go!

The whole thing cost me about US$250, plus about one month of labor (for design, construction, programming and debugging). Now I am in the development phase (READ: idle for a long time!).

If you use the Z80, or you would like to get the servo control program(s), mail me...

I need a C cross compiler for the Z80!

If you know of any, please let me know! It could run on PC(DOS, WIN), UNIX or even Mac (YUK! too desperate!), but no CPM's please. Better if it assembles too, but only a compiler is OK. for me.

Here are two more pics of gokiburi

Mail me any comments at ahmetonat at gmail dot cm...

Back to my home page

Hosted by www.Geocities.ws

1