Monday, March 22, 2010

Implementing a Linux RTAI Based Real-Time Motion Controller for Differential Mobile Robots

In my M.Sc. Thesis I implemented a real-time motion controller for differential mobile robots, generic enough to be implemented in any differential mobile robotic platform.

It was a very enthusiastic project. I had the chance to learn about several topics and implement an intelligent RTAI based control system running on a very small embedded linux distribution. The system is installed on a 128MB Compact Flash and flushed into the PC104 RAM at boot time. Then, a Spartan3 FPGA implemented the PWM generator signals that drive the motors based on the outputs given by the controller running on the PC104.

This system sends packets through TCP/IP to a visualizer module running on another PC for validation of the controller accuracy, given the target trajectory of the robot.

Among the publications i made regarding this subject, i want to share the most extensive one which will hopefully be of use to you. It is a book chapter recently published on the book CONTEMPORARY ROBOTICS - Challenges and Solutions entitled Generic Real-Time Motion Controller for Differential Mobile Robots. Here's the link to the full article:

Generic Real-Time Motion Controller for Differential Mobile Robots Chapter

In simple terms, the control system allows the robot to autonomously reach one or multiple target 2D (x,y) position point(s) based velocity vectors. The user simply has to set the desired positions for the robot to reach, or send velocity value/angle values for it to run with the desired velocity in a desired direction. It also implements an obstacle overcome algorithm to allow the robot to climb small deffects (ramps) on the flor that can block its way.

Best,
JM

No comments: