Robot Controller

Team Project Page

Senior Design | Spring/Summer 2001

Team Number 3
Team Members:

Current Artifacts Date Last Modified
Concepts of Operations V1.0 Spring 2001
Software Requirements Specification V2.0 Version 2.0
Project Managment Plan V1.0 Spring 2001
Project Managment Report V1.0 Spring 2001
High Level Design V1.1 Spring 2001
Robot Controller GUI Detailed Design V1.0 July 17, 2001
Robot Interface API July 17, 2001
Robot Surrogate Detailed Design July 18, 2001
Test Plan V2.0 Spring 2001
Test Results V1.0 July 18, 2001
User's Manual July 18, 2001
Source Code July 18, 2001
Build Instructions July 17, 2001

Technical Manual

Here is some information for my group members:

UML Diagrams of the API interface:

Here are the latest source code files (As of July 15, 2001)

RobotAPI.h3.7 kBClass and function declerations for the RobotAPI.
RobotAPI.cpp18.8 kBWhere all the RobotAPI.h files are implemented at (except for TesterClass, you need to implement that).
Tester.cpp5.7 kBProgram contains a pretty good robot controller, and a robot surrogate that isn't that great (use DumbSurrogate.cpp instead).
USRobot.cpp4.7 kBThis program is used to serially interface with the UCF / USRobot robot. It's hardcoded to use serial port #0. Very buggy, needs work.
USRobotTester.cpp1.3 kBThis program is used to test the serial connection of the computer running the USRobot.cpp program. It outputs to the screen when valid and invalid data arrive.
DumbSurrogate.cpp2.8 kBThis is a 'dumb' surrogate, because he doesn't actually simulate movement, he just stores the all the information he recieves and prints it to the screen. Good for debugging purposes.

Here is the network protocol that I am coming up with: Protocol.txt

To build: gcc xyz.cpp RobotAPI.cpp -lpthread -o xyz. Don't build the USRobotTester.cpp, just compile it normally (it doesn't use RobotAPI library).

The test controller software fully supports CHANGE_ORIENTATION, CHANGE_SPEED, and CHECK_STATUS commands. It doesn't support multiple clients yet though. I'm working on that right now.

ConfigSys class: I created the class to read the config.txt file and to parse the info from it. Right now config.txt includes the IP address of the server and the Horizontal distance of the robot space. Just don't change the way stuff is spaced in the config.txt file, or it might not work.

To integrate this code with your stuff, you need to do a couple of things. In the RobotAPI.h and RobotAPI.cpp files, you need to change the name of TesterClass to the name of the class you have receiving the commands. Do a searh in the file to find all of the them. You will also need to put the class decleration info in the RobotAPI.h file too, but you can put the actual code anywhere.

Jeff Miller doing some debugging of his controller GUI Ogre fucking around again There she goes I'm doing a little supervising Updating the controller software View of the robots rear Still hacking... Our bud Jacob doing some double checking Laptop removed for maintenance The Senior Design robot crew Piece of shit Sony Vaio Wireless waypoint, with way nice Intel switch in the background Aironet wireless NIC which worked MUCH better than Sonys Charging mode The whole picture

This page last modified by Michael Wales ( on December 29, 2001