误差状态卡尔曼滤波器推导

Error State Kalman Filter

前置知识:卡尔曼滤波器详细推导

1、误差状态卡尔曼滤波器

误差状态卡尔曼滤波器(ESKF)全称误差状态扩展卡尔曼滤波器(ESEKF),其将IMU视为运动模型,将其他传感器(如RTK,轮速计等)视为观测模型,并将状态变量的真值分为名义状态变量和误差状态变量,在滤波过程中,仅对误差状态变量进行预测和更新。

设ESKF的真值状态变量为 x t = [ p t , v t , R t , b a t , b g t , g t ] \mathbf{x}_{t}=[\mathbf{p}_{t},\mathbf{v}_{t},\mathbf{R}_{t},\mathbf{b}_{at},\mathbf{b}_{gt},\mathbf{g}_{t}] xt=[pt,vt,Rt,bat,bgt,gt](为简便起见,将旋转矩阵也写入向量,下同),下标 t t t表示true,名义状态变量为 x = [ p , v , R , b a , b g , g ] \mathbf{x}=[\mathbf{p},\mathbf{v},\mathbf{R},\mathbf{b}_{a},\mathbf{b}_{g},\mathbf{g}] x=[p,v,R,ba,bg,g],误差状态变量为 δ x = [ δ p , δ v , δ θ , δ b a , δ b g , δ g ] \delta\mathbf{x}=[\delta\mathbf{p},\delta\mathbf{v},\delta\boldsymbol{\theta},\delta\mathbf{b}_{a},\delta\mathbf{b}_{g},\delta\mathbf{g}] δx=[δp,δv,δθ,δba,δbg,δg],三者各自内部元素依次表示平移,速度,旋转矩阵(误差状态变量采用误差旋转向量),加速度计零偏,陀螺仪零偏,重力。记加速度计读数为 a ~ \tilde{\mathbf{a}} a~,IMU陀螺仪读数为 ω ~ \tilde{\boldsymbol\omega} ω~,加速度计测量噪声为 η a \boldsymbol{\eta}_{a} ηa,其零偏的导数为 η b a \boldsymbol{\eta}_{ba} ηba,陀螺仪测量噪声为 η b \boldsymbol{\eta}_{b} ηb,其计零偏的导数为 η b g \boldsymbol{\eta}_{bg} ηbg,上述测量噪声和零偏的导数均为白噪声高斯过程。

