我的问题可能很简单,但也可能是我完全错了,所以我决定问。最后,我将利用陀螺仪传感器的数据计算手机的方位。我知道我应该用卡尔曼滤波或互补滤波来处理陀螺漂移。我将在第二步中这样做,但我在这里提出的问题对于这两种方法都是一样的。所以,真正的问题是:
从陀螺仪我只得到角度的变化(积分后)。所以我需要一些初始值,我可以将当前测量的更改添加到。但我怎么才能得到这个起点呢?我是否使用加速度计和磁强计来确定手机的方位?或者这有更好的办法吗?
如果这很重要的话,我使用android来实现这一点,并通过加速度计和磁强计来确定手机的方位,但这是非常不准确的。
最佳答案
使用任意方向作为初始原点。
任何合理的滤波器都必须从中恢复并快速收敛到实际的方向。
我使用了Direction Cosine Matrix IMU: Theory中描述的过滤器。我通过限制TotalCorrection
来处理integral windup(第27页)。很有魅力!