第一章 绪论
机器人中的不确定性
- 机器人所处的环境。尤其是在有人的,高动态环境中。
- 传感器。受到传感器物理限制、性能限制,以及噪声和故障。
- 执行机构。控制噪声、机械故障等。
- 软件。内部模型是近似模型,是真实世界的抽象,存在模型误差
- 近似算法。
概率机器人学
概率机器人的主要思想是用概率理论的运算,明确表示机器人中的不确定性。不再只依赖可能出现情况的单一的“最好推测”,而是用概率算法来表示在整个推测空间的概率分布信息。
与传统机器人编程技术(基于模型和基于行为)相比,概率方法在面对传感器的局限和模型局限时鲁棒性更强。在很多方面,概率机器人即是基于模型的,又是基于行为的技术。
概率机器人学的代价:
-
计算复杂性。概率算法本质上比非概率算法效率低。因为它考虑的是整个概率密度而不是单一的推测。
-
近似的必要性。精确的后验分布往往很难计算,不确定性可以用一个紧凑的参数模型(如高斯分布)较好的近似。
第二章 递归状态估计
概率机器人技术的核心就是由传感器数据来估计状态的思路。状态估计指的是从传感器数据来推断不能直接观测的状态变量。
基本概率公式
建模:传感器、控制、机器人状态、环境等都建某为随机变量。
正态分布概率密度函数:
p(x)=(2πσ2)−21exp{−21σ2(x−u)2}
记作**N(x;u,σ2)**
多元状态分布概率密度函数:
p(x)=det(2πΣ)−21exp{−21(x−u)TΣ−1(x−u)}
**Σ是协方差矩阵,为半正定对称矩阵。μ**为均值矢量。
多元是单变量的泛华,对于单变量,Σ=σ2,上面两式等价。
概率密度函数积分为1:
∫p(x)dx=1
联合分布:
p(x,y)=p(X=x,Y=y)
若X与Y独立,则有:
p(x,y)=p(x)p(y)
条件概率:
p(x∣y)=p(y)p(x,y)(p(y)>0)
若X与Y独立,有:
p(x∣y)=p(y)p(x)p(y)=p(x)
若X与Y以变量Z条件独立,则有:
p(x,y∣z)=p(x∣z)p(y∣z)(条件独立下的联合概率分布)p(x∣z)=p(x∣z,y)p(y∣z)=p(y∣z,x)
条件独立不代表独立,独立也不代表条件独立:
p(x,y∣z)=p(x∣z)p(y∣z)⇏p(x,y)=p(x)p(y)p(x,y)=p(x)p(y)⇏p(x,y∣z)=p(x∣z)p(y∣z)
条件独立非常重要
全概率公式:
p(x)=y∑p(x∣y)p(y)(离散情况)p(x)=∫p(x∣y)p(y)dy(连续情况)
贝叶斯准则:
p(x∣y)=p(y)p(y∣x)p(x)=∑x′p(y∣x′)p(x′)p(y∣x)p(x)(离散)p(x∣y)=p(y)p(y∣x)p(x)=∫p(y∣x′)p(x′)dx′p(y∣x)p(x)(连续)
p(x)为先验概率,p(x∣y)为后验概率,p(y∣x)为生成模型。
由于p(y)不依赖于x,p(y)−1经常写成归一化常量η,因此贝叶斯公式可以写作:
p(x∣y)=ηp(y∣x)p(x)
条件下的贝叶斯准则:
p(x∣y,z)=p(y∣z)p(y∣x,z)p(x∣z)
期望与协方差:
E[X]=x∑xp(x)(离散)E[X]=∫xp(x)dx(连续)Cov[X]=E[X−E[X]]2=E[X2]−E[X]2
期望是随机变量的线性函数:
E[aX+b]=aE[X]+b
熵(用来表示机器人接受的信息):
Hp(x)=E[−log2p(x)]Hp(x)=−x∑p(x)log2p(x)(离散)Hp(x)=−∫p(x)log2p(x)dx(连续)
−log2p(x)表示使用最佳编码对x编码所需的比特数。
机器人与环境交互
环境或者世界是有内部状态的动态系统,机器人通过传感器获得环境的信息,由于传感器噪声和数据的不完备性,机器人保持其对于环境的一个内部置信度。环境特征用状态来表示。
典型的状态变量如下:
- 位姿
- 机器人执行机构配置
- 机器人速度和角速度
- 环境中的物体位置和特征。环境可能有很多状态变量,取决于建模的状态粒度。
- 移动的物体的位置和速度
- 影响机器人运行的其他状态变量
假设一个状态xt可以最好地预测未来,则称其为完整的。完整性包括过去状态测量及控制的信息,没有先于xt的状态变量可以影响未来状态的变化。这种过程也称为马尔科夫链。完整性在理论上很重要(各种推导经常假设马尔科夫性),实际上的机器人系统不可能有完整的状态。
状态空间可以是连续的,或者离散的,或者混合状态空间(即包含连续状态空间又包含离散状态空间)。
机器人与环境的两种基本交互:
-
测量。用传感器获取环境信息,又称为观测,感知等。
-
控制。控制机器人,改变世界状态。
测量和控制的记录称为数据。
zt1:t2=zt1,zt1+1,zt1+2,⋯,zt2测量数据ut1:t2=ut1,ut1+1,ut1+2,⋯,ut2控制数据
概率生成法则
状态演变概率法则:
p(xt∣x0:t−1,z1:t−1,u1:t)
观测过程:
p(zt∣x0:t,z1:t−1,u1:t)
若状态x是完整的,即某个状态是前面所有状态的充分总结,则由条件独立,有:
p(xt∣x0:t−1,z1:t−1,u1:t)=p(xt∣xt−1,ut)p(zt∣x0:t,z1:t−1,u1:t)=p(zt∣xt)
**概率p(xt∣xt−1,ut)和p(zt∣xt)称为状态转移概率和测量概率,两者一起描述机器人及环境组成的动态随机系统。**这样的时间生成模型也称为隐马尔科夫模型或动态贝叶斯网络。

