15-494 Cognitive Robotics
Spring 2012
Course Links:  Main Lectures Labs Homeworks

Tekkotsu Links:   Wiki Tutorial Resources Bugs CVS

Cognitive Robotics: Cobots Task

In this task you will program the Calliope robot to provision a small Cobot (based on the Willow Garage Turtlebot) with snacks that it will in turn deliver to humans. The problem is open ended and will be explored in stages. The Cobot lives in Manuela Veloso's lab and looks like this:
We have created a Cobot mockup for testing of your solution. We have also created a simple Mirage world for testing: snacksWorld.ian.

In solving this task you will make use of multiple perception and manipulation mechanisms that we have explored in previous labs. This is an open ended question, so be creative!

Task Elements

To complete the task you must solve all of these problems:
  • Locate and pick up snacks. We will provide you with several types of sample snacks. In Mirage they are just simple red or green cubes, but for the real robot we are using real snacks: pretzels, crackers, and gum. You must visually identify snacks and then grasp them with the gripper. For initial experimentation you can mark snacks with small AprilTags or strips of colored tape, but eventually we will want to use unmodified snacks.

    While you can pick up snacks from the floor, it might be advantageous to create a "snack holder" that holds a snack in an orientation favorable for grasping. This will probably be most useful for the bags of pretzels. You are welcome to design and fabricate snack holders if you wish.

  • Navigate to the Cobot. All the snacks are located in the middle alcove of the playpen; the cobot is located in an adjacent alcove. Once you have retrieved a snack, you must get close enough to the cobot to allow you to complete your mission. You cannot assume a fixed position and orientation of the cobot, only a general location. So you will need visual cues to identify the cobot's pose. The cobot itself is white and hence hard to see; you should consider decorating it with AprilTags or colored tape to make it more visible.

  • Transfer the snacks. Snacks must be deposited in the Cobot's basket, which is 500 mm above the floor. This is at the very limits of the arm's reach, but should be achievable. Tossing snacks might be a successful strategy.

  • Accept snack requests from the cobot. The cobot will accept a request from a human for a particular type of snack, travel to the Calliope, and then tell the Calliope what it needs. This communication must take place via the network. One simple strategy would be to have the cobot connect to the Calliope on port 10001 and issue !msg commands to send text messages requesting snacks.
This complex task has not been attempted with Calliope before, so we don't know what sorts of problems will arise as you try to solve it. We will work with you to propose solutions and refine the task description in order to end up with a working system.

Please organize yourselves into teams of 1-3 students. Each team will solve the entire task. This is not a competition; teams are permitted to help each other. But they are also encouraged to explore alternative strategies so that we can all learn more about what works and what doesn't. Grading will be based on not just how well your solution works, but also how well you explored that strategy and can explain why it works and why it fails.

Hand In

At the conclusion of the project you will hand in a video that demonstrates the above behaviors, your code, and a brief writeup with screenshots that show how the robot identifies the cobot and the snacks. Please submit these items by Monday, April 9.

Dave Touretzky and Ethan Tira-Thompson