Our final project, sheep herding, can be broken down into these major components:
- Given a collection of tapes that forms a convex hull, the robot has to correctly identify the interior / exterior of it.
- Given a set of egg shaped objects of 2 different colors, for each of them, the robot has to determine if it is in the right region. E.g. blue ones should be outside of the convex hull, and green ones should be inside.
- For all objects that are in the wrong region, the robot has to move them to where they belong.
- The robot has to patrol the convex hull.
1. Build a local map of the environment which will contain at least part of the convex hull shaped boundary.
2. Generate the next way point using the boundary from step 1.
3. Use that boundary to check if any blue object is inside, if there isn't any, jump to step 8.
4. Calculate the position of the blue object, generate a target position and a direction of hitting for it.
5. Use the object position and target position from step 4 to generate a desired pose for the robot, and walk there.
6. Build a local map for the object we are manipulating, use RRT to correct the arm's relative position if necessary, then hit the object towards the target.
7. Restore the robot's pose.
8. Turn towards the next way point.
9. Build a partial boundary, and check if any green objects are outside. If there is any, use steps 4 to 7 to hit it inside.
10. Move to the way point, and turn towards the centroid of the convex hull generated in step 1.
11. Repeat from step 1.