Genghis the Clone is a four-legged robot that walks. This project was meant primarily as an exercise to get better acquainted with the subsumption architecture, through the replication of prior work. It also laid the groundwork for possible legged robot projects in the future. The prior work chosen for this effort is Genghis, which is a six-legged walking robot built in the late 1980s at what was then the MIT AI Lab (now CSAIL).
The mechanical body of Genghis the Clone was built by Mr Chan from the Institute of Technical Education, Singapore, though not in any way for the purposes of this project, for which it became available through fortuitous circumstances. Thus it is not surprising that the mechanics of Genghis the Clone differ from the original Genghis: there are only four legs instead of six, and each leg has three degrees of freedom (DOF) instead of two. Of the three DOFs, two are located at the ‘hip’ joint between leg and body, and one actuates the ‘knee’ joint.
To facilitate the replication of Genghis’ behaviour architecture in its clone, the servos actuating the legs are employed in a way that emulates the original: The two DOFs at the hip joint are actuated analogously to the two DOFs on the original Genghis, while the servo at the knee joint is commanded to lock at a suitable position at all times.
The software of Genghis the Clone runs on a BCore100, which is a controller board based on the 32-bit PIC32 microcontroller. The board is programmed using the accompanying Sonata IDE, and the language employed is a variant of VB.NET. Compilation converts this to a bytecode, which is interpreted in realtime during execution by firmware residing on the BCore100.
A separate PIC microcontroller, which was hastily wired up on a breadboard and programmed in C, serves as a dedicated servo controller. It receives servo position commands from the main controller (i.e. the BCore) via an I2C interface, and generates the requisite PWM signals for all 12 servos on the robot.
Owing to time constraints, there are no sensors on the robot, and only a minimal subset of the original behaviour architecture of Genghis has been implemented, which is sufficient for ‘open-loop’ walking. Behaviours for obstacle avoidance and stability were omitted.The robot is programmed to walk with a ‘ripple gait’, where each leg advances one at a time while the rest push backwards.
Kepping balance while walking seems to be a rather delicate affair, but with proper calibration of the servo movement ranges at each joint to ensure stability, the robot walks properly without falling on its bottom. However, the influence of the ground surface on walking speed is evident – a carpeted surface is less conducive to walking.
This work was done while at work! So it is necessary to thank my colleagues at AISCube for putting up with this! And also for making available to me the BCore100 and Sonata IDE (which they are responsible for bringing into being). Through this project, many bugs in the Sonata IDE were uncovered, and I hope this has repaid some of the kindness that led to the success of this project.
- Brooks, R. A. (1989). “A robot that walks; Emergent behaviours from a carefully evolved network.” MIT AI Lab Memo 1091. [Download from Genghis homepage.]
- Brooks, R. A. (1999). “Cambrian intelligence”. MIT Press, Cambridge, MA.
Finding a legged robot chassis by chance lying around in the office dumps was the perfect opportunity to put a stop to my existence as an armchair roboticist. A decade of acquaintance (~2002 – 2012) with the work of Rodney Brooks and fascination with the robots at the MIT AI Lab has profoundly influenced the way I think about robotics today. But even as I found the behaviour-based approach to robotics rather appealing, I never actually tried it for myself. In fact, despite many half-baked attempts at arms and legs and other things, the last whole robot I built happened about 11 years ago! So when I had the great fortune of having a ready-made legged robot chassis ‘fall from the sky and land before my feet’ (so to speak), I had to do something with it.
Due to time constraints and practical considerations, I was not able to replicate all the behaviours of Genghis, especially the beta-force and beta-balance behaviours, which would have involved tapping wires into the servos to get approximate force readings. Moreover, project creep was getting on me, and I was eager to start something new. Therefore, the plan was to declare Genghis the Clone done, and move on to other projects that would build upon this work.
At that time, we were working on an image processing/vision library for our product (the BCore100), so for the next project I planned to mount a camera onto Genghis the Clone and to get it to move around and avoid obstacles. The project/robot would be named Jochi, after the first son of Genghis Khan (well, kind of). But there was other work to be done and Jochi was abandoned. Yet the prophecies speak of his return…