旋转的扰动、导数和积分

news2024/11/25 5:33:41

The plus operator

M \mathcal{M} M表示一个n维的流型,因为流型局部同胚与 R n \mathbb{R}^n Rn,所以我们可以通过定义符号 ⊞ \boxplus ⊟ \boxminus 建立一个流型 M \mathcal{M} M的局部邻域和其正切空间的双射。

⊞ : M × R n → M ; ⊟ : M × M n → R n \boxplus:\mathcal{M}\times \mathbb{R}^n\to \mathcal{M};\quad\boxminus:\mathcal{M}\times \mathbb{M}^n\to \mathbb{R}^n :M×RnM;:M×MnRn

对于流型 S O ( 3 ) SO(3) SO(3) ⊞ : S O ( 3 ) × R n → S O ( 3 ) \boxplus:SO(3)\times \mathbb{R}^n\to SO(3) :SO(3)×RnSO(3)生成一个 S O ( 3 ) SO(3) SO(3)中的元素,其结果是参考元素 R ∈ S O ( 3 ) \bold{R}\in SO(3) RSO(3)和一个(通常很小的)旋转的组合。这个旋转由流型在参考元素 R \bold{R} R处的正切空间中的一个向量 θ ∈ R 3 \theta\in\mathbb{R}^3 θR3指定。
M = S O ( 3 ) : R ⊞ θ = R E x p ( θ ) \mathcal{M}=SO(3):\bold{R}\boxplus\bm{\theta}=\bold{R}{\rm Exp}(\bm{\theta}) M=SO(3):Rθ=RExp(θ)
minus符号 ⊟ : S O ( 3 ) × S O ( 3 ) → R 3 \boxminus:SO(3)\times SO(3)\to \mathbb{R}^3 :SO(3)×SO(3)R3是plus符号的逆运算,它返回两个 S O ( 3 ) SO(3) SO(3)元素的角度差异向量 θ ∈ R 3 \bm{\theta}\in\mathbb{R}^3 θR3,角度差异向量在参考元素 R \bold{R} R的正切空间中表示。
注意到这个符号可以定义于任意SO(3)的表示:
q ⊞ θ = q ⊗ E x p ( θ ) θ = q S ⊟ q R = L o g ( q R ∗ ⊗ q S ) \bold{q}\boxplus \bm{\theta}=\bold{q}\otimes{\rm Exp}(\bm{\theta})\\ \bm{\theta}=\bold{q}_S\boxminus\bold{q}_R={\rm Log}(\bold{q}^{\ast}_R\otimes \bold{q}_S) qθ=qExp(θ)θ=qSqR=Log(qRqS)
在这两种情况下,请注意,即使向量差 θ \bm{\theta} θ通常被认为是很小的,上面的定义适用于 θ \bm{\theta} θ的任何值(直到SO(3)流形的第一个覆盖范围,也就是说,对于角 θ < π \theta < \pi θ<π

四种可能的导数定义

Functions from vector space to vector space

给定一个函数 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 f ( x + Δ x ) ≈ f ( x ) + ∂ f ( x ) ∂ x Δ x ∈ R n \dfrac{\partial f\left( \bold{x}\right) }{\partial \bold{x}}=\lim _{\delta \bold{x}\rightarrow 0}\dfrac{f\left( \bold{x}+\delta \bold{x}\right) -f\left( \bold{x}\right) }{\delta \bold{x}} \in\mathbb{R}^{n\times m} \\ f\left( \bold{x}+\Delta \bold{x}\right) \approx f\left( \bold{x}\right) +\dfrac{\partial f\left( \bold{x}\right) }{\partial \bold{x}}\Delta \bold{x}\in \mathbb{R}^n xf(x)=δx0limδxf(x+δx)f(x)Rn×mf(x+Δx)f(x)+xf(x)ΔxRn

Functions from S O ( 3 ) SO(3) SO(3) to S O ( 3 ) 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 ) \bold{R} \in SO(3) RSO(3)和一个局部的小角度变化 θ ∈ R 3 \bm{\theta}\in\mathbb{R}^3 θR3,我们使用 { ⊞ , ⊟ } \{\boxplus,\boxminus\} {,}定义导数:
∂ f ( R ) ∂ θ = lim ⁡ δ θ → 0 f ( R ⊞ δ θ ) ⊟ f ( R ) δ θ = lim ⁡ δ θ → 0 L o g ( f − 1 ( R ) f ( R E x p ( δ θ ) ) ) δ θ ∈ R 3 × 3 f ( R ⊞ Δ θ ) ≈ f ( R ) ⊞ ∂ f ( R ) ∂ θ Δ θ ≈ f ( R ) E x p ( ∂ f ( R ) ∂ θ Δ θ ) ∈ S O ( 3 ) \begin{aligned} \dfrac{\partial f\left( \bold{R}\right) }{\partial \bm{\theta} }&=\lim _{\delta \bm{\theta} \rightarrow 0}\dfrac{f\left( \bold{R}\boxplus \delta \bm{\theta} \right) \boxminus f\left( \bold{R}\right) }{\delta \bm{\theta} }\\ &=\lim _{\delta \bm{\theta} \rightarrow 0}\dfrac{{\rm Log}\left( f^{-1}\left( \bold{R}\right) f\left( \bold{R} {\rm Exp}\left( \delta \bm{\theta} \right) \right) \right) }{\delta \bm{\theta} }\quad\in \mathbb{R}^{3\times3}\\ f\left( \bold{R}\boxplus \Delta \bm{\theta} \right) &\approx f\left( \bold{R}\right) \boxplus \dfrac{\partial f\left( \bold{R}\right) }{\partial \bm{\theta} }\Delta \bm{\theta} \approx f\left( \bold{R}\right) {\rm Exp}\left( \dfrac{\partial f\left( \bold{R} \right) }{\partial \bm{\theta} }\Delta \bm{\theta} \right) \quad\in SO(3) \end{aligned} θf(R)f(RΔθ)=δθ0limδθf(Rδθ)f(R)=δθ0limδθLog(f1(R)f(RExp(δθ)))R3×3f(R)θf(R)Δθf(R)Exp(θf(R)Δθ)SO(3)

Functions from vector space to S O ( 3 ) SO(3) SO(3)

