R.O.B. (Remotely Operated Bot)
The R.O.B. (Remotely-operated Bot) application allows a user to remotely control a robot by issuing it commands like drive forward and backward, turn left and right, and stop. The R.O.B. application is comprised of two parts: a graphical user interface
running on the central computer and a robot-navigation program running on the robot's laptop.
The GUI, written in Visual Basic, emulates the robot's video input and displays the left, center and right distances relative to the robot (screenshots below). There are buttons for the user to click on to tell the robot to either move forward, backward, left or right,
or to stop. The commands are sent to the robot via UDP.
The robot-navigation program, written in GRL and Scheme, controls the robot's movements by reading a command from the central computer every tenth of a second and then executing the command. While the left, right, backward, and stop commands are
similar to joystick controls, the forward command will run the freespace follower portion of the program, thereby lending some intelligence to the robot. The robot sends the left, center and right distances, and the rotational and translation velocities to the central
computer via UDP every half second.
There is an additional function in the application that will allow the user to command the robot to trace its previous path. The application does this by storing the previous commands and their duration of execution. While this macro worked the night before the
demo, it didn't during the demo, so we will have to improve this part of the application.
Ideally, the program will be extended so that it will display a map of the CS building's third floor and so when a user clicks on a spot on the map, the robot will be able to know which spot was clicked on and navigate itself there (assuming that odometry
accuracy will improve someday). This would involve writing a much more sophisticated robot-navigation program -- modifying the GUI wouldn't involve much work.
Before robot is connected to central computer:
The program in progress: