文章翻译—基于误差状态卡尔曼滤波器的四元数运动学—第4章

文章目录基于误差状态卡尔曼滤波器的四元数运动学4. 扰动,微分和积分4.1 SO(3)SO(3)中的加法和减法运算符4.2 四个可能的微分定义4.2.1 从向量空间到向量空间的函数4.2.2 从SO(3)到SO(3)的空间4.2.3 从向量空间到SO(3)的函数4.2.4 从SO(3)到向量空间的函数4.3 有用的,且非常有用的,旋转的雅可比4.3.1 关于向量的雅可比4.3.2 关于四元数的雅可比4.3.3 SO(3)的右雅可比4.3.4 关于旋转向量的雅可比4.4 扰动,不确定性,噪声4.4.1 局部扰
摘要由CSDN通过智能技术生成

基于误差状态卡尔曼滤波器的四元数运动学

4. 扰动,导数和积分

4.1 SO(3)SO(3)中的加法和减法运算符

在向量空间 R n \mathbb{R}^n Rn中,加和减操作是通过’+‘和’-'号实现的。在 S O ( 3 ) SO(3) SO(3)中,这是不行的,但是可以定义等效运算符以建立适当的微积分语料库。

    我们因此在元素 R ∈ S O ( 3 ) \mathsf{R} \in SO(3) RSO(3) R \mathsf{R} R的正切空间的元素 θ ∈ R 3 \boldsymbol{\theta} \in \mathbb{R}^3 θR3间定义加和减操作符, ⊕ , ⊖ \oplus, \ominus ,

加操作符 “加”操作符 ⊕ : S O ( 3 ) × R 3 → S O ( 3 ) \oplus: SO(3) \times \mathbb{R}^3 \to SO(3) :SO(3)×R3SO(3)得到一个 S O ( 3 ) SO(3) SO(3)中的一个元素 S \mathsf{S} S,它以一个(通常很小的)旋转构成 S O ( 3 ) SO(3) SO(3)的参考元素,即,
S = R ⊕ θ ≜ R ∘ E x p ( θ )      R , S ∈ S O ( 3 ) ,   θ ∈ R 3   . (157) \mathsf{S = R \oplus} \boldsymbol{\theta} \triangleq \mathsf{R} \circ \mathrm{Exp}(\boldsymbol\theta)~~~~\mathsf{R, S} \in SO(3),~\boldsymbol{\theta} \in \mathbb{R}^3~.\tag{157} S=RθRExp(θ)    R,SSO(3), θR3 .(157)

请注意,可以为 S O ( 3 ) SO(3) SO(3)的任何表示形式定义此运算符。特别是对于四元数和旋转矩阵,
q S = q R ⊕ θ = q R ⊗ E x p ( θ )   (158) \mathbf{q}_\mathsf{S} = \mathbf{q}_\mathsf{R} \oplus \boldsymbol{\theta} =\mathbf{q}_\mathsf{R} \otimes \mathrm{Exp}(\boldsymbol{\theta})~\tag{158} qS=qRθ=qRExp(θ) (158)

R S = R R ⊕ θ = R R ⋅ E x p ( θ )   . (159) \mathbf{R}_\mathsf{S} = \mathbf{R}_\mathsf{R} \oplus \boldsymbol{\theta} = \mathbf{R}_\mathsf{R} \cdot \mathrm{Exp(\boldsymbol{\theta})}~.\tag{159} RS=RRθ=RRExp(θ) .(159)

减操作符 “减”操作符 ⊖ : S O ( 3 ) × S O ( 3 ) → R 3 \ominus:SO(3) \times SO(3) \to \mathbb{R}^3 :SO(3)×SO(3)R3是上面的逆。它返回 S O ( 3 ) SO(3) SO(3)的两个元素间的向量角度差 θ ∈ R 3 \boldsymbol{\theta} \in \mathbb{R}^3 θR3。该差在参考元素 R \mathsf{R} R的正切向量空间中被表达,
θ = S ⊖ R ≜ L o g ( R − 1 ∘ S )      R ,   S ∈ S O ( 3 ) ,   θ ∈ R 3   , (160) \boldsymbol{\theta} = \mathsf{S \ominus R} \triangleq \mathrm{Log}(\mathsf{R}^{-1} \circ S)~~~~\mathsf{R,~S} \in SO(3),~\boldsymbol{\theta} \in \mathbb{R}^3~,\tag{160} θ=SRLog(R1S)    R, SSO(3), θR3 ,(160)

对于四元数和旋转矩阵,
θ = q S ⊖ q R = L o g ( q R ∗ ⊗ q S ) (161) \boldsymbol{\theta} = \mathbf{q}_\mathsf{S} \ominus \mathbf{q}_\mathsf{R} = \mathrm{Log}(\mathbf{q}_\mathsf{R}^* \otimes \mathbf{q}_\mathsf{S} ) \tag{161} θ=qSqR=Log(qRqS)(161)