给定函数 f : R m → S O ( 3 ) f:\mathbb{R}^m\to SO(3) f:RmSO(3),用 ⊟ \boxminus 进行 S O ( 3 ) SO(3) SO(3)差分,用-进行向量差分。
∂ f ( x ) ∂ x = lim ⁡ δ x → 0 f ( x + δ x ) ⊟ f ( x ) δ x = lim ⁡ δ x → 0 L o g ( f − 1 ( x ) f ( x + δ x ) ) δ x ∈ R 3 × m f ( x + Δ x ) ≈ f ( x ) ⊞ ∂ f ( x ) ∂ x Δ x ≈ f ( x ) E x p ( ∂ f ( x ) ∂ x Δ x ) ∈ S O ( 3 ) \begin{aligned} \dfrac{\partial f\left( \bold{x}\right) }{\partial \bold{x}}&=\lim _{\delta \bold{x}\rightarrow 0}\dfrac{f\left( \bold{x}+\delta \bold{x}\right) \boxminus f\left( \bold{x}\right) }{\delta \bold{x}}\\ &=\lim _{\delta \bold{x}\rightarrow 0}\dfrac{{\rm Log}\left( f^{-1}\left( \bold{x}\right) f\left( \bold{x}+\delta \bold{x}\right) \right) }{\delta \bold{x}}\quad\in\mathbb{R}^{3\times m}\\ f\left( \bold{x}+\Delta \bold{x}\right) &\approx f\left( \bold{x}\right) \boxplus \dfrac{\partial f\left( \bold{x}\right) }{\partial \bold{x}}\Delta \bold{x}\approx f\left( \bold{x}\right) {\rm Exp}\left( \dfrac{\partial f\left( \bold{x}\right) }{\partial \bold{x}}\Delta \bold{x}\right) \quad \in SO(3) \end{aligned} xf(x)f(x+Δx)=δx0limδxf(x+δx)f(x)=δx0limδxLog(f1(x)f(x+δx))R3×mf(x)xf(x)Δxf(x)Exp(xf(x)Δx)SO(3)

Functions from S O ( 3 ) SO(3) SO(3) to vector space

对于函数 f : S O ( 3 ) → R n f:SO(3)\to \mathbb{R}^{n} f:SO(3)Rn,用 ⊞ \boxplus 进行 S O ( 3 ) SO(3) SO(3)组合,用-进行向量差分。
∂ f ( R ) ∂ θ = lim ⁡ δ θ → 0 f ( R ⊞ δ θ ) − f ( R ) δ θ = lim ⁡ δ θ → 0 f ( R E x p ( δ θ ) ) − f ( R ) δ θ ∈ R n × 3 f ( R ⊞ δ θ ) ≈ f ( R ) + ∂ f ( R ) ∂ θ Δ θ ∈ S O ( 3 ) \begin{aligned} \dfrac{\partial f\left( \bold{R}\right) }{\partial \bm{\theta} }&=\lim _{\delta \bm{\theta} \rightarrow 0}\dfrac{f\left( \bold{R}\boxplus \delta \bm{\theta} \right) -f\left( \bold{R}\right) }{\delta \bm{\theta} }\\ &=\lim _{\delta \bm{\theta} \rightarrow 0}\dfrac{f\left( \bold{R}{\rm Exp}\left( \delta \bm{\theta} \right) \right) -f\left( \bold{R}\right) }{\delta \bm{\theta} } \quad \in \mathbb{R}^{n\times 3}\\ f\left( \bold{R}\boxplus \delta \bm{\theta} \right) &\approx f\left( \bold{R}\right) +\dfrac{\partial f\left( \bold{R}\right) }{\partial \bm{\theta} }\Delta \bm{\theta} \quad \in SO(3) \end{aligned} θf(R)f(Rδθ)=δθ0limδθf(Rδθ)f(R)=δθ0limδθf(RExp(δθ))f(R)Rn×3f(R)+θf(R)ΔθSO(3)

Jacobians of rotation

Jacobian with respect to the vector

向量旋转对于向量的求导是容易的。
∂ ( q ⊗ p ⊗ q ∗ ) ∂ p = ∂ ( R p ) ∂ p = R \dfrac{\partial \left( \bold{q}\otimes \bold{p} \otimes \bold{q}^{\ast }\right) }{\partial \bold{p}}=\dfrac{\partial \left( \bold{Rp}\right) }{\partial \bold{p}}=\bold{R} p(qpq)=p(Rp)=R

Jacobian with respect to the quaternion

旋转对于四元数的导数是棘手的。为了方便起见,我们使用符号 q = [ w v ] = w + v \bold{q}=\begin{bmatrix}\bold{w} & \bold{v}\end{bmatrix}=\bold{w} + \bold{v} q=[wv]=w+v
p ′ = q ⊗ p ⊗ q ∗ = ( w + v ) ⊗ p ⊗ ( w − v ) = w 2 p + w ( v ⊗ p − p ⊗ v ) − v ⊗ p ⊗ v = w 2 p + 2 w ( v × p ) − [ ( − v T p + v × p ) ⊗ v ] = w 2 p + 2 w ( v × p ) − [ ( − v T p ) v − ( v × p ) T v + ( v × p ) × v ] = w 2 p + 2 w ( v × p ) − [ ( − v T p ) v + ( v T v ) p − ( v T p ) v ] = w 2 p + 2 w ( v × p ) + 2 ( v T p ) v − ( v T v ) p \begin{aligned} \bold{p}'&=\bold{q}\otimes \bold{p}\otimes \bold{q}^{\ast }\\ &=\left( \bold{w}+\bold{v}\right) \otimes \bold{p}\otimes \left( \bold{w}-\bold{v}\right) \\ &=\bold{w}^{2}\bold{p}+\bold{w}\left( \bold{v}\otimes \bold{p}-\bold{p}\otimes \bold{v}\right) -\bold{v}\otimes \bold{p}\otimes \bold{v}\\ &=\bold{w}^{2}\bold{p}+2\bold{w}\left( \bold{v}\times \bold{p}\right) -\left[ \left( -\bold{v}^{T}\bold{p}+\bold{v}\times \bold{p}\right) \otimes \bold{v}\right] \\ &=\bold{w}^{2}\bold{p}+2\bold{w}\left( \bold{v}\times \bold{p}\right) -\left[ \left( -\bold{v}^{T}\bold{p}\right) \bold{v}-\bcancel{\left( \bold{v}\times \bold{p}\right) ^{T}\bold{v}}+\left( \bold{v}\times \bold{p}\right) \times \bold{v}\right] \\ &=\bold{w}^{2}\bold{p}+2\bold{w}\left( \bold{v}\times \bold{p}\right) -\left[ \left( -\bold{v}^{T}\bold{p}\right) \bold{v}+\left( \bold{v}^{T}\bold{v}\right) \bold{p}-\left( \bold{v}^{T}\bold{p}\right) \bold{v}\right] \\ &=\bold{w}^{2}\bold{p}+2\bold{w}\left( \bold{v}\times \bold{p}\right) +2\left( \bold{v}^{T}\bold{p}\right) \bold{v}-\left( \bold{v}^{T}\bold{v}\right) \bold{p} \end{aligned} p=qpq=(w+v)p(wv)=w2p+w(vppv)vpv=w2p+2w(v×p)[(vTp+v×p)v]=w2p+2w(v×p)[(vTp)v(v×p)Tv +(v×p)×v]=w2p+2w(v×p)[(vTp)v+(vTv)p(vTp)v]=w2p+2w(v×p)+2(vTp)v(vTv)p
进而我们能够提取出导数
∂ p ′ ∂ w = 2 w p + 2 v × p ∂ p ′ ∂ v = − 2 w p ∧ + 2 ( v p T + v T p I ) − 2 p v T = 2 ( v T p I + v p T − p v T − w p ∧ ) \begin{aligned} \dfrac{\partial \bold{p}'}{\partial \bold{w}}&=2\bold{wp}+2\bold{v}\times \bold{p}\\ \dfrac{\partial \bold{p}'}{\partial \bold{v}}&=-2\bold{wp}^{\wedge }+2\left( \bold{vp}^{T}+\bold{v}^{T}\bold{pI}\right) -2\bold{pv}^{T}\\ &=2\left( \bold{v}^{T}\bold{pI}+\bold{vp}^{T}-\bold{pv}^{T}-\bold{wp}^{\wedge}\right) \end{aligned} wpvp=2wp+2v×p=2wp+2(vpT+vTpI)2pvT=2(vTpI+vpTpvTwp)
合并上式能够得出
∂ ( q ⊗ p ⊗ q ∗ ) ∂ q = 2 [ w p + 2 v × p v T p I + v p T − p v T − w p ∧ ] ∈ R 3 × 4 \dfrac{\partial \left( \bold{q}\otimes \bold{p}\otimes \bold{q}^{\ast }\right) }{\partial \bold{q}}=2\begin{bmatrix} \bold{wp}+2\bold{v}\times \bold{p} & \bold{v}^{T}\bold{pI}+\bold{vp}^{T}-\bold{pv}^{T}-\bold{wp}^{\wedge} \end{bmatrix}\in{\mathbb{R}^{3\times 4}} q(qpq)=2[wp+2v×pvTpI+vpTpvTwp]R3×4

