卡尔曼滤波
大约 2 分钟
卡尔曼滤波
注意
该笔记仅在旧笔记的基础上进行归类, 尚未对格式进行修复
用途
- 从存在噪音/漂移的多个测量值中得到准确值
- 从间接测量量得到目标测量量
模型
- 输入变量 如速度/力
- 输出变量 如传感器读数
- 估计状态 如实际位置/速度
- 误差
- 比例矩阵 反应 与 之间的关系
- 如果 与 为单变量, 则 为系数
- 如果 与 为同一变量, 则
- 当变量 上有标记 , 表明 为一个估计状态
误差方程
整理得到
通过选择合理的 , 可以使误差最终收敛于 0
实际误差
x_k=Ax_{k-1}+Bu_k+w_k$$ 其中有误差 $w_k\sim N(0,Q)$ 2. $$y_k=Cx_k+v_k$$ 其中有误差 $v_k\sim N(0,R)$ 3. 使用概率密度的方式表示 $\hat{x_k}$ 与 $y_k$, 得到如图 ![](./src/kalman_1.jpg) 结合 $\hat{x_k^-}$ 与 $y_k$, 可以得到一个方差更小, 更准确的 $\hat{x_k}$ ## 计算过程 ### 预测部分 1. $\hat{x_k^-}$ 表示变量 $x$ 的预估计值 2. $P_k^-$ 表示预估计值的方差 3. $$\hat{x_k^-}=A\hat{x_{k-1}}+Bu_k
更新部分
卡尔曼修正值
通过比较 与 的方差计算两者对于准确估计值的权重, 称为卡尔曼修正值
一维卡尔曼滤波示例
- 一维下没有矩阵, 则将转置运算视为倒数, 单位阵 视为 1
- 测量量即估计量, 取
- 希望估计量保持稳定, 取
- 用于温度, 气压等变化缓慢的量
- 对于复杂运动关系需要查找对应的
- 参数 R 表示观测值的方差, 应尽可能准确, 可根据传感器的误差统计
- 增加Q, 增益增加, 即观测值在状态更新方程中的权重变大, 滤波器更加灵敏, 反之亦然
- 增加R, 增益减小, 即观测值在状态更新方程中的权重变小, 滤波器反应迟钝, 反之亦然
- 参数 Q 的取值在 R/9 - R/4 较合适
- 一般不考虑 与