Genghis the Clone

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).

genghis-3

Genghis the Clone. Robot chassis is the work of Mr Chan from the Institute of Technical Education, Singapore.

Mechanics

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.

Closeup of a leg, showing the three rotational degrees of freedom, referred to as Alpha, Beta and Knee. White cross and lines indicate axis of rotation.

Closeup of a leg, showing the three rotational degrees of freedom, referred to as Alpha, Beta and Knee. White cross and lines indicate axes of rotation.

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.

Electronics

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.

I made a GUI tool to help calibrate servo position ranges.

Screenshot of a graphical utility  for calibrating servo position ranges. It runs on the OLED display connected to the microcontroller board on Genghis.

Control

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.

An overview of the behaviours in Genghis. Parts that are not greyed out were implemented in Genghis the Clone.

An overview of the behaviours of Genghis. Parts that are not greyed out were implemented in Genghis the Clone. (Graphic adapted from [1].)

The robot is programmed to walk with a ‘ripple gait’, where each leg advances one at a time while the rest push backwards.

Results

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.

Acknowledgements

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.

References

  1. Brooks, R. A. (1989). “A robot that walks; Emergent behaviours from a carefully evolved network.” MIT AI Lab Memo 1091. [Download from Genghis homepage.]
  2. Brooks, R. A. (1999). “Cambrian intelligence”. MIT Press, Cambridge, MA.
Background Story

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.

Genghis the Clone at the office, before it was unchained and left to roam the world. Oscilloscope was for checking power supply stability.

Genghis the Clone at the office, before it was unchained and allowed to roam the world. The oscilloscope was used to evaluate the stability of the robot’s power supply.

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…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s