S O ( 3 ) SO(3) SO(3)的右Jacobian矩阵

在这里插入图片描述
E x p ( θ ) ⊞ δ ϕ = E x p ( θ + δ θ )    ⟺    E x p ( θ ) ⋅ E x p ( δ ϕ ) = E x p ( θ + δ θ )    ⟺    δ ϕ = L o g ( E x p ( θ ) − 1 E x p ( θ + δ θ ) ) = E x p ( θ + δ θ ) ⊟ E x p ( θ ) \begin{aligned} &{\rm Exp}\left( \bm{\theta} \right) \boxplus \delta \bm{\phi} ={\rm Exp}\left( \bm{\theta} +\delta \bm{\theta} \right) \\ \iff &{\rm Exp}\left( \bm{\theta} \right) \cdot {\rm Exp}\left( \delta \bm{\phi} \right) ={\rm Exp}\left( \bm{\theta} +\delta \bm{\theta} \right) \\ \iff &\delta \bm{\phi} ={\rm Log}\left( {\rm Exp}\left( \bm{\theta} \right) ^{-1}{\rm Exp}\left( \bm{\theta} +\delta \bm{\theta} \right) \right) ={\rm Exp}\left( \bm{\theta} +\delta \bm{\theta} \right) \boxminus {\rm Exp}\left( \bm{\theta} \right) \end{aligned} Exp(θ)δϕ=Exp(θ+δθ)Exp(θ)Exp(δϕ)=Exp(θ+δθ)δϕ=Log(Exp(θ)1Exp(θ+δθ))=Exp(θ+δθ)Exp(θ)
δ ϕ \delta \bm{\phi} δϕ相对于 δ θ \delta \bm{\theta} δθ的微分
∂ δ ϕ ∂ δ θ = lim ⁡ δ θ → 0 δ ϕ δ θ = lim ⁡ δ θ → 0 E x p ( θ + δ θ ) ⊟ E x p ( θ ) δ θ \dfrac{\partial \delta \bm{\phi} }{\partial \delta \bm{\theta} }=\lim _{\delta \bm{\theta} \rightarrow 0}\dfrac{\delta \bm{\phi} }{\delta \bm{\theta} }=\lim _{\delta \bm{\theta} \rightarrow 0}\dfrac{{\rm Exp}\left( \bm{\theta} +\delta \bm{\theta} \right) \boxminus {\rm Exp}\left( \bm{\theta} \right) }{\delta \bm{\theta} } δθδϕ=δθ0limδθδϕ=δθ0limδθExp(θ+δθ)Exp(θ)
这个Jacobian矩阵就是熟知的 S O ( 3 ) SO(3) SO(3)的右Jacobian矩阵,其定义为:
J r ( θ ) = ∂ E x p ( θ ) ∂ θ = lim ⁡ δ θ → 0 E x p ( θ + δ θ ) ⊗ E x p ( θ ) δ θ = lim ⁡ δ θ → 0 L o g ( E x p ( θ ) T E x p ( θ + δ θ ) ) δ θ if using  R = lim ⁡ δ θ → 0 L o g ( E x p ( θ ) ∗ ⊗ E x p ( θ + δ θ ) ) δ θ if using  q \begin{aligned} \bold{J}_{r}\left( \bm{\theta} \right) &=\dfrac{\partial {\rm Exp}\left( \bm{\theta} \right) }{\partial \bm{\theta} } \\ &=\lim _{\delta \bm{\theta} \rightarrow 0}\dfrac{{\rm Exp}\left( \bm{\theta} +\delta \bm{\theta} \right) \otimes {\rm Exp}\left( \bm{\theta} \right) }{\delta \bm{\theta} } \\ &=\lim _{\delta \bm{\theta} \rightarrow 0}\dfrac{{\rm Log}\left( {\rm Exp}\left( \bm{\theta} \right) ^{T}{\rm Exp}\left( \bm{\theta} +\delta \bm{\theta} \right) \right) }{\delta \bm{\theta} }\qquad \text{if using }\bold{R} \\ &=\lim _{\delta \bm{\theta} \rightarrow 0}\dfrac{{\rm Log} \left( {\rm Exp}\left( \bm{\theta} \right) ^{\ast }\otimes {\rm Exp}\left( \bm{\theta} +\delta \bm{\theta} \right) \right) }{\delta \bm{\theta} } \qquad \text{if using }\bold{q} \end{aligned} Jr(θ)=θExp(θ)=δθ0limδθExp(θ+δθ)Exp(θ)=δθ0limδθLog(Exp(θ)TExp(θ+δθ))if using R=δθ0limδθLog(Exp(θ)Exp(θ+δθ))if using q
右Jacobian矩阵及其逆矩阵的封闭形式可以计算出:
J r ( θ ) = I − 1 − cos ⁡ ∥ θ ∥ ∥ θ ∥ 2 θ ∧ + ∥ θ ∥ − sin ⁡ ∥ θ ∥ ∥ θ ∥ 3 θ ∧ 2 J r − 1 ( θ ) = I + 1 2 θ ∧ + ( 1 ∥ θ ∥ 2 − 1 + cos ⁡ ∥ θ ∥ 2 ∥ θ ∥ sin ⁡ ∥ θ ∥ ) θ ∧ 2 \bold{J}_{r}\left( \bm{\theta} \right) =I-\dfrac{1-\cos \left\| \bm{\theta} \right\| }{\left\| \bm{\theta} \right\| ^{2}}\bm{\theta} ^{\wedge }+\dfrac{\left\| \bm{\theta} \right\| -\sin \left\| \bm{\theta} \right\| }{\left\| \bm{\theta} \right\| ^{3}}\bm{\theta} ^{\wedge2}\\ \bold{J}_{r}^{-1}\left( \bm{\theta} \right) =I+\dfrac{1}{2}\bm{\theta} ^{\wedge }+\left( \dfrac{1}{\left\| \bm{\theta} \right\| ^{2}}-\dfrac{1+\cos \left\| \bm{\theta} \right\| }{2\left\| \bm{\theta} \right\| \sin \left\| \bm{\theta} \right\| }\right) \bm{\theta} ^{\wedge 2} Jr(θ)=Iθ21cosθθ+θ3θsinθθ2Jr1(θ)=I+21θ+(θ212θsinθ1+cosθ)θ2
SO(3)的右Jacobian矩阵对于任意 θ \bm{\theta} θ和小量 δ θ \delta \bm{\theta} δθ具有以下性质:
E x p ( θ + δ θ ) ≈ E x p ( θ ) E x p ( J r ( θ ) δ θ ) E x p ( θ ) E x p ( δ θ ) ≈ E x p ( θ + J r − 1 ( θ ) δ θ ) \begin{aligned} {\rm Exp}\left( \bm{\theta} +\delta \bm{\theta} \right) &\approx {\rm Exp}\left( \bm{\theta} \right) {\rm Exp}\left( \bold{J}_{r}\left( \bm{\theta} \right) \delta \bm{\theta} \right) \\ {\rm Exp}\left( \bm{\theta} \right) {\rm Exp}\left( \delta \bm{\theta} \right) &\approx {\rm Exp}\left( \bm{\theta} +\bold{J}_{r}^{-1}\left( \bm{\theta} \right) \delta \bm{\theta} \right) \end{aligned} Exp(θ+δθ)Exp(θ)Exp(δθ)Exp(θ)Exp(Jr(θ)δθ)Exp(θ+Jr1(θ)δθ)

