SAMSA is based on the Wiring board, with an ATmega128 microcontroller, and SAMSA II on the Arduino Mega, with an ATmega1280. Both are pretty similar, tough the ATmega1280 has 8 KB SRAM, twice the ATmega128. For SAMSA II the Arduino IDE was not used. The software was written directly in C++, using some libraries from both Arduino and Wiring.
SAMSA II has also two additional microcontrollers. One is an old Arduino Mini (ATmega168) located in the head, tasked with handling the sensors. The other is an ATmega8 and is integrated in the display. The firmware in the display was replaced with another one, freeing the main microcontroller from handling the display pixel by pixel, storing the frame buffer, etc.
The head’s microcontroller is responsible for sampling, filtering and processing sensor’s data. The data from the Sharp distance sensor and the lateral IR sensors are combined in a single “super smart distance sensor”. This microcontroller also decodes the data coming from the 38 KHz IR receiver, used for the Remote Control.
These two additional microcontrollers further reduce the load on the main microcontroller, allowing for more sophisticated behaviours.
A lot of work is still to be done. It can be sorted in three categories. First, keep improving the current walking. Refine the inverse kinematics, tweak the gaits, etc. The second direction is to add extra functionality: speech recognition, use the proximity sensor to provide some fun behaviours, add new sensors, things like that. The third is to create a new walking system, based on sensors in the legs and accelerometers.
Pablo Gindel & Jorge Visca, March 22, 2011
Some early voice recognition experiments (based on Wiring) were already done. Amazing work guys!