我正在尝试使用 3 轴加速度计和 3 轴陀螺仪作为传感器来实现卡尔曼滤波器以获得物体的方向。
为这个过滤器的预测阶段选择动态模型是直截了当的,它是:
new_angle = angle + angular_velocity * time
new_angular_velocity = angular_velocity
但是我手头没有浮点支持,我需要每一位精度来模拟角度。因此,我的计划是将角度表示为 32 位整数数据,将一整圈表示2 pi
为 2^32 小步。因此,整数溢出会免费处理换行(2 pi
与 的方向相同0
)。
但这也给过滤器带来了一个问题:如果估计的角度是359°
,而我的测量结果是0°
,那么过滤器会假设一个巨大的创新,导致不确定性和奇数值。
有没有办法让过滤器知道这种可能的包装?1°
仅在上述情况下给予创新?
为了规避这个问题,我考虑过使用角度差异而不是角度,但我找不到合适的模型。