【问题标题】:Android: Magnetometer data deviatesAndroid:磁力计数据有偏差
【发布时间】:2015-08-12 07:14:55
【问题描述】:

我正在尝试根据加速度计、陀螺仪和磁力计数据估计航向。我已经实现了来自here 的互补过滤器。

我正在尝试的是我手里拿着手机,我直线走了 15 步,我试图估计上面链接中给出的欧拉角。但是当我绘制原始数据时,我观察到磁力计数据存在偏差。这是原始传感器数据的图像。

我的问题是:我如何估计欧拉角,以便它们表明我在直线上行走。

【问题讨论】:

    标签: android accelerometer gyroscope magnetometer sensor-fusion


    【解决方案1】:

    您是在室内行走,还是在可能有电场或磁场的地方行走?从磁力计图表来看,这就是正在发生的事情。如果是这样,恐怕您的问题没有解决方案。

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

    我遇到过将指南针从桌子下移 3 英尺会导致它摆动 180 度的环境。

    顺便说一句:您几乎从不需要欧拉角。他们有退化的情况。如果可以,请尝试使用变换矩阵或四元数。

    【讨论】:

    • 您好,爱德华,感谢您的回复。你是对的,这些信号是从办公室走廊里记录下来的。我还在某处读到,要估计准确的航向,首先我们需要估计航向偏差。给出的公式是 (Theta_g - Theta_m),其中 Theta_g 和 Theta_m 分别是根据陀螺仪和磁力计估计的航向。如何从陀螺仪(通过积分?)和磁力计估计航向?
    • 获得航向的唯一方法是磁力计,而您刚刚看到在建筑物内部,它非常不可靠。陀螺仪仅有助于(在卡尔曼或互补滤波器中使用时)消除磁力计读数的波动。实际上,更准确地说,低通滤波器消除了磁力计的波动,陀螺仪有效地取代了滤波器去除的响应性。阅读更多关于互补过滤器的信息,但基本答案是肯定的,您可以整合陀螺仪读数以获得航向。
    • 谢谢爱德华。请看一下我从互补过滤器获得的结果,我已经将它们与从 TYPE_ROTATION_VECTOR 获得的结果进行了比较stackoverflow.com/questions/30573588/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多