机器人感知:因子图在SLAM中的应用
第一章:引言
1.首先提出来机器人中的推断问题,SLAM问题是根据先验信息(包括之前时刻的位姿以及已知路标点信息)以及传感器测得信息(测到的路标点信息)这两个进行推断,推断出该时刻的位姿以及未知的路标点位置的问题。

2.在SLAM问题中,我们把观测量的集合设为Z,把未知变量(包括机器人的位姿和未知的路标点位置)用X表示,此时为了得到p(X|Z)这个条件概率密度的过程叫做概率推断。而为了给感兴趣的变量指定一个概率模型,并明确这些变量如何影响测量值(就是那个Z),我们引入概率图模型。

3.贝叶斯网络:一种生成模型。由于利用传感器生成测量量非常容易,所以在机器人领域,贝叶斯网络是一种对机器人中的推断问题进行建模的比较好的方法。如果我们知道了机器人的位姿、路标点的位置(这个是状态量)以及机器人上面配置的传感器之间的相对几何位置(这个类似于传感器模型),我们就可以预测出测量值是多少。并且传感器的噪声模型我们也可以通过假设或学习得到,而观测量预测和噪声模型就是生成模型两大核心要素,就很好的和贝叶斯模型匹配起来了。(注:容易看出对于SLAM问题,我们可不是要预测测量值的,上面那种情况实际是反的,所以贝叶斯网络不适用于SLAM,我们不需要生成模型,我们需要推断模型,因子图就是推断模型)。

4.来一张贝叶斯网络是怎么计算的图:

①1.4式子是一个马尔科夫链,条件概率密度函数p(xt+1|xt)可以通过先验知识与已知的控制输入推导出来。
②1.5式 如果没有先验地图,这两个就不会存在。
③1.6式中的x1指的是绝对位姿。
④图模型之间的结构说明了数据间的关联。

5.上面都在说概率密度函数,那它到底是什么式子呢。我们一般取的模型是多元高斯模型,他长这样:

而我们要得到p(Z|x,l) 这里面Z由传感器观测得到,所以我们建立一个传感器观测函数h(.),一般情况这个函数是非线性函数,则观测模型为Z=h(x,l)+η,这个时候概率密度就是这样了

h(x,l)这个时候得到的计算值就是μ,而η是由矩阵为R的零均值高斯分布所描述,但是我们也不会一直假设观测噪声符合高斯分布,有的时候为了处理偶然的数据关联误差,我们可以使用鲁棒观测概率密度,即概率分布曲线具有比高斯分布更长的尾巴。
有些概率密度不使用观测信息,比如说里程计,它主要用上一时刻的信息,这个时候就又是一种概率密度形式了,但都还是多元高斯模型。

6.在贝叶斯网络中进行模拟:对概率密度分解就是进行局部采样过程。比如1.4是对机器人的运动轨迹进行模拟;1.5是对l1,l2路标点进行采样,生成l1l2的模拟;1.6,1.7则是在模拟传感器的观测值。

7.SLAM问题是在求一个最大后验概率;后验概率就是p(X|Z),而似然概率就是p(Z|X)。最大后验概率可以通过贝叶斯法则转化为最大似然概率,这是非常基础的转化,不过多说。最大似然的直观理解就是在什么样的状态下,最可能产生现在观测到的数据。

8.SLAM问题一般运用因子图来进行推断。上面的小型SLAM问题可以用因子图表示为


而主要的好处就是你在计算概率密度的时候只要进行乘就完事了:

经过这些公式的对比,发现1.27 1.28这些表示的是似然概率。
主要方便的地方在于,乘就完事了,我们可以运用对数或反对数转化成因子的相加。

9.在一个概率密度分布函数中进行采样,可以帮助我们进行可视化和计算与后验概率相关联的统计值和期望值。因子图的有效采样算法是马尔可夫蒙特卡洛方法,方法之一就是吉布斯采样:每一步从其条件概率密度分布中对单一变量进行采样,而条件概率密度分布由采样变量通过因子链接的所有其他变量给定。(我们假定了条件概率很容易得到,但对于离散变量来说很难得到)。

