74.795-L01 Mobile Robotics Local Vision Assignment 1

Due: 09 October 2003


The following list contains additional information and comments about the project.


This page describes the first assignment for the course 74.795-L01 Mobile Robotics Using Local Vision.

The goal of this assignment is to implement a path tracking robot. The robot is supposed to follow as quickly as possible along a path marked on the floor.

A computer vision system mounted on the robot is used to detect the path and other related information.

The Monza Racetrack

We setup a scale model of the Monza Formula 1 Grand Prix Circuit in the basement of Machray Hall.

The center line of the track is indicated with a strip of masking tape.

A picture of the layout of the track is shown below.

Image of Monza Racetrack


This assignment can be broken down into two parts: (a) image processing and (b) path tracking control.

Image processing

Firstly, you have to implement an efficient method for capturing images from the camera and extracting information about the track in front of the robot.

The current offset and orientation of the track is extremely important. You may also consider extracting the curvature and other features of the path.

To extract the path, you can use the color or intensity of the path itself. Make sure that algorithm does not get confused by highlights from the lights etc.

You can also look for the edges of the path. There are some simple edge detection algorithms (Roberts, Sobel) that can help you with this.

For more robustness, you may want to extract the shape of the path as well (e.g., use a flood fill to get the connected region of the path, extract lines etc.). The idea is that highlights are usually small and round, whereas the path is long and narrow.


Once you have determined the offset and orientation of the path in front of the robot from the image, then you will need to generate steering commands for your robot so that it follows the path correctly.

One approach that has worked well in the past for this problem is to use Fuzzy Logic to derive control commands from a small set of simple rules. An example rule might be, IF I am too far to the right of the path AND the path is going stright THEN turn sharply left.

Another approach is to use a CMAC algorithm. A CMAC has the advantage that the controller can learn the control function quickly and is thus able to adapt to changes in the robot and path more easily.

The Race

The winner of this assignment will be determined on a race which will take place on the 10th October 2003 at 17:00 in the basement of Machray Hall.

The race will consist of two heats. In the first heat, the robot must drive five laps around the track in a counter-clockwise direction. In the second heat, the robot drives five laps clockwise around the circuit.

A penalty of 30 secs. is assigned to a robot for every time the robot leaves the track. A robot leaves the track if no part of the robot's chassis covers the track.

The time of a robot is determined by the sum of the times for the two heats.

Each robot is assigned a scale factor. The scale factor is used to compensate for the fact that it is more difficult for a smaller robot to drive at the same speed as a larger robot. The scale factor is determined by the maximum dimension of the robot.

The scale factor is calculated as 10cm/(Max Dimension of Robot).

This means, a robot with a size of 10cm is assigned a scale factor of 1.0; a robot with a maximum dimension of 5cm is assigned a scale factor of 2.0 and a robot with a maximum dimension of 40cm is assigned a scale factor of 0.25.

The scale time of a robot is determined by (Time to complete five laps + penalty time) * scale factor.

The robot with the best (lowest) scale time is declared the winner.

Page was last updated on %s at %s.

", $mod_date, $mod_time); ?>
Hansjoerg Baltes (jacky)
Last modified: Thu Apr 25 15:55:12 NZST 2002