Project 0 -- Sensing and Movement

Due Monday, February 11

(Part Due Friday, February 1)

(Part Due Monday, February 4)

(Part Due Wednesday, February 13)

NOTE: The written part of this assignment is due at the beginning of the class period. This means that if you are even a minute late, you lose 20%. If you are worried about potentially being late, turn in your homework ahead of time. Do this by submitting them to me during office hours or by sliding it under my office door. Do not send assignments to me through email or leave them in my departmental mail box.

NOTE: The tasks allocation proposal is due on Friday, Feb. 1, the milestones and timeline is due on Monday, Feb. 4, and the evaluations of your team members are due on Wednesday, Feb. 13.

The basis of all of intelligent robotics is tying sensing to acting. To do that we need sensors, actuators, and some connections between them; these components comprise the robots. In this class, we'll build robots in teams. This assignment will introduce us to all of these aspects of robotics, which we'll make use of throughout the semester.

Goals of this assignment:

The Assignment

You will design, build, program, and demonstrate an autonomous robot that carries out the following simple task: To move between two objects ten times. You will also turn in written material regarding team structure and organization, timelines and milestones, design and implementation of the robot and its software, and evaluations of team members.

Details of the task (most were described in class) follow:

What to turn in.
Task allocation proposal.

You will turn in a proposal for what tasks need to be carried out and who will carry out each one. This should include reasons for carrying each task as well as for assigning them to particular people, with an eye towards balancing the amount of work each team member has to complete. Also keep in mind that this project is to help you figure out how to make team projects work for your team. After this there will be four more projects where team members will switch tasks and a final project where you can assign tasks as you see fit to give the best performance of your team on the assignment.

This should be from 1.5 to 2 pages in length (roughly 80 characters per line, 50 lines per page). This will be turned in Friday, Feb. 1.

Timeline with milestones.

You will turn in a list describing milestones to be accomplished and an associated timeline showing when each milestone is to be completed. You will also include a fallback plan describing what will be done in the event that a milestone is not reached on time.

This should be from 1.5 to 2 pages in length (roughly 80 characters per line, 50 lines per page). This will be turned in Monday, Feb. 4.

Robot design

You will turn in a document describing the physical robot design, including its body, suspension, gearing, motors, sensors, and the layout of these components. This does not need to be detailed enough for an exact replica to be made (that is, you don't need to get to the level of the individual Lego pieces). Instead, it should give a high-level description of the parts used and how they are put together. This is the level of description I am looking for (taken with modifications from a description in my Ph.D. thesis of a real robot, constructed for a different task):

This robot consists of two parts, a truck cab unit and a trailer unit. The cab is an Ackerman-steering 4-wheeled vehicle with rear-wheel differential drive. The front of the cab has a binary bumper switch that lets the robot know when it has contacted something from the front. The trailer is attached to the cab by a hitch constructed from a single-turn potentiometer. A servo with a set of photoresistors (CdS cells) is mounted on the back of the trailer so that the robot can keep track of the goal (a light bulb). The trailer also has a binary bumper switch on its rear to tell the robot when it is in contact with the goal.

The potentiometer on the hitch measures the angle that the trailer makes with the cab. Valid angles that the trailer can make are within a 180 degree arc due to the physical constraints of the system. The light tracking servo on the trailer is also limited to a 180 degree arc.

This should be from 1.5 to 2 pages in length (roughly 80 characters per line, 50 lines per page). This will be turned in Monday, Feb. 11.

Robot code

You will turn in the actual code you have written to control this robot. This will be written in Interactive C. You will turn in both a hard copy and an electronic copy of the code. You will be given instructions on how to send electronic copies.

Your source code should be well structured and well commented. It should conform to good coding standards (e.g., no memory leaks).

This will be turned in Monday, Feb. 11.

Robot code documentation

You will turn in a document explaining the data structures and algorithms used in your code.

This should be from 1.5 to 2 pages in length (roughly 80 characters per line, 50 lines per page). This will be turned in Monday, Feb. 11.


You will be given evaluation forms to turn in for each of your team members. These will be turned in Wednesday, Feb. 13.

Notes on this assignment

You will demonstrate your robot in class on Monday, February 11. You may choose to have either a single demonstration period 4 minutes long or two separate demonstration periods (two tries to get it right) of 2 minutes each. These times includes set up and clean up times. Your team will be called in a random order. You must be ready to demonstrate your robot when called.

You will also have one or more group members briefly tell the class about the key features of your robot before you demonstrate it (for the first time, if you choose to have two demonstrations). This presentation will last only 1 minute. (Latter projects will have significantly longer presentations.)

You will be graded on the following issues:

The page limitations given above do not include figures, which are encouraged and may take up any amount of space.


You may write your program from scratch or may start from programs for which the source code is freely available (such as on the web or from friends or student organizations). If you do not start from scratch, you must give a complete and accurate accounting of where all of your code came from and indicate which parts are original or changed, and which you got from which other source. Failure to give credit where credit is due is academic fraud and will be dealt with accordingly.