Thursday, December 17, 2009

Goldie The Robot


My first term project at École Polytechnique was programming a robot cappable of traversing an obstacle course for which my team won the "Philippe et Lilly Malouf" given to the best project (which I think is mostly due to the fact that I painted the rims gold haha). The robot was powered by an Atmel AVR, it had two wheels, an LCD screen, a distance sensor, 3 light sensors and a speaker.
I was the project lead and software architect during this project and on top of having created the best robot of our semester, I feel as though the software design was top notch! I designed a task oriented architecture with a generic task runner and task scheduler on the Atmel AVR. During this project I felt abstraction was the key to success and since the Atmel AVR only supported a dwarfed version of C++, this was easier said than done. The first thing I programmed was an abstraction layer for the ports of our microcontroller so we wouldn`t have to bother doing bitwise operations, queries and pwm generation in higher levels of our architecture. This let my team focus on the important parts of our robots AI and not get bogged downed by repetitively writing the same code over and over again (which is very error prone).

All this fuss about architecture was really worth it because in the end, we came out on top, and the teams who condensed their entire code in the main() function (slight exaggeration on my part haha), well most of them didn`t have a working project in the end.



0 comments:

Post a Comment