置信分布
置信度反映了机器人有关环境状态的内部信息,由于状态不能直接测量,机器人使用置信度来识别真正的状态。机器人通过概率分布表示置信度,置信度分布是以可获得数据为条件的关于状态变量的后验概率
bel(xt)=p(xt∣z1:t,u1:t)
定义bel(xt):
bel(xt)=p(xt∣z1:t−1,u1:t)
在概率滤波的框架下,bel(xt)称为预测,由bel(xt)计算bel(xt)称为修正或者测量更新。
贝叶斯滤波
大多数计算置信度的通用算法都是基于贝叶斯滤波。
贝叶斯滤波是递归的,下图是贝叶斯算法的一次迭代。

贝叶斯滤波主要包含两个过程:
- 控制更新(预测)
- 测量更新
讨论
- 马尔科夫假设或者完整状态假设是苛刻的,其规定了过去数据和未来数据是独立的。但是很多因素会破坏这个假设,如
-
xt中未包含的环境因素
-
概率模型的不精确性
-
近似误差
-
控制系统的软件变量
定义状态xt时,应该尽量使未建模的状态变量的影响具有随机的效果。
- 贝叶斯滤波能以多种方式实现,一般的问题中,置信度必定是近似的。选择一个近似,需要考虑如下问题:
-
计算效率
-
近似的精度
这个假设,如
-
xt中未包含的环境因素
-
概率模型的不精确性
-
近似误差
-
控制系统的软件变量
定义状态xt时,应该尽量使未建模的状态变量的影响具有随机的效果。
- 贝叶斯滤波能以多种方式实现,一般的问题中,置信度必定是近似的。选择一个近似,需要考虑如下问题: