《概率机器人》-递归状态估计

状态估计主要目的在于从机器人传感器测量数据中找回状态变量。概率状态估计算法在可能的状态空间上计算置信度分布。

本章旨在引入基于传感器数据进行状态估计的基本术语数学工具

本文综述:

(一)基本概率知识;

(二)描述了机器人环境相互作用的形式化模型

(三)贝叶斯滤波及其引起的描述计算问题。

(一)涉及到的概率知识

1.基本概率分布

P(X=x)表示随机变量X取值为x时的概率,可简写为P(x);

(1)基本概率形式

由于本书中大部分依赖于连续空间,故贴近连续分布进行阐述:

假定所有连续随机变量都拥有概率密度函数(PDF)。例如:本书常用的特殊分布----->正态分布,其概率密度函数为高斯函数

x为标量值:
p ( x ) = ( 2 π σ ) − 1 2 e − 1 2 ( x − μ ) 2 σ 2 ( 1 ) p(x)=(2\pi\sigma)^{-\frac{1}{2}}e^{-\frac{1}{2}\frac{(x-\mu)^2}{\sigma ^2}}(1) p(x)=(2πσ)21e21σ2(xμ)2(1)
x为多维矢量:
p ( x ) = d e t ( 2 π Σ ) − 1 2 e − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ( 2 ) p(x)=det(2\pi\Sigma)^{-\frac{1}{2}}e^{-\frac{1}{2}(x-\mu)^T\Sigma ^{-1}(x-\mu)}(2) p(x)=det(2πΣ)21e21(xμ)TΣ1(xμ)(2)
注:公式(2)其实是公式(1)的严格泛化;如果 Σ = σ 2 \Sigma=\sigma^2 Σ=σ2,那么两公式等价。

(2)常用概率公式

联合分布:两随机变量X、Y的联合分布为:

p(x,y)=p(X=x,Y=y)

​ 若X,Y相互独立,则进一步p(x,y)=p(x)·p(y)

条件概率:已知Y的值为y,则基于已知条件X为x的概率为:

p(x|y)=p(X=x|Y=y)

​ 若p(y)>0,则p(x|y)=p(x,y)/p(y)

​ 特殊的,如果两者独立,则p(x|y)=p(x)

全概率公式:


p ( x ) = ∑ y p ( x ∣ y ) p ( y ) ( 离 散 ) p(x)=\sum_y p(x|y)p(y)(离散) p(x)=yp(xy)p(y)()

