卡曼滤波器调参
如果卡尔曼滤波器的表现不佳,你需要调整的主要是对系统中“不确定性”进行建模的三个关键参数:
self.matrix_R
(测量噪声协方差):- 这是最重要的“旋钮”。它告诉滤波器你的传感器有多可靠。
- 预测过于滞后/迟钝? ->
R
可能太大了,减小R
,让滤波器更相信新的测量值。 - 预测过于跳动/不稳定? ->
R
可能太小了,增大R
,让滤波器更多地依赖平滑的物理模型。
self.matrix_Q
(过程噪声协方差):- 它告诉滤波器你的物理模型有多可靠。
- 滤波器跟不上小行星的加速或转弯? ->
Q
可能太小了,增大Q
,让滤波器能更快地调整对速度和加速度的估计。 - 预测一直很发散,不稳定? ->
Q
可能太大了,减小Q
,让滤波器更相信物理模型。
初始
matrix_P
(首次观测时设置):- 它代表了你对新出现小行星初始状态的巨大不确定性。
- 初始收敛太慢? -> 增大初始
P
的值(例如从1000
到10000
)。这会让滤波器在开始时更倚重测量值,从而更快地估计出初始速度。
调试策略: 先从 R
开始调,找到一个视觉上看起来合理的平衡点;然后调整 Q
来优化对运动变化的跟踪能力;最后,如果初始几步有问题,再调整初始 P
。
卡曼滤波器的公式
卡尔曼滤波器是一个迭代过程,分为两个主要阶段:预测(Predict) 和 更新(Update)。
1. 预测阶段 (Predict)
此阶段利用前一时刻的估计值来预测当前时刻的状态。
状态预测方程 (Predicted State Estimate):
- : 当前时刻的预测状态(基于 k-1 时刻的估计)
- : 状态转移矩阵,描述了系统状态如何从 k-1 时刻演变到 k 时刻。
- : k-1 时刻的最优估计状态。
- : 控制输入矩阵。
- : 控制向量(如果没有控制输入,此项为0)。
协方差预测方程 (Predicted Covariance Estimate):
- : 当前时刻的预测协方差(衡量预测状态的不确定性)。
- : k-1 时刻的最优估计协方差。
- : 状态转移矩阵的转置。
- : 过程噪声协方差矩阵,描述了模型本身的不可预测性或系统固有的随机扰动。
2. 更新阶段 (Update)
此阶段结合了新的测量值来修正预测阶段的结果,得到当前时刻的最优估计。
卡尔曼增益 (Kalman Gain):
- : 卡尔曼增益,决定了在融合预测和测量时,各占多少比重。它在 0 和 1 之间,越大表示越信任测量值。
- : 观测矩阵,将状态空间映射到测量空间。
- : 测量噪声协方差矩阵,描述了传感器测量值的不确定性。
状态更新方程 (Updated State Estimate):
- : 当前时刻的最优估计状态(融合了测量值)。
- : 当前时刻的实际测量值。
- : 测量残差,即实际测量值与预测测量值之间的差异。
协方差更新方程 (Updated Covariance Estimate):
- : 当前时刻的最优估计协方差。
- : 单位矩阵。
这些公式详细说明了卡尔曼滤波器如何通过预测和更新的循环,从带有噪声的测量中估计出系统状态。
✅ 关键点摘要:
- 预测使用系统模型外推状态和不确定性。
- 更新结合新的传感器测量,并使用卡尔曼增益来最优地修正状态和不确定性。
💡 后续思考:
如果你想深入了解这些矩阵(F, H, Q, R)的具体构建方式,或者想看一个具体的例子(例如,一个物体在二维空间中的运动),请告诉我!