COMS 4733 - Team Lab 1, due 2/6/07 before class
MoverGUI

 Preliminaries

Description

(100 pts) We would like you to implement the robot control logic for MoverGUI, displayed below:


The interface should function as follows:
API Suggestions: Use TurnToAction to first rotate the PER to the correct direction, and then use DriveToAction to drive the appriopriate distance. Do not use the DriveToAction's theta arguement (set it to 0); certain values seem to crash the PER's onboard software. Also, when calculating the angle to travel, it is recommended to use java.lang.Math.atan2, not java.lang.Math.atan. The difference is that atan accepts only the final angle (limiting the range to -pi/2 to pi/2), whereas atan2 accepts both the numerator and denominator. This way the actual angle is correct, relative to the signs of the two expressions. For example, calculating the angle between the origin and (1,1) would return the same angle as (-1,-1) using atan ((1/1) = (-1/-1)).

Odometry error and calibration: when your interface is completed, define a closed path and ask the robot to drive along multiple times. Notice how positioning error accumulates each time around the circuit. After a couple of times around the circuit, the robot might end up in a completely different position relative to the starting position, due to the accumulating odometry error. This might be partly corrected by carefully calibrating the robot. Read the PER Calibration documentation and check your robot's calibration.

Physical access to the robots: we are in the process of setting up the environment where you can run your programs on the PER robots. While we will try to provide as much access to the robots as possible,  we still encourage you to develop and test off-line as much of your code as you can, and move on to running the robots once your code is stable and in good condition.

Extra Credit

  1. An obstacle is detected while the robot is driving along the specified path.


  1. We know the obstacle has a cylindrical shape; by panning the range sensor the robot acquires the range readings of multiple points on the object.


  1. A circular shape is fitted to the points described above, giving the robot a description of the obstacle. A new waypoint is added to the path taking the robot around the obstacle.
Note: Full extra credit is given when the the program can successfully locate the cylindrical object. Partial extra credit will still be given if the PER is able to at least avoid and drive around the object, if it cannot be precisely located.

Submission