概率机器人笔记1-2章

第一章 绪论

机器人中的不确定性

  • 机器人所处的环境。尤其是在有人的,高动态环境中。
  • 传感器。受到传感器物理限制、性能限制,以及噪声和故障。
  • 执行机构。控制噪声、机械故障等。
  • 软件。内部模型是近似模型,是真实世界的抽象,存在模型误差
  • 近似算法。

概率机器人学

概率机器人的主要思想是用概率理论的运算,明确表示机器人中的不确定性。不再只依赖可能出现情况的单一的“最好推测”,而是用概率算法来表示在整个推测空间的概率分布信息。

与传统机器人编程技术(基于模型基于行为)相比,概率方法在面对传感器的局限和模型局限时鲁棒性更强。在很多方面,概率机器人即是基于模型的,又是基于行为的技术。

概率机器人学的代价:

  1. 计算复杂性。概率算法本质上比非概率算法效率低。因为它考虑的是整个概率密度而不是单一的推测。
  2. 近似的必要性。精确的后验分布往往很难计算,不确定性可以用一个紧凑的参数模型(如高斯分布)较好的近似。

第二章 递归状态估计

概率机器人技术的核心就是由传感器数据来估计状态的思路。状态估计指的是从传感器数据来推断不能直接观测的状态变量。

基本概率公式

建模:传感器、控制、机器人状态、环境等都建某为随机变量。

正态分布概率密度函数:
p(x)=(2πσ2)12exp{12(xu)2σ2} p(x)=(2\pi\sigma^2)^{-\frac12} \exp \left\{ -\frac12 \frac{(x-u)^2}{\sigma^2} \right\}
记作**N(x;u,σ2)\mathcal{N}(x;u,\sigma^2)**

多元状态分布概率密度函数:
p(x)=det(2πΣ)12exp{12(xu)TΣ1(xu)} p(x)=\mathrm{det}(2\pi\Sigma)^{-\frac12}\exp\left\{-\frac12(x-u)^T\Sigma^{-1}(x-u)\right\}
**Σ\Sigma是协方差矩阵,为半正定对称矩阵。μ\mu**为均值矢量。

多元是单变量的泛华,对于单变量,Σ=σ2\Sigma=\sigma^2,上面两式等价。

概率密度函数积分为1:
p(x)dx=1 \int p(x)\,\mathrm{d}x=1
联合分布:
p(x,y)=p(X=x,Y=y) p(x,y)=p(X=x,Y=y)
XXYY独立,则有:
p(x,y)=p(x)p(y) p(x,y)=p(x)p(y)

条件概率:
p(xy)=p(x,y)p(y)(p(y)>0) p(x|y)=\frac{p(x,y)}{p(y)}\quad(p(y)>0)
XXYY独立,有:
p(xy)=p(x)p(y)p(y)=p(x) p(x|y)=\frac{p(x)p(y)}{p(y)}=p(x)
XXYY以变量ZZ条件独立,则有:
p(x,yz)=p(xz)p(yz)(条件独立下的联合概率分布)p(xz)=p(xz,y)p(yz)=p(yz,x) p(x,y|z)=p(x|z)p(y|z)\quad\text{(条件独立下的联合概率分布)}\\ p(x|z)=p(x|z,y)\\ p(y|z)=p(y|z,x)

条件独立不代表独立,独立也不代表条件独立
p(x,yz)=p(xz)p(yz)p(x,y)=p(x)p(y)p(x,y)=p(x)p(y)p(x,yz)=p(xz)p(yz) p(x,y|z)=p(x|z)p(y|z)\nRightarrow p(x,y)=p(x)p(y)\\ p(x,y)=p(x)p(y)\nRightarrow p(x,y|z)=p(x|z)p(y|z)
条件独立非常重要