Jacobian with respect to the rotation vector

∂ ( q ⊗ p ⊗ q ∗ ) ∂ δ θ = ∂ ( R p ) ∂ δ θ = − R { θ } p ∧ J r ( θ ) \dfrac{\partial \left( \bold{q}\otimes \bold{p}\otimes \bold{q}^{\ast }\right) }{\partial \delta \bm{\theta} }=\dfrac{\partial \left( \bold{R} \bold{p}\right) }{\partial \delta \bm{\theta} }=-\bold{R}\left\{ \bm{\theta} \right\} \bold{p}^{\wedge} \bold{J}_{r}\left( \bm{\theta} \right) δθ(qpq)=δθ(Rp)=R{θ}pJr(θ)

扰动

局部扰动

被扰动的朝向 q ~ \tilde{\bold{q}} q~可表示为未经扰动的朝向 q \bold{q} q与局部小扰动 Δ q L \Delta \bold{q}_{\mathcal{L}} ΔqL的组合。由于Hamilton约定,这个局部扰动出现在复合积的右边,我们也可以给出等价的旋转矩阵形式
q ~ = q ⊗ Δ q L R ~ = R Δ R L \tilde{\bold{q}}=\bold{q} \otimes \Delta \bold{q}_{\mathcal{L}}\qquad \tilde{\bold{R}}=\bold{R}\Delta \bold{R}_{\mathcal{L}} q~=qΔqLR~=RΔRL
局部扰动很容易通过指数映射转换为切空间中定义的等效向量形式:
q ~ L = q L ⊗ E x p ( Δ ϕ L ) R ~ L = R L E x p ( Δ ϕ L ) \tilde{\bold{q}}_{\mathcal{L}}=\bold{q}_{\mathcal{L}}\otimes {\rm Exp}\left( \Delta \bm{\phi} _{\mathcal{L}}\right) \qquad \tilde{\bold{R}}_{\mathcal{L}}=\bold{R}_{\mathcal{L}}{\rm Exp}\left( \Delta \bm{\phi} _{\mathcal{L}}\right) q~L=qLExp(ΔϕL)R~L=RLExp(ΔϕL)
局部扰动的表示为:
Δ ϕ L = L o g ( q L ∗ ⊗ q ~ L ) = L o g ( R L T ⋅ R ~ L ) \Delta \bm{\phi} _{\mathcal{L}}={\rm Log}\left(\bold{q}_{\mathcal{L}}^{\ast } \otimes \tilde{\bold{q}}_{\mathcal{L}}\right) ={\rm Log}\left( \bold{R}_{\mathcal{L}}^{T}\cdot\tilde{\bold{R}}_{\mathcal{L}} \right) ΔϕL=Log(qLq~L)=Log(RLTR~L)
如果扰动角 Δ ϕ L \Delta \bm{\phi}_{\mathcal{L}} ΔϕL足够小,则四元数形式的扰动和旋转矩阵形式的扰动可以近似为泰勒展开直到线性项
Δ q L = E x p ( Δ ϕ L ) ≈ 1 + 1 2 Δ ϕ L = [ 1 1 2 Δ ϕ L ] Δ R L = E x p ( Δ ϕ L ) = I + Δ ϕ L ∧ \begin{aligned} \Delta \bold{q}_{\mathcal{L}}&={\rm Exp}\left( \Delta \bm{\phi} _{\mathcal{L}}\right) \approx1+\dfrac{1}{2}\Delta \bm{\phi} _{\mathcal{L}}=\begin{bmatrix} 1 \\ \dfrac{1}{2}\Delta \bm{\phi} _{\mathcal{L}} \end{bmatrix} \\ \Delta \bold{R}_{\mathcal{L}}&={\rm Exp}\left( \Delta \bm{\phi} _{\mathcal{L}}\right) =I+\Delta \bm{\phi} _{\mathcal{L}}^{\wedge} \end{aligned} ΔqLΔRL=Exp(ΔϕL)1+21ΔϕL=[121ΔϕL]=Exp(ΔϕL)=I+ΔϕL
因此,扰动可以在与 S O ( 3 ) SO(3) SO(3)流形相切的局部向量空间中指定。在这个向量空间中表示这些扰动的协方差矩阵是很方便的,即用一个3×3协方差矩阵表示。

