eCompass航向误差-RM310090度和270度左右的误差

问题描述

我使用srius f9p,并且使用内置的rm3100作为磁传感器。

并且源代码使用Yuri提供的算法。 (https://diydrones.com/profiles/blogs/advanced-hard-and-soft-iron-magnetometer-calibration-for-dummies

并非所有源代码都被使用,仅算法部分被使用了。

enter image description here

Yuri使用的Comaps的X,Y和Z方向如下。

我使用的是X(北),Y(东),Z(下)方法

在Yuri提供的校准方法中,指定并测量了12个点,但是X,Y和Z方向与我使用的方向不同,因此我将1到12的顺序调整为不同。 (7,8,5,6,3,4,1,2,9,10,11,12->像这样使用时,值显示得最好。)

我总共用三个指南针进行了测量,其中两个正常发出,但一个在90度和270度之间相差20多个。 (正如Yuri所使用的,我使X,Y和Z方向相同并对其进行了测量,但奇数值相同。)

我用来测量航向值的代码如下。

[
 angle =  (float)((Math.atan2(-(double)calY,(double)calX)) * (180.0 / Math.PI));   
            
            if (angle < 0) angle = angle + 360;
]

我想知道我是否有什么毛病。我试图将点12的方向旋转90度并更改顺序,但是没有给出正确的值。 (当然,X轴,Y轴和Z轴具有相似的值。)

这是一个棘手的问题,但我将不胜感激。

谢谢。

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)