Upload
lora-neal
View
220
Download
0
Embed Size (px)
Citation preview
Autonomous Robot 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
2
1
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
(xsrc,ysrc)
(xdest,ydest)
distance
angle = [tan -1(y/x))*(180/л)]
x = 1.325*(xdest-xsrc)y = 1.604*(ysrc-ydest)
if(y != 0)distance = abs(y/sin(angle))elsedistance = 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
Improving accuracy of robot movement Closing loop with camera Robot orientation
Developing a better tracking solution Teaching the robot a path to follow
SMOLES model
Inside the components
Inside the components
Inside the components
Robot orientation and correction
(xsrc,ysrc)
(xdest,ydest)
(robx,roby)
Teaching the robot to follow a path
User clicks are stored in a vector
Pointer is used to access coordinates of click
Pointer is incremented by 2 when robot reaches a node in the path
dest x1dest y1dest x2dest y2dest x3dest y3
Pointer
Pointer
dest x3, dest y3
dest x2, dest y2
dest x1, dest y1
dest x3, dest y3
dest x2, dest y2
dest x1, dest y1
Pointer
dest x3, dest y3
dest x2, dest y2
dest x1, dest y1
Control information is sent over Bluetooth using three
byte protocol
Show camera image on screen
Store coordinates of robot destination in a vector
Camera finds coordinates of robot on screen
Necessary angle and distance calculated
user clicks?
Search for Robot
Robot Found?
Converter circuit transform signal for the RCX to receive protocol
Robot receives information and responds
accordingly
no
yes
no
yes
Waits for new information
Dest Flag?
Destination pt equals vector pointer (pointer incremented by 2)
true
Correct Flag?
false
Update angle information is sent over Bluetooth
using four byte protocol
true
false
Java code to receive and execute protocol
Thread 2: Main Thread
angle & distance
received?
no
yes
Rotate Robot
Reset angle, distance, and correction flags
check correction
Flag
Thread 1: Read Thread
Read sent byte
check byte
Read next byte
Store as current position angle to update toStore as distance
robot needs to travel
Read next byte
If = -1
If = 1
If = 5
Stop Robot in path
Read next byte
check byte
Store as angle robot needs to rotate
Read next byte
Store as angle robot needs to rotate
Stop Robot
Update to current position and correct
angle along path
Move forward
If = 8
If = -1
truefalse
When distance is reached
Summer Results
Robot reaches target point within two turns
Robot has reached the target when it is between 0 – 6 cm from point
Robot consistently follows path repeatedly Results Achieved
If we had more time…
Find a better tracking solution
Implement two-way communication
Add obstacles to course
Autonomous Robot Project
Lauren Mitchell
Ashley Francis