Fail... lots of people have thought of this idea and it won't work.
Executive Summary
- Hook a GPS to GCS.
- GCS calculates GPS difference.
- GCS transmits GPS correction over xbee MAVLINK connection
- ArduCopter Stabilize mode gets very fine resolution.
Background
I was just reading the ArduCopter 2.0 docs and saw this:
The quad should stay in a 4-5 meter diameter "circle" around the target position.
I recalled an old TV show where somebody used differential GPS (hereafter DGPS... is that a common name?) to track glacier movement... they had DGPS receivers planted across the ice, and a DGPS transmitter attached to rock. I recall being impressed that they were able to get 1-inch resolution.
I googled around for DGPS products -- wouldn't it be neat if you could just buy something and have your ArduCopter hover with that kind of resolution! -- but found out a couple of things:
- DGPS seems pretty common in the GIS world.
- the definiton of "highly affordable" DGPS systems was about $15k. Yikes!
- "portable" DPGS receivers were touted as being easy to carry around by a single person.
- DGPS seems to work by sending the sideband correctional signal over some kind of modem.
- "normal" GPS receivers won't benefit from a DGPS transmitter.
Idea
So, I had an idea for implementing DGPS in the ArduPilot/ArduCopter world.
- Hook up a GPS unit to your ground control station (GCS). This could be any GPS unit... You could use a hand-held receiver with USB, make a custom arduino-based unit, etc. The purpose of this unit is to be near the GCS and feed a love GPS signal of the GCS's current position.
- When setting up the GCS, allow an absolute current position to be entered.
- Add a MAVLINK message outbound from the GCS to the plane(s), broadcasting the difference in measured and specified absolute position and altitude.
- When in stable mode, the ArduPilot software takes the DGPS correction into account if it is available.
- Super Precision Stable Mode!