The Hexapod Walker

by Nidhi Kalra
May 2001


Welcome to Bug, a simple hexapod walker controlled by the Atmel AT90S8515. This site documents the internal workings of Bug and provides a complete, detailed guide to constructing your own Bug.

I. Introduction

Bug originated as an idea I had to use the Atmel line of microcontrollers to control a set of servos in an autonomous system. Wanting an inexpensive, easily constructable system, I chose to build a hexapod walker with three servos, the minimum needed for any walker to successfully locomote. I had several goals for Bug, each to designed to push its control in a new direction and to get more than just a preprogrammed little machine:

  1. Walking forward (and backward): basic synchronization of the servos.
  2. Tight left and right turning: smooth transitioning between motion patterns without loss in distance
  3. Object detection and reaction: dynamic change in motion, most basic level of autonomy.
  4. Object avoidance: real-time decision making.
  5. Audio or visual path determination: combining a desired path with object avoidance.

Goals 1 and 2 are necessary for 3-5, which can be implemented independently or together as complete system. I would also like to implement different modes of control that use other Atmel applications:

  1. Web control: integrate a tiny web server (a project in itself) allowing remote control (Bug is tethered now)
  2. Remote Control: use a transmit-receive pair to untether Bug.

Finally, I have a very ambitious plan that is likely to remain a plan due to its complexity:

  1. Use heuristics to make bug learn to walk rather than be programmed to walk.

This last part would be just about the coolest thing in the world. Electrically, it would require a very powerful chip and very fine sensors for feedback control, and the software might be rather complex for the feedback.

Currently, stages 1-3 have been implemented. I have been working on this project since February 2001, with most of the research going into develping an easy way to build and maintain Bug.