The cockroach was developed to designed to be a platform to test walking and learning algorithms.
Each leg has two degrees of freedom. One question that interests me, and some of my philosopher friends, is how much a-priori knowledge is required to get a system to walk. Some things will need to be explicitly hard coded, and some characteristics will be inherent in the design itself (such as the legs being designed so that the robot will always be standing). Will the robot need to be explicitly programmed to have a sense of time? Do certain sequences or patterns have to be programmed, or can they be acquired? Philosophers debate the necessity of a-priori (pre-programmed) knowledge, however I have not yet seen examples where the experiments have been run to prove or disprove various philosophical theories. It is my hope that this approach might help illuminate these debates.
Each leg contains two quarter scale hobby servos. The servos
are orchestrated by a Atmel 89C2051 microcontroller. The microcontroller
provides timing and position information for each servo. The
microcontroller then talks via serial interface to another computer.
A functional block diagram can be seen below:
Two microcontrollers are used. One provides twelve variable pulse width waveforms, which determine the position of each motor. The second controller talks to the sonar sensor and some impact switches to give the robot some tactile and spatial feedback. The two microcontrollers talk to a main cpu board which higher level algorithms can be implemented on. The chassis has a ISA based passive backplane that can accommodate a Transputer education kit board, or a single board pc. The Transputer was initially selected, because of it's real-time control characteristics and built in multitasking. A pc type platform is now being considered so that a wider range of software development tools can be used. The unit can talk to a host computer via a wireless modem, to provide control and status information to an independent observer. The system is powered by a pair of gel-cells and a switch-mode regulator.
I wish to investigate two things with the above hardware:
Currently the chassis is made of masonite (it was quick to work with) and pcb material. The motor control board is programmed with some test patterns. The legs thrash, but have some loose connections on the connectors, probably because things are not mating tightly. Several legs broke when it fell off the table. I am weighing the benefits of putting one microcontroller on each leg, and then building a little multidrop network across the legs. Some sensors could then also be added.
Initially the Transputer controller was used instead of the microcontroller board. Thirty MIPS on the Transputer board programmed in occam does not go as far a one MIP on an 8051 programmed in assembly (gotta love assembly and interrupts!). I may ditch the transputer board for an old compaq laptop, or move the intelligence to the pc on my desk, and have the wireless modems talk to the microcontrollers.
The sensor board is currently nonexistent. Need to find some $$$ to buy sonar parts, and fun stuff like that.
The project has been put on the "when I get spare time" list, since it is not currently being used for a class project.