θ = R S ⊖ R R = L o g ( R R ⊤ R S )   . (162) \boldsymbol{\theta} = \mathbf{R}_\mathsf{S} \ominus \mathbf{R}_\mathsf{R} = \mathrm{Log}(\mathbf{R}_\mathsf{R}^\top \mathbf{R}_\mathsf{S})~.\tag{162} θ=RSRR=Log(RRRS) .(162)

    在这两种情况下,注意,即时的向量差通常被假设很小,上述的定义对任何值都成立(直到 S O ( 3 ) SO(3) SO(3)流形的第一次覆盖,即对角度 θ < π \theta < \pi θ<π)。

4.2 四个可能的导数定义

4.2.1 从向量空间到向量空间的函数

标量和向量的情况遵循导数的经典定义:给定一个函数 f : R m → R n f:\mathbb{R}^m \to \mathbb{R}^n f:RmRn,我们使用{ + + +, − - }来定义导数
∂ f ( x ) ∂ x ≜ lim ⁡ δ x → 0 f ( x + δ x ) − f ( x ) δ x          ∈ R n × m (163) \frac{\partial f(\mathbf{x})}{\partial \mathbf{x}} \triangleq \lim\limits_{\delta \mathbf{x} \to 0} \frac{f(\mathbf{x+\delta x}) - f(\mathbf{x})}{\delta \mathbf{x}} ~~~~~~~~\in \mathbb{R}^{n \times m}\tag{163} xf(x)δx0limδxf(x+δx)f(x)        Rn×m(163)

欧拉积分得到该形式的线性表达式
f ( x + Δ x ) ≈ f ( x ) + ∂ f ( x ) ∂ x Δ x          ∈ R n f(\mathbf{x} + \Delta \mathbf{x}) \approx f(\mathbf{x}) + \frac{\partial f(\mathbf{x})}{\partial \mathbf{x}} \Delta \mathbf{x}~~~~~~~~\in \mathbb{R}^n f(x+Δx)f(x)+xf(x)Δx        Rn

4.2.2 从SO(3)到SO(3)的空间

给定一个函数 f : S O ( 3 ) → S O ( 3 ) f:SO(3) \to SO(3) f:SO(3)SO(3),其中 R ∈ S O ( 3 ) \mathsf{R} \in SO(3) RSO(3)以及一个局部的小角度变量 θ ∈ R 3 \boldsymbol{\theta} \in \mathbb{R}^3 θR3,我们使用{ ⊕ , ⊖ \oplus, \ominus ,}来定义如下导数
∂ f ( R ) ∂ θ ≜ lim ⁡ δ θ → 0 f ( R ⊕ δ θ ) ⊖ f ( R ) δ θ              ∈ R 3 × 3 (164) \begin{aligned}\frac{\partial f(\mathsf{R})}{\partial \boldsymbol{\theta}} \triangleq \mathop{\lim}\limits_{\delta \boldsymbol{\theta} \to 0} \frac{f(\mathsf{R} \oplus \delta \boldsymbol{\theta}) \ominus f(\mathsf{R})}{\delta \boldsymbol{\theta}}~~~~~~~~~~~~\in \mathbb{R}^{3 \times 3}\end{aligned} \tag{164} θf(R)δθ0limδθf(Rδθ)f(R)            R3×3(164)

= lim ⁡ δ θ → 0 L o g ( f − 1 ( R )   f ( R   E x p ( δ θ ) ) ) δ θ (165) = \mathop{\lim}\limits_{\delta \boldsymbol{\theta} \to 0} \frac{\mathrm{Log(f^{-1}(\mathsf{R})~f(\mathsf{R}~\mathrm{Exp}(\delta \boldsymbol{\theta})))}}{\delta \boldsymbol{\theta}} \tag{165} =δθ0limδθLog(f1(R) f(R Exp(δθ)))(165)

欧拉积分得到该形式的表达式,
f ( R ⊕ Δ θ ) ≈ f ( R ) ⊕ ∂ f ( R ) ∂ θ Δ θ ≜ f ( R )   E x p ( ∂ f ( R ) ∂ θ Δ θ )      ∈ S O ( 3 ) f(\mathsf{R} \oplus \Delta \boldsymbol{\theta}) \approx f(\mathsf{R}) \oplus\frac{\partial f(\mathsf{R}) }{\partial \boldsymbol{\theta}} \Delta \boldsymbol{\theta} \triangleq f(\mathsf{R}) ~\mathrm{Exp}(\frac{\partial f(\mathsf{R}) }{\partial \boldsymbol{\theta}} \Delta \boldsymbol{\theta})~~~~\in SO(3) f(RΔθ)f(R)θf(R)Δθf(R) Exp(θf(R)Δθ)    SO(3)