10.因子图可以清晰的描述大型非线性最小二乘问题的独立性假设和稀疏性本质;是稀疏线性求解器的核心;清晰的展示了滤波器和增量推断的本质;自然的形成了机器人的分布式或并行版本。

第二章 平滑与地图构建
1.平滑与地图构建(smoothing and mapping)就是SAM算法,他是离线批处理SLAM方法中最新技术发展水平,这章主要介绍的是非线性因子图的非线性迭代优化技术。
2.

这是一个大型一点的SLAM因子图,其中方块是路标点,这类slam问题中,除了先验因子,其他的所有因子都是非线性的;部分未知状态量在部分维度上将具有无穷大的不确定性,我们要利用先验知识来进行修正。
3.SLAM领域内的最大后验概率推断是利用已知但不确定的信息决定未知量最可能值的过程。
4.对于我们因子图中,主要包括两种因子:简单的高斯先验、受到零均值正态分布噪声干扰的观测量推导出来的似然因子。
5.都知道SLAM问题是要转化为最小化非线性最小二乘问题

最小化上述目标函数,可以通过结合一些由观测量推导出来的似然因子和一些可能的先验信息,唯一地决定未知量的最大后验概率解,从而实现传感器数据的融合。
6.除了简单的先验因子,观测量zi通常比未知量Xi的维度要低。比如对于一个相机采集到的二维观测,是有很多三维点与它唯一对应的,只有多个观测量结合起来,我们才有希望得到变量的唯一解。这里也解释了第二点中最后一句话。
7.接下来就是如何将非线性最小二乘问题进行线性化及对它进行非线性优化。这里是SLAM的基本问题,将写一下线性化的过程,并对非线性优化的方法简要叙述,本章还有直接法求解最小二乘问题,见书2.4节,不过多描述、
1)线性化:
①首先干的事情当然是对2.4式子中的hi(x)进行泰勒展开

其中Hi是观测雅克比矩阵,是在给定线性化点Xi0处关于hi(.)的多变量偏微分

这样变化后,我们可以把2.4式转化为这个形式

这里我们求的是更新量了△了,其中zi-hi(X0)是在线性化点处的预测误差,就是实际观测量与理论值的差值。
②接下来干的是把马氏范数转变为2范数



三步结束,其中第二步叫做白化过程,这个过程消掉了观测量的单位。A,b是合并了所有的Ai和bi,雅克比矩阵A是一个大而稀疏的矩阵,有一个块结构,反映出因子图的结构。
2)狗腿法求解最小二乘问题
梯度下降法、高斯牛顿法、LM法这些都是基础,不展开,其中LM方法的方程式可以从贝叶斯角度理解为给系统增加了一个零均值的先验信息。

LM方法的缺点就是当一次更新被拒绝后,修改的信息矩阵需要被重新分解,而分解的过程是整个算法中最耗时的部分。
接下来说狗腿算法:他的想法就是用高斯牛顿与梯度下降计算更新量,然后有效地结合起来。如果更新被拒绝则更新的方向依然有效,并且他们可以以一种不同的方式重新结合起来,知道目标函数下降为止。每次状态估计量的更新只涉及一个而非多个矩阵的分解。

首先以梯度下降法得到的更新量作为初始值,随后向高斯牛顿的更新方向有一个大的弯折,这个弯折也就是被称作狗腿的原因,但是弯折也要停止于置信域的边界处。狗腿算法在我们信任其线性假设的范围内维护一个明确的置信域(Trust region),线性近似的合理性由增益比例ρ保证,ρ这样算:

如果ρ<0.25,说明当前线性化项预测的目标函数值并未按预期减小,这时候把信任区域缩小;如果ρ>0.75,那么信任区域根据更新向量的大小进行增长,并且更新步长会被接受。

但是狗腿算法没啥局限吗,是有的:他和高斯牛顿一样都要求观测雅克比矩阵满秩,用来保障ATA是可逆的;如果遇到了欠约束系统,就是没有足够观测量,或者数值病态的系统,还是得LM方法。

