【发布时间】:2014-07-24 09:44:02
【问题描述】:
我正在尝试使用 3 轴加速度计和 3 轴陀螺仪作为传感器来实现卡尔曼滤波器来获取对象的方向。
为这个过滤器的预测阶段选择动态模型很简单,它是:
new_angle = angle + angular_velocity * time
new_angular_velocity = angular_velocity
但我手头没有浮点支持,我需要每一位精度来模拟角度。因此,我的计划是将角度表示为 32 位整数数据,将2 pi 的一整圈表示为 2^32 个小步长。
因此,整数溢出会免费处理换行(2 pi 与 0 的方向相同)。
但这也给过滤器带来了一个问题:如果估计的角度是359°,而我的测量结果是0°,那么过滤器假设了一个巨大的创新,导致不确定性和奇数值。
有没有办法让过滤器知道这种可能的包装?在上述情况下只提供1° 的创新?
为了规避这个问题,我想过用角度差代替角度,但找不到合适的模型。
【问题讨论】:
标签: integer integer-overflow fixed-point kalman-filter integer-arithmetic