真值状态的运动学方程为
p ˙ t = v t v ˙ t = R t ( a ~ − b a t − η a ) + g t R ˙ t = R t ( ω ~ − b g t − η g ) ∧ b ˙ a t = η b a b ˙ g t = η b g g ˙ t = 0 \begin{align*} \dot{\mathbf{p}}_{t}&=\mathbf{v}_{t}\tag{1a}\\ \dot{\mathbf{v}}_{t}&=\mathbf{R}_{t}(\tilde{\mathbf{a}}-\mathbf{b}_{at}-\boldsymbol{\eta}_{a})+\mathbf{g}_{t}\tag{1b}\\ \dot{\mathbf{R}}_{t}&=\mathbf{R}_{t}(\tilde{\boldsymbol{\omega}}-\mathbf{b}_{gt}-\boldsymbol{\eta}_{g})^{\wedge}\tag{1c}\\ \dot{\mathbf{b}}_{at}&=\boldsymbol{\eta}_{\mathbf{b}_{a}}\tag{1d}\\ \dot{\mathbf{b}}_{gt}&=\boldsymbol{\eta}_{\mathbf{b}_{g}}\tag{1e}\\ \dot{\mathbf{g}}_{t}&=\mathbf{0}\tag{1f}\\ \end{align*} p˙tv˙tR˙tb˙atb˙gtg˙t=vt=Rt(a~batηa)+gt=Rt(ω~bgtηg)=ηba=ηbg=0(1a)(1b)(1c)(1d)(1e)(1f)
在名义变量的运动学方程与真值状态运动学方程相似,只是在该方程中不必考虑噪声,因为噪声会在误差状态方程中考虑,该方程为
p ˙ = v v ˙ = R ( a ~ − b a ) + g R ˙ = R ( ω ~ − b g ) ∧ b ˙ a = 0 b ˙ g = 0 g ˙ = 0 \begin{align*} \dot{\mathbf{p}}&=\mathbf{v}\tag{2a}\\ \dot{\mathbf{v}}&=\mathbf{R}(\tilde{\mathbf{a}}-\mathbf{b}_{a})+\mathbf{g}\tag{2b}\\ \dot{\mathbf{R}}&=\mathbf{R}(\tilde{\boldsymbol{\omega}}-\mathbf{b}_{g})^{\wedge}\tag{2c}\\ \dot{\mathbf{b}}_{a}&=\mathbf{0}\tag{2d}\\ \dot{\mathbf{b}}_{g}&=\mathbf{0}\tag{2e}\\ \dot{\mathbf{g}}&=\mathbf{0}\tag{2f}\\ \end{align*} p˙v˙R˙b˙ab˙gg˙=v=R(a~ba)+g=R(ω~bg)=0=0=0(2a)(2b)(2c)(2d)(2e)(2f)
真值状态变量,名义状态变量,误差状态变量三者之间满足关系 x t = x ⊕ δ x \mathbf{x}_{t}=\mathbf{x}\oplus\delta\mathbf{x} xt=xδx,其中 ⊕ \oplus 为广义加法,该关系也是误差状态的定义,该式可展开写为
p t = p + δ p v t = v + δ v R t = R E x p ( δ θ ) b a t = b a + δ b a b g t = b g + δ b g g t = g + δ g \begin{align*} \mathbf{p}_{t}&=\mathbf{p}+\delta\mathbf{p}\tag{3a}\\ \mathbf{v}_{t}&=\mathbf{v}+\delta\mathbf{v}\tag{3b}\\ \mathbf{R}_{t}&=\mathbf{R}\mathrm{Exp}(\delta\boldsymbol{\theta})\tag{3c}\\ \mathbf{b}_{at}&=\mathbf{b}_{a}+\delta\mathbf{b}_{a}\tag{3d}\\ \mathbf{b}_{gt}&=\mathbf{b}_{g}+\delta\mathbf{b}_{g}\tag{3e}\\ \mathbf{g}_{t}&=\mathbf{g}+\delta\mathbf{g}\tag{3f}\\ \end{align*} ptvtRtbatbgtgt=p+δp=v+δv=RExp(δθ)=ba+δba=bg+δbg=g+δg(3a)(3b)(3c)(3d)(3e)(3f)
( 1 ) , ( 2 ) , ( 3 ) (1),(2),(3) (1),(2),(3)通过变形和约简可以得到误差状态变量的运动学方程,为方便后续推导,此处将约等于号写成等于号,下同
δ p ˙ = δ v δ v ˙ = − R ( a ~ − b a ) ∧ δ θ − R δ b a − η a + δ g δ θ ˙ = − ( ω ~ − b g ) ∧ δ θ − δ b g − η g δ b ˙ a = η b a δ b ˙ g = η b g δ g ˙ = 0 \begin{align*} \dot{\delta\mathbf{p}}&=\delta{\mathbf{v}}\tag{4a}\\ \dot{\delta\mathbf{v}}&=-\mathbf{R}(\tilde{\mathbf{a}}-\mathbf{b}_{a})^{\wedge}\delta\boldsymbol{\theta}-\mathbf{R}\delta\mathbf{b}_{a}-\boldsymbol{\eta}_{a}+\delta\mathbf{g}\tag{4b}\\ \dot{\delta\boldsymbol{\theta}}&=-(\tilde{\boldsymbol{\omega}}-\mathbf{b}_{g})^{\wedge}\delta\boldsymbol{\theta}-\delta\mathbf{b}_{g}-\boldsymbol{\eta}_{g}\tag{4c}\\ \dot{\delta\mathbf{b}}_{a}&=\boldsymbol{\eta}_{\mathbf{b}_{a}}\tag{4d}\\ \dot{\delta\mathbf{b}}_{g}&=\boldsymbol{\eta}_{\mathbf{b}_{g}}\tag{4e}\\ \dot{\delta\mathbf{g}}&=\mathbf{0}\tag{4f}\\ \end{align*} δp˙δv˙δθ˙δb˙aδb˙gδg˙=δv=R(a~ba)δθRδbaηa+δg=(ω~bg)δθδbgηg=ηba=ηbg=0(4a)(4b)(4c)(4d)(4e)(4f)
因为实际是在离散时间进行采样,故需要将名义状态变量和误差状态变量对应的运动学方程离散化。在 [ t , t + Δ t ] [t,t+\Delta{t}] [t,t+Δt]这段非常短的时间段内,可以假定加速度和角速度不变,恒为 t t t时刻的取值,在该假定下,名义状态变量运动学方程 ( 2 ) (2) (2)可离散化为(省略等号右侧所有的 ( t ) (t) (t)以化简公式)
p ( t + Δ t ) = p + v Δ t + 1 2 ( R ( a ~ − b a ) ) Δ t 2 + 1 2 g Δ t 2 v ( t + Δ t ) = v + R ( a ~ − b a ) Δ t + g Δ t R ( t + Δ t ) = R E x p ( ( ω ~ − b g ) Δ t ) b a ( t + Δ t ) = b a b g ( t + Δ t ) = b g g ( t + Δ t ) = g \begin{align*} \mathbf{p}(t+\Delta{t})&=\mathbf{p}+\mathbf{v}\Delta t+\frac{1}{2}(\mathbf{R}(\tilde{\mathbf{a}}-\mathbf{b}_{a}))\Delta{t}^2+\frac{1}{2}\mathbf{g}\Delta{t}^2\tag{5a}\\ \mathbf{v}(t+\Delta{t})&=\mathbf{v}+\mathbf{R}(\tilde{\mathbf{a}}-\mathbf{b}_{a})\Delta{t}+\mathbf{g}\Delta{t}\tag{5b}\\ \mathbf{R}(t+\Delta{t})&=\mathbf{R}\mathrm{Exp}((\tilde{\boldsymbol{\omega}}-\mathbf{b}_{g})\Delta{t})\tag{5c}\\ \mathbf{b}_{a}(t+\Delta{t})&=\mathbf{b}_{a}\tag{5d}\\ \mathbf{b}_{g}(t+\Delta{t})&=\mathbf{b}_{g}\tag{5e}\\ \mathbf{g}(t+\Delta{t})&=\mathbf{g}\tag{5f}\\ \end{align*} p(t+Δt)v(t+Δt)R(t+Δt)ba(t+Δt)bg(t+Δt)g(t+Δt)=p+vΔt+21(R(a~ba))Δt2+21gΔt2=v+R(a~ba)Δt+gΔt=RExp((ω~bg)Δt)=ba=bg=g(5a)(5b)(5c)(5d)(5e)(5f)
误差状态变量运动学方程 ( 4 ) (4) (4)可离散化为(同样省略等号右侧所有的 ( t ) (t) (t)以化简公式)
δ p ( t + Δ t ) = δ p + δ v Δ t δ v ( t + Δ t ) = δ v + ( − R ( a ~ − b a ) ∧ δ θ − R δ b a + δ g ) Δ t − w v δ θ ( t + Δ t ) = E x p ( − ( ω ~ − b g ) Δ t ) δ θ − δ b g Δ t − w θ δ b a ( t + Δ t ) = δ b a + w a δ b g ( t + Δ t ) = δ b g + w g δ g ( t + Δ t ) = δ g \begin{align*} \delta\mathbf{p}(t+\Delta{t})&=\delta{\mathbf{p}}+\delta{\mathbf{v}}\Delta{t}\tag{6a}\\ \delta\mathbf{v}(t+\Delta{t})&=\delta\mathbf{v}+(-\mathbf{R}(\tilde{\mathbf{a}}-\mathbf{b}_{a})^{\wedge}\delta\boldsymbol{\theta}-\mathbf{R}\delta\mathbf{b}_{a}+\delta\mathbf{g})\Delta{t}-\mathbf{w}_{v}\tag{6b}\\ \delta\boldsymbol{\theta}(t+\Delta{t})&=\mathrm{Exp}(-(\tilde{\boldsymbol{\omega}}-\mathbf{b}_{g})\Delta{t})\delta{\boldsymbol{\theta}}-\delta\mathbf{b}_{g}\Delta{t}-\mathbf{w}_{\theta}\tag{6c}\\ \delta\mathbf{b}_{a}(t+\Delta{t})&=\delta\mathbf{b}_{a}+\mathbf{w}_{a}\tag{6d}\\ \delta\mathbf{b}_{g}(t+\Delta{t})&=\delta\mathbf{b}_{g}+\mathbf{w}_{g}\tag{6e}\\ \delta\mathbf{g}(t+\Delta{t})&=\delta\mathbf{g}\tag{6f}\\ \end{align*} δp(t+Δt)δv(t+Δt)δθ(t+Δt)δba(t+Δt)δbg(t+Δt)δg(t+Δt)=δp+δvΔt=δv+(R(a~ba)δθRδba+δg)Δtwv=Exp((ω~bg)Δt)δθδbgΔtwθ=δba+wa=δbg+wg=δg(6a)(6b)(6c)(6d)(6e)(6f)
w v , w θ , w b a , w b g \mathbf{w}_{\mathbf{v}},\mathbf{w}_{\boldsymbol\theta},\mathbf{w}_{\mathbf{b}_{a}},\mathbf{w}_{\mathbf{b}_{g}} wv,wθ,wba,wbg分别为白噪声高斯随机过程 η a , η g , η b a , η b g \boldsymbol{\eta}_{a},\boldsymbol{\eta}_{g},\boldsymbol{\eta}_{\mathbf{b}_{a}},\boldsymbol{\eta}_{\mathbf{b}_{g}} ηa,ηg,ηba,ηbg的积分,即表示维纳过程,则上述维纳过程的标准差为
σ ( w v ) = Δ t σ k ( η a ) = Δ t σ ( η a ) σ ( w θ ) = Δ t σ k ( η g ) = Δ t σ ( η g ) σ ( w b a ) = σ k ( b a ) = Δ t σ ( b a ) σ ( w b g ) = σ k ( b g ) = Δ t σ ( b g ) \begin{array}{ll} &\sigma(\mathbf{w}_{\mathbf{v}})=\Delta{t}{\sigma}_{k}({\boldsymbol{\eta}_{a}})=\sqrt{\Delta{t}}{\sigma}(\boldsymbol{\eta}_{a}) &\sigma(\mathbf{w}_{\boldsymbol\theta})=\Delta{t}{\sigma}_{k}({\boldsymbol{\eta}_{g}})=\sqrt{\Delta{t}}{\sigma}(\boldsymbol{\eta}_{g})\\ &\sigma(\mathbf{w}_{\mathbf{b}_{a}})=\sigma_{k}(\mathbf{b}_{a})=\sqrt{\Delta{t}}{\sigma}(\mathbf{b}_{a}) &\sigma(\mathbf{w}_{\mathbf{b}_{g}})={\sigma}_{k}(\mathbf{b}_{g})=\sqrt{\Delta{t}}{\sigma}(\mathbf{b}_{g}) \end{array} σ(wv)=Δtσk(ηa)=Δt σ(ηa)σ(wba)=σk(ba)=Δt σ(ba)σ(wθ)=Δtσk(ηg)=Δt σ(ηg)σ(wbg)=σk(bg)=Δt σ(bg)
t k = t t_{k}=t tk=t t k + 1 = t + Δ t t_{k+1}=t+\Delta{t} tk+1=t+Δt,将 u = [ a ~ , ω ~ ] T \mathbf{u}=[\tilde{\mathbf{a}},\tilde{\boldsymbol{\omega}}]^T u=[a~,ω~]T视为输入, ( 6 ) (6) (6)可以整体地写成
δ x k + 1 = f ( δ x k , x k , u k + 1 ) + w k + 1 , w k + 1 ∼ N ( 0 , Q k + 1 ) (7) \delta\mathbf{x}_{k+1}=\mathbf{f}(\delta\mathbf{x}_{k},\mathbf{x}_{k},\mathbf{u}_{k+1})+\mathbf{w}_{k+1},\quad\mathbf{w}_{k+1}\sim\mathcal{N}(\mathbf{0},\mathbf{Q}_{k+1})\tag{7} δxk+1=f(δxk,xk,uk+1)+wk+1,wk+1N(0,Qk+1)(7)
w \mathbf{w} w为随机游走噪声,其分布与时间步无关,下标只起标记时间步的作用,按照前面的定义,其协方差矩阵为
Q k + 1 = d i a g ( O 3 × 3 , Σ ( w v ) , Σ ( w θ ) , Σ ( w b a ) , Σ ( w b g ) , O 3 × 3 ) \mathbf{Q}_{k+1}=\mathrm{diag}(\mathbf{O}_{3\times3},\boldsymbol\Sigma(\mathbf{w}_{v}),\boldsymbol\Sigma(\mathbf{w}_{\theta}),\boldsymbol\Sigma(\mathbf{w}_{\mathbf{b}_{a}}),\boldsymbol\Sigma(\mathbf{w}_{\mathbf{b}_{g}}),\mathbf{O}_{3\times3}) Qk+1=diag(O3×3,Σ(wv),Σ(wθ),Σ(wba),Σ(wbg),O3×3)
( 7 ) (7) (7)中的预测方程在 ( 0 , x ^ k , u k + 1 ) (\mathbf{0},\hat{\mathbf{x}}_{k},\mathbf{u}_{k+1}) (0,x^k,uk+1)处展开,得到
δ x k + 1 ≈ f ( 0 , x ^ k , u k + 1 ) + ∂ f ( δ x k , x k , u k + 1 ) ∂ δ x k ∣ 0 , x ^ k , u k + 1 δ x k + w k + 1 \delta\mathbf{x}_{k+1}\approx\mathbf{f}(\mathbf{0},\hat{\mathbf{x}}_{k},\mathbf{u}_{k+1})+\left.\frac{\partial{\mathbf{f}(\delta\mathbf{x}_{k},\mathbf{x}_{k},\mathbf{u}_{k+1})}}{\partial{\delta\mathbf{x}_{k}}}\right|_{\mathbf{0},\hat{\mathbf{x}}_{k},\mathbf{u}_{k+1}}\delta\mathbf{x}_{k}+\mathbf{w}_{k+1} δxk+1f(0,x^k,uk+1)+δxkf(δxk,xk,uk+1) 0,x^k,uk+1δxk+wk+1
上式第一项,代入 ( 6 ) (6) (6)可知其值为 0 \mathbf{0} 0,记第二项中偏导数矩阵为 F k + 1 \mathbf{F}_{k+1} Fk+1,由 ( 21 ) (21) (21)可以得到
F k + 1 = [ I I Δ t O O O O O I − R ( a ~ − b a ) ∧ Δ t O − R Δ t I Δ t O O E x p ( − ( ω ~ − b g ) Δ t ) − I Δ t O O O O O I O O O O O O I O O O O O O I ] \mathbf{F}_{k+1}= \begin{bmatrix} \mathbf{I}&\mathbf{I}\Delta{t}&\mathbf{O}&\mathbf{O}&\mathbf{O}&\mathbf{O}\\ \mathbf{O}&\mathbf{I}&-\mathbf{R}(\tilde{\mathbf{a}}-\mathbf{b}_{a})^{\wedge}\Delta{t}&\mathbf{O}&-\mathbf{R}\Delta{t}&\mathbf{I}\Delta{t}\\ \mathbf{O}&\mathbf{O}&\mathrm{Exp}(-(\tilde{\boldsymbol{\omega}}-\mathbf{b}_{g})\Delta{t})&-\mathbf{I}\Delta{t}&\mathbf{O}&\mathbf{O}\\ \mathbf{O}&\mathbf{O}&\mathbf{O}&\mathbf{I}&\mathbf{O}&\mathbf{O}\\ \mathbf{O}&\mathbf{O}&\mathbf{O}&\mathbf{O}&\mathbf{I}&\mathbf{O}\\ \mathbf{O}&\mathbf{O}&\mathbf{O}&\mathbf{O}&\mathbf{O}&\mathbf{I}\\ \end{bmatrix} Fk+1= IOOOOOIΔtIOOOOOR(a~ba)ΔtExp((ω~bg)Δt)OOOOOIΔtIOOORΔtOOIOOIΔtOOOI
将偏导数矩阵表达式代入展开式可以得到
δ x k + 1 ≈ F k + 1 δ x k + w k + 1 (8) \delta\mathbf{x}_{k+1}\approx\mathbf{F}_{k+1}\delta\mathbf{x}_{k}+\mathbf{w}_{k+1}\tag{8} δxk+1Fk+1δxk+wk+1(8)
在此基础上,执行ESKF的预测过程。预测过程包括对名义状态的预测和对误差状态的预测,对名义状态的预测即按 ( 5 ) (5) (5)式进行IMU积分即得到 x ˇ k + 1 \check{\mathbf{x}}_{k+1} xˇk+1。注意,初始时刻 k = 0 k=0 k=0,误差状态后验均值为 δ x ^ 0 = 0 \hat{\delta\mathbf{x}}_{0}=\mathbf{0} δx^0=0,后验协方差矩阵为 P ^ 0 = I \hat{\mathbf{P}}_{0}=\mathbf{I} P^0=I,即 δ x 0 ∼ N ( δ x ^ 0 , P ^ 0 ) \delta\mathbf{x}_{0}\sim\mathcal{N}(\hat{\delta\mathbf{x}}_{0},\hat{\mathbf{P}}_{0}) δx0N(δx^0,P^0),并未经过修正,故预测方程应写为
δ x ˇ k + 1 = F k + 1 δ x ^ k P ˇ k + 1 = F k + 1 P ^ k F k + 1 T + Q k + 1 \begin{align*} \check{\delta\mathbf{x}}_{k+1}&=\mathbf{F}_{k+1}\hat{\delta\mathbf{x}}_{k}\tag{9a}\\ \check{\mathbf{P}}_{k+1}&=\mathbf{F}_{k+1}\hat{\mathbf{P}}_{k}\mathbf{F}_{k+1}^{T}+\mathbf{Q}_{k+1}\tag{9b}\\ \end{align*} δxˇk+1Pˇk+1=Fk+1δx^k=Fk+1P^kFk+1T+Qk+1(9a)(9b)
对于后续时间步 k = 1 , 2 , ⋯ k=1,2,\cdots k=1,2,,因为原误差状态已经过修正,故下一时间步误差状态的预测方程如下
δ x ˇ k + 1 = F k + 1 δ x ^ k + P ˇ k + 1 = F k + 1 P ^ k + F k + 1 T + Q k + 1 \begin{align*} \check{\delta\mathbf{x}}_{k+1}&=\mathbf{F}_{k+1}\hat{\delta\mathbf{x}}^{+}_{k}\tag{10a}\\ \check{\mathbf{P}}_{k+1}&=\mathbf{F}_{k+1}\hat{\mathbf{P}}^{+}_{k}\mathbf{F}_{k+1}^{T}+\mathbf{Q}_{k+1}\tag{10b}\\ \end{align*} δxˇk+1Pˇk+1=Fk+1δx^k+=Fk+1P^k+Fk+1T+Qk+1(10a)(10b)
事实上,因为重置后的均值 δ x ^ k + 1 + = 0 \hat{\delta\mathbf{x}}_{k+1}^{+}=\mathbf{0} δx^k+1+=0,因此 δ x ˇ k + 1 = 0 \check{\delta\mathbf{x}}_{k+1}=\mathbf{0} δxˇk+1=0

