马尔可夫定位

摘自《概率机器人》

1. 定位原理

\qquad初始置信度bel(x0)bel(x_{0})bel(x0)反映机器人位姿的初始信息。初始位姿只是经常已知的近似值,使用位于中心x‾0\overline{x}_{0}x0窄高斯分布初始化。定义为:
bel(x0)=det(2πΣ)−12exp{−12(x0−x‾0)TΣ−1(x0−x‾0)} bel(x_{0})={det(2\pi\Sigma)^{-\frac{1}{2}}exp\{-\frac{1}{2}(x_{0}-\overline{x}_{0})^{T}\Sigma^{-1}(x_{0}-\overline{x}_{0})\}} bel(x0)=det(2πΣ)21exp{21(x0x0)TΣ1(x0x0)}式中,Σ\SigmaΣ为初始位置不确定性协方差。
\qquad当机器人向右移动时,置信度与运动模型p(xt∣ut,xt)p(x_{t}|u_{t},x_{t})p(xtut,xt)卷积运算,测量结果使用感知概率p(zt∣xt)p(z_{t}|x_{t})p(ztxt)乘以当前的置信度。(还是贝叶斯滤波!!!)
bel‾(xt)=∫p(xt∣ut,xt−1)bel(xt−1)d(xt−1)bel(xt)=η bel‾(xt) p(zt∣xt)d(xt) \overline{bel}(x_{t})=\int p(x_{t}|u_{t},x_{t-1})bel(x_{t-1})d(x_{t-1})\\ bel(x_{t})=\eta\ \overline{bel}(x_{t})\ p(z_{t}|x_{t})d(x_{t}) bel(xt)=p(xtut,xt1)bel(xt1)d(xt1)bel(xt)=η bel(xt) p(ztxt)d(xt)
运动图

2.使用扩展卡尔曼(EKF)滤波实现定位算法

\qquad实现定位算法的难点在于使用泰勒展开得到近似函数、整合控制和运动噪声、由控制空间到运动空间的转化(!!!)

2.1 预测步骤

