74.795-L02 Mobile Robotics Local Vision Assignment 2

Due: 06 November 2003


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


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

The goal of this assignment is to implement a exploration robot, that is a robot that can explore a simple environment and look for treasures without running into any obstacles. At the end, the robot needs to generate a map that shows: (a) the location of the treasure in relation to the start position of the robot, (b) the position of all obstacles that the robot encountered in relation to the start position, and (c) the area that has not been explored by the robot.

The playing field consists of a 2.74m by 1.52m green carpet for the Eyebot and Stayton robots. A similar environment for the larger Pioneer will be setup in the floor area in front of the elevators.

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


This assignment can be broken down into two parts: (a) image processing and (b) exploration, and (c) mapping.

Image processing

Your robot needs to be able to detect at least three features of the environment: (a) the treasure (a yellow tennis ball), (b) the obstacles (red paper cylinders), and (c) the edge of the green carpet.

Use the camera image to detect suitable colors and detect the surrounding blobs. To detect the yellow tennis ball, it is usually beneficial to ignore highlights in the ball.


If the robot can not see a treasure, then it will have to search the environment looking for the treasure. Therefore, you need to create an algorithm that randomly searches through an environment.

The simplest algorithm would be to simply drive and turn at random. The problem with this approach is that the robot revisits places many times and it takes very long to explore areas that are more than about 1m away from the robot.

A better solution is the random straight lines algorithm. The robot drives in a straight line until the end of the playing field or on obstacle is encountered. In this case, the robot backs off a short distance and makes a random turn. After the turn it continues in a straight line again.

Of course, you could do better by taking the current map into consideration and try and make the robot turn so that it moves towards unexplored areas. The problem with this approach is that an incorrect map is often worse than no map at all.


There are several different methods for representing a map in robotics. The most popular one are occupancy grids. To create an occupancy grid of the environment, you discretize the space into 10cm by 10cm squares and mark them as empty, occupied by an obstacle, or unknown.

In this assignment, you should use a history of motor commands to create an estimate of the position of the robot and the position of the obstacles in relation to the robot.

The emphasis of the 3rd assignment will be on creating a more accurate map using localization and mapping.

The Competition

The winner of this assignment will be determined in a treasure hunt competition which will take place on Friday, 7th of November 2003 at 17:00 in the basement of Machray Hall and the Linux lab.

The competition consists of five rounds. Each round the obstacles and treasures will be moved at random

A penalty of 30 secs. is assigned to a robot for every time the robot leaves the playing field, touches an obstacle or requires any other help form the human operator.

A robot receives one point everytime it finds a treasure and generates a map to find the treasure. In case, more than robot have the same number of points, the total sum of all the times for all runs in which the robot found the treasure are calculated. This determines the raw score.

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