前文阐述了ESKF的预测过程,现考虑更新过程。假设一个抽象的传感器能对状态变量产生观测(其输出为向量),观测方程为
z k + 1 = h ( x t k + 1 ) + ϵ k + 1 \mathbf{z}_{k+1}=\mathbf{h}({\mathbf{x}_{t}}_{k+1})+\boldsymbol{\epsilon}_{k+1} zk+1=h(xtk+1)+ϵk+1
其中 ϵ k + 1 ∼ N ( 0 , V k + 1 ) \boldsymbol{\epsilon}_{k+1}\sim\mathcal{N}(\mathbf{0},\mathbf{V}_{k+1}) ϵk+1N(0,Vk+1)。可以认为观测方程实际具有如下形式
z k + 1 = h ( x ˇ k + 1 ⊕ δ x k + 1 ) + ϵ k + 1 (11) \mathbf{z}_{k+1}=\mathbf{h}(\check{\mathbf{x}}_{k+1}\oplus\delta\mathbf{x}_{k+1})+\boldsymbol{\epsilon}_{k+1}\tag{11} zk+1=h(xˇk+1δxk+1)+ϵk+1(11)
因为在ESKF中,需要更新的是误差状态变量,故将 h ( x k + 1 ⊕ δ x k + 1 ) \mathbf{h}(\mathbf{x}_{k+1}\oplus\delta\mathbf{x}_{k+1}) h(xk+1δxk+1)视为 δ x k + 1 \delta\mathbf{x}_{k+1} δxk+1的函数,并将其在 δ x ˇ k + 1 = 0 \check{\delta\mathbf{x}}_{k+1}=\mathbf{0} δxˇk+1=0处展开,得到
z k + 1 ≈ h ( x ˇ k + 1 ⊕ δ x ˇ k + 1 ) + ∂ h ( x ˇ k + 1 ⊕ δ x k + 1 ) ∂ δ x k + 1 ∣ δ x ˇ k + 1 ( δ x k + 1 − δ x ˇ k + 1 ) + ϵ k + 1 = h ( x ˇ k + 1 ) + H k + 1 δ x k + 1 + ϵ k + 1 \begin{align*} \mathbf{z}_{k+1}&\approx\mathbf{h}(\check{\mathbf{x}}_{k+1}\oplus\check{\delta\mathbf{x}}_{k+1})+\left.\frac{\partial\mathbf{h}(\check{\mathbf{x}}_{k+1}\oplus{\delta\mathbf{x}}_{k+1})}{\partial{\delta\mathbf{x}}_{k+1}}\right|_{\check{\delta\mathbf{x}}_{k+1}}({\delta\mathbf{x}}_{k+1}-\check{\delta\mathbf{x}}_{k+1})+\boldsymbol{\epsilon}_{k+1}\\ &=\mathbf{h}(\check{\mathbf{x}}_{k+1})+\mathbf{H}_{k+1}\delta\mathbf{x}_{k+1}+\boldsymbol{\epsilon}_{k+1}\tag{12} \end{align*} zk+1h(xˇk+1δxˇk+1)+δxk+1h(xˇk+1δxk+1) δxˇk+1(δxk+1δxˇk+1)+ϵk+1=h(xˇk+1)+Hk+1δxk+1+ϵk+1(12)
其中 H k + 1 \mathbf{H}_{k+1} Hk+1是观测方程相对于误差状态的雅可比矩阵,其具体计算方式为
H k + 1 = lim ⁡ δ x k + 1 → 0 h ( x ˇ k + 1 ⊕ ( δ x ˇ k + 1 + δ x k + 1 ) ) − h ( x ˇ k + 1 ⊕ δ x ˇ k + 1 ) δ x k + 1 \begin{align*} \mathbf{H}_{k+1}&=\lim_{\delta\mathbf{x}_{k+1}\rightarrow\mathbf{0}}\frac{\mathbf{h}(\check{\mathbf{x}}_{k+1}\oplus(\check{\delta\mathbf{x}}_{k+1}+{\delta\mathbf{x}}_{k+1}))-\mathbf{h}(\check{\mathbf{x}}_{k+1}\oplus\check{\delta\mathbf{x}}_{k+1})}{\delta\mathbf{x}_{k+1}}\\ \end{align*} Hk+1=δxk+10limδxk+1h(xˇk+1(δxˇk+1+δxk+1))h(xˇk+1δxˇk+1)
下面求出卡尔曼增益,进而更新误差状态的协方差矩阵和均值
K k + 1 = P ˇ k + 1 H k + 1 T ( V k + 1 + H k + 1 P ˇ k + 1 H k + 1 T ) − 1 δ x ^ k + 1 = δ x ˇ k + 1 + K k + 1 ( z k + 1 − h ( x ˇ k + 1 ⊕ δ x ˇ k + 1 ) ) P ^ k + 1 = ( I − K k + 1 H k + 1 ) P ˇ k + 1 \begin{align*} \mathbf{K}_{k+1}&=\check{\mathbf{P}}_{k+1}\mathbf{H}_{k+1}^{T}(\mathbf{V}_{k+1}+\mathbf{H}_{k+1}\check{\mathbf{P}}_{k+1}\mathbf{H}_{k+1}^{T})^{-1}\tag{13a}\\ \hat{\delta\mathbf{x}}_{k+1}&=\check{\delta\mathbf{x}}_{k+1}+\mathbf{K}_{k+1}(\mathbf{z}_{k+1}-\mathbf{h}(\check{\mathbf{x}}_{k+1}\oplus\check{\delta\mathbf{x}}_{k+1}))\tag{13b}\\ \hat{\mathbf{P}}_{k+1}&=(\mathbf{I}-\mathbf{K}_{k+1}\mathbf{H}_{k+1})\check{\mathbf{P}}_{k+1}\tag{13c}\\ \end{align*} Kk+1δx^k+1P^k+1=Pˇk+1Hk+1T(Vk+1+Hk+1Pˇk+1Hk+1T)1=δxˇk+1+Kk+1(zk+1h(xˇk+1δxˇk+1))=(IKk+1Hk+1)Pˇk+1(13a)(13b)(13c)
实际上,上式得到了误差状态的后验均值和后验协方差矩阵,即满足 δ x k + 1 ∼ N ( δ x ^ k + 1 , P ^ k + 1 ) \delta\mathbf{x}_{k+1}\sim\mathcal{N}(\hat{\delta\mathbf{x}}_{k+1},\hat{\mathbf{P}}_{k+1}) δxk+1N(δx^k+1,P^k+1)

