Table 1: Task threads used in the robot architecture.

Tasks Description ProvidesRequires

DATAPOSUPDATE Sends movement commands to the robot and receives updated position information. PositionData

DATALASERUPDATE Gets the laser readings from the URG laser. LaserData

WAYPOINTPLANNER A high-level behavior that moves the robot through a series of predefined waypoints using a path created by the DIJKSTRAPLANNER.PositionData,

LASERAVOIDOBSTACLES Responds to obstacles sensed by the laser, via DATALASERUPDATE, by slowing down the robot and turning away from the obstacle, via DATAPOSUPDATE.LaserData

OCCUPANCYGRIDMAP [27] Uses the position and laser data reported by DATAPOSUPDATE and DATALASERUPDATE and maintains an occupancy grid map. The map tracks unknown, open, and occupied space.MapDataLaserData

DIJKSTRAPLANNER [28] Takes goal position requests and maintains a path from the current position to the closest goal. Multiple goals may be added and the requester must remove the goal when it is no longer valid (has been reached).PathDataMapData