机器人学的不确定性
概率机器人学 probabilistic robotics:用概率理论的运算去明确地表示不确定性,用概率算法来表示在整个推测空间的概率分布信息。
概率机器人学的优势:
状态估计:目的在于从传感器数据中找回状态变量,概率状态估计算法在可能的状态空间上计算置信度分布。
机器人环境交互:环境 environemnt 或世界 world 是拥有内部状态的动态系统。
运动学构型 kinematics configuration:运动学 kinematics 是描述控制行为对机器人构型产生影响的微积分。
运动模型 motion model :由状态转换概率 p ( x t ∣ u t , x t − 1 ) p(x_t|u_t,x_{t-1}) p(xt∣ut,xt−1)构成,控制结果将用这个后验概率来描述,这个模型描述了对 x t − 1 x_{t-1} xt−1执行运动控制 u t u_t ut后,机器人取得的运动学状态的后验分布,其中 u t u_t ut有时由机器人的里程计提供。
两种特定的概率运动概率模型 p ( x t ∣ u t , x t − 1 ) p(x_t|u_t,x_{t-1}) p(xt∣ut,xt−1):
速度运动模型 velocity motion medel:认为可以通过两个速度(一个旋转速度和一个平移速度)来控制机器人。驱动系统通常是通过这种方式控制的,包括差分驱动、阿克曼驱动和同步驱动。
用 v t v_t vt表示t时刻的平移速度 translational velocity,用 ω t \omega_t ωt表示旋转速度 ratational velocity,并规定逆时针旋转(左转)为正;向前运动为正。
u t = ( v t , ω t ) T u_t = (v_t ,\omega_t)^T ut=(vt,ωt)T
无误差基于速度信息计算预测 p ( x t ∣ u t , x t − 1 ) p(x_t|u_t,x_{t-1}) p(xt∣ut,xt−1)
输入:
输出:后验概率 p ( x t ∣ u t , x t − 1 ) p(x_t|u_t,x_{t-1}) p(xt∣ut,xt−1)
固定时间常数 Δ t \Delta t Δt,参数 α 1 ∼ α 6 \alpha_1 \sim \alpha_6 α1∼α6是机器人特有的运动误差参数。
函数 p r o b ( x , b 2 ) prob(x,b^2) prob(x,b2)建立了运动误差的模型,它计算参数x以零为中心,方差为 b 2 b^2 b2的随机变量下的概率。
粒子滤波采样算法计算速度运动模型后验概率:对于固定的控制 u t u_t ut和位姿 x t − 1 x_{t-1} xt−1由 p ( x t ∣ u t , x t − 1 ) p(x_t|u_t,x_{t-1}) p(xt∣ut,xt−1) 产生随机样本。
输入:
初始位姿 x t − 1 = ( x y θ ) T x_{t-1}=(x \ y\ \theta)^T xt−1=(x y θ)T
控制 u t = ( v w ) T u_t = (v \ w)^T ut=(v w)T
输出:最终姿态 x t x_t xt
采样提议分布 s a m p l e ( b 2 ) sample(b^2) sample(b2)产生来自具有方差 b 2 b^2 b2以零为中心的分布的随机的样本
采样 x t x_t xt比计算给定 x t x_t xt的密度要容易,这是因为采样仅需一个物理运动模型的前向仿真。对于第一个程序,计算一个假想位姿的概率意味着误差参数的重新推测,这需要计算物理运动模型的逆。
里程计运动模型 odometry motion model:整合轮子的编码信息,用距离测量代替控制。里程计法只有在机器人移动后才是可用的。里程计模型使用相对运动信息 relative motion information,该信息由机器人内部里程计测量。在时间间隔 ( t − 1 , t ] ( t-1,t ] (t−1,t]内,机器人从位姿 x t − 1 x_{t-1} xt−1前进到 x t x_t xt,里程计反馈了从 x ‾ t − 1 = ( x ‾ y ‾ θ ‾ ) \overline x_{t-1} = (\overline x\ \overline y\ \overline \theta) xt−1=(x y θ)到 x ‾ t = ( x ‾ ′ y ‾ ′ θ ‾ ′ ) \overline x_t = (\overline x'\ \overline y'\ \overline \theta') xt=(x′ y′ θ′)的相对前进,帽子代表是嵌在机器人内部坐标的。在状态估计中, x ‾ t − 1 \overline x_{t-1} xt−1和 x ‾ t \overline x_t xt的相对差是真实位姿 x t − 1 x_{t-1} xt−1和 x t x_t xt之间差异的一个很好的估计器。
运动信息 u t = ( x ‾ t − 1 , x ‾ t ) T u_t = (\overline x_{t-1},\overline x_t)^T ut=(xt−1,xt)T,为了提取相对距离, u t u_t ut被转变成三个步骤的序列:初始旋转 δ r o t 1 \delta _{rot1} δrot1、直线运动(平移) δ t r a n s \delta_{trans} δtrans和另一个旋转 δ r o t 2 \delta_{rot2} δrot2,每对位置 ( s ‾ , s ‾ ′ ) (\overline s,\overline s') (s,s′)都有唯一的参数向量 ( δ r o t 1 , δ t r a n s , δ r o t 2 ) T (\delta_{rot1},\delta_{trans},\delta_{rot2})^T (δrot1,δtrans,δrot2)T确定其之间的相对运动,因此这三个量一起组成里程计编码的相对运动的统计量。
里程计模型计算预测 p ( x t ∣ u t , x t − 1 ) p(x_t|u_t,x_{t-1}) p(xt∣ut,xt−1)
输入:
输出:后验概率 p ( x t ∣ u t , x t − 1 ) p(x_t|u_t,x_{t-1}) p(xt∣ut,xt−1)
粒子滤波采样算法计算里程计模型后验概率:将初始姿态 x t − 1 x_{t-1} xt−1和里程计读数 u t u_t ut作为输入,输出一个随机 x t x_t xt服从 p ( x t ∣ u t , x t − 1 ) p(x_t|u_t,x_{t-1}) p(xt∣ut,xt−1) 的分布,与前面的算法不同,它随机地推测一个位姿 x t x_t xt,而不是计算给定 x t x_t xt的概率。
输入:
输出:最终姿态 x t x_t xt
运动和地图:前面提到的模型是在缺乏环境特性信息的情况下描述机器人运动的。总是给定一个地图m,它包括关于机器人能或不能通过的空间的信息。例如,占用地图 occupancy maps。机器人的位姿必须一直在闲置区域。这种考虑需要运动模型考虑地图m,即 p ( x t ∣ u t , x t − 1 , m ) p(x_t|u_t,x_{t-1},m) p(xt∣ut,xt−1,m)
p ( x t ∣ u t , x t − 1 ) ≠ p ( x t ∣ u t , x t − 1 , m ) p(x_t|u_t,x_{t-1}) \neq p(x_t|u_t,x_{t-1},m) p(xt∣ut,xt−1)=p(xt∣ut,xt−1,m)
p ( x t ∣ u t , x t − 1 , m ) p(x_t|u_t,x_{t-1},m) p(xt∣ut,xt−1,m) 作为基于地图的运动模型 map-based motion model,指被放置在地图m所表示的环境里的机器人在位姿 x t − 1 x_{t-1} xt−1处执行动作 u t u_t ut到达位姿 x t x_t xt的可能性。
地图运动模型的近似:
p ( x t ∣ u t , x t − 1 , m ) = η p ( x t ∣ u t , x t − 1 ) p ( x t ∣ m ) p ( x t ) p(x_t|u_t,x_{t-1},m) = \eta \frac{p(x_t|u_t,x_{t-1}) p(x_t|m)}{p(x_t)} p(xt∣ut,xt−1,m)=ηp(xt)p(xt∣ut,xt−1)p(xt∣m)
其中,无地图估计$p(x_t|u_t,x_{t-1}) , , ,p(x_t|m) 表 达 了 位 姿 表达了位姿 表达了位姿x_t 和 地 图 m 的 一 致 性 。 对 于 占 用 地 图 , 当 且 仅 当 机 器 人 被 放 置 在 地 图 的 占 用 栅 格 单 元 的 时 候 才 有 和地图m的一致性。对于占用地图,当且仅当机器人被放置在地图的占用栅格单元的时候才有 和地图m的一致性。对于占用地图,当且仅当机器人被放置在地图的占用栅格单元的时候才有p(x_t|m)=0 , 否 则 假 定 ,否则假定 ,否则假定p(x_t|m)$是一个常数值。
环境测量模型 environment measurement models:描述在客观世界生成传感器测量的过程。概率机器人为传感器测量噪声建立模型,考虑传感器固有的不确定性。形式上,测量模型定义为一个条件概率分布 p ( z t ∣ x t , m ) p(z_t|x_t,m) p(zt∣xt,m),即似然。
移动机器人感知:
概率机器人要包容传感器模型的随机误差:**将测量过程建模为一个条件概率密度 p ( z t ∣ x t ) p(z_t|x_t) p(zt∣xt),而不是一个确定的函数 z t = f ( x t ) z_t=f(x_t) zt=f(xt),传感器模型的不确定性可以被包含在模型的不确定性部分。**概率机器人的优势就是在于可以用相对粗糙的模型。
传感器可能产生不止一个测量值,即 z t = { z t 1 , . . . , z t k } z_t = \{z_t^1,...,z_t^k\} zt={zt1,...,ztk},其中 z t k z_t^k ztk表示某一个独立的测量(一个测距值)。则概率
p ( z t ∣ x t , m ) = ∏ k = 1 k p ( z t k ∣ x t , m ) p(z_t|x_t,m) = \prod \limits_{k=1}^k p(z_t^k|x_t,m) p(zt∣xt,m)=k=1∏kp(ztk∣xt,m)
即相当于每个独立测量束噪声之间存在独立性假设 independence assumption。
地图 map:环境的地图就是环境中物体的列表及其属性(如位置)。
m = { m 1 , m 2 , . . . , m N } m = \{m_1,m_2,...,m_N\} m={m1,m2,...,mN}
其中N为环境中物体的总数,每一个 m n m_n mn指定一个属性。
测距仪波束模型:测距仪测量到附近物体的距离,沿着一个个波束测量距离。
测量算法:测量噪声包括测量噪声、意外对象引起的误差、未检测到对象引起的误差、随机意外噪声。因此期望模型 p ( z t ∣ x t , m ) p(z_t|x_t,m) p(zt∣xt,m)是四个密度的混合,每一种密度都与一个特定类型的误差有关。
具有局部测量噪声 measurement noise的正确范围:由测距传感器有限分辨率、大气对测量信号的影响等引起。通常由一个窄的均值为 z t k ∗ z_t^{k*} ztk∗、标准偏差为 σ h i t \sigma_{hit} σhit的高斯建模。用 p h i t p_{hit} phit代表高斯。
建立模型:测距传感器的测量值位于区间 [ 0 , z m a x ] [0,z_{max}] [0,zmax],其中 z m a x z_{max} zmax表示最大传感器距离。因此,测量概率
p h i t ( z t k ∣ x t , m ) = { η N ( z t k ; z t k ∗ , σ h i t 2 ) 0 ≤ z t k ≤ z m a x 0 其 他 p_{hit}(z_t^k|x_t,m)=\left\{ \begin{aligned} & \eta N(z_t^k;z_t^{k*},\sigma_{hit}^2) \ \ \ 0\leq z_t^k\leq z_{max}\\ & 0 \ 其他 \end{aligned} \right. phit(ztk∣xt,m)={ηN(ztk;ztk∗,σhit2) 0≤ztk≤zmax0 其他
其中 z t k ∗ z_t^{k*} ztk∗从 x t x_t xt和m经过射线投射计算, N ( z t k ; z t k ∗ , σ h i t 2 ) N(z_t^k;z_t^{k*},\sigma_{hit}^2) N(ztk;ztk∗,σhit2)为具有均值 z t k ∗ z_t^{k*} ztk∗标准偏差为 σ h i t \sigma_{hit} σhit的单变量正态分布。
意外对象:地图中不包含的对象可能引起测距仪产生短距离数据,典型例子是与机器人共同移动的人。
处理办法:
建立模型:指数分布描述,用测量模型固有参数 λ s h o r t \lambda_{short} λshort。
p s h o r t ( z t k ∣ x t , m ) = { η λ s h o r t e − λ s h o r t z k t 0 ≤ z t k ≤ z t k ∗ 0 其 他 p_{short}(z_t^k|x_t,m)=\left\{ \begin{aligned} & \eta \lambda_{short} e^{-\lambda_{short}z_k^t} \ \ \ 0\leq z_t^k\leq z_t^{k*}\\ & 0 \ 其他 \end{aligned} \right. pshort(ztk∣xt,m)={ηλshorte−λshortzkt 0≤ztk≤ztk∗0 其他
传感器检测失败 sensor failure:环境中的障碍被完全忽略,如声呐传感器遇到了镜面反射,如激光测距仪检测到黑色吸光的对象时或者某些激光系统在明媚的阳光下测量物体时。
典型结果:出现最大测量距离问题 max-range measurement,即传感器返回他的最大允许值 z m a x z_{max} zmax。
建立最大测量范围的模型:以 z m a x z_{max} zmax为中心的离散点群分布
p m a x ( z t k ∣ x t , m ) = I ( z = z m a x ) = { 1 z = z m a x 0 其 他 p_{max}(z_t^k|x_t,m)=I(z=z_{max})=\left\{ \begin{aligned} & 1 \ \ \ z=z_{max}\\ & 0 \ 其他 \end{aligned} \right. pmax(ztk∣xt,m)=I(z=zmax)={1 z=zmax0 其他
其中I是指示函数,当其参数为真时取值为1,否则取0。
无法解释的测量 unexplainable measurements:如当超声波被几面墙反弹或者它们受到不同传感器之间的串扰时,声呐经常产生幻读
建立模型:在区间 [ 0 , z m a x ] [0,z_{max}] [0,zmax]的均匀分布
p r a n d ( z t k ∣ x t , m ) = { 1 z m a x 0 ≤ z t k ≤ z m a x 0 其 他 p_{rand}(z_t^k|x_t,m)=\left\{ \begin{aligned} & \frac{1}{z_{max}} \ \ \ 0\leq z_t^k\leq z_{max}\\ & 0 \ 其他 \end{aligned} \right. prand(ztk∣xt,m)=⎩⎨⎧zmax1 0≤ztk≤zmax0 其他
对上述四种分布通过四个参数进行加权平均混合 z h i t + z s h o r t + z m a x + z r a n d = 1 z_{hit}+z_{short}+z{max}+z_{rand}=1 zhit+zshort+zmax+zrand=1,
得到典型密度分布图
计算扫描 z t z_t zt的似然的算法
固有模型参数调节:选择传感器模型参数,包括混合参数 z h i t , z s h o r t , z m a x , z r a n d z_{hit},z_{short},z_{max},z_{rand} zhit,zshort,zmax,zrand,以及参数 σ h i t . λ s h o r t \sigma_{hit}.\lambda_{short} σhit.λshort,所有参数记为 Φ \Phi Φ。利用极大似然法 Maximum Likelihood, ML,具体方法为期望值极大化 Expectation Maximization, EM。
测距仪波束模型实际考虑:计算所有传感器的读书的密度非常复杂,如激光测距仪经常每扫描一次返回几百个值,扫描速率每秒几次,因此不能总是实时地将整个扫描综合到当前的置信度中。解决此问题的典型方法是:设置节流阀 throttle,仅综合所有测量的小子集,如每次激光扫描测距只取8个等间隔测量,而不是360个。这样做还有额外好处,因为一次测距扫描中的相邻波束往往不独立,这样做也会使其不易收到相邻测量的相关噪声的影响。
波束模型的主要计算时间的消耗是射线投射操作。
与波束模型类似,假定三种噪声和不确定性来源
测量噪声:测量过程引起的噪声使用高斯进行建模。令dist为测量坐标 ( x z t k y z t k ) T (x_{z_t^k}\ y_{z_t^k})^T (xztk yztk)T与地图m上最近物体之间的欧氏距离,则传感器测量概率可以由一个以0为中心的高斯函数给出
p h i t ( z t k ∣ x , m ) = ϵ σ h i t ( d i s t ) p_{hit} (z_t^k|x,m)=\epsilon _{\sigma_{hit}}(dist) phit(ztk∣x,m)=ϵσhit(dist)
如具有三个障碍物的环境实例,位置越亮,用测距仪测量到一个物体的可能性越大。
测量失败:点群分布 p m a x p_{max} pmax进行建模
无法解释的随机测量:均匀分布 p r a n d p_{rand} prand建模
基于波束传感器模型,期望概率 p ( z t k ∣ x t , m ) p(z_t^k|x_t,m) p(ztk∣xt,m)集成三种分布
z h i t p h i t + z h i t p r a n d + z m a x p m a x z_{hit}p_{hit}+z_{hit}p_{rand}+z_{max}p_{max} zhitphit+zhitprand+zmaxpmax
似然域计算测量概率算法
基于相关性的测量模型:地图匹配 map matching将扫描转换为占用地图 occupancy map,地图匹配方法通常是将少量的连续扫描编制到局部地图 local map上,用 m l o c a l m_{local} mlocal表示。
基于特征的测量模型:从高维传感器测量中提取较少数量的特征,大大减少计算复杂性。
处理地标的通用模型利用距离和方位传感器 range and bearing sensors,假设任何来自测距扫描的局部特征都伴随着有距离和方位信息。假定签名可以使一个数量值,也可以是一个表征观测到地标类型的整数,或者用一个多维向量表征一个地标(高度和颜色)。用r表示距离, Φ \Phi Φ表示方位,s表示签名,则特征向量由一个三维的集合给定。