CSSE 120 — Introduction to Software Development, Robotics

Capstone Robotics Team Project (in Python) — Winter 2010-2011

Music Delivery Service

Project Requirements

Project Requirements Process and Due Dates Deliverables Sharing your work in your SVN team repository Grading Suggestions and Resources

Project Requirements

Problem statement: You must enable your robot to deliver musical messages from Grand Central Dispatch (GCD, a robot that we supply) to other robots. Robot control must be via a Graphical User Interface (GUI) on your computer that permits both remote control (via an operator) and autonomous delivery (no human involved after telling the robot to start).

Your GUI will have functions for controlling the robot movement and one button more important than others... the "Deliver Music" button.  The gold standard for Music Delivery is to be able to receive any command from GCD, find the requested robot(s), and play the song/dance combo for that robot.

GCD will be a robot programmed by the instructors which always provides two pieces of information:

Both pieces of information will be transferred via IR communication. Your robot will start directly in front of GCD and GCD will deliver a series of numeric IR messages to your robot. These messages will tell your robot the song code to deliver and the robot(s) to delivery the message to. Your robot will be able to tell that it has arrived at its destination by listening for a special signal that the robots-to-deliver-to will be sending via IR (details below).

The GCD's program and the recipient robots' program will be given to you in the project that you check out from your team repository. You should not change those programs (copy them with a differnt name if you feel a need to).

There will be a range of difficulties for the music and a WIDE range of difficulties for finding the robot to deliver the song to. Your group must choose the range of difficulty as well as additional features (some self-selected) to implement. See the Grading section for the points earned by implementing the various features.

At a minimum your project must satisfy these core requirements:

  1. You must complete the implementation of a GUI to control your robot.
  2. You must implement code to receive IR information from GCD then respond to those IR messages.
  3. All team members must contribute to and understand their project.

Details

GUI

Your graphical user interface (GUI) must at a minimum enable:
  1. Connecting (to the specified port number) and disconnecting from your robot.
  2. Driving your robot directly at specified speeds (i.e., remote control of the robot).
  3. Line following around a track stopping on a bumper hit.
  4. Playing a simple song of your choice when a song button is pressed.
  5. Delivering music:
    1. Listening to GCD and displaying the message sent by GCD.
    2. Finding the right robot based on the message.
    3. Playing the music for that robot when it is found (while sometimes spinning or doing another dance).
  6. Something that displays all the team members' names.

Example:

Simple GUI image

This is just a sample of what a basic GUI might look like. You will design your own GUI. Ideally, it is both user-friendly and sharp-looking (but don't spend tens of hours on its looks).

Direct movement control Rules

Music Rules

Line following Rules

IR Communication from GCD

The IR sensor on the front of the robot can receive a single byte of information (value 0 to 255) from another source, whether it be another robot, the docking station, or even a virtual wall.  In order to send an IR signal a robot needs an additional piece of hardware, in our case the omnidirectional IR transmitter with 8 IR LEDs (ie the IR 'hat'), details below.

The GCD robot will be sending out IR messages from its omnidirectional IR transmitter. Between the IR transmitter on GCD and the IR sensor on your robot, we have the ability for two robots to communicate with each other.  The instructor's GCD robot will be transmitting an IR signal that your robot must read then interpret.

Music Delivery Information

The format for GCD messages will be as follows. 

Music codes

There is a range of difficulty with music codes:

Delivery codes

The playing field for this project will consist of a large loop (similar to the line following robot loop, but larger). Your robot will start on the line positioned directly in front of GCD facing either left or right, instructor will choose left vs. right.

Other robots will be placed at various places, each broadcasting via IR its own number. For example, Robot 73 will continuously emit 73. No two robots have the same number.

There will be multiple stationary robots sitting just outside the loop. You might be asked to deliver a song message to one of these robots.  There will also be other robots in the room that are not located on the loop.  Some of those robots will be moving and some will be stationary.  Additionally as an advanced skill you can place a robot in another room to deliver a song there. 

Your robot will know where to look for the destination robot based on the number of the robot.  Here is a list of the numbers you might receive and their locations:

Additionally as an advanced skill you may be asked to delivery a music message to multiple robots.

After you have finished playing the music to the recipient robot(s) the task is complete; you are not required to find your way back to GCD (although you can include that as an enhanced feature if you wish).

Hardware

  1. Omnidirectional IR Transmitter. This is the "hat" with 8 IR LEDs that sits on the BAM (wireless receiver) module. Only the instructor robots will need to place it on top of the BAM.  However for testing you will probably want to use one from time to time.  Plug the red wire into +5V (there are two holes from which to choose) and the black wire into LD1, both on the back of the BAM.