全局扰动

全局扰动出现在复合积的左侧
q ~ G = E x p ( Δ ϕ G ) ⊗ q G R ~ G = E x p ( Δ ϕ G ) ⋅ R G \tilde{\bold{q}}_{\mathcal{G}}={\rm Exp}\left( \Delta \bm{\phi} _{\mathcal{G}}\right) \otimes \bold{q}_{\mathcal{G}} \qquad \tilde{\bold{R}}_{\mathcal{G}}={\rm Exp}\left( \Delta \bm{\phi} _{\mathcal{G}}\right) \cdot \bold{R}_{\mathcal{G}} q~G=Exp(ΔϕG)qGR~G=Exp(ΔϕG)RG
全局扰动的表示为:
Δ ϕ G = L o g ( q ~ G ⊗ q G ∗ ) = L o g ( R ~ G ⋅ R G T ) \Delta \bm{\phi} _{\mathcal{G}}={\rm Log}\left( \tilde{\bold{q}}_{\mathcal{G}}\otimes \bold{q}_{\mathcal{G}}^{\ast }\right) ={\rm Log}\left( \tilde{\bold{R}}_{\mathcal{G}}\cdot \bold{R}_{\mathcal{G}}^{T}\right) ΔϕG=Log(q~GqG)=Log(R~GRGT)
全局扰动可以在与SO(3)流形原点处相切的向量空间中指定。

时间微分

在向量空间中表示局部扰动,我们可以很容易地得到时间导数的表达式。只要考虑 q = q ( t ) \bold{q} = \bold{q}(t) q=q(t)为原始状态, q ~ = q ( t + Δ t ) \tilde{\bold{q}} = \bold{q}(t +\Delta t) q~=q(t+Δt)为扰动状态,并应用导数的定义
q ˙ = lim ⁡ Δ t → 0 q ( t + Δ t ) − q ( t ) Δ t = lim ⁡ Δ t → 0 q ⊗ Δ q L − q Δ t = lim ⁡ Δ t → 0 q ⊗ ( [ 1 Δ ϕ L / 2 ] − [ 1 0 ] ) Δ t = lim ⁡ Δ t → 0 q ⊗ [ 0 Δ ϕ L / 2 ] Δ t = 1 2 q ⊗ [ 0 ω L ] \begin{aligned} \dot{\bold{q}}&=\lim _{\Delta t\rightarrow 0}\dfrac{\bold{q}\left( t+\Delta t\right) -\bold{q}\left( t\right) }{\Delta t} \\ &=\lim _{\Delta t\rightarrow 0}\dfrac{\bold{q}\otimes \Delta \bold{q}_{\mathcal{L}}-\bold{q}}{\Delta t} \\ &=\lim _{\Delta t\rightarrow 0}\dfrac{\bold{q}\otimes \left( \begin{bmatrix} 1 \\ \Delta \bm{\phi} _{\mathcal{L}}/2 \end{bmatrix}-\begin{bmatrix} 1 \\ 0 \end{bmatrix}\right) }{\Delta t} \\ &=\lim _{\Delta t\rightarrow 0}\dfrac{\bold{q}\otimes \begin{bmatrix} 0 \\ \Delta \bm{\phi} _{\mathcal{L}}/2 \end{bmatrix}}{\Delta t} \\ &=\dfrac{1}{2}\bold{q}\otimes \begin{bmatrix} 0 \\ \bm{\omega} _{\mathcal{L}} \end{bmatrix} \end{aligned} q˙=Δt0limΔtq(t+Δt)q(t)=Δt0limΔtqΔqLq=Δt0limΔtq([1ΔϕL/2][10])=Δt0limΔtq[0ΔϕL/2]=21q[0ωL]
其中 Δ ϕ L \Delta \bm{\phi}_{\mathcal{L}} ΔϕL为局部扰动角,对应于由 q \bold{q} q定义的局部坐标系, ω L \bm{\omega}_{\mathcal{L}} ωL是对应的角度变化率
ω L ( t ) = d ϕ L ( t ) d t = lim ⁡ Δ t → 0 Δ ϕ L Δ t \bm{\omega} _{L}\left( t\right) =\dfrac{d\bm{\phi} _{\mathcal{L}}\left( t\right) }{dt}=\lim _{\Delta t\rightarrow 0}\dfrac{\Delta \bm{\phi} _{\mathcal{L}}}{\Delta t} ωL(t)=dtdϕL(t)=Δt0limΔtΔϕL
定义
Ω ( ω ) ≜ [ ω ] R = [ 0 − ω T ω − ω ∧ ] \bold{\Omega}(\bm{\omega})\triangleq \left[ \bm{\omega} \right]_R= \begin{bmatrix} 0&-\bm{\omega}^T\\ \bm{\omega} & -\bm{\omega}^{\wedge} \end{bmatrix} Ω(ω)[ω]R=[0ωωTω]
可以得到
q ˙ = 1 2 Ω ( ω L ) q = 1 2 q ⊗ ω L , R ˙ = R ω L ∧ (1) \dot{\bold{q}}=\dfrac{1}{2}\bold{\Omega}(\bm{\omega}_{\mathcal{L}})\bold{q}=\dfrac{1}{2}\bold{q}\otimes \bm{\omega}_{\mathcal{L}},\qquad \dot{\bold{R}}=\bold{R}\bm{\omega}_{\mathcal{L}}^{\wedge}\tag{1} q˙=21Ω(ωL)q=21qωL,R˙=RωL(1)
这些表达式也可以在旋转群 S O ( 3 ) SO(3) SO(3)的框架中得出的.然而在微分框架下,我们能够清楚地将角速度 ω L \bm{\omega}_{\mathcal{L}} ωL与一个特定的参考系联系起来.在上面这种情况下这个参考系是由方向 q \bold{q} q R \bold{R} R定义的局部坐标系.

