15-494 Cognitive Robotics 2008 Final Project

Sheep Herding

Christopher Solidum

 

Goals Boundary Detection Manipulation Results Future Work

 

The first major part of my project was finding the boundaries of the sheep’s pen and determining what’s inside it.

There were several different methods available to detect the boundaries of the sheep’s pen.

 

Method 1:  Use the MapBuilder to find all the pink lines in the area, then use the PolygonData constructor to build the boundaries

 

            Advantages:

                        -  Fast

                        -  Simple to compute

                        -  Relatively long range

            Disadvantages:

-          Hard to order the lines to create the correct boundary

 

Method 2: Use the MapBuilder to find all the pink lines in the area, then form the boundary based on the intersections of the lines

 

            Advantages:

                        -  Relatively long range

            Disadvantages:

                        -Complicated to find which lines are supposed to intersect with each other

           

 

Current Method: Use MapBuilder to find all the pink lines in the area, then construct boundaries by summing together the halfplanes of all the lines

 

            Advantages:

-          Relatively simple

-          Robust against noise

            Disadvantages:

-          Requires us to significantly reduce the resolution of the local sketch space

-          Only valid within a certain range

 

The Algorithm:

Use the MapBuilder to find pink lines

For Each Line

            If the line is Vertical

                        If more lines are below it than above

                                    Render bottom half plane

                        Else

                                    Render Top half plane

            Else

                        If more lines are to the right of it than to the left

                                    Render right half plane

                        Else    

                                    Render left half plane

Sum together all the renderings to create the inside of the sheep pen

Use PolygonData::convexHull to create the bounding polygon

 

Boundary:

 

Sketch:

Insides

 

Detecting Inside:

            In order to detect if the an easter egg is out of place, the AIBO performs the PolygonData::isInside function using the bounding polygon and the center of the esater egg. It then performs a color check to see if its out of place.

 

Easter egg Inside:

 

Patrolling:

            Given that there are no easter eggs (sheep) out of place, the AIBO will patrol around the boundary. This is done by finding the second closest line (based on line center) and moves to that point using the pilot. The AIBO repeats this until it finds an easter egg out of place. Videos of the AIBO Patroling can be seen on the results page.