(demo filmed by me at the Wired offices)
Magnetometer will not (by itself) help with centripetal correction. A speed measurement is what is needed. Vector speed, really. With APM in a plane we make the assumption that the motion is along the fuselage axis (a reasonable assumption) and can then use a scalar speed measurement.
I am not enthused by the result presented, and we don't really need a turntable demo to tell us what will happen in a sustained turn in an airplane. If the turn is coordinated then the load factor will always be perpendicular to the wings, the acceleration vector will depart from downward by the bank angle, and the steady state error in the IMU will equal the bank angle. So, for example if you flew APM in Stabilize mode and held a 45 degree bank by hand for a while, then let the stick go the IMU would be off by 45 degrees and your "stabilization" would be shot. As another approach to viewing the problem and a sanity check on the turntable "experiment"; I have flown the SkyFun with APM at bank angles up to 60 degrees. At 60 degrees bank the load factor is 2g;s, translating to centripetal acceleration of about 1.7g's. If the relationship from the turntable was linear, then you could expect an error of 80 degrees. (It won't be that bad, just 60 degrees)
To correct for the centripetal acceleration effect on the MPL sensor fusion, you have two options:
- Calculate the magnitude of the radial force from your GPS/airspeed and the current rotation rate, find the resulting angle between gravity and apparent gravity (centripetal acceleration + gravity), pass that calculation through a low pass filter to matching the transient response of this error term in the MPL output (you can find a first order approximation experimentally with a rate table), and finally rotate the MPL output by this correction term.
- Calculate the accelerometer output due to centripetal acceleration using GPS/airspeed and current rotation rate, pass that calculated value to MPL to be set as the accelerometer bias (zero point) used during sensor fusion, and the MPL output will be corrected to remove the unwanted portion of the accelerometer measurement.
@Doug,
Say, in your example, that you kept track externally of the "CIE" (centripetal induced error), by comparing the reported angle with the turn rate, can a single external scalar variable (CIE) be used to correct the reported output of the blackbox IMU?
@1:26, Chris mentions that a 9-DOF unit can be used to compensate for the centripetal error in the 6-DOF unit.
Could somebody kindly point me to a reference as to how the error compensation would be calculated?
Many TIA!
@Pat - I think your second option is the "good" solution for us. We just need a message to allow us to do it. Thanks! I thought we would get that functionality, but the email thread going a while ago kind of fell apart so I wasn't sure.
@bGatti - possibly, but it would require a lot more horsepower than correcting the accelerometers for the current centripetal. Correcting the accel bias is an instantaneous sort of calculation. Calculating a correction to the blackbox IMU would require building a filter to try to match what the IMU is doing over time.
@Mark - Chris was mistaken. You cannot correct for centripetal with just 3 more DOM/DOF from a magnetometer. You need a measurement of speed and rotation. Additional DOM can be helpful in a helicopter, etc to determine the direction of motion relative to the airframe, but you need more info than just the additional DOM from a magnetometer.
2602 members
683 members
157 members
184 members
117 members
© 2015 Created by Chris Anderson.
You need to be a member of DIY Drones to add comments!
Join DIY Drones