机器人感知:因子图在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.因子图可以清晰的描述大型非线性最小二乘问题的独立性假设和稀疏性本质;是稀疏线性求解器的核心;清晰的展示了滤波器和增量推断的本质;自然的形成了机器人的分布式或并行版本。
未完待续。。。