4.2.3 从向量空间到SO(3)的函数

对于函数 f : R m → S O ( 3 ) f:\mathbb{R}^m \to SO(3) f:RmSO(3),我们用 ′ + ′ '+' +表示对向量施加扰动,而 ′ ⊖ ′ '\ominus' 表示 S O ( 3 ) SO(3) SO(3)的差,
∂ f ( x ) ∂ x ≜ l i m δ x → 0 f ( x + δ x ) ⊖ f ( x ) δ x            ∈ R 3 × m (166) \frac{\partial f(\mathbf{x})}{\partial \mathbf{x}} \triangleq \mathop{lim}\limits_{\delta \mathbf{x} \to 0} \frac{f(\mathbf{x} + \delta \mathbf{x}) \ominus f(\mathbf{x})}{\delta \mathbf{x}}~~~~~~~~~~\in \mathbb{R}^{3\times m} \tag{166} xf(x)δx0limδxf(x+δx)f(x)          R3×m(166)

= l i m δ x → 0 L o g ( f − 1 ( x )   f ( x + δ x ) ) ) δ x (167) = \mathop{lim}\limits_{\delta \mathbf{x} \to 0}\frac{\mathrm{Log}(f^{-1}(\mathbf{x}) ~ f(\mathbf{x} + \delta \mathbf{x})))}{\delta \mathbf{x}} \tag{167} =δx0limδxLog(f1(x) f(x+δx)))(167)

欧拉积分得到该形式的表达式,
f ( x + Δ x ) ≈ f ( x ) ⊕ ∂ f ( x ) ∂ x Δ x ≜ f ( x )   E x p ( ∂ f ( x ) ∂ x Δ x ) ∈ S O ( 3 ) f(\mathbf{x} + \Delta \mathbf{x}) \approx f(\mathbf{x}) \oplus \frac{\partial f(\mathbf{x})}{\partial \mathbf{x}} \Delta \mathbf{x} \triangleq f(\mathbf{x}) ~\mathrm{Exp(\frac{\partial f(\mathbf{x})}{\partial \mathbf{x}} \Delta \mathbf{x})} \in SO(3) f(x+Δx)f(x)xf(x)Δxf(x) Exp(xf(x)Δx)SO(3)

4.2.4 从SO(3)到向量空间的函数

对于函数 f : S O ( 3 ) → R n f:SO(3) \to \mathbb{R}^n f:SO(3)Rn,我们用 ′ ⊕ ′ '\oplus' 表示 S O ( 3 ) SO(3) SO(3)扰动, ′ − ′ '-' 表示向量差,
∂ f ( R ) ∂ θ ≜ lim ⁡ δ θ → 0 f ( R ⊕ δ θ ) − f ( R ) δ θ        ∈ R n × 3 (168) \frac{\partial f(\mathsf{R})}{\partial \boldsymbol{\theta}} \triangleq \mathop{\lim}\limits_{\delta \boldsymbol{\theta} \to 0} \frac{f(\mathsf{R} \oplus \delta \boldsymbol{\theta}) - f(\mathsf{R}) }{\delta \boldsymbol{\theta}}~~~~~~\in \mathbb{R}^{n \times 3} \tag{168} θf(R)δθ0limδθf(Rδθ)f(R)      Rn×3(168)

= lim ⁡ δ θ → 0 f ( R   E x p ( δ θ ) ) − f ( R ) δ θ (169) = \mathop{\lim}\limits_{\delta \boldsymbol{\theta} \to 0} \frac{f(\mathsf{R} ~\mathrm{Exp}(\delta \boldsymbol{\theta})) - f(\mathsf{R}) }{\delta \boldsymbol{\theta}}\tag{169} =δθ0limδθf(R Exp(δθ))f(R)(169)

欧拉积分得到该形式的表达式,
f ( R ⊕ δ θ ) ≈ f ( R ) ⊕ ∂ f ( R ) ∂ θ Δ θ ≜ f ( R ) + E x p ( ∂ f ( R ) ∂ θ Δ θ )      ∈ S O ( 3 ) f(\mathsf{R} \oplus \delta \boldsymbol{\theta}) \approx f(\mathsf{R}) \oplus\frac{\partial f(\mathsf{R}) }{\partial \boldsymbol{\theta}} \Delta \boldsymbol{\theta} \triangleq f(\mathsf{R}) + \mathrm{Exp}(\frac{\partial f(\mathsf{R}) }{\partial \boldsymbol{\theta}} \Delta \boldsymbol{\theta})~~~~\in SO(3) f(Rδθ)f(R)θf(R)Δθf(R)+Exp(θf(R)Δθ)    SO(3)

