IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> (一)卡尔曼滤波算法简介 -> 正文阅读

[人工智能](一)卡尔曼滤波算法简介

参考自B站MATLAB中国《视觉SLAM十四讲》第9章9.1

1.卡尔曼滤波器–最优状态估计

假如有一个自动驾驶汽车比赛,要求参赛汽车根据GPS测量定位分别在100种地形上行驶1公里,在每种地形上都尽量停靠在1公里终点处。计算100次的平均最终位置,取位置方差最小且平均位置最接近1公里的队伍获胜。

在这里插入图片描述

在这里插入图片描述

GPS的定位是比较粗糙的,误差较大,为了赢得比赛,期望获得尽量准确的位置估计。一个汽车系统可以简化成如下形式,输入是油门,输出是位置

在这里插入图片描述

上图所示的汽车系统有比较多的状态量,其模型可表示为:
在这里插入图片描述

只保留速度作为输入,输出是位置后的简化模型为:
在这里插入图片描述

上式中: μ k \mu_k μk?是速度, x k x_k xk?是预测量, y k y_k yk?是测量量。
理想情况下测量值等于预测值,因此 y k = x k y_k=x_k yk?=xk?,因此 C = 1 C=1 C=1。为了让汽车停靠位置尽量靠近终点,因此必须得到尽可能准确的 y y y

实际场景还需考虑噪声,对于测量量 y k y_k yk?,使用GPS测量时难免会有测量误差,记为 v k ~ N ( 0 , R ) , R = σ v 2 v_k\sim N(0,R),R=\sigma _v^2 vk?N(0,R),R=σv2?。同样对于预测变量 x k x_k xk?,因 x k x_k xk?与速度有关,速度有可能受风速等的影响,必须考虑这个过程噪声,记为 ω k ~ N ( 0 , Q ) , Q = σ ω 2 \omega_k \sim N(0, Q),Q=\sigma _ \omega^2 ωk?N(0,Q),Q=σω2?。虽然不能准确的确定噪声的具体值,但可以知道噪声值的概率分布服从高斯分布。
在这里插入图片描述

上述介绍的是实际的汽车动力学模型,这个模型我们是不知道的,只能根据假设的模型来预测计算。
在这里插入图片描述

这里如何根据带有噪声的测量量和有噪声的预测量来尽可能准确的估计汽车的真实位置,正是kalman滤波可以做的事情。

在这里插入图片描述

如上图, k ? 1 k-1 k?1时刻的估计位置 x ^ k ? 1 \hat{x}_{k-1} x^k?1?方差较小,预测位置的不确定性较小,到了第 k k k时刻,预测值 x ^ k \hat{x}_k x^k?的不确定性变大,测量值 y k y_k yk?的不确定性相对较小,将预测量与测量量概率分布相乘,得到新的高斯分布,取其均值作为汽车在 k k k的位置是比较准确的。

预测量与测量量概率密度函数的乘法与如下所示的离散Kalman滤波方程有关,
x ^ k = A x ^ k ? 1 + B μ k + K k ( y k ? C ( A x ^ k ? 1 + B μ k ) ) \hat{x}_k = A\hat{x}_{k-1} +B\mu_k+K_k(y_k-C(A\hat{x}_{k-1} +B\mu_k)) x^k?=Ax^k?1?+Bμk?+Kk?(yk??C(Ax^k?1?+Bμk?))
卡尔曼滤波器是为随机系统设计的状态观测器。
上述方程的第一部分表示为 x ^ k ? \hat{x}_k^- x^k??,取决于 k ? 1 k-1 k?1时刻的输出 x ^ k \hat{x}_k x^k? k k k时刻的输入 μ k \mu_k μk?,如下图:
在这里插入图片描述

x ^ k ? \hat{x}_k^- x^k??部分取决于先前时刻的位置估计和当前的速度,因此也称为先验估计。借助 x ^ k ? \hat{x}_k^- x^k??,可将 x ^ k \hat{x}_k x^k?表示为:
x ^ k = x ^ k ? + K k ( y k ? C x ^ k ? ) \hat{x}_k = \hat{x}_k^- +K_k(y_k-C\hat{x}_k^-) x^k?=x^k??+Kk?(yk??Cx^k??)

从上式可以看到第二部分使用的是测量量, K a l m a n Kalman Kalman滤波方程由预测值和基于测量量的更新值组成, K k K_k Kk?称为Kalman 增益系数 x ^ k \hat{x}_k x^k?称为后验估计。如下图:

在这里插入图片描述

题外话:关于先验估计与后验估计,可以根据字面意思理解。先验估计顾名思义就是借助先前的经验来估计,譬如1枚硬币,在扔出去之前根据经验就可以估计出来出现正面的概率是1/2。后验估计,就是要通过测量试验后才能进行的估计,譬如已知一个箱子里装了红黑两种颜色的球,但是不知两种球的比率,学过概率后都知道可以从箱子中取样,样本中红黑球的比率可当作箱子中红黑球的比率,这种通过试验来进行的估计就是后验估计

