Robotics Projects

Main Robotics Project

Lego Robots

The project will use Lego Midstorms robot kits. Each group will have to provide a $200 returnable deposit (since the robots cost that much and aren't supplied by the Department) in orer to borrow a robot in order to take part in the robotics projects. You will forfit the deposit if you do not return all the pieces on the checklist issued with the robots.

So, guard the kits carefully and make sure you don't drop the box with the kit in it on the subway.

The kits contains an assortment of parts some or all of which you can use to build your robot. There is no restriction on what you can build except that it can only be constructed with the parts you have been given.

If you want to use additional parts (for instance because you need an extra three grommets to build the robot of your dreams), come and see me, and we can discuss if you can have some extra components. (I will only agree if the parts you want are essential.)

You will need to download the current version of Not Quite C (NQC) (version 2.4 r2 or higher) for the platform you intend to use.

I will supply you with hardcopies of the User Manual and Programmer's Guide for Not Quite C, so there is no need to print these (but you may find an electronic version handy).

You might also be interested in the Bricx Command Center which is an integrated development environment for NQC (I prefer to use the old-fashioned combination of text editor and compiler).

I have some material giving robot designs and sample code; let me know if you want copies. I can also spend some time telling you how to use NQC along with the robot kits. Email me to set up an appointment if you want to do this.

Finally, Aaron Gibbs has put together a LEGO Mindstorms page which include information on how to get started, how to use NQC, and has a bunch of sample programs that you might like to look at.

The Project

This is a group project; you will complete the project in groups of 3.

Using the Lego Mindstorms kit, you will have to build a robot which follows a line (which includes going up and down gradients), detects obstacles (and backs up when it hits an obstacle) and can detect and head towards infra-red light.

A course which incorporates these elements will be provided for you to practice on with the robots.

At the end of the project these robots will compete over this kind of course; the aim is to complete the course in the minimum time.

The robot control programs should be written in the "stimulus-response" style we discussed in Lecture 3.

Task details

The following notes should be consulted in conjunction with the line following course.

They describe the procedure that will be followed during the competition.

To set up the course you position a light source (I have one which you can borrow when I am in the office for practice purposes) on the small black cross.

Do not turn the light on.

Place the robot at the end of the black line on the other side of the dividing wall from the black cross.

Let the robot start line-following and start timing.

At some point between the start and the ramp, place a heavyish object (the course textbook for example) in front of the robot.

When the robot touches the object, it should stop and back up slightly.

As soon as the robot backs up, remove the object.

Once the robot has climbed the ramp and successfully gone down the side nearest the light, turn the light on.

Stop the clock when the robot reaches the light.


What you have to hand in

Everyone has to submit a project report which is their own work (and we will be checking that group members have not just cut and pasted between reports).

Each report should be 4-5 pages long (standard letter paper, 10-12pt type, single spaced), and should describe the design of the robot and the design of the code which controls the robot.

You must not only describe the design choices made, but also justify them.

In addition to the 4-5 pages of report, you must submit two other items:

  1. A listing of the code of the control program of the robot. This should be properly commented (I expect to be able to understand exactly what the code is doing from the comments).
  2. A single sheet which describes the contribution to the project of the author of the report. This should be signed by all the group members indicating that they agree that the description is an accurate picture of the author's contribution to the project.

Make-up Robotics Project

The makeup robotics project is to make your robot dance to music for two minutes. You choose the music and then you synchronise the robot's movements to the music.

Note that there is no need to use sensors to do this.

What you have to hand in

As for the main project, you have to hand in a 4-5 page report describing the robot design and the code, a code listing, and the sheet that describes the contribution of the members of the group (if more than one person in a group is doing the make-up project).