卡尔曼滤波器例子:追踪汽车的位置与速度
第一步:预测(依据运动规律)
运动规律
假设汽车的运动规律如下:
每秒的「位置」 = 前一秒的位置 + 速度 × 时间。
已知初始条件
-
初始位置:
x_0 = 0 公尺。 -
初始速度:
v_0 = 20 公尺/秒。 -
时间间隔:
Δt = 1 秒。
计算预测值
预测位置:
根据运动规律:
x_1 = x_0 + v_0 × Δt
带入数据:
x_1 = 0 + 20 × 1 = 20 公尺。
预测速度:
速度保持不变:
v_1 = v_0 = 20 公尺/秒。
预测结果
- 位置:20 公尺
- 速度:20 公尺/秒
第二步:更新(依据测量数据修正)
假设感测器测量到的位置
感测器测量到的位置为:
z_1 = 22 公尺
但测量可能有误差。
测量与修正
测量差异:
测量值与预测值的差异:
差异 = z_1 - x_1
带入数据:
差异 = 22 - 20 = 2 公尺。
卡尔曼增益(修正权重):
- 预测的不确定性:我们对预测值的信任程度。
- 测量的不确定性:感测器的测量準确度。
假设计算卡尔曼增益得到:
卡尔曼增益 = 0.8
修正位置:
修正公式:
x_{1|1} = x_{1|0} + (卡尔曼增益 × 差异)
带入数据:
x_{1|1} = 20 + (0.8 × 2) = 20 + 1.6 = 21.6 公尺。
修正速度:
修正公式:
v_{1|1} = v_{1|0} + (速度修正权重 × 差异)
假设速度修正权重为 0.25:
v_{1|1} = 20 + (0.25 × 2) = 20 + 0.5 = 20.5 公尺/秒。
第三步:结果
更新后的状态:
- 位置:21.6 公尺
- 速度:20.5 公尺/秒
更新后的误差:
修正后,对位置和速度的估计误差减少,结果更可信。
下一步:进行第二秒的预测与更新
预测位置和速度:
x_2 = x_{1|1} + v_{1|1} × 1 = 21.6 + 20.5 = 42.1 公尺
v_2 = v_{1|1} = 20.5 公尺/秒
用新的测量值进行修正:
假设下一秒测量值为:
z_2 = 43 公尺
重复上述修正步骤。