1 / 25

Trail Pacbot

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.

yamka
Télécharger la présentation

Trail Pacbot

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Trail Pacbot Pejman Kalkhoran Hanish Rathod Errling Tao

  2. 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

  3. Introduction • The trail pacbot uses markers to identify the path. • Markers can consist of • RF tags • Optical sensors • Physically prominent shapes • Heat

  4. 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

  5. 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

  6. Amigobot • Controlled via serial port (using USB-to-serial converter) • Original drivers written by David Jea • Motion algorithm incorporated into our algorithm

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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…)

  12. 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

  13. Image Processing – Algorithm… Source Picture (300x600 = 180000 pts total) Retrieved Contours (<1800 pts total)

  14. 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

  15. Positive Marker Detection - Test

  16. 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 {125255, 0125, 0125}

  17. 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

  18. Positive Marker Detection

  19. 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

  20. Image Processing – Future Work • Overcome limitations • Ability to detect obstacles • Ability to interact with top level program • Allow night vision ability

  21. 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

  22. 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; }

  23. Demonstration

  24. 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.

  25. 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

More Related