Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# eCompass航向误差-3100令吉(90度和270度左右的误差)_C#_Compass_Heading - Fatal编程技术网

C# eCompass航向误差-3100令吉(90度和270度左右的误差)

C# eCompass航向误差-3100令吉(90度和270度左右的误差),c#,compass,heading,C#,Compass,Heading,我使用srius f9p,我使用内置rm3100作为磁传感器 源代码使用Yuri提供的算法。 () 并不是所有的源代码都被使用,只使用了算法部分 尤里使用的Comapss的X、Y和Z方向如下所示 [ angle = (float)((Math.Atan2(-(double)calY, (double)calX)) * (180.0 / Math.PI)); if (angle < 0) angle = angle + 360;

我使用srius f9p,我使用内置rm3100作为磁传感器

源代码使用Yuri提供的算法。 ()

并不是所有的源代码都被使用,只使用了算法部分

尤里使用的Comapss的X、Y和Z方向如下所示

[
 angle =  (float)((Math.Atan2(-(double)calY, (double)calX)) * (180.0 / Math.PI));   
            
            if (angle < 0) angle = angle + 360;
]
我用的是X(北),Y(东),Z(下)方法

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

我总共用了三个罗盘来测量,其中两个显示正常,但其中一个相差超过20度,大约90度和270度。 (正如Yuri所使用的,我使X、Y和Z方向相同,并测量它们,但是奇数值​​都是一样的。)

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

[
 angle =  (float)((Math.Atan2(-(double)calY, (double)calX)) * (180.0 / Math.PI));   
            
            if (angle < 0) angle = angle + 360;
]
[
角度=(浮动)((数学Atan2(-(双)calY,(双)calX))*(180.0/数学PI));
如果(角度<0)角度=角度+360;
]
我想知道我是不是有什么毛病。我尝试将点12的方向旋转90度并改变顺序,但没有得到正确的值。(当然,X轴、Y轴和Z轴具有类似的值。)

这是一个很难回答的问题,但如果有任何答案,我将不胜感激

谢谢


这是我第一次写这篇文章,所以看起来照片上传不正确。Yuri的传感器照片显示在文本中的链接中。