The 2007 ECE Design Project

This year's project is inspired by sports car rallies. We'll start with the end in mind.

Final Trials

The robots will individually run a course in an arena. The course will not be known beforehand although it will be the same for each robot.

  1. At the beginning of the competition all robots will be sequestered in an area set aside for the purpose. They may be on charge but no communications (or alterations) of any kind will be permitted once they have been sequestered.
  2. The order of competition will be randomly chosen.
  3. Each robot trial will begin with a two minute setup period, during which a designated handler from the team will take the robot from the sequestration area, place it at the designated start point and connect it to its computer tether. The team's designated operator will boot up the team's computer software and establish communications with the robot.
  4. The setup period ends when both the operator stands away from the computer and announces, "Ready", and the handler stands away from the robot and announces, "Ready." Thereafter, except as may be provided for below, neither shall touch the robot or the remote computer again.
  5. At the beginning of the trial, a go at wp1 to wp2 command will be issued to the team's software by the judging software, via a socket.
  6. Once the robot receives its go, it will proceed from wayPoint wp1 to wayPoint wp2 at its best possible speed.
  7. The waypoint vicinity is defined as a square 60cm on each side with the waypoint centered on one side (the wall side) and is marked by a taped boundary on the floor. As soon as any part of the robot crosses the waypoint boundary the wayPoint will be deemed to have been achieved. The robot may query whether or not it has achieved the vicinity by issuing a queryAt wp1 string to which it will receive a yes or no response. Note that because corners can have two wayPoints associated with them, wayPoint vicinities may be shared by multiple wayPoints.
  8. Each wayPoint will be marked with a clearly identifiable paper target mounted on the wall at a standard height. The target will give both the wayPoint designation and, optionally, the next wayPoint. Once the wayPoint has been achieved (the robot has received a yes string in response to its queryAt wp1 string), the robot will identify the wayPoint and the next wayPoint, and send a to wp2 command string to the judging software, which will once again respond with a yes or no string. In the event the response is no (the next wayPoint is incorrect), the robot has two more tries to get it right. If it receives three no strings it will be deemed to be have missed its target and its run will terminate.
  9. Upon receiving a yes string, the robot will once again,proceed to that wayPoint at its best possible speed. The handler may keep the tether from fouling but may not use it to direct or 'jog' the robot in any fashion.
  10. The last wayPoint will have a special end marker in place of the next wayPoint marker. Once the robot has identified the next wayPoint is in fact the finish it will send an at end string to the judging software.

Two complete trials will be run. Robots will receive the score of their best trial.

Judging Software

The judging software will run a large timer on the computer screen while the trial is being run, as well as posting the wayPoint list (including times achieved). Robots will be judged on how much of the course they are able to complete (as evidenced by their wayPoint list) as well as how quickly they were able to traverse the course.

The judging software protocol is available as a pdf.

Here is the rally judging software jar file. You will need to have a JAXP compliant XML parser implementation in your classpath to use it (see the faq for more info). Also you will need to load a map before you can do much here is a simple course map.

Here is a simple test client, which you may find useful to help understand the protocol.

The Arena

The rally arena will be in the northeast corner of the Senior Electrical Computing Lab and will be laid out approximately as below. The width is about 12 feet.

WayPoints: The wayPoint locations are marked by letters on the sketch below and will be marked on the actual arena walls using standard letter size sheets form a laser printer marked with the wayPoint (and optionally, the next wayPoint) using a black and white barcode

Waypoint images will be 13.8 x 13.8 cm, and will be mounted with the centre 35cm above the floor.

Here is the arena with all the dimensions noted. Dimensions are in cm. and waypoint locations refer to the centre of the target.

Waypoint Marking

The code for wayPoint marking has been defined in a Word document. Basically, it's a checkerboard design with a lot of standard information to allow you to calibrate your image.

Here are some code examples: The final images will be 13.8 x 13.8 cm, and will be mounted with the centre 35cm above the floor.









Demo 1

In the first trial the robot will be placed on a line on the floor which will be from 5 to 12 feet away from the wall. Upon receipt of a command from the PC, the robot will simply have to advance straight until it encounters a wall, then execute a 90 degree left turn and advance straight again until it encounters another wall. It should output the co-ordinates (x,y) where x is the distance of the first wall and y the distance of the second wall, both as measured from the start point, in centimetres.

General procedures will be similar to those defined for the final trials (robots sequestered at the beginning, best of two trials, etc.)


Robots will receive 5 points for measuring the distance to the first wall and five for the distance to the second. Touching a wall will cost them two points as will measuring the distance incorrectly (error of geater than .25 meters).

Demo 2

For the second demo your robot will be placed in the vicinity of a specific waypoint and you will be told to have it drive to another waypoint (we will choose both waypoints, and you won't know in advance what they are, but you can choose your starting orientation). This information must be input to the controlling PC by the operator. After the waypoint information is input, and the "go" signal is given, the operator is not permitted to take any further action. Once your robot has reached the destination it must acquire the image and report the two letter code (i.e., current waypoint and next waypoint) indicated by the target.


Five points for achieving the waypoint, five points for correctly reading the target.

back to 6806 Homepage

Last modified $Date: 2007-10-03 16:29:02 -0230 (Wed, 03 Oct 2007) $ ($Revision: 184 $) by $Author: dpeters $.