Header image  

Robots from Previous Projects


In the previous years I made several robots for research and for demonstrations. Here are two of them


I completed Mukade in Kyoto University, Japan in during 1999-2000 as a research project on emergent gait patterns in multi legged robots. Assuming we have a robot running on unknown terrain, it must have a method of generating the required gaits. Mukade came up as a test platform from that idea. You can find a conference paper about Mukade here.
The idea is to build a robot with a decentralized controller. Mukade is built in five identical sections which are connected using a compliant straight backbone. Compliance is provided by allowing each module to connect to the backbone with linear bearings restrained by springs, giving about 20mm of travel in horizontal and vertical direction.
Each module moves the legs in a predetermined closed trajectory (ideally an ellipse). The position of the leg on the trajectory is given by the phase of a lcal oscillator runningon that module. The phase of the oscillator when the leg contacts the ground is fixed apriori. But depending on the terrain, and the position of the legs on the other modules, the leg might contact sooner or later. Actual contact is sensed by a foot tip switcand the local oscillator phase is advanced or retarded depending on actual and anticipated phase of contact. Although there is no communication between the esparate modules, because of the contact timing and its effects on the local oscillator phase, the phases of the oscillators (and thus the movement of the legs) can be spread out globally on the robot and a uniform walking pattern emerges. The stability of the movement has been shown and also demonstrated on Mukade. Here is movie of Mukade walking in a preliminary test.

Image of a sample program running on a SUBOARDII
General view.

Image of a sample program running on a SUBOARDII
Ready to move. Radio communication antenna (2.4GHz) can be seen.

Image of a sample program running on a SUBOARDII
During a leg motion test on the bench.

Image of a sample program running on a SUBOARDII
Bare bones before build. Three of the modules can be seen, with the compliant attachment to the backbone.

Image of a sample program running on a SUBOARDII
Bare bones before build, detail.

Six legged walker Gokiburi

I built gokiburi during term break in March 1995. When I first saw Genghis of R Brooks, I was very impressed with its elegance and wanted to build something similar after that. Gokiburi ("cockroach" in Japanese) has similar functionality, but different structure. There are six legs each with two degrees of freedom; making 12 degrees of freedom in total. The algorithm running on it is fairly simple, since just after building it I started PhD and did not have time to work on Gokiburi anymore. It is possible to generate general gait patterns on the robot with one constraint; the legs should stand close to 90 degrees to the ground since the servos do not have enough torque to support its weight. It is made of 3mm thick plexiglass sheet. Other material choices such as aluminum were too difficult to process with enough precision using hand tools and wood did not look very durable or professional. I had thoughts about the trength of the legs since they looked too fragile under its weight, but after 12 years now, the robot stands without a scratch. Gokiburi weighs about 600 gr without batteries and the plexiglass parts weigh 160gr in total.

It uses micro size RC servos as actuators which were the cheapest servos I could find at the time, so I had to do with them despite the low torque. I later learned that, these servos are specially made for model motorcycles and mini cars, and have a high performance (according to the manufacturer!). The Specs are; Sanwa (Airtronics) SM-541 servo, 0.13sec/60deg at 7V (quite fast!), 1.8kg.cm, 34x14x34mm, 22g

The cassette next to the robot gives an indication of size.

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(remember this was buit with a student budget). 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 running at 10MHz, with peripherals such as timers, serial & parallel I/O and 32K of ROM and RAM each. The code was written in assembly (great for masoists!) with 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.

Its code is divided into three levels:

  • Servo position control
  • Servo speed control
  • High level control

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 Gokiburi walk with several gaits. This is where subsumption etc. would go.
Here is a graphical representation of the control program.

One gimmick is that, when you want to transport Gokiburi, 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).

Detail of the leg mechanism.