4.3 有用的,且非常有用的,旋转的雅可比

让我们考虑对一个向量 a \mathbf{a} a,绕轴 u \mathbf{u} u旋转 θ \theta θ弧度。让我们以三种等效形式表达旋转规范,即 θ = θ u ,   q = q { θ } \mathbf{\boldsymbol\theta} = \theta \mathbf{u},~\mathbf{q} = \mathbf{q}\{\boldsymbol\theta\} θ=θu, q=q{ θ} R = R { θ } \mathbf{R} = \mathbf{R}\{\boldsymbol\theta\} R=R{ θ}。我们对旋转结果关于不同幅度的雅可比矩阵感兴趣。

4.3.1 关于向量的雅可比

向量 a \mathbf{a} a的旋转相对于此向量本身的导数很一般,
∂ ( q ⊗ a ⊗ q ∗ ) ∂ a = ∂ ( R   a ) ∂ a = R   . (170) {\color{red} \frac{\partial (\mathbf{q \otimes a \otimes q^*})}{\partial \mathbf{a}} = \frac{\partial \mathbf{(R~a)}}{\partial \mathbf{a}} = \mathbf{R}}~.\tag{170} a(qaq)=a(R a)=R .(170)

4.3.2 关于四元数的雅可比

相反,关于四元数 q \mathbf{q} q的旋转的导数很棘手。为了方便,我们对四元数使用较浅的符号, q = [ w , v ] = w + v \mathbf{q} = [w, \mathbf{v}] = w + \mathbf{v} q=[w,v]=w+v。我们利用式(35),(34),以及恒等式 a × ( b × c ) = ( c × b ) × a = ( a ⊤ c ) b − ( a ⊤ b ) c \mathbf{a \times (b \times c) = (c \times b) \times a} = \mathbf{(a^\top c)b - (a^\top b) c} a×(b×c)=(c×b)×a=(ac)b(ab)c,从而开发基于四元数的旋转(107),

a ′ = q ⊗ a ⊗ q ∗ = ( w + v ) ⊗ a ⊗ ( w − v ) = w 2 a + w ( v ⊗ a − a ⊗ v ) − v ⊗ a ⊗ v = w 2 a + 2 w ( v × a ) − [ ( − v ⊤ a + v × a ) ⊗ v ] = w 2 a + 2 w ( v × a ) − [ ( − v ⊤ a ) v + ( v × a ) ⊗ v ] = w 2 a + 2 w ( v × a ) − [ ( − v ⊤ a ) v − ( v × a ) ⊤ v + ( v × a ) × v ] = w 2 a + 2 w ( v × a ) − [ ( − v ⊤ a ) v + ( v ⊤ v ) a − ( v ⊤ a ) v ] = w 2 a + 2 w ( v × a ) + 2 ( v ⊤ a ) v − ( v ⊤ v ) a   . (171) \begin{aligned}\mathbf{a}' =& \mathbf{q} \otimes \mathbf{a} \otimes \mathbf{q}^* \\ =& (w + \mathbf{v}) \otimes \mathbf{a} \otimes (w - \mathbf{v}) \\ =& w^2\mathbf{a} + w(\mathbf{v \otimes a - a \otimes v}) - \mathbf{v \otimes a \otimes v} \\ =& w^2\mathbf{a} + 2w(\mathbf{v \times a}) - [(-\mathbf{v}^\top \mathbf{a} + \mathbf{v \times a}) \otimes \mathbf{v}] \\ =& w^2\mathbf{a} + 2w(\mathbf{v \times a}) - [(-\mathbf{v}^\top \mathbf{a}) \mathbf{v} + \mathbf{(v \times a) \otimes v}] \\ =& w^2\mathbf{a} + 2w(\mathbf{v \times a}) - [(-\mathbf{v}^\top \mathbf{a})\mathbf{v} -\cancel{(\mathbf{v \times a})^\top \mathbf{v}} + \mathbf{(v \times a) \times v}]\\ =& w^2\mathbf{a} + 2w(\mathbf{v \times a}) - [(-\mathbf{v}^\top \mathbf{a})\mathbf{v} +\mathbf{(v^\top v)a} - \mathbf{(v^\top a)v}]\\ =& w^2\mathbf{a} + 2w(\mathbf{v \times a}) + 2(\mathbf{v}^\top \mathbf{a})\mathbf{v} - (\mathbf{v}^\top \mathbf{v})\mathbf{a}~. \\ \end{aligned} \tag{171} a========qaq(w+v)a(wv)w2a+w(vaav)vavw2a+2w(v×a)[(va+v×a)v]w2a+<

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值