|
|
|
Harvey Frye |
|
Jeff Houpt |
|
Tim Switzer |
|
John Valentino |
|
Nick Wilkinson |
|
|
|
|
Chimera is a system that uses three web cameras
to navigate the Pioneer Robot to a specific point. |
|
|
|
|
Each camera must be connected to a computer
running a program that can determine the position of the robot. |
|
There must be a central server that receives the
robot positions from each camera. |
|
Using the robot positions from each camera the
server must be able to determine the robot’s position and bearing. |
|
After determining the robot’s position and
bearing the server must be able to tell the robot how to reach the goal
state. |
|
The robot must wander until it can be seen by a
camera, and avoid obstacles at all times. |
|
|
|
|
3 Web Labtec cameras |
|
3 Computers |
|
Windows XP, 2.39 GHz |
|
Windows 2000, 600 MHz, 128 MB RAM |
|
Windows 2000, 600 MHz, 128 MB RAM |
|
|
|
|
Image Capturing Software |
|
TimerShot for the Windows XP Machine |
|
Active WebCam for the Windows 2000 Machines |
|
Image Processing Software |
|
3 Chimera Clients |
|
|
|
|
Runs on Windows XP |
|
Receives the video stream from the web camera |
|
Saves a snapshot of the video stream every
second as webcam.jpg |
|
The snapshot is saved in the same directory as
the Chimera Client |
|
|
|
|
Runs on Windows 2000 |
|
Receives the video stream from the web camera |
|
Saves a snapshot of the video stream every
second as webcam.jpg |
|
The snapshot is saved in the same directory as
the Chimera Client |
|
|
|
|
Execute Chimera.jar |
|
Enter the address of the Chimera Server |
|
Enter the camera number |
|
Connect to the Chimera Server |
|
|
|
|
|
Execute ChimeraServer.exe |
|
Enter the address of the pioneer robot |
|
Start the server |
|
|
|
|
|
|
|
|
|
Run the Chimera Server program |
|
Press the Start Server button |
|
|
|
|
Start the Chimera Client program |
|
Start the TimerShot program |
|
Enter the IP address of the Chimera Server |
|
Enter the camera number as 0 |
|
|
|
|
Start the Chimera Client programs |
|
Start the Active WebCam Programs |
|
Enter the IP address of the Chimera Server |
|
Enter the camera numbers as 1 and 2 |
|
|
|
|
As each camera connects it will be displayed on
the interface |
|
Wait for all three cameras to connect to the
Chimera Server |
|
|
|
|
Place the robot in the position the you want to
be its goal state |
|
Press the “Set Goal State” button |
|
Wait for the goal state to be received from all
3 cameras |
|
|
|
|
Press the “Done Setting Goal State” button |
|
Remove the robot from the view of all cameras |
|
|
|
|
Have the robot start to roam |
|
Press the “Start Game” button |
|
Wait for the robot to find its way into camera
view |
|
|
|
|
The server connects to the robot |
|
The server creates the Navigator class to
navigate the robot |
|
|
|
|
Windows encounters errors when the Chimera
Client tries to read webcam.jpg while the web camera program tries to write
it. |
|
The Windows 2000 machines do not have enough
processing power to run the Chimera Clients and the Web camera programs |
|
The Windows XP machine does not have enough
processing power to run the Chimera Client, the Chimera Server, and the web
camera program |
|
|
|
|
Primarily because of the two slowest machines,
the process of testing the system up to the point of communicating with the
robot with the Navigator class can take up to 15 minutes |
|
If Pioneer robot’s laptop has to be restarted,
the process of testing the system up to the point of communicating with the
robot with the Navigator class can take up to 25 minutes |
|
|
|
|
Red detection is effected too much by individual
camera calibration to provide consistently accurate robot positions |
|
Red detection is also adversely effected by
ambient lighting and shadows |
|
|
|
|
The Navigation class could not be sufficiently
tested because individual parts of the system kept on dieing due to the
previously mentioned problems. |
|
The Navigation class could also not be
sufficiently tested because of the time allotted for testing, and the
amount of time required for the system to get to the point to where the
Navigation class could be run |
|