事实上,用于预测的观测数据和用于更新的观测数据并不是一一对应的,用于预测的观测数据往往获取频率更高。当用于预测的观测数据到来时,应先根据 ( 5 ) (5) (5)进行IMU积分得到名义状态,并根据 ( 9 ) , ( 10 ) (9),(10) (9),(10)对误差状态变量进行预测,直到观测数据到来时,再根据 ( 13 ) (13) (13)更新误差状态变量。

得到误差状态的分布后,将其均值按 ( 3 ) (3) (3)的方式合并入名义状态,得到真值状态的具体数值
x ^ k + 1 = x ˇ k + 1 ⊕ δ x ^ k + 1 (14) \hat{\mathbf{x}}_{k+1}=\check{\mathbf{x}}_{k+1}\oplus\hat{\delta\mathbf{x}}_{k+1}\tag{14} x^k+1=xˇk+1δx^k+1(14)
因为在每次将误差状态合并入名义状态后,误差的实际分布会发生改变,该改变可理解为通过重置函数 g \mathbf{g} g对误差状态进行重置。下面考虑重置对于误差状态的影响,设重置后误差状态为 δ x k + 1 + \delta\mathbf{x}_{k+1}^{+} δxk+1+,即
δ x k + 1 + = g ( δ x k + 1 ) (15) \delta\mathbf{x}_{k+1}^{+}=\mathbf{g}(\delta\mathbf{x}_{k+1})\tag{15} δxk+1+=g(δxk+1)(15)
首先要确定重置函数的形式。考虑到应保证重置前后真值服从的分布不变
( x ˇ k + 1 ⊕ δ x ^ k + 1 ) ⊕ δ x + = x ˇ k + 1 ⊕ δ x k + 1 (16) (\check{\mathbf{x}}_{k+1}\oplus\hat{\delta\mathbf{x}}_{k+1})\oplus\delta\mathbf{x}^{+}=\check{\mathbf{x}}_{k+1}\oplus\delta\mathbf{x}_{k+1}\tag{16} (xˇk+1δx^k+1)δx+=xˇk+1δxk+1(16)
该式等号两侧均表示分布,将该式展开可知
δ p k + 1 + = δ p k + 1 − δ p ^ k + 1 δ v k + 1 + = δ v k + 1 − δ v ^ k + 1 E x p ( δ θ k + 1 + ) = E x p ( − δ θ ^ k + 1 ) E x p ( δ θ k + 1 ) δ b a k + 1 + = δ b a k + 1 − δ b ^ a k + 1 δ b g k + 1 + = δ b g k + 1 − δ b ^ g k + 1 δ g k + 1 + = δ g k + 1 − δ g ^ k + 1 \begin{align*} \delta\mathbf{p}_{k+1}^{+}&=\delta\mathbf{p}_{k+1}-\hat{\delta\mathbf{p}}_{k+1}\tag{17a}\\ \delta\mathbf{v}_{k+1}^{+}&=\delta\mathbf{v}_{k+1}-\hat{\delta\mathbf{v}}_{k+1}\tag{17b}\\ \mathrm{Exp}(\delta\boldsymbol{\theta}_{k+1}^{+})&=\mathrm{Exp}(-\hat{\delta\boldsymbol{\theta}}_{k+1})\mathrm{Exp}(\delta\boldsymbol{\theta}_{k+1})\tag{17c}\\ \delta{\mathbf{b}_{a}}^{+}_{k+1}&={\delta\mathbf{b}_{a}}_{k+1}-{\hat{\delta\mathbf{b}}_{a}}_{k+1}\tag{17d}\\ \delta{\mathbf{b}_{g}}^{+}_{k+1}&={\delta\mathbf{b}_{g}}_{k+1}-{\hat{\delta\mathbf{b}}_{g}}_{k+1}\tag{17e}\\ \delta\mathbf{g}_{k+1}^{+}&=\delta\mathbf{g}_{k+1}-\hat{\delta\mathbf{g}}_{k+1}\tag{17f}\\ \end{align*} δpk+1+δvk+1+Exp(δθk+1+)δbak+1+δbgk+1+δgk+1+=δpk+1δp^k+1=δvk+1δv^k+1=Exp(δθ^k+1)Exp(δθk+1)=δbak+1δb^ak+1=δbgk+1δb^gk+1=δgk+1δg^k+1(17a)(17b)(17c)(17d)(17e)(17f)
令等号右侧到左侧的映射为函数 g \mathbf{g} g即可。易知重置后均值为 δ x ^ k + 1 + = 0 \hat{\delta\mathbf{x}}_{k+1}^{+}=\mathbf{0} δx^k+1+=0,协方差矩阵为
P ^ k + 1 + = J k + 1 P ^ k + 1 J k + 1 T \hat{\mathbf{P}}^{+}_{k+1}=\mathbf{J}_{k+1}\hat{\mathbf{P}}_{k+1}\mathbf{J}_{k+1}^{T} P^k+1+=Jk+1P^k+1Jk+1T
其中
J k + 1 = ∂ g ( δ x k + 1 ) ∂ δ x k + 1 ∣ δ x ^ k + 1 \mathbf{J}_{k+1}=\left.\frac{\partial\mathbf{g}(\delta\mathbf{x}_{k+1})}{\partial\delta\mathbf{x}_{k+1}}\right|_{\hat{\delta\mathbf{x}}_{k+1}} Jk+1=δxk+1g(δxk+1) δx^k+1
( 17 ) (17) (17)的结构知, J k + 1 = d i a g ( I 3 , I 3 , J θ , I 3 , I 3 , I 3 ) \mathbf{J}_{k+1}=\mathrm{diag}(\mathbf{I}_{3},\mathbf{I}_{3},\mathbf{J}_{\boldsymbol{\theta}},\mathbf{I}_{3},\mathbf{I}_{3},\mathbf{I}_{3}) Jk+1=diag(I3,I3,Jθ,I3,I3,I3),其中 J θ = ∂ δ θ k + 1 + ∂ δ θ k + 1 ∣ δ θ ^ k + 1 = I − 1 2 δ θ ^ k + 1 ∧ \mathbf{J}_{\boldsymbol{\theta}}=\left.\frac{\partial\delta\boldsymbol{\theta}_{k+1}^{+}}{\partial\delta\boldsymbol{\theta}_{k+1}}\right|_{\hat{\delta\boldsymbol{\theta}}_{k+1}}=\mathbf{I}-\frac{1}{2}\hat{\delta\boldsymbol{\theta}}_{k+1}^{\wedge} Jθ=δθk+1δθk+1+ δθ^k+1=I21δθ^k+1