第三章 探索稀疏性
1.非线性的SLAM系统需要进行最大后验概率推断实际就需要迭代求解大型稀疏的线性系统。因子图的稀疏结构是理解求解线性系统本身这个算法的一个关键因素,也是理解稀疏分解的关键因素。其实稀疏线性系统就是线性高斯因子图的一种特殊形式,就是所有的先验和观测都是高斯分布呗,并且观测函数是线性的。
2.其实直观来看因子图就能发现他的稀疏性,比如这个图一看就不是一个全连接图,他的未知位姿路标是100个,他是由100个二元因子的线性结构,而不是100²个二元因子;而且对于路标点来说,图中最多就400个因子,而理论上要2000个。所以说这肯定是稀疏的。

3.因子图是可以导出雅克比矩阵A中的稀疏块结构,其实非线性SLAM问题最关键的计算步骤是这个

上式每一项都由原始非线性SLAM问题中的一个因子推导来,并在当前线性点进行线性化。

其中每一个因子对应于A的一个块行,每一个变量对应A的一个块列。
3.H矩阵是ATA这样算的,这种构造方法我们知道H矩阵是对称的,并且如果存在唯一的最大后验概率解,H矩阵还是正定的。H矩阵也叫做信息矩阵,他是与马尔科夫随机场这种无向图模型进行对应的。他大概张这样,你会发现他的矩阵是变量与变量之间的相关性,而因子图是变量与因子之间。

与因子图相比,马尔科夫随机场只表示了变量之间的相关性,如果是有边的话,只表示它所连接的变量之间是部分关联的。注:作者给出了一篇论文用来解释马尔科夫随机场如何表示不同类型的因子概率密度,名字如下:

4.之前也说到因子图就是未归一化的后验概率表示为一系列因子的乘积。在SLAM问题中,因子图是由观测量生成的,然后咱接下来要说的消元算法是将因子图转化回贝叶斯网络的方法,但是仅仅转换未知量X。优点:使最大后验概率推断、采样、边缘化变得容易。
5.变量消元算法就是要干的就是把3.5转化为3.6式子

具体的算法流程是:

这里面根据消元的顺序,得到分离器Sj,而如何从一个因子图Φj:n中消去变量xj

6.给一个小型slam的例子看看在因子图如何表示消元过程:

被消元的因子呈灰色,而在分离器Sj上生成的因子τ(Sj)呈现红色。需要注意一下几点:
①看移除的变量与哪些变量相连,把它写到条件概率上去,τ(Sj)这个红因子是与消去因子有关系的因子之间产生。
②消去谁箭头指向谁。
③箭头是不能双向的。

  1. 3.3-3.4节讲了消元算法和QR分解与Cholesky分解是等价的。



    注意看3.4.1节与3.4.2节。

