Autonomous Robot Project: Lauren Mitchell Ashley Francis
Autonomous Robot Project: Lauren Mitchell Ashley Francis
Project
Lauren Mitchell
Ashley Francis
The Challenge
The goal for our summer project was to be
able to remotely control a robot using a
camera interface and wireless
communication.
The final challenge of this project was to
teach the robot to follow a path specified
through the camera interface.
Robot Capabilities
Two motors
Two 4.96 cm wheels
One pivot wheel
Two rotation sensors
Green tracking material
Java Programmable Lego
Brick (RCX)
Bluetooth
Web Camera Capabilities
120 x 160 resolution
Mounted 2.5 m (8.25 ft)
above ground
Viewing area of
2.1 x 1.9 m (6.9 x 6.3 ft)
Average of 10 fps
Programmatic access
through C++ API
Bluetooth Capabilities
Serial communication
with 8 data bits, 1 stop
bit, max data transfer rate
115.2 kbps , and even,
odd, or no parity
Maximum operating
range of up to 30 meters
(98 feet)
9 pin RS232 connector
Required voltage of 5V
-13.6V
Past Progress Summary:
1. Tracking the robot
2. Robot movement
and code
3. Communication
Images from the camera
1
2 3 4
HSV values were used to track
robot on image
HSV values were
calculated from RGB
values of a pixel
Each pixel of image is
scanned looking for
specific HSV ranges
Crosshair placed
where ranges found
Color analysis for pixels
Green CD case used
for color tracking on
robot
Range of HSV values
for green pixels were
determined :
Navigating the robot
Java RotationNavigator class was used to
control robot movement through rotation sensors
and motors
Provides ability to rotate 360 degrees and travel
specified distances
Calculating angle and distance
x = 1.325*(xdest-xsrc)
y = 1.604*(ysrc-ydest)
(xdest,ydest)
n ce
a
i st angle = [tan -1(y/x))*(180/л)]
d
(xsrc,ysrc)
if(y != 0)
distance = abs(y/sin(angle))
else
distance = abs(x/cos(angle))
Communication between robot and
PC: using Bluetooth
BL-830 (female) connects to
RS232 of PC
BL-819 (male) connects to
signal converter on robot
2400 bps data transfer rate
Odd parity
One 9-Volt battery
Serial communication (sends
1 unsigned byte at a time)
Midsummer Results:
Stationary robot found
every 0.3 seconds
Moving robot found
every 7.34 cm
On average, robot
misses target by 9.2
cm (3.6 in)
The final stretch
(xdest,ydest)
(robx,roby)
(xsrc,ysrc)
Teaching the robot to follow a path
dest y3
User clicks are stored Pointer dest x3
in a vector dest y2
Pointer dest x2
Pointer is used to dest y1
access coordinates of Pointer dest x1
click
Pointer is incremented dest x3,
by 2 when robot dest x1,
dest y1
dest y3
dest x2,
dest y2
Show camera
image on screen
no user
clicks? false Correct false
Dest
Flag? Flag?
yes
Store coordinates of robot true true
destination in a vector Control information is sent Update angle information
over Bluetooth using three is sent over Bluetooth
byte protocol using four byte protocol
Destination pt equals vector pointer
(pointer incremented by 2)