故重置后的误差状态服从新的分布,即满足
δ x k + 1 + ∼ N ( δ x ^ k + 1 + , P ^ k + 1 + ) (18) \delta\mathbf{x}_{k+1}^{+}\sim\mathcal{N}(\hat{\delta\mathbf{x}}_{k+1}^{+},\hat{\mathbf{P}}^{+}_{k+1})\tag{18} δxk+1+N(δx^k+1+,P^k+1+)(18)
并以此进行下一步的迭代。

从贝叶斯滤波的角度再理解ESKF,可以写出误差状态的贝叶斯滤波公式
p ( δ x k + 1 ∣ δ x 0 , u 1 : k + 1 , z 1 : k + 1 ) = η ∗ p ( z k + 1 ∣ δ x k + 1 , δ x 0 , u 1 : k + 1 , z 1 : k ) ∫ p ( δ x k + 1 ∣ δ x k , δ x 0 , u 1 : k + 1 , z 1 : k ) p ( δ x k ∣ δ x 0 , u 1 : k , z 1 : k ) d δ x k p(\delta\mathbf{x}_{k+1}|\delta\mathbf{x}_{0},\mathbf{u}_{1:k+1},\mathbf{z}_{1:k+1})=\eta\ast p(\mathbf{z}_{k+1}|\mathbf{\delta{x}}_{k+1},\delta\mathbf{x}_{0},\mathbf{u}_{1:k+1},\mathbf{z}_{1:k})\int p(\delta\mathbf{x}_{k+1}|\delta\mathbf{x}_{k},\delta\mathbf{x}_{0},\mathbf{u}_{1:k+1},\mathbf{z}_{1:k})p(\delta\mathbf{x}_{k}|\delta\mathbf{x}_{0},\mathbf{u}_{1:k},\mathbf{z}_{1:k})d\delta\mathbf{x}_{k} p(δxk+1δx0,u1:k+1,z1:k+1)=ηp(zk+1δxk+1,δx0,u1:k+1,z1:k)p(δxk+1δxk,δx0,u1:k+1,z1:k)p(δxkδx0,u1:k,z1:k)dδxk
上式中,积分式(先验)由 ( 9 ) , ( 10 ) , ( 18 ) (9),(10),(18) (9),(10),(18)给出,即预测部分;并通过 ( 13 ) (13) (13)进行校正和更新,算入似然,即观测部分,而名义状态变量相当于系统的时变参数。