与全局扰动相关的时间导数同理可得,其结果为
q ˙ = 1 2 ω G ⊗ q , R ˙ = ω G ∧ R (2) \dot{\bold{q}}=\dfrac{1}{2}\bm{\omega}_{\mathcal{G}}\otimes \bold{q},\qquad \dot{\bold{R}}=\bm{\omega}_{\mathcal{G}}^{\wedge}\bold{R} \tag{2} q˙=21ωGq,R˙=ωGR(2)
其中
ω G ( t ) ≜ d ϕ G d t \bm{\omega}_{\mathcal{G}}(t)\triangleq \dfrac{{\rm d}\bm{\phi}_{\mathcal{G}}}{{\rm d}t} ωG(t)dtdϕG
是在全局坐标系中表示的角速度向量.

全局与局部的关系

1 2 ω G ⊗ q = q ˙ = 1 2 q ⊗ ω L    ⟹    ω G = q ⊗ ω L ⊗ q ∗ = R ω L \dfrac{1}{2}\bm{\omega}_{\mathcal{G}}\otimes \bold{q}=\dot{\bold{q}}= \dfrac{1}{2}\bold{q}\otimes \bm{\omega}_{\mathcal{L}}\\ \implies \bm{\omega}_{\mathcal{G}}=\bold{q}\otimes \bm{\omega}_{\mathcal{L}}\otimes \bold{q}^{\ast}=\bold{R} \bm{\omega}_{\mathcal{L}} 21ωGq=q˙=21qωLωG=qωLq=RωL
类似的,考虑 Δ ϕ ≈ ω Δ t \Delta \bm{\phi} \approx \bm{\omega} \Delta t ΔϕωΔt
Δ ϕ G = q ⊗ Δ ϕ L ⊗ q ∗ = R Δ ϕ L \Delta\bm{\phi}_{\mathcal{G}}=\bold{q}\otimes \Delta\bm{\phi}_{\mathcal{L}}\otimes \bold{q}^{\ast}=\bold{R} \Delta\bm{\phi}_{\mathcal{L}} ΔϕG=qΔϕLq=RΔϕL
也就是说,我们可以使用四元数或旋转矩阵将角速率向量 ω \bm{\omega} ω和小角扰动 Δ ϕ \Delta \bm{\phi} Δϕ进行坐标系变换,就像它们是普通向量一样。
ω = u ω \bm{\omega} = \bold{u}\bm{\omega} ω=uω,或 Δ ϕ = u Δ ϕ \Delta \bm{\phi} = \bold{u}\Delta\bm{\phi} Δϕ=uΔϕ且旋转不改变向量长度,可以得到
u G = q ⊗ u L ⊗ q ∗ = R u L \bold{u}_{\mathcal{G}}=\bold{q}\otimes \bold{u}_{\mathcal{L}}\otimes \bold{q}^{\ast}=\bold{R} \bold{u}_{\mathcal{L}} uG=quLq=RuL

旋转速度的时间积分

对局部旋转速度定义的微分方程为(1),对全局旋转速率定义的微分方程为(2)。通过对旋转速度的微分方程积分来完成以四元数形式积分旋转随时间的变化。在通常的情况下,角速度由局部传感器测量,从而在离散时间 t n = n Δ t t_n = n\Delta t tn=nΔt时提供局部测量 ω ( t n ) \bm{\omega}(t_n) ω(tn)。因为我们主要关注微分方程(1)。
q ˙ ( t ) = 1 2 q ( t ) ⊗ ω ( t ) \dot{\bold{q}}(t)=\dfrac{1}{2}\bold{q}(t)\otimes \bm{\omega}(t) q˙(t)=21q(t)ω(t)
定义 q n ≜ q ( t n ) , ω n ≜ ω ( t n ) \bold{q}_n\triangleq \bold{q}(t_n),\bm{\omega}_n\triangleq \bm{\omega}(t_n) qnq(tn),ωnω(tn),由泰勒展开可得:
q n + 1 = q n + q ˙ n Δ t + 1 2 ! q ¨ n Δ t 2 + 1 3 ! q n ( 3 ) Δ t 3 + ⋯ \bold{q}_{n+1}=\bold{q}_{n}+\dot{\bold{q}}_{n}\Delta t+\dfrac{1}{2!}\ddot{\bold{q}}_{n}\Delta t^{2}+\dfrac{1}{3!}{\bold{q}}^{(3)}_{n}\Delta t^{3}+\cdots qn+1=qn+q˙nΔt+2!1q¨nΔt2+3!1qn(3)Δt3+
反复运用四元数导数的表达式,假设 ω ¨ = 0 \ddot{\bm{\omega}}=0 ω¨=0,可以很容易的得到 q n \bold{q}_n qn的逐次导数
q ˙ n = 1 2 q n ω n q ¨ n = 1 2 2 q n ω n 2 + 1 2 q n ω ˙ q ¨ n = 1 2 3 q n ω n 3 + 1 2 2 q n ω ˙ ω n + 1 2 q n ω n ω ˙ q n ( i ⩾ 4 ) = 1 2 i q n ω n i + ⋯ \begin{aligned} \dot{\bold{q}}_{n}&=\dfrac{1}{2}\bold{q}_{n}\bm{\omega}_{n}\\ \ddot{\bold{q}}_{n}&=\dfrac{1}{2^{2}}\bold{q}_{n}\bm{\omega}_{n}^{2}+\dfrac{1}{2}\bold{q}_{n}\dot{\bm{\omega} } \\ \ddot{\bold{q}}_{n}&=\dfrac{1}{2^{3}}\bold{q}_{n}\bm{\omega}_{n}^{3}+\dfrac{1}{2^2}\bold{q}_{n}\dot{\bm{\omega} }\bm{\omega}_n+\dfrac{1}{2}\bold{q}_n\bm{\omega}_n\dot{\bm{\omega}}\\ \bold{q}_n^{(i\geqslant 4)}&=\dfrac{1}{2^i}\bold{q}_n\bm{\omega}_n^i+\cdots \end{aligned} q˙nq¨nq¨nqn(i4)=21qnωn=221qnωn2+21qnω˙=231qnωn3+221qnω˙ωn+21qnωnω˙=2i1qnωni+

零阶积分

