Rockhopper Robot: Designing and Programming an Autonomous Robot with Linux and Open Source

In recent years Linux has become a popular choice for embedded systems. Rockhopper, this year's first place winner in the expert division of the Trinity College Fire Fighting Robot competition (http://www.trincoll.edu/events/robot/), was designed and implemented using Linux and Open Source. Even the robot itself ran Linux! The author, who is a QA engineer by day, will discuss his experience of using the project as a way to improve his kernel engineering skills and also show how Linux greatly improves the development process of an embedded project.

The "design and building" segment will discuss tools, all running under Linux, used in the design, construction and programming of the robot. This included tools for physical and circuit board design as well as cross compilers and debuggers for ARM and AVR. This also shows how a complete busybox based shell environment was created to run directly on the robot itself.

The "kernel modifications" portion will examine lessons learned while making the 2.6.20 linux kernel work on the ARM SBC (single board computer), which was the basis of the project. Extensive testing and some bug fixes were needed for reliable communication between the Linux controller and the auxiliary AVR boards. Additional device drivers for the reading sensors and controlling motors were written as well.

The "high level AI" part will explain how the robot senses its world and navigates, plus and a brief discussion of behavior-based programming, which will show how simple cooperating behaviors can cause what appears to be intelligence to emerge. This part of the talk will also cover the real-time threading used to implement the cooperating behaviors.

If space is available (ideally 2m x2m of open floor space) the talk will conclude with a demonstration of the robot showing how it can navigate a maze and extinguish a candle. The demonstration will also show how running Linux on an embedded device simplifies code development and debugging over the more traditional forms of embedded programming.

Project: Rockhopper robotics

Doug Chapman

Doug Chapman is a Linux QA engineer for Hewlett-Packard; his primary focus is testing the Linux kernel on HP's Integrity ia64 servers. He has been involved in hobby-level robotics and embedded programming for 10 years, which he uses primarily as a way to expand his programming skills. He won the expert division of the 2007 Trinity College Home Fire Fighting Robot competition and enjoys showing off his creation to others and discussing how it works.

Doug Chapman

Doug Chapman is a Linux QA engineer for Hewlett-Packard; his primary focus is testing the Linux kernel on HP's Integrity ia64 servers. He has been involved in hobby-level robotics and embedded programming for 10 years, which he uses primarily as a way to expand his programming skills. He won the expert division of the 2007 Trinity College Home Fire Fighting Robot competition and enjoys showing off his creation to others and discussing how it works.