实验:ESKF组合导航

本实验通过ESKF,将IMU,卫星导航和轮式编码器进行融合,实现传统的组合导航方案。下面首先研究RTK和轮式编码器这两种实际的传感器的观测方程,即将观测方程的抽象形式 ( 11 ) (11) (11)具体化。

4.1、GNSS观测

得到GNSS观测数据后,可转换为对机体在世界坐标系下的真实位姿的观测 p ~ t G k + 1 , R ~ t G k + 1 {\tilde{\mathbf{p}}^{G}_{t}}_{k+1},{\tilde{\mathbf{R}}^{G}_{t}}_{k+1} p~tGk+1,R~tGk+1,观测方程为
p ~ t G k + 1 = p t k + 1 + ϵ p k + 1 = p ˇ k + 1 + δ p k + 1 + ϵ p k + 1 R ~ t G k + 1 = R t k + 1 + ϵ R k + 1 = R ˇ k + 1 E x p ( δ θ k + 1 ) + ϵ R k + 1 \begin{align*} {\tilde{\mathbf{p}}^{G}_{t}}_{k+1}&={\mathbf{p}_{t}}_{k+1}+{\boldsymbol{\epsilon}_{p}}_{k+1}=\check{\mathbf{p}}_{k+1}+\delta\mathbf{p}_{k+1}+{\boldsymbol{\epsilon}_{\mathbf{p}}}_{k+1}\tag{19a}\\ {\tilde{\mathbf{R}}^{G}_{t}}_{k+1}&={\mathbf{R}_{t}}_{k+1}+{\boldsymbol{\epsilon}_{R}}_{k+1}=\check{\mathbf{R}}_{k+1}\mathrm{Exp}(\delta\mathbf{\boldsymbol{\theta}}_{k+1})+{\boldsymbol{\epsilon}_{\mathbf{R}}}_{k+1}\tag{19b}\\ \end{align*} p~tGk+1R~tGk+1=ptk+1+ϵpk+1=pˇk+1+δpk+1+ϵpk+1=Rtk+1+ϵRk+1=Rˇk+1Exp(δθk+1)+ϵRk+1(19a)(19b)
为更容易求误差状态的雅可比矩阵,将GNSS对真实旋转矩阵的观测转换成对误差旋转向量的观测,即将 ( 19 b ) \mathrm{(19b)} (19b)写成
L o g ( R ˇ k + 1 T R ~ t G k + 1 ) = δ θ k + 1 + ϵ θ k + 1 (20) \mathrm{Log}(\check{\mathbf{R}}_{k+1}^{T}{\tilde{\mathbf{R}}^{G}_{t}}_{k+1})=\delta\mathbf{\boldsymbol{\theta}}_{k+1}+{\boldsymbol{\epsilon}_{\boldsymbol\theta}}_{k+1}\tag{20} Log(Rˇk+1TR~tGk+1)=δθk+1+ϵθk+1(20)
( 19 a ) (\mathrm{19a}) (19a) ( 20 ) (20) (20)共同组成了转换后的观测方程
z k + 1 = [ p ~ t G k + 1 L o g ( R ˇ k + 1 T R ~ t G k + 1 ) ] = [ p ˇ k + 1 + δ p k + 1 + ϵ p k + 1 δ θ k + 1 + ϵ θ k + 1 ] = h ( x ˇ k + 1 ⊕ δ x k + 1 ) + ϵ k + 1 \begin{align*} \mathbf{z}_{k+1} =\begin{bmatrix} {\tilde{\mathbf{p}}^{G}_{t}}_{k+1}\\ \mathrm{Log}(\check{\mathbf{R}}_{k+1}^{T}{\tilde{\mathbf{R}}^{G}_{t}}_{k+1}) \end{bmatrix} =\begin{bmatrix} \check{\mathbf{p}}_{k+1}+\delta\mathbf{p}_{k+1}+{\boldsymbol{\epsilon}_{p}}_{k+1}\\ \delta\mathbf{\boldsymbol{\theta}}_{k+1}+{\boldsymbol{\epsilon}_{\theta}}_{k+1} \end{bmatrix} =\mathbf{h}(\check{\mathbf{x}}_{k+1}\oplus\delta\mathbf{x}_{k+1})+\boldsymbol{\epsilon}_{k+1}\tag{21} \end{align*} zk+1=[p~tGk+1Log(Rˇk+1TR~tGk+1)]=[pˇk+1+δpk+1+ϵpk+1δθk+1+ϵθk+1]=h(xˇk+1δxk+1)+ϵk+1(21)
( 21 ) (21) (21)知,误差状态的雅可比矩阵为
H k + 1 = [ I O O O O O O O I O O O ] \begin{align*} \mathbf{H}_{k+1} =\begin{bmatrix} \mathbf{I}&\mathbf{O}&\mathbf{O}&\mathbf{O}&\mathbf{O}&\mathbf{O}\\ \mathbf{O}&\mathbf{O}&\mathbf{I}&\mathbf{O}&\mathbf{O}&\mathbf{O} \end{bmatrix} \end{align*} Hk+1=[IOOOOIOOOOOO]
该矩阵中各分块矩阵均为 3 × 3 3\times3 3×3矩阵