前向积分
如果在 [ t n , t n + 1 ] [t_n,t_{n+1}] [tn,tn+1]期间是匀角速度运动,即 ω = 0 ˙ \dot{\bm{\omega}=0} ω=0˙,则有
q n + 1 = q n ⊗ ( 1 + 1 2 ω n Δ t + 1 2 ! ( 1 2 ω n Δ t ) 2 + 1 3 ! ( 1 2 ω n Δ t ) 3 + ⋯   ) \bold{q}_{n+1}=\bold{q}_{n}\otimes \left( 1+\dfrac{1}{2}\bm{\omega}_{n}\Delta t+\dfrac{1}{2!}\left( \dfrac{1}{2}\bm{\omega}_{n}\Delta t\right) ^{2}+\dfrac{1}{3!}\left( \dfrac{1}{2}\bm{\omega}_{n}\Delta t\right) ^{3}+\cdots \right) qn+1=qn(1+21ωnΔt+2!1(21ωnΔt)2+3!1(21ωnΔt)3+)
这里我们很容易就可以识别出其中的泰勒展开级数就是 e ω n Δ t / 2 e^{\bm{\omega}_n\Delta t/2} eωnΔt/2,这个指数对应于增量旋转为 θ = ω Δ t \bm{\theta}=\bm{\omega} \Delta t θ=ωΔt
e ω Δ t / 2 = ω Δ t = q { ω Δ t } = [ cos ⁡ ( ∥ ω ∥ Δ t / 2 ) ω ∥ ω ∥ sin ⁡ ( ∥ ω ∥ Δ t / 2 ) ] e^{\bm{\omega} \Delta t/2}={\rm \bm{\omega}\Delta t}=\bold{q}\{\bm{\omega} \Delta t\}= \begin{bmatrix} \cos(\Vert\bm{\omega}\Vert\Delta t/2)\\ \frac{\bm{\omega}}{\Vert\bm{\omega}\Vert}\sin(\Vert\bm{\omega}\Vert\Delta t/2) \end{bmatrix} eωΔt/2=ωΔt=q{ωΔt}=[cos(ω∥Δt/2)ωωsin(ω∥Δt/2)]
因此,
q n + 1 = q n ⊗ q { ω n Δ t } \bold{q}_{n+1}=\bold{q}_n\otimes \bold{q}\{\bm{\omega}_n \Delta t\} qn+1=qnq{ωnΔt}
反向积分
我们也可以认为周期 Δ t \Delta t Δt上的恒定角速度为 ω n + 1 \bm{\omega}_{n+1} ωn+1,即周期结束时测量的角速度。用类似的方式在将 q n \bold{q}_n qn t n + 1 t_{n+1} tn+1时刻泰勒展开,可以得到
q n = q n + 1 + q ˙ n + 1 ( − Δ t ) + 1 2 ! q ¨ n + 1 ( − Δ t ) 2 + 1 3 ! q n + 1 ( 3 ) ( − Δ t ) 3 + ⋯ \bold{q}_{n}=\bold{q}_{n+1}+\dot{\bold{q}}_{n+1}\left( -\Delta t\right) +\dfrac{1}{2!}\ddot{\bold{q}}_{n+1}\left( -\Delta t\right) ^{2}+\dfrac{1}{3!}\bold{q}_{n+1}^{\left( 3\right) }\left( -\Delta t\right) ^{3}+\cdots qn=qn+1+q˙n+1(Δt)+2!1q¨n+1(Δt)2+3!1qn+1(3)(Δt)3+
类似的,假设 ω ˙ = 0 \dot{\bm{\omega}}=0 ω˙=0
q n + 1 ( i ) = q n + 1 ⊗ ( 1 2 ω n + 1 ) i {\bold{q}}^{(i)}_{n+1}=\bold{q}_{n+1}\otimes(\frac{1}{2}\bm{\omega}_{n+1})^i qn+1(i)=qn+1(21ωn+1)i
于是
q n = q n + 1 ⊗ [ ∑ k = 0 ∞ 1 k ! ( − 1 2 ω n + 1 Δ t ) k ] = q n + 1 ⊗ E x p ( − ω n + 1 Δ t )    ⟹    q n + 1 = q n ⊗ E x p ( ω n + 1 Δ t ) \begin{aligned} \bold{q}_n&=\bold{q}_{n+1}\otimes\left[\sum_{k=0}^\infty \frac{1}{k!}\left(-\frac{1}{2}\bm{\omega}_{n+1}\Delta t\right)^k\right]\\ &=\bold{q}_{n+1}\otimes {\rm Exp}(-\bm{\omega}_{n+1}\Delta t) \\ \implies \bold{q}_{n+1}&=\bold{q}_n\otimes {\rm Exp}(\bm{\omega}_{n+1}\Delta t) \end{aligned} qnqn+1=qn+1[k=0k!1(21ωn+1Δt)k]=qn+1Exp(ωn+1Δt)=qnExp(ωn+1Δt)
所以最终可得
q n + 1 ≈ q n ⊗ q { ω n + 1 Δ t } \bold{q}_{n+1}\approx \bold{q}_n\otimes \bold{q}\{\bm{\omega}_{n+1}\Delta t\} qn+1qnq{ωn+1Δt}
中点积分
类似的,认为周期 Δ t \Delta t Δt上的恒定角速度为中间角速度(不一定是周期中点角速度)
ω ˉ = ω n + ω n + 1 2 \bar{\bm{\omega}}=\frac{\bm{\omega}_{n}+\bm{\omega}_{n+1}}{2} ωˉ=2ωn+ωn+1
则有
q n + 1 ≈ q n ⊗ q { ω ˉ Δ t } \bold{q}_{n+1}\approx \bold{q}_n\otimes \bold{q}\{\bar{\bm{\omega}}\Delta t\} qn+1qnq{ωˉΔt}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/116104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么说用了MES系统,但生产数字化管理只做到20%?

随着越来越多的制造企业开始体验和建设MES系统&#xff0c;MES系统能够实现生产执行过程的有效数字化管理已经成为共识。回过头来看&#xff0c;是不是只有生产进度才是工厂需要管理的&#xff1f;当你想详细了解当前存在的问题&#xff0c;进展如何&#xff0c;哪些月度重点任…

JAVA零基础小白学习教程之day09-内部类权限final静态

day09-JAVAOOP 课程目标 1. 【理解】什么是内部类 2. 【掌握】匿名内部类 3. 【掌握】引用数据类型作为方法的参数 4. 【理解】final关键字的使用 5. 【理解】包的定义及使用 6. 【理解】权限修饰符 7. 【掌握】static关键字的使用B友https://www.bilibili.com/video/BV1QG4y…

职场员工有没有潜力,看这一个能力就够了

在我组织的研讨会上&#xff0c;讲故事的课程通常以一个思考练习开始。 我会让参与者闭上眼睛回忆《小红帽》的故事&#xff0c;尤其考虑其中的情节、起伏和结尾。这个练习有时会引发一阵笑声&#xff0c;人们会好奇这与课程有什么相关性&#xff0c;或者干脆把《小红帽》与《…

给Debezium connector 发送信号

