University of Calgary
Rob Kremer
Group Assignment: Basic Robotic Agents in CASA

CPSC 601.68/599.68: Agent Communication
Fall 2008
Department of Computer Science
Computer
Science

Note: This is an group assignment. The work is shared among the group members and each member is responsible for all of the work. For example, if there is plagirism is found in the assignment, every member is responsible. The group is expected to do it's own work, and must properly cite any and all work taken from external sources.
Each member is responsible to carry thier own portion of the workload. To this end, there is a peer assessment process where each member must assess each other member's contribution. Individual marks may differ based on the peer assessment, the instructor's assessment, and other factors.
Another note: You will need to download the CASA project and the iRobotCreate project to this assignment. For details, see the getting CASA and the iRobot code page.

iRobot Create

Implement a CASA agent that controls an iRobot Create robot to measure a rectangular room with no obsticals. You robot should inherit from iRobotCreate, and should make use of the iRobot commands (see iRobot Create Open Interface) to find a wall, then travel along the perimeter of the room, keeping track of the travel distance so that it can discover the length and width of the room. You should implement a command-line interface using CASA's RTCommandInterpreter class by modifying the TransientAgent.commandInterpreter object in an override of the TransientAgent.initRTCommandInterface() method. You may implement other interfaces if you wish.

The basic requirements are:

Startup

At startup, the robot should just acknowledge it's ready by flashing lights, playing a short song, or something appropriate of your choice.

Commands

The agent should accept the following run-time commands:

You may implement other commands as appropriate.

Measurement

The length and width of the room is to be reported in meters. If a report is requested before the completion of the task, any unmeasured variable are to be reported as "unknown", but all measured variables should be reported.

Agent Termination

When the agent is terminated, the robot should acknowledge (in a manner similar to startup) and power down.


Bonus Marks

If you have accomplish all the above, and want to keep going, you can search for objects in the room and map them by producing a map in the fashion of the iRobotCreate.simulation.Environment class. You can display it by actually using the Environment class.


UofC
CPSC 601.68/599.68: Agent Communication
Department of Computer Science

Last updated 2008-09-25 7:17
Rob Kremer