4.2、轮式编码器观测

得到Odom观测数据后,可转换为对机体在世界坐标系下的真实速度的观测 v ~ t O k + 1 {\tilde{\mathbf{v}}^{O}_{t}}_{k+1} v~tOk+1,观测方程为
v ~ t O k + 1 = R t k + 1 v t k + 1 + ϵ v W k + 1 = ( R ˇ k + 1 E x p ( δ θ k + 1 ) ) T ( v ˇ k + 1 + δ v k + 1 ) + ϵ v W k + 1 (22) {\tilde{\mathbf{v}}^{O}_{t}}_{k+1}={\mathbf{R}_{t}}_{k+1}{\mathbf{v}_{t}}_{k+1}+{\boldsymbol{\epsilon}_{\mathbf{v}^{W}}}_{k+1}=(\check{\mathbf{R}}_{k+1}\mathrm{Exp}(\delta\mathbf{\boldsymbol{\theta}}_{k+1}))^{T}(\check{\mathbf{v}}_{k+1}+\delta\mathbf{v}_{k+1})+{\boldsymbol{\epsilon}_{\mathbf{v}^{W}}}_{k+1}\tag{22} v~tOk+1=Rtk+1vtk+1+ϵvWk+1=(Rˇk+1Exp(δθk+1))T(vˇk+1+δvk+1)+ϵvWk+1(22)
为更容易求误差状态的雅可比矩阵,忽略误差旋转向量,只保留当前预测出的旋转矩阵名义状态,并将对机体坐标系下速度的观测转换成对世界坐标系下速度的观测
z k + 1 = R ˇ k + 1 v ~ t O k + 1 = v ˇ k + 1 + δ v k + 1 + ϵ v k + 1 = h ( x ˇ k + 1 ⊕ δ x k + 1 ) + ϵ v k + 1 (23) \mathbf{z}_{k+1}=\check{\mathbf{R}}_{k+1}{\tilde{\mathbf{v}}^{O}_{t}}_{k+1}=\check{\mathbf{v}}_{k+1}+\delta\mathbf{v}_{k+1}+{\boldsymbol{\epsilon}_{\mathbf{v}}}_{k+1}=\mathbf{h}(\check{\mathbf{x}}_{k+1}\oplus\delta\mathbf{x}_{k+1})+{\boldsymbol\epsilon_{\mathbf{v}}}_{k+1}\tag{23} zk+1=Rˇk+1v~tOk+1=vˇk+1+δvk+1+ϵvk+1=h(xˇk+1δxk+1)+ϵvk+1(23)
( 23 ) (23) (23)知,误差状态的雅可比矩阵为
H k + 1 = [ O I O O O O ] \begin{align*} \mathbf{H}_{k+1} =\begin{bmatrix} \mathbf{O}&\mathbf{I}&\mathbf{O}&\mathbf{O}&\mathbf{O}&\mathbf{O} \end{bmatrix} \end{align*} Hk+1=[OIOOOO]
该矩阵中各分块矩阵均为 3 × 3 3\times3 3×3矩阵

4.3 实验结果分析

ESKF通过将IMU与卫星导航进行组合,得到GINS(GNSS-INS)系统,该系统将IMU观测与GNSS观测进行融合,融合结果整体趋近于GNSS观测,但获得了相比于GNSS更高的频率(因为IMU频率更高)。通过下图可以看到,存在某些RTK信号不良的场合,ESKF会缺少观测,位移部分呈快速发散状态,当RTK恢复以后,位移部分会收敛到RTK轨迹上。

在这里插入图片描述

如果长时间缺少RTK观测数据,ESKF就变为纯靠IMU积分的递推模式,该模式下位移将很快发散,位移发散的主要原因是缺少速度观测,导致速度发散。 引入速度传感器,如轮式编码器,将速度测量融入ESKF,则可以限制速度的发散。通过下图可以看到,几处因缺少RTK观测而发散的地方得到了明显改善,可见速度观测对于组合导航是有积极作用的。

在这里插入图片描述

附录

§1、向量函数的一阶泰勒展开

若一个多元向量函数 f = [ f 1 , ⋯   , f M ] T : R N → R M \mathbf{f}=[f_{1},\cdots,f_{M}]^{T}:\mathbb{R}^{N}\rightarrow\mathbb{R}^{M} f=[f1,,fM]T:RNRM x \mathbf{x} x点处可微,则存在 x \mathbf{x} x的邻域 U ( x , δ ) = { x + Δ x ∣ ∥ Δ x ∥ < δ } U(\mathbf{x},\delta)=\{\mathbf{x}+\Delta\mathbf{x}|\|\Delta\mathbf{x}\|<\delta\} U(x,δ)={x+Δx∣∥Δx<δ},使得在该邻域中
f ( x + Δ x ) = f ( x ) + J f ( x ) Δ x + o ( ∥ Δ x ∥ ) (A1) \mathbf{f}(\mathbf{x}+\Delta\mathbf{x})=\mathbf{f}(\mathbf{x})+\mathbf{J}\mathbf{f}(\mathbf{x})\Delta\mathbf{x}+\mathrm{o}(\|\Delta\mathbf{x}\|)\tag{A1} f(x+Δx)=f(x)+Jf(x)Δx+o(∥Δx)(A1)
其中 J f ( x ) = ∇ f ( x ) T = lim ⁡ Δ x → 0 f ( x + Δ x ) − f ( x ) Δ x T ∈ R M × N \mathbf{J}\mathbf{f}(\mathbf{x})=\nabla\mathbf{f}(\mathbf{x})^{T}=\lim_{\Delta\mathbf{x}\rightarrow\mathbf{0}}\frac{\mathbf{f}(\mathbf{x}+\Delta\mathbf{x})-\mathbf{f}(\mathbf{x})}{\Delta\mathbf{x}^{T}}\in\mathbb{R}^{M\times N} Jf(x)=f(x)T=limΔx0ΔxTf(x+Δx)f(x)RM×N称为雅可比矩阵。

( A 4 ) \mathrm{(A4)} (A4)称为多元向量函数 f \mathbf{f} f的一阶泰勒展开。

下面根据上述理论推导当 f \mathbf{f} f的定义域为非欧式空间 D o m ( x ) \mathrm{Dom}(\mathbf{x}) Dom(x)时的一阶泰勒展开

