【问题标题】:Which filter to use when in case of sensor fusion?在传感器融合的情况下使用哪个过滤器?
【发布时间】:2019-04-27 02:15:12
【问题描述】:
我正在尝试融合 GPS 和加速度计数据,以使用运动方程估计位置和速度
x = x' + vdt + 0.5dt^2.
到目前为止,根据我的阅读,卡尔曼滤波器似乎是流行的选项 - (1、2、3)。
但是,当系统是线性时,似乎使用了卡尔曼滤波器。
运动方程不是非线性的,因为它是
dt^2?
他们不应该使用 EKF/UKF 吗?如果不是,你能解释一下为什么吗?我很困惑。谢谢!
【问题讨论】:
标签:
gps
kalman-filter
sensor-fusion
imu
【解决方案1】:
要指定卡尔曼滤波的设置,您需要指定要估计的内容(“状态”)和要测量的内容(“观察结果”)。另外你需要说明观察如何依赖于状态,即你需要将观察表达为状态的函数,以及如何及时将状态向前推进,即你需要在稍后的时间表达状态作为早期国家的职能。在谈论滤波器的线性或其他方面时,所指的是这两组方程(观察方程和预测方程)是否是线性的。也就是说,重要的是观察是否是状态的线性函数,以及未来状态是否是先前状态的线性函数。状态或观察结果如何依赖于时间无关紧要。
作为一个玩具示例,假设我们有一个一维系统,并且可以测量位置 P 和加速度 A。如前所述,我们可以获取位置 p、速度 v 和加速度 a。然后
观测方程极其简单:
P = p
A = a
预测方程稍微复杂一点:在左边(带 ')我们有预测状态在时间 t 大于先前估计状态的时间
p' = p + t*v + 0.5*t*t*a
v' = v + t*a
a' = a
由于这些方程组中的每一个显然在 p、v 和 a 上都是线性的,因此系统是线性的。
但是,真实 (3d) 系统可能要复杂得多。例如,加速度计的读数可能是相对于固定在身体中的坐标系,而位置(和速度,如果有的话)是相对于完全不同的坐标系的。您将需要能够关联这两个框架。可能有测量值,比如俯仰滚转和偏航,你可以引入新的“姿态”状态;然而,观察和预测很可能都是状态的非线性函数。