Controller
At the heart of Ichibot is a digital feedback control system. Inertial sensors measure the current accelerations (both translational and rotational) of the robot while the controller computes attitude information (tilt angle). Based on this data and navigation commands currently issued, it adds power to the wheel drive motors as necessary to both keep it upright and to move it where commanded. It does this many times each second.
The current controller is based on an Atmel ATmega128 microcontroller. On the left in the picture below you can see the original controller board based on a PIC16F877. On the right is the new board based on the ATmega128.
The firmware on the controller is written in non-object-oriented C++ and compiled with gcc. It is then downloaded to the device via an Atmel STK500 to the ATmega32.
Currently in progress is a third controller design centered around an ATmega128, a more capable version of the ATmega32.
Complete schematics and source code will be posted to this site as soon as they’re ready.
More to come…
