250 likes | 423 Views
Trail Pacbot. Pejman Kalkhoran Hanish Rathod Errling Tao. Introduction. A trail pacbot is an automaton that follows a path via markers An autonomous trail pacbot has many applications: Serve as data mules Delivery of information/parcels in hazardous environments Security monitoring.
E N D
Trail Pacbot Pejman Kalkhoran Hanish Rathod Errling Tao
Introduction • A trail pacbot is an automaton that follows a path via markers • An autonomous trail pacbot has many applications: • Serve as data mules • Delivery of information/parcels in hazardous environments • Security monitoring
Introduction • The trail pacbot uses markers to identify the path. • Markers can consist of • RF tags • Optical sensors • Physically prominent shapes • Heat
Introduction • For the scope of this project the marker consists of the following • One prominent shape (i.e. red rectangles) • RF ID tags • The trail pacbot comprises of the following • Amigobot • RF antenna transceiver • Digital Camera • PC laptop
Components of Trail pacbot • Amigobot • Amigobot is a simple automaton designed to follow basic motion commands • Amigobot drivers are necessary to send data to the robot • RF ID tag • The tag serves to identify stopping point along the trail. • Tag also helps align robot correctly to the path • Image processing driver • Distinguishes the rectangular shapes of the markers • Helps direct the movement of the robot
Amigobot • Controlled via serial port (using USB-to-serial converter) • Original drivers written by David Jea • Motion algorithm incorporated into our algorithm
RF ID • The RF ID system is transceiver that sends and receives data from the RD ID tag. • Operates at 9600 baud • Range is approx. 6 to 8 inches
RF ID • The RF ID tag serves to authenticate the marker • Although each tag can be made to be unique, the robot does not rely on individual tag IDs • The RF ID driver performs three tasks • Sends a READ packet command from the transceiver • Detects and analyzes the data received from the ID tag • Returns a successful or unsuccessful flag to the main navigation program
Image Processing - Objective • Load *.bmp images captured by the robot camera • Analyze image for rectangular marker with bright red/orange color composition • Answer the following two questions • Is the marker present in the image • Where is the maker in the image
Image Processing - OpenCV • OpenCV – Open Source Computer Vision Library • Compatible with Intel Image Processing Library (IPP) • Collection of low-overhead, high-performance operations for digital images
Image Processing – OpenCV… • High-level library implementing algorithms for: • 3D Reconstruction • Basic Functions (Pointer, Array, Memory, etc…) • Image Processing (Histograms, Drawing, Edges, etc…) • Motion Tracking • Object Recognition • Graphical User Interface for Image Processing • Structure Analysis (erg, contour processing…)
Image Processing – Algorithm • void Img_Proc( char* names ) • Load captured image (.bmp) into IplImage format • Calls findSquares4 ( ) • Then calls drawSquares ( ) • CvSeq* findSquares4( IplImage* , cvMemStorage ) • Attempts to filter out noise • Finds a series of contours and saves them as a list • Tests each contour for 4 vertices and angle of ~90o • If meets the stated test, inserted into CvSeq*, otherwise removed from list
Image Processing – Algorithm… Source Picture (300x600 = 180000 pts total) Retrieved Contours (<1800 pts total)
Image Processing – Algorithm… • void drawSquares ( IplImage*, CvSeq* ) • Reads in each square and calls validMaker ( ) • If the square is determined to be the marker then squared is highlighted Red, otherwise it’s highlighted Green • int validMarker ( IplImage*, CvPoint* ) • Reads in given square • Determines the RGB value at the center point of the square • If RGB values are within acceptable range, maker is deemed found • The center point of the found maker is sent to the top function for robot navigation
Image Processing – Challenges • Detecting squares • Background, shading, blurry pictures, low resolutions – prevented proper contour detection • Solution: placed red makers with black backgrounds • Acceptable RGB color range • Ideally RGB = {255,0,0} • Determined from sample images {125255, 0125, 0125}
Image Processing – Challenges… • 80% of the challenge was installing OpenCV taking up 90% of the time • Incomplete libraries • Wrong Libraries • Compilation problems • 20% of the challenge was the Image Processing code taking up 10% of the time • Detecting squares • Acceptable RGB color range
Image Processing - Limitations • Needs proper lighting • The marker must be no further than 21 feet from the robot • Angle of incidence must be no less than 30 degrees
Image Processing – Future Work • Overcome limitations • Ability to detect obstacles • Ability to interact with top level program • Allow night vision ability
Integration • The trail pacbot is the culmination of the three units into one cohesive system. • The Algorithm for the navigation works in 3 steps • Identify marker location • Move toward marker location • Confirm correct marker location by reading RF ID tag • Move out of range of RF ID tag • Survey the environment for next marker • Repeat step 1
Algorithm • while(1) { • err = robotAct(rid, 'b', 75, 0, 0); • if (readTag(fd, tagValue) == -1) { • printf("no tag found\n"); • continue; } • sleep(2); err = robotAct(rid,'s', 50, 0, 0); • err = robotAct(rid, 'r', 15, 0, 0); sleep(1); • found = 0; Img_Proc[0]=0; • while(!found) { • err = robotAct(rid, 'r', 10, 0, 0); sleep(1); • err = robotAct(rid, 's', 15, 0, 0); sleep(1); • system("/home/pejman/vidcat/vidcat -s -p y -d /dev/video0 > pej.image"); • system("convert /home/pejman/robot/pej.image/home/pejman/robot/pej.bmp"); • ImgProc( names[0] ); • found = Img_Proc[0]; • if (found && Img_Proc[1] > 370) • found = 0; }
Conclusion • From initial experiments, the robot will successfully follow a trail to completion. • One limitation is the placement of the markers. They can not be arbitrarily far. The must be within reasonable distance for the camera to capture an acceptable quality image. • Inhospitable terrain such as deep ditches, water, and other such obstacles are not handled by this algorithm. The pacbot assumes the predetermined trail is safe.
Further Work • Smarter Movement algorithm to avoid obstacles • Better camera to allow for better images • Improving image processing software to identify more unique shapes • Add more sophisticated markers to expand intermediate marker distance