1. 概述 Debezium 信号机制提供了一种方法来修改连接器的行为&#xff0c;或触发一次性操作&#xff0c;例如启动表的 临时快照。要触发连接器执行指定操作&#xff0c;可以发出特殊的SQL 命令以将信号消息添加到专门的信号表&#xff0c;也称为信号数据集合。在源数据库上创建…

哪些进销存软件既好用又免费?

中小企业刚起步都会面临着资金紧缺、人力资源不足等诸多管理问题&#xff0c;对于大部分预算不是很多的中小企业或者尚未尝试过进销存软件的企业&#xff0c;都会选择免费进销存软件来进行企业管理或体验进销存软件的功效。 进销存软件的开发需要强大的技术支持&#xff0c;数…

B站技术选型与架构

目录前言B站前端之路B站Golang技术栈分析bilibili技术总监毛剑简介前言 了解了一下B站的技术发展历程&#xff1a;最开始是用PHP语言开发的&#xff0c;后来B站的中台逐步被Node占领&#xff0c;而后台技术为了更高的并发、更稳健&#xff0c;以及为了大数据分析&#xff0c;逐…

RK3568平台开发系列讲解(Linux系统篇)共享内存

🚀返回专栏总目录 文章目录 一、共享内存底层实现二、共享内存API三、共享内存案例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢共享内存技术是功能最强、应用最广的进程间通信技术。其原理是多个进程共享相同的物理内存区,一个进程对该内存区的任意修改,可被其…

不懂Nacos没关系,可以看看它是怎么运用代理模式的

背景 看Nacos的源代码时&#xff0c;发现其中有对代理模式的运用&#xff0c;而且用得还不错&#xff0c;可以作为一个典型案例来聊聊&#xff0c;方便大家以更真实的案例来体验一下代理模式的运用。如果你对Nacos不了解&#xff0c;也并不影响对本篇文章的阅读和学习。 本文…

前端三小时用html和js写一个贪吃蛇游戏,非常简单带讲解,代码可直接用,功能完整

目录 游戏主体部分--地狱模式 游戏主页入口 预览图 游戏入口代码 1.html 2.css 3.js 注册页面代码 游戏实现很简单&#xff0c;只写游戏主体的话只要三小时就够了。 话不多说&#xff0c;我们直接来看效果预览。 转成gif图之后有点卡&#xff0c;但是游戏效果并不卡&…

php宝塔搭建部署实战PESCMSTEAM团队任务管理系统源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 本期给大家带来一套php开发的PESCMSTEAM团队任务管理系统源码&#xff0c;感兴趣的朋友可以自行下载学习。 技术架构 PHP7.2 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码&am…

k8s lifecycle——poststart和prestop

1、lifecycle的声明 lifecycle:postStart:exec:command: ["/bin/sh", "-c", "sleep 100"]preStop:exec:command: ["/bin/sh", "-c", "sleep 100"]2、poststart 容器创建后立即执行&#xff0c;主要用于资源部署、…

JPEG编码原理及简易编码器实现

简介 以学习为目的编写的简易jpeg编码器&#xff0c;以看得懂为目标&#xff0c;代码尽可能清晰简洁&#xff0c;不对内存、性能做看不懂的优化&#xff0c;也不实现jpeg更多高级特性。 这篇文章是我从自己的开源工程中整理来的 本文对应的工程为https://gitee.com/dma/learn…

【OpenFOAM】-olaFlow-算例4- irreg45degTank

算例路径&#xff1a; olaFlow\tutorials\irreg45degTank 算例描述&#xff1a; 不规则波浪模拟 学习目标&#xff1a; 不规则波浪模拟&#xff1a;olaFlow中单向不规则波采用线性波浪叠加法生成&#xff0c;基本原理如图2所受&#xff0c;需要提供对应波谱的周期、波高和相位的…

生产制造业管理系统对企业究竟有哪些作用?

对于生产制造企业来说&#xff0c;除了涉及到产品的生产制造和原料采购&#xff0c;还需要管理销售、库存、财务等方方面面&#xff0c;生产制造业管理系统的使用&#xff0c;尤为重要。正因如此&#xff0c;借助生产制造业管理系统来完善生产管理流程、提升生产管理水平&#…

LVGL学习笔记4 - 主题Themes

目录 1. 获取主题句柄 2. 设置基础主题 3. 设置主题的回调函数 4. 使能主题 5. 实例 5.1 定义一个全局Style变量 5.2 显示默认主题风格的矩形 5.3 初始化新主题的样式 5.4 初始化新主题 5.5 回调函数的实现 5.6 设置新主题 5.7 显示 主题是风格的集合。对应的变量结构…

设计模式--reactor 模式

说明 本文基于 tomcat 8.5.x 编写。author blog.jellyfishmix.com / JellyfishMIX - githubLICENSE GPL-2.0 介绍 reactor 模式通常应用于网络 IO 场景&#xff0c;高性能的中间件 redis, netty 都在使用。 背景 原始的网络 IO 模型 最原始的网络 IO 模型&#xff0c;服务…

Java学习笔记【8】异常

⛵ ⛵ ⛵ ⛵ ⛵ &#x1f680; &#x1f680; &#x1f680; &#x1f680; &#x1f680;   大家好&#x1f91d;&#xff0c;我是 &#x1f449;老孙&#x1f448;&#xff0c;未来学习路上多多关照 &#x1f91d; 一个喜欢用 ✍️ 博客记录人生的程序猿 &#x1f649;&…

Python遥感图像处理应用篇(二十七):Python绘制遥感图像各波段热力图(相关系数矩阵)(续)

续-https://soderayer.blog.csdn.net/article/details/125757807 上一篇中使用csv文件计算的相关系数热力图,本篇我们直接使用遥感图像来计算图像波段之间的相关系数。 方法一:已有软件ENVI计算 实际上,目前已有的软件,如ENVI就可以直接计算图像波段之间的相关系数,该工…

【高精度定位】关于GPS、RTK、PPK三种定位技术的探讨

高精度定位通常是指亚米级、厘米级以及毫米级的定位&#xff0c;从市场需求来看&#xff0c;定位的精度越高往往越好。“高精度、低成本”的定位方案无疑将是未来市场的趋势。 在物联网时代&#xff0c;大多数的应用或多或少都与位置服务相关联&#xff0c;尤其是对于移动物体而…

深入理解MySQL——分库分表种类与原则

分库分表的种类 首先说明&#xff0c;这里所说的分库分表是指把数据库中数据物理地拆分到多个实例或多台机器上去&#xff0c;而不是MySQL原生的Partitioning。 这里稍微提一下Partitioning&#xff0c;这是MySQL官方版本支持的&#xff0c;在本地针对表的分区进行操作&#…