270 likes | 477 Views
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.
E N D
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: • Tracking the robot • Robot movement and code • 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) distance angle = [tan -1(y/x))*(180/л)] (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 • Improving accuracy of robot movement • Closing loop with camera • Robot orientation • Developing a better tracking solution • Teaching the robot a path to follow
Robot orientation and correction (xdest,ydest) (robx,roby) (xsrc,ysrc)
Pointer Pointer Pointer Teaching the robot to follow a path dest y3 • 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 x3 dest y2 dest x2 dest y1 dest x1
user clicks? Robot Found? Show camera image on screen no false false Correct Flag? Dest Flag? yes true true Store coordinates of robot destination in a vector Control information is sent over Bluetooth using three byte protocol Update angle information is sent over Bluetooth using four byte protocol Destination pt equals vector pointer (pointer incremented by 2) Search for Robot Converter circuit transform signal for the RCX to receive protocol no Robot receives information and responds accordingly yes Camera finds coordinates of robot on screen Waits for new information Necessary angle and distance calculated
Thread 1: Read Thread Java code to receive and execute protocol Thread 2: Main Thread Read sent byte angle & distance received? no If = -1 If = 5 check byte yes Stop Robot in path If = 1 Rotate Robot Read next byte If = -1 check byte Move forward Store as angle robot needs to rotate If = 8 true check correction Flag false Read next byte Read next byte Stop Robot Store as current position angle to update to Store as distance robot needs to travel Update to current position and correct angle along path When distance is reached Read next byte Store as angle robot needs to rotate Reset angle, distance, and correction flags
Results Achieved 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
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