## Final Project: Collaborative Tracking

• Due: 6 December 2002

• Overview of the project:
This project will build upon the last project in which you developed a method for estimating the relative location of an object based on vision.

In this project, you will program TWO robots to simultaneously track an object and share information about its location between themselves. Both robots should pan their heads to keep the object centered in their field of view.

Your system should allow a robot to "track" the object by panning its head, even if it has been "blinded" or its view of the object is occluded, as long as the other robot can see the object.

As an example of how to solve this problem you can look at Stroupe & Balch's ICRA 2001 paper, available here.

You can assume the robots know where they are (they are perfectly localized). Other than panning their heads, they do not need to move.

• Coordinate system:
The robots will be positioned two meters apart along a north/south axis. The southern robot will be designated as the origin, with the +X axis in the direction of the northern robot. To assist data collection you can place scaling marks on the green carpet using removable markings (e.g. masking tape).

• What you need to do for this project:
1. Write a program for two Aibos that does the following in the following situations:
• If neither robot sees the ball, both of them should pan their heads to look for the ball.
• If just one robot sees the ball, it should "lock on" to it, and broadcast the location of the ball to the other robot. The other robot should "look" in the direction of the ball by panning its head to that heading.
• If both robots see the ball, they should both broadcast the location to each other, and (presumably) calculate a more accurate estimate of the ball's location.
• Each robot should create a log of where it thought the ball was over time, both using its own sensor, and the combined information from the other robot.
2. Conduct the following experiment:
• Position the ball in at least 10 different locations.
• At each location, record the actual location of the ball, the location where each robot thinks the ball is individually, and the "fused" estimate.
• Assess the average error for each robot individually, and as a "team."
3. Demonstrate your system to Prof Balch, Brian, or Ram.
4. Give Prof Balch a HARDCOPY report (3 to 5 pages), describing your algorithm(s), code and assessment. You must have a sheet attached to your report with Ram's, Brian's or my signature with an evaluation of how well your code worked.
5. Send the source code to me by email (tucker@cc.gatech.edu). Note: please prepend "final project:" to the subject of your email message. This will help me sort files into the right folder.

• Your grade will be determined, in order of significance, by:
• The functionality of your code (i.e. does it work?).
• Analysis of the performance of your algorithm.
• Cleverness of approach and code readability.
• Accuracy of position estimation approach.

• Important notes:
• This project is to be completed by individual students, or by student teams of two. If you work on a team, I would like a clear statement in your report describing your contribution to the project. I have higher expectations for the results from team projects.
• You may discuss your algorithms among other members of the class, but you should not share code (exception below). Discussions are encouraged on the amrs@robocup.biglist.com email list.
• It is permissible to share code for setting up TCP/IP connections between robots. If you use someone else's code for this purpose, you MUST disclose this fact in your report. If your communications code is used by another student, or student team, you will receive extra credit on your project.