I am in Alaska and the local mag declination is 17° 49' EAST. I have some TBE counterclockwise after take off when hovering, but it seems to improve a little after flying around, however the left drift on flying forward doesn't seem to improve, it is about a 5% drift angle, maybe less. Compass and advanced calibrations have not resolved this.
This is very late, there are other threads about this as well, but the issue is true, and there is a lot of information and also wrong assumption, even in this thread. I know many old assumptions are old, but there is the same technology behind it and it conceals bits of information that is very interesting for a nerd like myself, and also good to understand in order to understand the operation of symmetrical craft's GPS-based flying.
I got my first drone just in the autumn 2016, a Phantom 1. Before that no real RC stuff (but have to mention my early 80's indoors 27 MHz car with servo steering by Asahi Corporation, I still got it and going to get it going one day). Since the autumn I've learned a lot, and I want to share the things I've learned. This thread is not the perfect place for it, but it's relevant, so I just type something here first.
Just yesterday I may have found out what an earth is the use for "GPS offset X Y Z relative to center of gravity" in Naza Assist. It is not for the GPS, it is not for the Naza-M, it is for the COMPASS!!! (This is not verified yet, but I'll try to verify it during this week). Later models incorporate the compass in the GPS puck, so it's easy to talk about the compass as the "GPS".
Assumption fix: "GPS doesn't need the compass when..." or "GPS only needs the compass when..." Wrong! GPS *needs the compass*, all the time, regardless of the control mode or hover/full speed. The only option to go without compass is to fly in ATTI mode (no GPS). So if you are losing your drone over TBE, switch the GPS off.
Why GPS flying needs the compass? A real world heading is needed for the "steering" towards wanted GPS location. Simple as that.
Why not using the GPS
course (EDIT: not
heading) when moving? Because it's too slow. Magnetometer gives the heading dozens of times per second (I don't know the implemented rate in Naza though, but the one magnetometer really used in Phantoms goes way beyond 100 Hz if needed), regardless of the speed / movement of the drone.
Assumption fix: "Compass calibration / the dance calibrates magnetic north..." Nope. By the calibration dance the min/max of X/Y/Z of the magnetometer is stored, so the readings can be offset/scaled properly to give consistent readings where ever the nose points. Too bad the Assistant does not calculate the heading for us, it would be interesting to see it live.
Plain dance has fixed hovering TBE for me. However:
Drift to left/right when flying: magnetic declination problem (found it on many threads). I live in Finland and on my location the declination is 10 degrees east. I have rotated the compass clockwise quite a bit and it's better now. Not flying straight always, but I got it flying even more to the left when first turning the compass counterclockwise.
I'm messy as always, but here is the chain of dependencies:
IMU -> magnetometer -> GPS
Going back:
1. GPS needs compass.
2. Using the magnetometer as a compass we need to know the attitude of the magnetometer. The magnetometer is 3-axis for reason: we don't get any true heading before the attitude is used to rotate the XYZ values.
Cheers.