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