h ( Δ x ) = f ( x ⊕ Δ x ) \mathbf{h}(\Delta\mathbf{x})=\mathbf{f}(\mathbf{x}\oplus\Delta\mathbf{x}) h(Δx)=f(xΔx),故 h : R N → R M \mathbf{h}:\mathbb{R}^{N}\rightarrow\mathbb{R}^{M} h:RNRM ⊕ : D o m ( x ) × R N → D o m ( x ) \oplus:\mathrm{Dom}(\mathbf{x})\times\mathbb{R}^{N}\rightarrow\mathrm{Dom}(\mathbf{x}) :Dom(x)×RNDom(x),若 h \mathbf{h} h 0 \mathbf{0} 0点处可微,则存在 0 \mathbf{0} 0的邻域 U ( 0 , δ ) = { Δ x ∣ ∥ Δ x ∥ < δ } U(\mathbf{0},\delta)=\{\Delta\mathbf{x}|\|\Delta\mathbf{x}\|<\delta\} U(0,δ)={Δx∣∥Δx<δ},使得在该邻域中
h ( Δ x ) = h ( 0 ) + J h ( 0 ) Δ x + o ( ∥ Δ x ∥ ) (A2) \mathbf{h}(\Delta\mathbf{x})=\mathbf{h}(\mathbf{0})+\mathbf{J}\mathbf{h}(\mathbf{0})\Delta\mathbf{x}+\mathrm{o}(\|\Delta\mathbf{x}\|)\tag{A2} h(Δx)=h(0)+Jh(0)Δx+o(∥Δx)(A2)
其中 J h ( 0 ) = ∇ f ( x ) T = lim ⁡ Δ x → 0 h ( Δ x ) − h ( 0 ) Δ x T = lim ⁡ Δ x → 0 f ( x ⊕ Δ x ) − f ( x ) Δ x T ∈ R M × N \mathbf{J}\mathbf{h}(\mathbf{0})=\nabla\mathbf{f}(\mathbf{x})^{T}=\lim_{\Delta\mathbf{x}\rightarrow\mathbf{0}}\frac{\mathbf{h}(\Delta\mathbf{x})-\mathbf{h}(\mathbf{0})}{\Delta\mathbf{x}^{T}}=\lim_{\Delta\mathbf{x}\rightarrow\mathbf{0}}\frac{\mathbf{f}(\mathbf{x}\oplus\Delta\mathbf{x})-\mathbf{f}(\mathbf{x})}{\Delta\mathbf{x}^{T}}\in\mathbb{R}^{M\times N} Jh(0)=f(x)T=limΔx0ΔxTh(Δx)h(0)=limΔx0ΔxTf(xΔx)f(x)RM×N,可以发现 J h ( 0 ) \mathbf{J}\mathbf{h}(\mathbf{0}) Jh(0) ( A 4 ) \mathrm{(A4)} (A4) J f ( x ) \mathbf{J}\mathbf{f}(\mathbf{x}) Jf(x)具有类似的结构,故记 J f ( x ) = J h ( 0 ) \mathbf{J}\mathbf{f}(\mathbf{x})=\mathbf{J}\mathbf{h}(\mathbf{0}) Jf(x)=Jh(0),仍称 J f ( x ) \mathbf{J}\mathbf{f}(\mathbf{x}) Jf(x)为对增量 Δ x \Delta\mathbf{x} Δx的雅可比矩阵。

综上, ( A 5 ) \mathrm{(A5)} (A5)也可以写成
f ( x ⊕ Δ x ) = f ( x ) + J f ( x ) Δ x + o ( ∥ Δ x ∥ ) (A3) \mathbf{f}(\mathbf{x}\oplus\Delta\mathbf{x})=\mathbf{f}(\mathbf{x})+\mathbf{J}\mathbf{f}(\mathbf{x})\Delta\mathbf{x}+\mathrm{o}(\|\Delta\mathbf{x}\|)\tag{A3} f(xΔx)=f(x)+Jf(x)Δx+o(∥Δx)(A3)
( A 6 ) \mathrm{(A6)} (A6)称为 D o m ( x ) \mathrm{Dom}(\mathbf{x}) Dom(x)上的向量函数 f \mathbf{f} f的一阶泰勒展开。

为简便起见,常将上面的雅可比矩阵用 J ( ⋅ ) \mathbf{J}(\cdot) J()代替

§2、极限形式的多元向量函数导数

若一个多元向量函数 f = [ f 1 , ⋯   , f M ] T : R N → R M \mathbf{f}=[f_{1},\cdots,f_{M}]^{T}:\mathbb{R}^{N}\rightarrow\mathbb{R}^{M} f=[f1,,fM]T:RNRM x \mathbf{x} x点处可微,则
lim ⁡ Δ x → 0 f ( x + Δ x ) − f ( x ) Δ x T = ∂ f ∂ x T = [ ∂ f 1 ∂ x 1 ⋯ ∂ f 1 ∂ x N ⋮ ⋱ ⋮ ∂ f M ∂ x 1 ⋯ ∂ f M ∂ x N ] M × N \lim_{\Delta\mathbf{x}\rightarrow\mathbf{0}}\frac{\mathbf{f}(\mathbf{x}+\Delta\mathbf{x})-\mathbf{f}(\mathbf{x})}{\Delta\mathbf{x}^{T}}=\frac{\partial{\mathbf{f}}}{\partial\mathbf{x}^{T}} =\begin{bmatrix} \frac{\partial{f}_{1}}{\partial{x}_{1}}&\cdots&\frac{\partial{f}_{1}}{\partial{x}_{N}}\\ \vdots&\ddots&\vdots\\ \frac{\partial{f}_{M}}{\partial{x}_{1}}&\cdots&\frac{\partial{f}_{M}}{\partial{x}_{N}} \end{bmatrix}_{M\times{N}} Δx0limΔxTf(x+Δx)f(x)=xTf= x1f1x1fMxNf1xNfM M×N
在SLAM领域,通常省略上式中的转置符号,直接记为
lim ⁡ Δ x → 0 f ( x + Δ x ) − f ( x ) Δ x = ∂ f ∂ x = [ ∂ f 1 ∂ x 1 ⋯ ∂ f 1 ∂ x N ⋮ ⋱ ⋮ ∂ f M ∂ x 1 ⋯ ∂ f M ∂ x N ] M × N (A4) \lim_{\Delta\mathbf{x}\rightarrow\mathbf{0}}\frac{\mathbf{f}(\mathbf{x}+\Delta\mathbf{x})-\mathbf{f}(\mathbf{x})}{\Delta\mathbf{x}}=\frac{\partial{\mathbf{f}}}{\partial\mathbf{x}} =\begin{bmatrix} \frac{\partial{f}_{1}}{\partial{x}_{1}}&\cdots&\frac{\partial{f}_{1}}{\partial{x}_{N}}\\ \vdots&\ddots&\vdots\\ \frac{\partial{f}_{M}}{\partial{x}_{1}}&\cdots&\frac{\partial{f}_{M}}{\partial{x}_{N}} \end{bmatrix}_{M\times{N}}\tag{A4} Δx0limΔxf(x+Δx)f(x)=xf= x1f1x1fMxNf1xNfM M×N(A4)
( A 7 ) \mathrm{(A7)} (A7)定义下, ∂ A x ∂ x = A \frac{\partial\mathbf{Ax}}{\partial\mathbf{x}}=\mathbf{A} xAx=A

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小于小于大橙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值