全概率公式:
p(x)=yp(xy)p(y)()p(x)=p(xy)p(y)dy() p(x)=\sum_yp(x|y)p(y)\quad\text(离散情况)\\ p(x)=\int p(x|y)p(y)\,\mathrm{d}y\quad\text(连续情况)
贝叶斯准则:
p(xy)=p(yx)p(x)p(y)=p(yx)p(x)xp(yx)p(x)(离散)p(xy)=p(yx)p(x)p(y)=p(yx)p(x)p(yx)p(x)dx(连续) p(x|y)=\frac{p(y|x)p(x)}{p(y)}=\frac{p(y|x)p(x)}{\sum_{x'}p(y|x')p(x')}\quad\text{(离散)}\\ p(x|y)=\frac{p(y|x)p(x)}{p(y)}=\frac{p(y|x)p(x)}{\int{p(y|x')p(x')}\,\mathrm{d}x'}\quad\text{(连续)}
p(x)p(x)为先验概率,p(xy)p(x|y)为后验概率,p(yx)p(y|x)为生成模型。

由于p(y)p(y)不依赖于xxp(y)1p(y)^{-1}经常写成归一化常量η\eta,因此贝叶斯公式可以写作:
p(xy)=ηp(yx)p(x) p(x|y)=\eta p(y|x)p(x)
条件下的贝叶斯准则
p(xy,z)=p(yx,z)p(xz)p(yz) p(x|y,z)=\frac{p(y|x,z)p(x|z)}{p(y|z)}
期望与协方差:
E[X]=xxp(x)(离散)E[X]=xp(x)dx(连续)Cov[X]=E[XE[X]]2=E[X2]E[X]2 E[X]=\sum_xxp(x)\quad\text{(离散)}\\ E[X]=\int xp(x)\,\mathrm{d}x\quad\text{(连续)}\\ \mathrm{Cov}[X]=E[X-E[X]]^2=E[X^2]-E[X]^2
期望是随机变量的线性函数:
E[aX+b]=aE[X]+b E[aX+b]=aE[X]+b
熵(用来表示机器人接受的信息):
Hp(x)=E[log2p(x)]Hp(x)=xp(x)log2p(x)(离散)Hp(x)=p(x)log2p(x)dx(连续) H_p(x)=E[-\log_2p(x)]\\ H_p(x)=-\sum_xp(x)\log_2p(x)\quad\text{(离散)}\\ H_p(x)=-\int p(x)\log_2p(x)\,\mathrm{d}x\quad\text{(连续)}
log2p(x)-\log_2p(x)表示使用最佳编码对xx编码所需的比特数。

机器人与环境交互

环境或者世界是有内部状态的动态系统,机器人通过传感器获得环境的信息,由于传感器噪声和数据的不完备性,机器人保持其对于环境的一个内部置信度。环境特征用状态来表示。

典型的状态变量如下:

  • 位姿
  • 机器人执行机构配置
  • 机器人速度和角速度
  • 环境中的物体位置和特征。环境可能有很多状态变量,取决于建模的状态粒度。
  • 移动的物体的位置和速度
  • 影响机器人运行的其他状态变量

假设一个状态xtx_t可以最好地预测未来,则称其为完整的完整性包括过去状态测量及控制的信息,没有先于xtx_t的状态变量可以影响未来状态的变化。这种过程也称为马尔科夫链。完整性在理论上很重要(各种推导经常假设马尔科夫性),实际上的机器人系统不可能有完整的状态。

状态空间可以是连续的,或者离散的,或者混合状态空间(即包含连续状态空间又包含离散状态空间)。

机器人与环境的两种基本交互:

  • 测量。用传感器获取环境信息,又称为观测,感知等。

  • 控制。控制机器人,改变世界状态。

测量和控制的记录称为数据。

zt1:t2=zt1,zt1+1,zt1+2,,zt2测量数据ut1:t2=ut1,ut1+1,ut1+2,,ut2控制数据 z_{t1:t2}=z_{t1},z_{t1+1},z_{t1+2},\cdots,z_{t2}\quad\textbf{测量数据}\\ u_{t1:t2}=u_{t1},u_{t1+1},u_{t1+2},\cdots,u_{t2}\quad\textbf{控制数据}

概率生成法则

状态演变概率法则:
p(xtx0:t1,z1:t1,u1:t) p(x_t|x_{0:t-1},z_{1:t-1},u_{1:t})
观测过程:
p(ztx0:t,z1:t1,u1:t) p(z_t|x_{0:t},z_{1:t-1},u_{1:t})

若状态xx完整的,即某个状态是前面所有状态的充分总结,则由条件独立,有:
p(xtx0:t1,z1:t1,u1:t)=p(xtxt1,ut)p(ztx0:t,z1:t1,u1:t)=p(ztxt) p(x_t|x_{0:t-1},z_{1:t-1},u_{1:t})=p(x_t|x_{t-1},u_t)\\ p(z_t|x_{0:t},z_{1:t-1},u_{1:t})=p(z_t|x_t)
**概率p(xtxt1,ut)p(x_t|x_{t-1},u_t)p(ztxt)p(z_t|x_t)称为状态转移概率和测量概率,两者一起描述机器人及环境组成的动态随机系统。**这样的时间生成模型也称为隐马尔科夫模型或动态贝叶斯网络。

概率机器人笔记1-2章

置信分布

置信度反映了机器人有关环境状态的内部信息,由于状态不能直接测量,机器人使用置信度来识别真正的状态。机器人通过概率分布表示置信度,置信度分布是以可获得数据为条件的关于状态变量的后验概率
bel(xt)=p(xtz1:t,u1:t) \mathrm{bel}(x_t)=p(x_t|z_{1:t},u_{1:t})
定义bel(xt)\overline{\mathrm{bel}}(x_t):
bel(xt)=p(xtz1:t1,u1:t) \overline{\mathrm{bel}}(x_t)=p(x_t|z_{1:t-1},u_{1:t})
在概率滤波的框架下,bel(xt)\overline{\mathrm{bel}}(x_t)称为预测,由bel(xt)\mathrm{bel}(x_t)计算bel(xt)\overline{\mathrm{bel}}(x_t)称为修正或者测量更新。

贝叶斯滤波

大多数计算置信度的通用算法都是基于贝叶斯滤波

贝叶斯滤波是递归的,下图是贝叶斯算法的一次迭代。
概率机器人笔记1-2章

贝叶斯滤波主要包含两个过程:

  1. 控制更新(预测)
  2. 测量更新

讨论

  1. 马尔科夫假设或者完整状态假设是苛刻的,其规定了过去数据和未来数据是独立的。但是很多因素会破坏这个假设,如
    • xtx_t中未包含的环境因素

    • 概率模型的不精确性

    • 近似误差

    • 控制系统的软件变量

定义状态xtx_t时,应该尽量使未建模的状态变量的影响具有随机的效果。

  1. 贝叶斯滤波能以多种方式实现,一般的问题中,置信度必定是近似的。选择一个近似,需要考虑如下问题:
    • 计算效率

    • 近似的精度
      这个假设,如

    • xtx_t中未包含的环境因素

    • 概率模型的不精确性

    • 近似误差

    • 控制系统的软件变量

定义状态xtx_t时,应该尽量使未建模的状态变量的影响具有随机的效果。

  1. 贝叶斯滤波能以多种方式实现,一般的问题中,置信度必定是近似的。选择一个近似,需要考虑如下问题:
    • 计算效率
    • 近似的精度
    • 易于实现