机器人感知:因子图在SLAM中的应用(读书笔记)第一至三章相关推荐

  1. 锋利的Jquery【读书笔记】 -- 第四章 jQuery中的事件和动画

    锋利的Jquery读书笔记 第三章 jQuery中的DOM操作 jQuery中的事件 事件绑定 bind方法 合成事件 hover方法 toggle方法 事件冒泡 事件对象 停止事件冒泡 阻止默认行为 ...

  2. 视觉SLAM十四讲读书笔记(2)P10-P27

    目录​​​​​​​ Q:一个视觉SLAM框架由哪几个模块组成,各模块的任务又是什么 Q:什么是机器人的自主运动能力 Q:什么是机器人的感知 Q:什么是激光雷达 Q:什么是增强现实 Q:什么是IMU单元 ...

  3. 在Java中构建响应式微服务系统——第三章 构建响应式微服务

    第三章 构建响应式微服务 在本章中,我们将使用Vert.x构建我们的第一个微服务.由于大多数微服务系统使用HTTP进行交互,因此我们将以HTTP微服务作为开始.但是由于系统包含多个相互通讯的微服务,因 ...

  4. mozart-oz中有限域编程读书笔记

    mozart-oz自带文档: <Finite Domain Constraint Programming in Oz. A Tutorial.>读书笔记 http://www.mozart ...

  5. 谈谈在计算机系统中引入操作系统,初中信息技术第一册第二章第1节《操作系统简介》教学设计...

    广州市初中信息技术第一册第二章第1节<操作系统简介>教学设计 一.学习者分析 学生通过第一章的学习,对计算机的软.硬件知识有了初步的了解,同时对操作系统的作用也有了简单的认识.但由于学生普 ...

  6. 计算机中的表示方法,计算机应用基础第三章计算机中信息的表示方法

    <计算机应用基础第三章计算机中信息的表示方法>由会员分享,可在线阅读,更多相关<计算机应用基础第三章计算机中信息的表示方法(17页珍藏版)>请在人人文库网上搜索. 1.第第三三 ...

  7. 视觉SLAM十四讲学习笔记-第一讲

    第一讲:预备知识 SLAM介绍 SLAM 是 Simultaneous Localization and Mapping 的缩写,中文译作"同时定位与地图构建".它是指搭载特定传感 ...

  8. 视觉SLAM十四讲读书笔记(5)P40-P52

    目录 Q:什么是eigen Q:正交矩阵的定义和性质 Q:什么是特殊正交群 Q:什么叫齐次坐标 Q:什么是特殊欧氏群 Q:什么是运算符重载 Q:什么是g2o Q:什么是sophus Q:什么是eige ...

  9. 视觉SLAM十四讲读书笔记(3)P27-P31

    目录 Q:介绍一些常见的Linux系统 Q:Kinect是什么 Q:什么是编译器 Q:GNU是什么 Q:GNUME桌面环境是什么 Q:gedit是什么 Q:unix和Linux有什么关系和不同 Q:什 ...

  10. 《算法导论》读书笔记之第1章 算法在计算机中的作用

    本章是本书的开篇,介绍了什么是算法,为什么要学习算法,算法在计算机中的地位及作用. 算法(algorithm)简单来说就是定义良好的计算机过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出. ...

最新文章

  1. 【Top 50】中美人工智能高被引学者榜单:孙剑、何恺明、李飞飞进前5
  2. php setjmp longjmp,我本来以为setjmp和longjmp的实现很复杂【附代码】
  3. thinkphp ajax 实例 实现
  4. 专访 YYKit 作者 ibireme: 开源大牛是怎样炼成的
  5. php curl_setopt 登录 获取数据
  6. Writing udev rules
  7. c#数据格式化之DataFormatString
  8. 保研夏令营/预推免联系老师邮件模板
  9. 并行计算、分布式计算、集群计算和网格计算的介绍,以及主要有哪些区别?
  10. Cisco Packet Tracer入门实验之双机互联
  11. 关键词、词库、关键词词库
  12. FANUC机器人外部电缆连接示意图(一)
  13. jQuery制作tab选项卡
  14. 《富爸爸穷爸爸》读书摘录脑图
  15. oracle存储过程之关键词dual
  16. 三星5亿美元再建液晶模组厂 广深抛绣球
  17. android 9 手机硬件性能,一加9系列系统评测:功能丰富+稳定流畅,或是目前最佳安卓系统...
  18. 阿发你好java_阿发你好 - 主页
  19. 2021电气控制与PLC应用(期末必背重点)分享
  20. 如何用解压缩工具破解PPT文档保护

热门文章

  1. 青春期发育阶段的测量
  2. win2003服务器性能工具,WindowsServer 2003 Service Pack 1 支持工具
  3. 十万,百万,千万,快狗打车架构是怎么演进的?
  4. centos7 firefox 安装 java plugin方法
  5. [渝粤教育] 九江职业技术学院 客户关系管理 参考 资料
  6. 总结一下m3u8格式相关问题
  7. Windows超级管理器,电脑必备神器,内置超多实用小工具,帮你解决电脑相关问题!
  8. HTML5CSS3:Day03 2D动画 3D动画 CSS3过渡
  9. android 获取N天前的日期或N天后日期
  10. P5.js码绘---阿珊自画像