Here’s my final year project for Computer Systems Engineering. The 130 page thesis is now finished so I’ve got some time to post about it now .
It’s based around the Pololu Orangutan X2 and runs FreeRTOS. The main aim was to create a modular task-based software system with built-in navigation and obstacle avoidance functionality. This enables the creation of more advanced or higher level projects that require mobility in a shorter timeframe.
Video and Pictures:
http://www.flit.com.au/robot/
(The Orangutan X2 is mounted inside)
Obstacle detection is accomplished using 5 x Sharp IR GP2D120 sensors, with two on the side and three on a front sensor panner. While navigation uses GPS and compass data.
The control system uses fuzzy logic to integrate navigation and obstacle avoidance subsystems. This allows the robot to make avoidance decisions while still taking into account navigation data and vice-versa. I’ll post up my fuzzy logic code once I get some time to document it. The whole system is completely reactive and has no prior map of the environment. Nor does it attempt to map the environment so it is possible to get into a loop but the wall following behaviour generally negates this. All trigonometry and navigation calculations use a CORDIC system to eliminate the need for floats while still providing a high level of accuracy and low memory usage.
At the moment it’s more or less restricted to outdoor use although the GPS can get a reasonable signal indoors. I’d like to extend it with some form of indoor navigation and add some encoders to the wheels. Feel free to ask me any questions and I’ll endeavour to put up some more material soon. Thanks to Pololu for all their assistance, particularly when I managed to break off the USB connector on the Orangutan X2 after getting a little too heavy handed with it and pulling off the pads in the process.