《Probabilistic Robotics》 读书笔记 02

摘要

概率机器人学的核心理念是通过感知数据来进行状态评估。在周围的环境信息都是已知的情况下,机器人就很容易决定该执行什么行为。但是环境信息往往是不能直接观察到的,而是需要通过感知数据来进行推断的。概率状态评估算法就是通过计算环境信息的概率分布,提供给机器人使用。
本章将从概率学的基本概念,机器人与环境的相互作用模型,进行状态评估的贝叶斯滤波算法和实现贝叶斯算法的相关问题这四个方面展开。

概率学基本概念

这一小节介绍了几个简单的概率论方面的知识,内容比较简单,只贴公式。
概率密度函数:$p(x)$

联合分布函数:$p(x,y)=p(X=x\ and\ Y=y)$

x和y相互独立,则:$p(x,y)=p(x)\ p(y)$

条件概率密度函数:$p(x\mid y)=\dfrac{p(x,y)}{p(y)}$

x和y相互独立:$p(x\mid y)=\dfrac{p(x)\ p(y)}{p(y)}=p(x)$

概率求和:$p(x)=\int p(x \mid y)\ p(y)\ dy$

贝叶斯公式:$p(x \mid y)=\dfrac{p(y \mid x)\ p(x)}{p(y)}$

y与x相互独立,所以常常将$p(y)^{-1}$写成标准化因子$\mu$: $p(x \mid y)=\mu\ p(y\mid x)\ p(x)$

$\mu$标准化的概念在书中出现很多次,标准化的作用就是将一个数值映射到[0,1]区间上,使其成为一个概率值。标准化因子的取值就是对其要标准化的对象求和或积分之后的倒数。

期望:$E[X] = \int x\ p(x)\ dx$

方差:$Cov[x] = E[X-E[x]]^2 = E[x^2]-E[x]^2$

多条件:$p(x \mid y,z)=\dfrac{p(y\mid x,z)\ p(x \mid z)}{p(y \mid z)}$

x,y基于条件z独立:$p(x,y \mid z) = p(x \mid z) \ p(y \mid z) \nRightarrow p(x,y)=p(x)\ p(y)$

与x和y相互独立不等价

机器人与环境的相互作用

这一小节介绍了机器人与环境的相互作用,并为这种相互作用建立数学模型。

状态(state)代表机器人自身信息的状态变量和所处环境信息的状态变量的集合,并且这些信息是会对未来产生影响的。状态用$x$表示。
典型的状态变量有以下几个方面:
1.机器人的位姿,包括位置和朝向,通常称为运动学状态。
2.驱动器的配置信息。比如joints of robotic manipulators。
3.机器人的速度和关节的速度。
4.机器人的位置和周围的物体。
5.机器人周围正在运动的物体的位置和速度。
6.其他状态变量,比如电量。

机器人与环境的相互作用有两种方式:
1.机器人通过传感器收集环境状态的信息。称为measurement。
2.机器人通过控制动作来使环境状态发生变化。称为motion。

因此会产生两种数据:
1.测量数据。提供对当前时刻的环境状态的观测信息。用$z_t$表示。
2.控制数据。提供对当前环境状态进行改变的行为信息。用$u_t$表示。

基于之前的状态、测量数据和控制数据得出当前状态的概率分布,即
$ p(x_{t} \mid x_{0:t-1}, z_{1:t-1}, u_{1:t}) $

当状态信息是完全的,当前的状态只与上一时刻的状态信息和当前的控制信息有关。即状态转移概率(state transition probability)
$p(x_t \mid x_{0:t-1}, z_{1:t-1}, u_{1:t})=p(x_t \mid x_{t-1}, u_t)$

类似的,当状态信息是完全的,当前的测量数据只与当前的状态有关。即测量概率(measurement probability)
$p(z_t \mid x_{0:t}, z_{1:t-1}, u_{1:t}) = p(z_t \mid x_t)$

这两个公式是机器人与环境交互模型的关键。在下一节中通过贝叶斯算法计算可信度就是通过迭代这两个公式

概率机器人学中另外一个关键概念是可信度(belief),可信度代表的是从测量数据和控制数据推断出的当前状态的可信程度。
可信度计算公式:
$bel(x_t) = p(x_t \mid z_{1:t},u_{1:t})$

但是往往在得到测量数据 $z_t$ 之前对 $x_t$ 的可信度进行计算,作为一种对 $x_t$ 的预测,即:
$\overline{bel(x_t)} = p(x_t \mid z_{1:t-1},u_{1:t})$

通过$\overline{bel(x_t)}$计算$bel(x_t)$称为修正或者测量更新。

概率机器人学解决问题的途径往往就是通过计算状态可信度,从中选择可信度最高的状态,作为当前机器人的状态。

贝叶斯滤波

贝叶斯滤波算法是最为常用的计算可信度的算法。算法流程如下:
!()[1.png]

直观上讲就是根据状态转移概率和前一时刻的状态可信度得出当前状态可信度的猜测,然后再利用测量概率对猜测进行修正。

书中给出了严格的数学推导来证明贝叶斯滤波的正确性。见2.4.3小节。

表示与计算

在用各种方法进行贝叶斯滤波实现的时候,要考虑三个方面。
1.计算的效率
2.近似的准确性
3.实现的难易程度

总结

机器人领域的核心问题就是准确地得到机器人每一时刻的状态。在概率机器人学中,是根据状态的可信度,选取可信度最高的状态作为机器人当前时刻的实际状态。贝叶斯滤波就是为了计算状态可信度而存在的。贝叶斯滤波也是整本书的理论基础。关于机器人状态,控制,观测的最重要的两个概率公式:状态转移概率和测量概率都是为贝叶斯滤波服务的。本书也是从贝叶斯滤波展开的,包括实现贝叶斯滤波的几种常用算法,如卡尔曼滤波和粒子滤波等。还有关于如何对状态转移概率中的控制动作(motion)建模和对测量(measurement)建模。