Help with movement tracking between 2 objects

The project I’m looking to build will have 2 Arduino’s. One is connected to a toy RF helicopter. The other is connected to a video camera and used to track the helicopter as it flies, keeping the helicopter in its field of view. The camera will be motorized to control its camera angle.

So if the distance between the helicopter (while on the ground) and camera is 30ft, and the helicopter then moves vertically by 30ft, the camera should track-up by an angle of 45 degrees.

There seem to be a few different ways of doing this, I just need some advice or maybe I overlooked a simple solution:

1) Use a GPS module in the helicopter and transmit the GPS co-ordinates to the camera. This will require a GPS module in both helicopter and the camera, and some complex math to calculate the required camera angle. While there is an error of around 3 meters in most GPS tracking chips, depending on the distance from the camera, it should still remain in the field of view.

2) Use a GPS module in the helicopter and transmit the directional movements to the camera. This assumes some starting reference point, which with constant error adjustments over time, might go out of sync with the camera. There isn’t a way to re-sync the angles.

3) http://info.ee.surrey.ac.uk/Personal/Z.Kalal/tld.html Not sure if this is even possible on the Arduino, but something like this would be nice.

As for the communications, the XBee modules seem to be the easiest to use, but I’m open to other suggestions. XBee Pro w/ chip antenna giving a range of about 1,700 feet should be more than enough. Bluetooth (30 meters) doesn’t seem to have enough range as I’m expecting around 300 meters.

The main issue seems to be calculating the required camera angle accurately and quickly. Any ideas?

While I don't have experience with a GPS or XBee shield, I would be curious what the refresh rate is. Can it transmit a position every 1 seconds? or is it every 5 seconds, or longer? Also, how much delay is there by time the receiver has the data? Knowing where the helicopter was 10 seconds ago isn't going to be much use.

The main issue seems to be calculating the required camera angle accurately and quickly.

Actually, I would think that's on of the easier part. Use google to find some lat/long formulas. Here is a start: http://www.movable-type.co.uk/scripts/latlong.html

I have a FMP04-TLP GPS module that I'm playing around with right now. http://www.ohararp.com/products.html

Only $25 and its 10Hz

I think you might be able to get something like that working with marker tracking or beacon tracking.

The idea would be that you have a video processing application running on the PC which detects the position of the marker/beacon within the field of view. This is similar to the sort of thing that AR people are doing routinely. Getting it to work when the helicopter is only a spec in the distance might be a trick.

The PC would send the Arduino steering commands to try to move the field of view to center on the detected position of the copter.

Sorry GPS will not work for this application. Unless you just want to guess within 20 degrees. But only more than 200' away.