回过来说汽车的例子,汽车位置估计的卡尔曼方程的先验估计和更新部分可表示为

在这里插入图片描述

还记得QR分别是过程噪声和测量噪声的方差,P表示的是预测值的协方差,对于单变量系统,其对应的是方差。卡尔曼增益 K K K用来调整预测值和测量值在状态估计时所在的比例,当预测值较准确时,希望 x ^ k ? \hat{x}_k^- x^k??占比大些,当测量时准确时,希望 y k ? C x ^ k ? y_k-C\hat{x}_k^- yk??Cx^k??所占的比例大些。

观察卡尔曼增益 K K K的表达式,当测量误差趋近于0时, R R R趋近0,可以得到估计值等于测量值,测量值的概率密度函数将变成1个脉冲值,其对应的位置就是最优估计。

在这里插入图片描述

再考虑当 P P P趋近于0时,此时卡尔曼增益也等于0,预测值完全取决于先验估计,与测量值无关。

在这里插入图片描述

卡尔曼滤波进行状态估计,并不需要所有的先验信息,只需 k ? 1 k-1 k?1时刻的预测估计,不断进行更新即可。

从前面描述中可以看到测量值是基于 G P S GPS GPS的,增加更多的传感器,如 I M U IMU IMU等可提高测量值的准确度,得到更准确的位置估计。观察卡尔曼方程,增加传感器时,只需要增加 y y y, K K K, C C C的维度即可。因此卡尔曼滤波器也被称为传感器融合算法。

在这里插入图片描述

2.非线性系统

第一部分介绍的简化后汽车模型的卡尔曼方程对应的是一个线性系统,实际中,更常见的是非线性系统,如汽车模型考虑摩擦,则预测值与速度的关系将变成非线性的。对应的测量函数也有可能与预测值之间是非线性的。
{ x k = A x k ? 1 + B μ k + ω k y k = C x k + v k = > { x k = f ( x k ? 1 , μ k ) + ω k y k = g ( x k ) + v k \left\{\begin{matrix} x_k = Ax_{k-1}+B\mu_k+\omega_k \\ y_k = Cx_k + v_k \end{matrix}\right.=>\left\{\begin{matrix} x_k = f(x_{k-1}, \mu_k)+\omega_k \\ y_k=g(x_k) + v_k \end{matrix}\right. {xk?=Axk?1?+Bμk?+ωk?yk?=Cxk?+vk??=>{xk?=f(xk?1?,μk?)+ωk?yk?=g(xk?)+vk??

在线性系统中,服从高斯分布的预测值和测量值经过线性运算后得到的估计值依然服从高斯分布:
在这里插入图片描述

而对于非线性系统得到的估计值将不再服从高斯分布,这将导致卡尔曼滤波器可能不收敛。
在这里插入图片描述

2.1扩展卡尔曼滤波器EKF

这里引出用于非线性系统的扩展卡尔曼滤波器(Extened Kalman Filter,EKF)EKF将非线性函数在 k k k时刻估算状态的平均值附近进行线性化,
在这里插入图片描述

使用EKF时有如下缺点:

  • 1)导数复杂时,雅可比矩阵的解析解不易求得
  • 2)使用数值解时,雅可比计算量较大
  • 3)EKF仅适用于可微系统模型,系统模型不可微分时无法求雅可比矩阵,不能使用EKF
  • 4)对于高度非线性系统,EKF的结果不是最优的
  • 5)对于系统某些不能线性近似的状态,EKF表现较差
    在这里插入图片描述

2.2 无迹卡尔曼滤波器UKF

由于EKF中使用了非线性函数的线性近似,存在诸多问题,而无迹卡尔曼滤波器(Unscented Kalman Filter,UKF) 通过近似预测量和测量量的概率分布而非近似非线性函数来进行状态估计。无迹卡尔曼滤波器在原概率分布上选择一组最小的采样点,使采样点的均值和方差与原概率分布相同,然后将每个采样点代入非线性函数进行计算得到输出点的均值和方差。根据输出点来计算高斯分布。
在这里插入图片描述

2.3 粒子滤波器

粒子滤波器(Particle Filter,PF),粒子滤波器近似任意分布,而不像UKF仅局限于高斯分布,为了估计任意的概率分布,粒子滤波器所需的采样点远远大于UKF。
在这里插入图片描述

3.总结

在这里插入图片描述
REF

1.https://www.bilibili.com/video/BV1V5411V72J?p=6&spm_id_from=pageDriver
2.https://book.douban.com/subject/27028215/

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:22:47  更:2022-04-01 23:27:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/8 4:24:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码