Upon arriving in Japan to work for GK Tech (a technology branch of a Japanese industrial design company GK Design) in the summer 2003, my very first project was to be a kind of 'technology test' of subsumption architecture for a hexapod robot. My boss and President of GK Tech, Ryuichi Iwamasa, had purchased a laser-cut robot kit from Lynxmotion and wanted to get it running and doing something clever, if only as a loose connection to another on-going robotics project at the company. ;)

After doing some research, I came upon an interesting microcontroller module called "IsoPod" designed for robotics applications by New Micros, Inc. IsoPod is based around a Motorola DSP processor running at 80Mhz, and has enough timer/PWM channels to run up to 22 servos. What's more interesting, IsoPod is bundled with a "virtually parallel" software architecture called IsoMax, modeled on Forth programming language. IsoMax has a special syntax for programming state machine modules, which can be uploaded to the controller and enabled/disabled at any time via a serial connection. This seemed like a great system to design and test a modular subsumption architecture control system. Having taken a robotics class with Rodney Brooks at MIT a couple of years prior, I had a chance to learn about all the cool subsumption-based robots built by his team in the 80's. I was curious to see how our new speedy processor with a large memory would do for a subsumption development platform.

After some weeks of learning, programming, debugging, and upgrading to progressively beefier versions of IsoPod, the robot was walking about with a hallmark variable gait :) In the process, we developed a unique subsumption layout that was a modification of simplified Brooks' architecture combined with some features of a layout proposed in a relatively recent research paper from Spain. (I dubbed this robot "Variant" due to its derivative nature and a semblance to a creature that makes up a part of its name) Our robot was not without its own problems, of course. For one, even though the IsoPod module as the sole driver board was very light, the hexapod had trouble keeping its back in the air.. the servo torque was simply not strong enough for the hind legs. Second, our simple method of resistor-based measurement of current in the servos proved not to be a reliable method of detecting contact with ground. (We opted out for digital contact sensors at the feet instead). Finally, as the software architecture grew more complex the IsoPod's non-volatile flash memory became (just a bit) insufficient. As a result the robot required a somewhat lengthy software upload upon startup, so I couldn't just pull Variant out of its suitcase and have it ready to go by flipping a switch ;)

To finish off the project, I summarized our work in a short document.
Soon after, we successfully submitted it as a paper entitled "One-Chip Solution to Intelligent Robot Control: Implementing Hexapod Subsumption Architecture Using a Contemporary Microprocessor" for the International Journal of Advanced Robotics Systems, published in Austria.

GK Tech

New Micros, Inc.
Dallas, TX, maker of IsoPod DSP56F805 controller board

Lynxmotion, Inc.
maker of Hexapod III kit

Ars Journal
International Journal of Advanced Robotics Systems

One-Chip Solution to Intelligent Robot Control
our 6-page paper for Ars Journal, published in 2004
Lynxmotion Hexapod III kit assembled and wired up.. the IsoPod controller board is small enough to be hidden inside the chassis.
IsoPod module and diagram.
Illustrations of 'ripple gait' (1-step at a time) and 'tripod gait' (3-legs at a time) hexapod walking patterns that are easily switched by feeding a different value to just one module of the subsumption architecture.
Illustrations of two capabilities of our subsumption-driven hexapod: step over obstacles and avoid a cliff's edge.
The final subsumption diagram for our robot.
Illustration of the relationship between subsumption architecture modules and the actuators they affect.
Detailed state diagrams making up various modules of our hexapod subsumption architecture.
Summary of IsoMax state machine syntax and sample code for one of the subsumption modules.
Last Updated: