RAFS - Contingency
Coding/Algorithm Design Document
Wander Algorithm
The wander module is fairly simple to follow. It calculates a random X, Y position
in the room.
Object Recognition Algorithm
The Chair movement module was written in order to avoid an obstacle blocking
the robots path using sonar readings while pushing a chair. Once around the
obstacle the robot is to make its way back to the original path and orientation.
For this module, we are using three sonar boxes one in front, left, and right
to detected the obstacle. (Also, it should be noted that the robot is in constant
motion until the module is exited.)
Chair Gripping Algorithm
The rafsGripChair module starts once the Object Recognition module has finished
execution. Two conditions can be made at this point: the chair leg is directly
in front, or it is not. These conditions are described in this part.
Object Avoidance
Algorithm
The rafsObjAvoid module starts once the chair has been gripped. This module
implements obstacle avoidance using the robot’s laser. The laser fields
are set up using the getClosestBox function which defines the corners of a box
(field) to check for objects. A field is set up on each side of the robot, and
if any object enters that field (or conversely if the robot travels in a direction
where it is about to collide with an object), the robot adjusts its heading
to avoid the object and once clear of obstacles resets its heading to the nearest
path to place the chair. The module finishes when the chair is placed in its
proper (predefined) location (empty desk).