I am running 3.3.2 on a Pixhawk and when I run Compassmot, I get an interference of just 1%. Which is great however my mag offsets are not the best.

I get -11, 38, -113. I am running a Drotek M8N XL GPS with the ground plane soldered. If its not interference, what else could be preventing me from getting really low offsets?

The M8N is mounted on an extra long mount.

Any Ideas?

Views: 362

Reply to This

Replies to This Discussion


In Copter-3.2.1 and later offsets are considered acceptable provided their combined “length” is less than 600 (i.e. sqrt(offset_x^2+offset_y^2+offset_Z^2) < 600). Prior to Copter 3.2.1 the recommendation was that the absolute value of each offset be less than 150 (i.e. -150 < offset < 150).

Thanks James. I do appreciate that the values are not all that bad and within the acceptable range however I would expect that with just 1% compassmot interference at least the x & y offset would be closer to 0.

Is there anything I could do to try and improve the numbers?

Hi Arshish, The offsets and the compassmot values are not directly related. The offsets are related to how the sensor element is positioned relative to the copter body and the compassmot values relate to how the magnetic field at the sensor is influenced relative to throttle setting sent to the motors. These two measures are independent and it is quite possible to have high values in one and not the other.

Ok. I think I understand.

Does that mean that if I mount the compass exactly above Pixhawk in the center of the frame I would get the lowest offsets - Possible near 0? But the drawback of this would be higher interference..

Also - If offsets are just a representation of how the compass is positioned relative to the body, why cant we just measure the x,y,z values as distances from the center of the body and enter those in? Like how its done for a Nava V2? Why the whole compass calibration dance routine? On a lighter note I look like a complete cartoon at the field when I do the "routine". :-)


The offsets are not a measurement proportional to the distances of the sensor from the centre of the frame but are a measure of the magnetic field and its orientation wrt to the frame. Two different sensors held in the same position within a uniform magnetic field would still give different results due to manufacturing tolerances. The sensor is also likely mounted in the frame with some misalignment in all axes. There are also quite probably localised distortions in the magnetic field due to the presence of 'soft iron'. The offsets account for all of these. Up to a certain limit, there is no need for you to attempt to 'minimize' these offsets - they are simply accounting for all these effects. If you have not altered the frame or layout of your copter, then the compass calibration need only be done once (in private if that is preferable!) 
The compassmot procedure attempts to account for the transient distortion of the magnetic field at the magnetometer due to the large DC currents in the cables from the battery to each ESC when the copter is in flight. Similar currents/fields exist in the cables from the ESC to the motors but these are alternating at high frequency so are more easily filtered out. The compassmot procedure measures the changes to the field at the sensor while ramping up the power to all of the motors with the vehicle held in a constant orientation. It then applies the measured offsets relative to the current power level in an attempt to correct the distortion.

Thanks James... That clarifies it.

Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service