非官方无责任不靠谱系列之概率机器人。
《概率机器人》出版年:2016,作者:[美] 塞巴斯蒂安 · 特龙
一、课本部分
此书每章后面都有文献综述,很有特色。
第一章
机器人学中的不确定性:
① 传感器;
② 执行器,来自如控制噪声、磨损及机械故障的影响,但是有些中型机构,如工业机器人手臂,是非常准确和可靠的;
③ 机器人软件,世界的所有内部模型都是近似模型,模型只是部分地模拟机器人及环境的基本物理特性。最先进的机器人系统使用的模型大多数是相当粗略的。
④ 近似算法。
概率机器人的思想是用概率的方法来表示在整个推测空间的概率分布信息。这样做,就可以用数学上合理的方式表示模糊性和置信度。可以根据存在的不确定性选择相对鲁棒的控制方式,当控制方式是较好的选择时,概率机器人技术甚至可以选择主动减少机器人的不确定性。
第二章
状态
状态即为环境特征,包括但不限于:
机器人位姿(pose)
关节角度等运动学状态(kinematic state)
速度和角速度等动态状态(dynamic state)。在本书中,动态状态的作用很小。
环境中周围物体的特征。
置信分布
bel(xt)一bar=(基于1~t时刻控制量u1:t && 1~t-1时刻观测量z1:t-1)的状态xt的概率。
bel(xt)=(基于1~t时刻控制量u1:t && 1~t时刻观测量z1:t)的状态xt的概率。
计算bel(xt)一bar被称为预测,由bel(xt)一bar计算bel(xt)被称为修正或测量更新。
bel(xt)一bar是基于以前状态的后验,是刚刚执行完ut的预测,而bel(xt)则是执行完ut之后,又“看了一眼”(观测到了zt)。
而经过一番数学推导,贝叶斯滤波算法告诉我们,bel(xt)可通过递归得到,变编程方便。
马尔可夫链
一个完整的状态 xt 可以预测未来,其他状态除非依赖 xt,否则无法影响未来的状态。满足这些条件的暂态过程称为马尔可夫链。
马尔可夫假设
如果知道当前状态xt,马尔科夫假设设定过去与未来的数据都是独立的。
马尔可夫假设是贝叶斯滤波算法的基础。
实际上,扰乱马尔可夫假设的因素如下:
① xt中为包括的未建模动态环境因素(如移动的人对传感器观测到的数据的影响)。
② 使用置信函数近似表示引起的近似误差(如栅格或高斯)。
等。
第七章
马尔可夫定位
马尔可夫定位是贝叶斯滤波定位最简单的应用。算法与第二章类似,也需要计算bel(xt)一bar和bel(xt),区别在于需要地图m作为输入之一。
如果初始位姿已知其近似值,那么置信bel(xt0)通常由位于中心x0附近的一个窄高斯分布初始化;如果初始位姿未知,那么bel(xt)由在地图上所有的合法位姿空间上的均匀分布bel(xt0)=1/|X| 初始化。
扩展卡尔曼滤波定位
扩展卡尔曼滤波(EKF)定位算法是马尔可夫定位的一种特定情况。
算法中所有的特征唯一地可辨认。
物理实现的例子:
① 预测步骤。
运动之后(执行ut之后),预测位置。
② 修正步骤:测量预测。
扩展卡尔曼滤波算法使用已预测的机器人位置和不确定性,来预测zt一bar。更新向量(innovation vector)为(zt - zt一bar),它是观察的预测与测量之间的差值。也就是说,更新向量“越短”,测量值就越有可能。
③ 修正步骤:估计更新。
扩展卡尔曼滤波定位算法的修正步骤基于更新向量和测量预测的不确定性重新位置估计。朝降低测量更新的方向移动位置估计,移动的幅度根据卡尔曼滤波决定。观察越确定,卡尔曼增益越高,因此产生的位置修正就越大。
估计一致性
实际上,大多数实现是在定位过程中确定地标身份的,最简单的策略被称为极大似然一致性,该方法首先确定一致性变量的最大可能值,然后理所当然地使用这个值。极大似然技术会导致滤波器的脆弱性。
无迹卡尔曼定位
无迹卡尔曼滤波(UKF)定位是一个基于特征的使用无迹卡尔曼滤波的机器人定位算法。其基本步骤与扩张卡尔曼滤波相似,也是分为:① 预测步骤、② 测量预测、③ 修正步骤:估计更新。
第八章
移动机器人定位:栅格与蒙特卡罗。
蒙特卡罗定位
用粒子表示置信度。
容易实现,并且对于大范围的局部定位问题工作良好。
① 初始全局不确定性通过随机抽取的位姿粒子集合取得,均匀分布在整个位姿空间。
② 机器人感知到门后,蒙特卡罗定位为每个粒子分配重要性权重。
③ 重采样并综合了机器人运动后的粒子合集,具有新的均匀重要性权重。在3个可能的位置附近增加了粒子数。
④ 新的测量分配了非均匀的重要性权重给粒子集合。
⑤ 进一步运动引起另一重采样步骤和根据运动模型产生新粒子的步骤。周而复始。
基本的蒙特卡罗算法用M个粒子的集合表示置信度bel(xt)。
动态环境下的定位
第一种技术:状态曾广技术(state augmentation),将隐藏状态包含进由滤波器估计的状态。
第二种技术:异常值去除技术(outlier rejection),会预处理传感器测量值以去除受隐藏状态影响的测量值。
二、PPT部分
RBPF(RB粒子滤波)
也就是或RPBF主要分为两个部分,一是定位,二是建图。
粒子滤波的主要步骤:(蒙特卡罗定位)
① 画出新一代粒子;
② 为每个粒子分配重要性权值;
③ 重采样。
RBPF建图:
每个粒子表示机器人的可能轨迹。
每个粒子维护自己的地图,根据已知的位姿更新地图。
每个粒子的存活率与观测量映射到自身地图的似然成正比。
问题
每个粒子都要维持自己的地图,因此存储量和计算量很大。
需要粒子数目与状态空间的维数成指数正比关系—— 维数灾难!