I am an engineering undergraduate student. I am currently working on a project to implement a sensing package on a quadcopter for the deployment in the canopy of tropical rain forests. This package needs to measure temperature, humidity, pressure and light intensity. All these have been taken care of, but it also needs to precisely obtain the position of the quadcopter and I am not sure how to achieve this. As it will operate in a rain forest, a standard GPS will probably not be accurate enough in part due to the bad signal (forest means a lot of trees and vegetation around). I am building everything on an Arduino Mega 2560 board. I was thinking on using D-GPS but I am not sure how to implement it.

Does someone know how I could obtain a precise (submeter precise) position of the quadcopter?

People have reported obtaining ~meter range precision combining data from a GPS unit - again as Dzarda suggested, make sure you use a GPS antenna sensitive enough to pick the signal obstructed by the forest - and an IMU (Inertial Measurement Unit), measuring 3D acceleration and 3axes rotation. I would personally recommend the 10DOF IMU from Pololu, which I have been using with Arduino and works nicely.

You will then have to implement the data fusion - kalman filtering using the data from the GPS and the IMU. You should be able to find a lot of documentation/tutorial/codes sample on the Arduino forum, on how to do that.

• kalman filter is useless... – hassan789 Apr 3 '14 at 22:06
• kalman filter is not useless. – markrages Apr 4 '14 at 2:44

Regarding your problem, I think you'll be lucky if you manage to get a fix at all. Also, I am pretty sure this won't be achievable with one of those $2cm^2$ patch antennae that are widely available, you'll need a) a big patch antenna, or b) some more complicated dipole/loop antenna goodness.

• Antennae comparison here
• More antenna stuff here $< recommended$

Anyway, I would strongly suggest getting to the forest (or any forest nearby) with several GPS devices and see what you can get out of them. You'll likely get into trouble getting a fix, but I'd give it a try.

About your Differential GPS idea - do you think your copter will have comms with a nearby-standing ground station? If you can guarantee this, then it might also be a way to go.

You could take this a step further: have two (or more) stations whose location you know and triangulate your flyer's position based solely on your "D-GPS" system, without getting a satellite fix onboard, at all. That would require some lower-frequency radio to dig through the wood, but overall, might be more stable/consistent.

No more ideas, sorry if I misunderstood your question.