Mike Smyth's Mechadon Page
Mechadon is one of my on-going hobby robotics projects that I've been working on over the last 6 years. It has 12 degrees of freedom (6 per leg) and uses R/C servo motors for actuators. The "brain" is a parallel processing system using thirteen PIC16F84's (a relatively small 8-bit Microchip micro). One micro handles all A-D functions and does basic processing on sensor data. The remaining 12 micros each control the position of one joint. It senses the world using a 2-axis analog tilt sensor in the head and 8 analog force sensors on the toes. The whole robot stands 18" tall and each foot is 4" wide giving it a fairly high height to foot-size ratio (translation: inherently unstable :-) It weighs about 6lbs. All computation is carried out on-board and the power supply is designed to be operated from a battery for totally autonomous operation. In the video, a power tether is used and the gray ribbon cable goes to a display box that lets me see the sensor readings real-time and adjust parameters. By hard coding the parameters the robot can run without the display box.
Like a human gait, the robot shifts its weight between feet and picks up its foot at the appropriate point in the step. All of the motions are based on sensor input (i.e. - no elaborate pre-programmed sequences of motion). Because of this, each step is slightly different than the last due to sensor error, mechanical slop in the linkages, torque limitations, voltage fluctuations, etc... The controller compensates for all this uncertainty using a behavior based control approach rather than explicit mathematical models of the entire system. Certain behaviors kick in at different times depending on what the sensors say. This is similar to the Subsumption Architecure pioneered by Rodney Brooks at the MIT Leg Lab. The behavior based approach drastically reduces the amount of code space and processing power necessary. The current walking code requires less than 13K of flash ROM and less than 0.5K of RAM total. The total computation power is roughly the same as an Intel 486 @ 66MHz, but the parallel system only draws about 200mA of current vs. several amps for a '486. Not all of the processing power is needed with the current software. The control algorithms are robust enough that it can be knocked around while it's walking and it won't fall over. It is also robust enough that it will walk reliably with or without the battery (with a power tether) without modifying any of the control system parameters even though removing or adding the battery back drastically changes the mass of the body.
Here are some more pictures and couple videos of Mechadon...
Here is a close-up of the tilt sensors (the plastic bulbs filled with the green fluid). Each bulb senses one axis of tilt. More information about the tilt sensors can be foundhere.
This is a close-up of an ankle that shows the pressure sensors on the toes. The small round black magnets at the end of each toe interact with hall-effect sensors located inside the brass tubing. More information on the force sensors can be foundhere.
This is the control box I built for software development. There are 4 spare A-D inputs on the robot that connect to potentiometers in the control box. This allows me to adjust software parameters in real time with the robot in operation. This capability was extremely useful while adjusting the gains of the various PID loops. It also allows me to directly control the positions of specific servos. There are two pots on the joystick and the two big blue knobs are single turn pots. The two small blue circles under the toggle switches are multi-turn trimmer pots. The toggle switches select between joystick and trim pot input for each axis.
The other capability of the control box is to display real-time data from sensors or other internal variables while the robot is operating. The micro is easily removable so that it can be quickly reprogrammed to display different data. When connected to the robot, the control box processor is tied directly to the parallel data bus so that it has direct access to all data being passed between processors. The display is updated about 4 times per second. The close-up of the display shown above shows the raw force sensor values for each toe and the weight vectors calculated for each foot. The vertical line in the center divides the display between the left and right feet. The numbers in the corners are the raw hex values for the toes in the corresponding physical locations on the feet. The inverse text on the bottom numbers (all the front toes) indicate that the force on those toes is over a certain threshold and that those toes are in contact with the ground.
The angled lines on each side are the calculated weight vectors on each foot. When this picture was taken, I was pushing the robot forward so that all the weight was on the front toes and the back toes were of the ground. I was also pushing harder on the left foot. This is why the line on the left side is longer than the one on the right. (When standing completely balanced, both weight vector lines are zero length and there is just a dot at the center.) The short horizontal bar in the center is a display of the relative weight between the feet. At this instant, there was more weight on the left foot so the tick mark is to the left of center. This display allows me to very quickly see how the feet are sitting on the ground.
Another very useful display was of the activation functions for the fuzzy logic rules that are used to control the ankles. I wrote the activation function subroutines so that the shape of the functions could be modified in real-time by the adjustment pots. This allowed me to display the activation functions for a given axis along with the input to the functions. With the robot operating, I could see the function input and easily adjust the shape of the activation functions so that the correct behaviors would kick in at the appropriate time.
Below are some videos of Mechadon walking.
Walking 1 - Video of Mechadon walking on my workbench - Front View
Walking 2 - Video of Mechadon walking on my workbench - Back View
Walking 3 - Video of Mechadon walking on my workbench - Side View
Send Me E-Mail
Home Mechadon Hexapod MiniMechadon LEGO Bots Classic Cars Air Engines