\qquad使用xt−1=(x,y,θ)Tx_{t-1}=(x,y,\theta)^{T}xt1=(x,y,θ)Txt=(x′,y′,θ′)Tx_{t}=(x^{'},y^{'},\theta^{'})^{T}xt=(x,y,θ)T分别表示在时刻t−1t-1t1ttt的状态向量。真实的运动使用(v^,ω^)T(\hat{v},\hat{\omega})^{T}(v^,ω^)T表示,分别为线速度和角速度。控制模型由运动控制ut=(v,ω)Tu_{t}=(v,\omega)^{T}ut=(v,ω)T和高斯白噪声产生:
(v^ω^)=(vω)+(εα1vt2+α2ωt2εα3vt2+α4ωt2)=(vω)+N(0,Mt) \begin{pmatrix} \hat{v}\\ \hat{\omega} \end{pmatrix}=\begin{pmatrix} {v}\\ {\omega} \end{pmatrix}+\begin{pmatrix} \varepsilon_{\alpha_{1}v_{t}^{2}+\alpha_{2}\omega_{t}^{2}}\\ \varepsilon_{\alpha_{3}v_{t}^{2}+\alpha_{4}\omega_{t}^{2}} \end{pmatrix}=\begin{pmatrix} {v}\\ {\omega} \end{pmatrix}+\mathcal{N}(0,\boldsymbol{M}_{t}) (v^ω^)=(vω)+(εα1vt2+α2ωt2εα3vt2+α4ωt2)=(vω)+N(0,Mt)\qquad将控制模型分解为有噪声分量和无噪声分量。同样的方法分解运动模型:
(x′y′θ′)=(xyθ)+(−vtωtsinθ+vtωtsin(θ+ωtΔt)vtωtcosθ−vtωtcos(θ+ωtΔt)ωtΔt)⎵+N(0,Rt)g(ut,xt−1) \begin{pmatrix} x^{'}\\ y^{'}\\ \theta^{'} \end{pmatrix}=\underbrace{\begin{pmatrix} x^{}\\ y^{}\\ \theta^{} \end{pmatrix}+\begin{pmatrix} -\frac{v_{t}}{\omega_{t}}sin\theta+\frac{v_{t}}{\omega_{t}}sin(\theta+\omega_{t}\Delta t)\\ \frac{v_{t}}{\omega_{t}}cos\theta-\frac{v_{t}}{\omega_{t}}cos(\theta+\omega_{t}\Delta t)\\ \omega_{t}\Delta t \end{pmatrix}}+\mathcal{N}(0,\boldsymbol{R}_{t})\\g(u_{t},x_{t-1}) xyθ=xyθ+ωtvtsinθ+ωtvtsin(θ+ωtΔt)ωtvtcosθωtvtcos(θ+ωtΔt)ωtΔt+N(0,Rt)g(ut,xt1)\qquad此时xt=g(ut,xt−1)+εx_{t}=g(u_{t},x_{t-1})+\varepsilonxt=g(ut,xt1)+ε对比xt=Axt−1+But+εx_{t}=Ax_{t-1}+Bu_{t}+\varepsilonxt=Axt1+But+ε为非线性,使用泰勒展开线性近似函数ggg为:
g(ut,xt−1)≈g(ut,μt−1)+Gt(xt−1−μt−1) g(u_{t},x_{t-1})\approx g(u_{t},\mu_{t-1})+G_{t}(x_{t-1}-\mu_{t-1}) g(ut,xt1)g(ut,μt1)+Gt(xt1μt1)\qquad函数g(ut,μt−1)g(u_{t},\mu_{t-1})g(ut,μt1)通过用已知的期望μt−1\mu_{t-1}μt1替换位置的准确状态xt−1x_{t-1}xt1,雅可比矩阵GtG_{t}Gt是函数gggut,μt−1u_{t},\mu_{t-1}ut,μt1关于xt−1x_{t-1}xt1的导数:
Gt=∂g(ut,μt−1)∂xt−1 G_{t}=\frac{ \partial g(u_{t},\mu_{t-1})}{ \partial x_{t-1}} Gt=xt1g(ut,μt1)\qquad式中,使用μt−1=(μt−1,x μt−1,y μt−1,θ)T\mu_{t-1}=(\mu_{t-1,x}\ \mu_{t-1,y}\ \mu_{t-1,\theta})^{T}μt1=(μt1,x μt1,y μt1,θ)T表示平均估计,带入GtG_{t}Gt中。为了导出附加运动噪声N(0,Rt)\mathcal{N}(0,\boldsymbol{R}_{t})N(0,Rt),首先确定控制模型噪声协方差矩阵Mt\boldsymbol{M}_{t}Mt,直接来自控制模型:
Mt=(α1vt2+α2ωt200α3vt2+α4ωt2) \boldsymbol{M}_{t}=\begin{pmatrix} \alpha_{1}v_{t}^{2}+\alpha_{2}\omega_{t}^{2} & 0 \\ 0 & \alpha_{3}v_{t}^{2}+\alpha_{4}\omega_{t}^{2} \end{pmatrix} Mt=(α1vt2+α2ωt200α3vt2+α4ωt2)\qquad求解运动模型噪声就是将控制噪声从控制空间映射到状态空间!!!!!!\color{#F00}{求解运动模型噪声就是将控制噪声从控制空间映射到状态空间!!!!!!}

在这里插入图片描述
Vt=∂g(ut,μt−1)∂ut \boldsymbol{V}_{t}=\frac{\partial g(u_{t},\mu_{t-1})}{\partial u_{t}} Vt=utg(ut,μt1)\qquad近似映射为VtMtVtT\boldsymbol{V}_{t}\boldsymbol{M}_{t}\boldsymbol{V}_{t}^{T}VtMtVtT协方差变化在下图第 7行

2.2 修正步骤

\qquad测量模型也需要线性化
h(xt,j,m)≈h(μ‾,j,m)+Hti(xt−μ‾t) h(\boldsymbol{x}_{t},j,\boldsymbol{m})\approx h(\boldsymbol{\overline{\mu}},j,\boldsymbol{m})+\boldsymbol{H}_{t}^{i}(\boldsymbol{x}_{t}-\boldsymbol{\overline{\mu}}_{t}) h(xt,j,m)h(μ,j,m)+Hti(xtμt)\qquad其中,jjj表示测量向量对应地标的身份,m\boldsymbol{m}m表示探测到第iii个地标的坐标,Hti\boldsymbol{H}_{t}^{i}Htihhh关于机器人位置的雅可比矩阵,使用预测的平均μ‾t\boldsymbol{\overline{\mu}}_{t}μt计算:
Hti=∂h(μ‾t,j,m)∂xt \boldsymbol{H}_{t}^{i}=\frac{\partial h(\boldsymbol{\overline{\mu}}_{t},j,\boldsymbol{m})}{\partial x_{t}} Hti=xth(μt,j,m)\qquad测量噪声的协方差QtQ_{t}Qt
Qt=(σr2000σϕ2000σs2) Q_{t}=\begin{pmatrix} \sigma_{r}^{2} & 0 & 0 \\ 0 &\sigma_{\phi}^{2} & 0 \\ 0 &0 &\sigma_{s}^{2} \\ \end{pmatrix} Qt=σr2000σϕ2000σs2\qquad第14-17行为测量更新

2.3 测量似然

\qquad对扩展卡尔曼滤波并不必要,但对去除异常值或未知一致性的情况很有必要。测量ztz_{t}zt的似然为p(zt∣c1:t,m,z1:t−1,u1:t)p(z_{t}|c_{1:t},\boldsymbol{m},\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t})p(ztc1:t,m,z1:t1,u1:t),由预测的置信度bel‾(xt)=N(xt,μ‾t,Σ‾t)\overline{bel}(x_{t})=\mathcal{N}(x_{t},\overline{\mu}_{t},\overline{\Sigma}_{t})bel(xt)=N(xt,μt,Σt)来计算似然。
p(zt∣c1:t,m,z1:t−1,u1:t)=∫p(zti∣xt,cti,m)bel‾(xt)dxt p(z_{t}|c_{1:t},\boldsymbol{m},z_{1:t-1},\boldsymbol{u}_{1:t}) = \int p(z_{t}^{i}|x_{t},c_{t}^{i},m)\overline{bel}(x_{t})dx_{t} p(ztc1:t,m,z1:t1,u1:t)=p(ztixt,cti,m)bel(xt)dxt\qquad积分式中左项为位置信息xtx_{t}xt已知的测量似然。似然由高斯分布给出,测量值由测量函数hhh获得,协方差由测量噪声QtQ_{t}Qt获得。
p(zti∣xt,cti,m)∼N(zti;h(xi,cti,m),Qt)≈N(zti;h(μ‾t,cti,m)+Ht(xt−μ‾t),Qt) p(z_{t}^{i}|\boldsymbol{x}_{t},c_{t}^{i},\boldsymbol{m}) \sim \mathcal{N}(z_{t}^{i};h(\boldsymbol{x}_{i},c_{t}^{i},\boldsymbol{m}),Q_{t})\approx \mathcal{N}(z_{t}^{i};h(\boldsymbol{\overline{\mu}}_{t},c_{t}^{i},\boldsymbol{m}) + \boldsymbol{H}_{t}(\boldsymbol{x}_{t}-\boldsymbol{\overline{\mu}}_{t}),Q_{t}) p(ztixt,cti,m)N(zti;h(xi,cti,m),Qt)N(zti;h(μt,cti,m)+Ht(xtμt),Qt)\qquad使用高斯形式代替bel‾(xt)\overline{bel}(\boldsymbol{x}_{t})bel(xt),得到测量似然:
p(zti∣xt,cti,m)≈N(zti;h(xi,cti,m),Qt)≈N(zti;h(μ‾t,cti,m)+Ht(xt−μ‾t),Qt)⊗N(xt;μ‾t,Σ‾t) p(z_{t}^{i}|\boldsymbol{x}_{t},c_{t}^{i},\boldsymbol{m})\approx \mathcal{N}(z_{t}^{i};h(\boldsymbol{x}_{i},c_{t}^{i},\boldsymbol{m}),Q_{t})\approx \mathcal{N}(z_{t}^{i};h(\boldsymbol{\overline{\mu}}_{t},c_{t}^{i},\boldsymbol{m}) + \boldsymbol{H}_{t}(\boldsymbol{x}_{t}-\boldsymbol{\overline{\mu}}_{t}),Q_{t}) \otimes \mathcal{N}(x_{t};\boldsymbol{\overline{\mu}}_{t},\boldsymbol{\overline{\Sigma}}_{t}) p(ztixt,cti,m)N(zti;h(xi,cti,m),Qt)N(zti;h(μt,cti,m)+Ht(xtμt),Qt)N(xt;μt,Σt)\qquad⊗\otimes为卷积符号,表示似然函数为测量噪声和状态不确定性的高斯函数卷积????\color{#F00}{表示似然函数为测量噪声和状态不确定性的高斯函数卷积????}。因此上式的高斯分布的均值为h(μ‾t,cti,m)h(\boldsymbol{\overline{\mu}}_{t},c_{t}^{i},m)h(μt,cti,m),协方差为HtΣ‾tHtT+Qt\boldsymbol{H}_{t}\boldsymbol{\overline{\Sigma}}_{t}\boldsymbol{H}_{t}^{T}+Q_{t}HtΣtHtT+Qt测量似然函数为:
p(zt∣c1:t,m,z1:t−1,u1:t)∼N(zti;h(μ‾i,cti,m),HtΣ‾tHtT+Qt) p(z_{t}|c_{1:t},\boldsymbol{m},\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) \sim \mathcal{N}(z_{t}^{i};h(\boldsymbol{\overline{\mu}}_{i},c_{t}^{i},\boldsymbol{m}),\boldsymbol{H}_{t}\boldsymbol{\overline{\Sigma}}_{t}\boldsymbol{H}_{t}^{T}+Q_{t}) p(ztc1:t,m,z1:t1,u1:t)N(zti;h(μi,cti,m),HtΣtHtT+Qt)\qquad第 21行更新测量似然
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值