p ( x ) = ∫ p ( x ∣ y ) p ( y ) d y ( 连 续 ) p(x)=\int p(x|y)p(y)dy(连续) p(x)=p(xy)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)=\frac{p(y|x)p(x)}{P(y)}=\frac{p(y|x)p(x)}{\sum_{x'} p(y|x')p(x')}(离散) p(xy)=P(y)p(yx)p(x)=xp(yx)p(x)p(yx)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)}{\int p(y|x')p(x')dx'}(连续) p(xy)=P(y)p(yx)p(x)=p(yx)p(x)dxp(yx)p(x)()

贝叶斯准则在概率机器人中起到主导的作用!!!!如果说x是一个希望由y推导出来的结果,则概率p(x)可以成为先验概率分布,y称为数据,也就是传感器测量值。分布p(x)总结了数据y关于x的所有信息,p(x|y)成为在X上的后验概率分布。贝叶斯准则的思想利用逆向思维,依靠p(y|x)以及先验概率p(x)计算后验概率p(x|y)的分布情况。通俗讲,如果想从传感器数据y推到位置x,贝叶斯准则通过假定位置为x时,传感器为y的概率。机器人学中将概率p(y|x)成为生成模型。

同时应该主要到的重点是分母p(y)不依赖x,因此分母可归一化表示:

p ( x ∣ y ) = η p ( y ∣ x ) p ( x ) p(x|y)=\eta p(y|x)p(x) p(xy)=ηp(yx)p(x)
条件概率的贝叶斯准则(条件:Z=z):
p ( x ∣ y , z ) = p ( y ∣ x , z ) p ( x ∣ z ) P ( y ) p(x|y,z)=\frac{p(y|x,z)p(x|z)}{P(y)} p(xy,z)=P(y)p(yx,z)p(xz)
进一步,假设变量x,y相互独立:


p ( x ∣ y , z ) = p ( x ∣ z ) p ( y ∣ z ) p(x|y,z)=p(x|z)p(y|z) p(xy,z)=p(xz)p(yz)
需要注意,这种独立不意味绝对独立,即:


p ( x ∣ y , z ) = p ( x ∣ z ) p ( y ∣ z ) ≠ p ( x , y ) = p ( x ) p ( y ) p(x|y,z)=p(x|z)p(y|z)\neq p(x,y)=p(x)p(y) p(xy,z)=p(xz)p(yz)=p(x,y)=p(x)p(y)

(3)期望

E [ X ] = ∑ x x p ( x ) ( 离 散 ) E[X]=\sum_x xp(x) (离散) E[X]=xxp(x)()

E [ X ] = ∫ x p ( x ) d x ( 连 续 ) E[X]=\int xp(x)dx (连续) E[X]=xp(x)dx()

E [ a X + b ] = a E [ X ] + b E[aX+b]=aE[X]+b E[aX+b]=aE[X]+b

(4)协方差

C o v [ X ] = E [ X − E [ X ] ] 2 = E [ X 2 ] − E [ X ] 2 Cov[X]=E[X-E[X]]^2=E[X^2]-E[X]^2 Cov[X]=E[XE[X]]2=E[X2]E[X]2

(5)熵!表达机器人在执行具体行动时可能接收到的信息

H p ( x ) = E [ − l o g 2 p ( x ) ] H_p (x)=E[-log_2 p(x)] Hp(x)=E[log2p(x)]

​ 可导出:
H p ( x ) = − ∑ x p ( x ) l o g 2 p ( x ) ( 离 散 ) H_p (x)=-\sum_x p(x)log_2 p(x) (离散) Hp(x)=xp(x)log2p(x)()

H p ( x ) = − ∫ p ( x ) l o g 2 p ( x ) d x ( 连 续 ) H_p (x)=-\int p(x)log_2 p(x)dx (连续) Hp(x)=p(x)log2p(x)dx()

(二)机器人环境交互

机器人与环境之间的交互通俗点讲,就是机器人感知外界环境,根据环境信息做出行为决策,循环往复。

1.状态

状态是所有会对未来产生影响的机器人及其环境的所有方面因素,包括静态和动态两类。通俗讲,就是会对slam过程产生影响的因素。本书中状态用x来表示,与时间有关则表示为x_t。经典状态变量如下:

·机器人位姿:包括机器人相对于全局坐标的位置和方向。三维刚性机器人包括3个直角坐标值、3个角度方向(俯仰、横滚和偏航)。二维刚性机器人包括2个平面坐标值及朝向(偏航)。

·机器人配置:机器人执行机构配置。如某关节自由度等。

·机器人速度及加速度

周围环境的位置及特征。

移动物体和人的位置、速度。

其他影响机器人运行的状态变量如电池状态等。

状态完整性概念即x_t包括过去状态测量及控制信息,可以最好地预测未来。(理想化,因为现实不可能获取所有要求的状态信息)。

2.环境交互

机器人与环境之间存在两种基本交互类型:1.机器人通过执行机构影响环境状态;2.机器人通过传感器收集有关状态的信息。

环境传感器测量机器人通过传感器(摄像机、测距扫描等)获取环境状态信息。

控制动作改变环境机器人通过对环境施加作用力来改变周围状态。

假设机器人可以保持所有过去的传感器测量和控制动作记录,将其记录称为数据。则机器人共获得两种不同的数据流:

环境测量数据包含环境的暂态信息,例如摄像机图像、测距扫描距离等。

​ 本书中,大多数情况都为简单假定机器人在一个时间点进行测量,即针对一个时间点进行扩展。
z t 1 : t 2 = z t 1 , z t 1 + 1 , z t 1 + 2 , ⋅ ⋅ ⋅ z t 2 z_{t_1:t_2}=z_{t_1},z_{t_1+1},z_{t_1+2},···z_{t_2} zt1:t2=zt1,zt1+1,zt1+2,zt2
​ 上式表示从时间t1到t2获得的所有测量集合,t1<=t2.

控制数据携带环境中关于状态改变的信息比如机器人速度、里程计等信息。

两种不同的数据发挥了本质上不同的作用,但是感知和控制是同时发生的。

3.概率生成法则

状态和测量的演变由概率法则支配。

(1)状态值

通常状态x_t是随机地由状态x_(t-1)产生的,且某时刻状态x_t是以所有过去的状态、测量和控制为条件的,故表征状态演变的概率法则可表示为:
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(xtx0:t1,z1:t1,u1:t)
重要的:如果状态x是完整的,则它是所有以前时刻发生的所有状态的充分总结。则x_{t-1}是直到t-1时刻所有控制和测量的充分总结。则有以下等式表达:
p ( x t ∣ x 0 : t − 1 , z 1 : t − 1 , u 1 : t ) = p ( x t ∣ x t − 1 , u t ) p(x_t|x_{0:t-1},z_{1:t-1},u_{1:t})=p(x_t|x_{t-1},u_{t}) p(xtx0:t1,z1:t1,u1:t)=p(xtxt1,ut)
该表达的特性就是条件独立,这一思想贯穿本书。即如果知道了第三组变量(条件独立)的值,则该变量就是独立于其他变量的。

(2)测量值

如果x_t是完整的,则有如下很重要的条件独立:
p ( z t ∣ x 0 : t , z 1 : t − 1 , u 1 : t ) = p ( z t ∣ x t ) p(z_t|x_{0:t},z_{1:t-1},u_{1:t})=p(z_t|x_{t}) p(ztx0:t,z1:t1,u1:t)=p(ztxt)
简述表达为:用状态x_t足以预测(有潜在噪声的)测量z_t。如果x_t是完整的,则任何其他变量信息,如过去的测量、控制、状态都与之无关。

状态转移概率:
p ( x t ∣ x t − 1 , u t ) p(x_t|x_{t-1},u_{t}) p(xtxt1,ut)
指出环境状态作为机器人控制u_t的函数如何随时间变化。

测量概率:

p ( z t ∣ x t ) p(z_t|x_{t}) p(ztxt)
上述两概率一起描述了机器人及其环境组成的动态随机系统。可用动态贝叶斯网络展现由这些概率定义的状态和测量的演变。时刻 t 的状态随机依赖 t-1时刻的状态和控制u_t。测量z_t随机地依赖时刻t的状态,这样的时间生成模型也成为隐马尔可夫模型或动态贝叶斯网络,如下图:
图1 表征控制、状态和测量演变特征的动态贝叶斯网络

​ 图1 表征控制、状态和测量演变特征的动态贝叶斯网络

4.置信分布

置信度反映了机器人有关环境状态的内部信息。通俗点讲,机器人的状态并不能直接测量,一般都从数据中进行推测,因此要从位姿的内部置信度辨别出真正的状态。置信度则表示该推测是正确的可能性。

机器人通过条件概率分布表示置信度。置信度分布是以可获得数据作为条件的关于状态变量的后验概率。这里用bel(x_t)表示状态变量x_t的置信度:
b e l ( x t ) = p ( x t ∣ z 1 : t , u 1 : t ) bel(x_t)=p(x_t|z_{1:t},u_{1:t}) bel(xt)=p(xtz1:t,u1:t)
这个后验是时刻t下状态x_t的概率分布,以所有过去测量z{1:t}和所有过去控制u{1:t}为条件。

另外,后验概率的预测形式为(即不包括测量z_t,因为其表示t时刻的测量):
/ b e l ( x t ) = p ( x t ∣ z 1 : t − 1 , u 1 : t ) /bel(x_t)=p(x_t|z_{1:t-1},u_{1:t}) /bel(xt)=p(xtz1:t1,u1:t)

(三)贝叶斯滤波

1.贝叶斯滤波算法

该算法根据测量和控制数据计算置信度分布bel()。

贝叶斯滤波算法是递归的,即时刻t的置信度bel(x_t)由时刻t-1的置信度bel(x_t-1)来计算。

算法输入为:时刻t-1的置信度、最近的控制作用u_t和最近的测量z_t;

算法输出为:时刻t的置信度bel(x_t)。

利用伪代码形式可描述基本贝叶斯滤波过程(单次递归):
贝叶斯滤波过程
图2 贝叶斯滤波过程
贝叶斯滤波算法具有两个步骤:

控制更新也就是根据上一个状态和当前的控制预测当前的状态。

测量更新根据当前的测量结果去修正上一步的预测结果。这一步主要是根据贝叶斯法则来实现的,也就是条件概率。

2.马尔可夫假设

马尔可夫假设又称完整状态假设,即如果知道当前状态x_t,马尔可夫假设设定过去和未来数据都是独立的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值