Path Planning
In this tutorial we are introducting the possibility of controlling a robot using an overhead camera (possibly one mounted on the ceiling) to control the robot to move around an arena. It is assumed that the camera is stable , looking down onto the robot arena and does not move during the robot execution.The following is what such a potential arena looks like from an overhead camera.

The small red marks are electrical tape stuck to a black metallic surface. The green arrow is a small piece of cardboard with green electrical tape attached in the form of an arrow. This cardboard is placed above a Parallax Boe-Bot in order to easily identify the robot from overhead.


The first step is to identify all the parts in the arena. This includes the waypoints and the robot plus its orientation. First we will start with detecting the Boe-Bot.
Detecting the Robot

The above image shows the robot under the green triangle. To detect the triangle we use the RGBFilter module set to filter on green.

We can see that the triangle is there but it has some small holes in it. The Fill module with a parameter of zero will fill in any remaining holes.

To smooth out the triangle border and remove some of the additional noise we add the Erode module to produce a cleaner image. We also add in the Blob Filter and set it to eliminate all but the largest blob just in case some other green artifact remains after the erosion. This also provides us with a COG_X and COG_Y array with a single entry that contains the X, Y center of the triangle and is used to determine where the robot's position is.
That completes the green triangle (robot) extraction. Now we need to find out which direction the triangle is pointing so that we know which direction to turn the robot.

The Blob filter module again leaves us with an array of BLOBS with 4 sets of x, y coordinates. To keep these points from getting overwritten by other modules we use the Set Variable module to make a copy of them as "waypoints".
The graphics created by the path planning module is then overlaid on the current image to view the final planned path.
Video

(2.3 MB) Video of the BoeBot moving through each of the waypoints as seen from the overhead camera.

(2.1 MB) Different starting location and 3 point light source.
Your turn ...
No comments:
Post a Comment