2015-05-29 104 views
1

我想从加速度计,陀螺仪和磁力计数据中估算航向。我从here实施了一个补充过滤器。Android:磁力计数据偏差

我在想的是,我手里拿着电话,我直线走了15步,我试图估算上面链接中给出的欧拉角。但是当我绘制原始数据时,我发现磁力计数据有偏差。这里是原始传感器数据的图像。

enter image description here

enter image description here

enter image description here

我的问题是:我怎么估计欧拉角,使他们表示我走在一条直线。

回答

0

你是在室内走路,还是在可能存在电场或磁场的地方?通过磁力仪图形判断,这就是发生了什么事情。如果是这样,恐怕没有解决您的问题。

尝试运行指南针应用程序,甚至携带玩具指南针,然后走相同的路径。我敢打赌,你在走路时会看到指南针的摆动。

我一直在环境中移动一个指南针在桌子下三英尺可以使它摆动180度。

顺便说一句:你几乎不会想要欧拉角。他们有堕落的案件。尽可能尝试使用变换矩阵或四元数。

+0

你好,爱德华,谢谢你的回复。你是对的,这些信号是从办公室走廊里记录下来的。我还在某处阅读了估计准确航向的地方,首先我们需要估计航向偏差。给出的公式是(Theta_g - Theta_m),其中Theta_g和Theta_m分别从陀螺仪和磁力计估算。我怎样才能从陀螺仪(通过积分?)和磁强计来估算航向? –

+0

获得航向的唯一方法是磁力计,而您刚刚看到建筑物内部如何,这是非常不可靠的。陀螺仅有助于(用于卡尔曼滤波器或互补滤波器时)消除磁力计读数的波动。实际上,更准确地说,低通滤波器可以平滑磁力仪的波动,而陀螺仪可以有效地取代滤波器去除的响应。阅读补充过滤器的更多信息,但基本答案是肯定的,您可以整合陀螺仪读数以获取标题。 –

+0

谢谢爱德华。请看看我从补充过滤器中得到的结果,并将它们与从TYPE_ROTATION_VECTOR获得的结果进行了比较http://stackoverflow.com/questions/30573588/comparison-type-rotation-vector-with-complemenary-filter –