我正在构建一个小型设备,它也使用磁力计数据来计算罗盘航向。如果航向被计算为偏航(如果传感器位于平面上),则 LSM9DS0 IMU 传感器工作得很好。
我已经 3D 打印了一个外壳,我将在其中组装所有电子设备。我的问题是它设计不佳,IMU 传感器不在平面上,但它必须保持在 90 度。因此,Z 轴不再是我计算偏航角(或航向)的方法,而是改为 Y。
为了计算 Z 上的航向,我使用了这个公式:
heading.value = atan2((float)dof.my, (float)dof.mx);
if(heading.value < 0) heading.value += 2*PI;
if(heading.value > 2*PI) heading.value -= 2*PI;
heading.value *= 180/PI;
...其中 my 是磁力计 Y,mx 是磁力计 X
现在,我不知道如何根据其他轴计算航向。