600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【罗德里格斯(Rodrigues)公式推导】

【罗德里格斯(Rodrigues)公式推导】

时间:2022-05-12 01:53:06

相关推荐

【罗德里格斯(Rodrigues)公式推导】

介绍

记录并分享罗德里格斯公式(Rodrigues’ rotation formula)的推导过程。

推导过程

向量 v v v绕单位向量 k k k旋转角度 θ \theta θ,旋转后向量为 v r o t v_{rot} vrot​。罗德里格斯公式描述如何了从轴角 θ k \theta k θk构造旋转矩阵 R R R,以表示 v r o t v_{rot} vrot​与 v v v之间的旋转关系。

向量 v v v可以拆分为与单位向量 k k k平行的向量 v ∥ v_\parallel v∥​和垂直的向量 v ⊥ v_{\perp} v⊥​,表示为 v = v ∥ + v ⊥ v=v_\parallel+v_{\perp} v=v∥​+v⊥​向量 v ∥ v_\parallel v∥​表示为 v ∥ = ( v ⋅ k ) k = k ( v ⋅ k ) = k k T v v_\parallel=(v\cdot{k}){k}=k(v\cdot{k})=kk^Tv v∥​=(v⋅k)k=k(v⋅k)=kkTv定义向量 w = k × v w=k\times{v} w=k×v,且根据叉乘特性,有 ∣ w ∣ = ∣ k ∣ ∣ v ∣ sin ⁡ ϕ |w|=|k||v|\sin\phi ∣w∣=∣k∣∣v∣sinϕ,其中 ϕ \phi ϕ为 v v v和 k k k的夹角,则向量 v ⊥ v_{\perp} v⊥​表示为 v ⊥ = w × k = − k × w v_{\perp}=w\times{k}=-k\times{w} v⊥​=w×k=−k×w且有 ∣ v ⊥ ∣ = ∣ w ∣ |v_{\perp}|=|w| ∣v⊥​∣=∣w∣。令 k ∧ = [ 0 − k 3 k 2 k 3 0 − k 1 − k 2 k 1 0 ] k^\land=\begin{bmatrix}0&-k_3&k_2\\k_3&0&-k_1\\-k_2&k_1&0\end{bmatrix} k∧= ​0k3​−k2​​−k3​0k1​​k2​−k1​0​ ​表示 k k k的反对称矩阵,可将向量叉乘表示成矩阵乘法的形式,即有 k × v = k ∧ v k\times{v}=k^\land{v} k×v=k∧v,进而可知 w = k ∧ v w=k^\land{v} w=k∧v, v ⊥ = − k ∧ k ∧ v v_{\perp}=-k^\land k^\land{v} v⊥​=−k∧k∧v。

旋转过程中向量 v ∥ v_\parallel v∥​保持不变,向量 v ⊥ v_{\perp} v⊥​绕单位向量 k k k旋转了 θ \theta θ角。向量 v ⊥ v_{\perp} v⊥​绕单位向量 k k k旋转了 θ \theta θ角后,沿 v ⊥ v_{\perp} v⊥​方向的分量表示为 v ⊥ ∣ v ⊥ ∣ ∣ v ⊥ ∣ cos ⁡ θ = v ⊥ cos ⁡ θ \frac{v_{\perp}}{|v_{\perp}|}|v_{\perp}|\cos\theta=v_{\perp}\cos\theta ∣v⊥​∣v⊥​​∣v⊥​∣cosθ=v⊥​cosθ,沿 w w w方向的分量表示为 w ∣ w ∣ ∣ v ⊥ ∣ sin ⁡ θ = w sin ⁡ θ \frac{w}{|w|}|v_{\perp}|\sin\theta=w\sin\theta ∣w∣w​∣v⊥​∣sinθ=wsinθ。则旋转后的向量表示为 v r o t = v ∥ + v ⊥ cos ⁡ θ + w sin ⁡ θ v_{rot}=v_\parallel+v_{\perp}\cos\theta+w\sin\theta vrot​=v∥​+v⊥​cosθ+wsinθ代入 v ∥ = v − v ⊥ v_\parallel=v-v_{\perp} v∥​=v−v⊥​得 v r o t = v − v ⊥ + v ⊥ cos ⁡ θ + w sin ⁡ θ = v − ( cos ⁡ θ − 1 ) v ⊥ + w sin ⁡ θ = [ I + ( 1 − cos ⁡ θ ) k ∧ k ∧ + sin ⁡ θ k ∧ ] v v_{rot}=v-v_{\perp}+v_{\perp}\cos\theta+w\sin\theta\\=v-(\cos\theta-1)v_{\perp}+w\sin\theta\\=[I+(1-\cos\theta)k^\land{k^\land}+\sin\theta k^\land]v vrot​=v−v⊥​+v⊥​cosθ+wsinθ=v−(cosθ−1)v⊥​+wsinθ=[I+(1−cosθ)k∧k∧+sinθk∧]v代入 v ⊥ = v − v ∥ v_{\perp}=v-v_\parallel v⊥​=v−v∥​得 v r o t = v ∥ + ( v − v ∥ ) cos ⁡ θ + w sin ⁡ θ = cos ⁡ θ v + ( 1 − cos ⁡ θ ) v ∥ + w sin ⁡ θ = [ cos ⁡ θ I + ( 1 − cos ⁡ θ ) k k T + sin ⁡ θ k ∧ ] v v_{rot}=v_\parallel+(v-v_\parallel)\cos\theta+w\sin\theta\\=\cos\theta v+(1-\cos\theta)v_\parallel+w\sin\theta\\=[\cos\theta{I}+(1-\cos\theta)kk^T+\sin\theta k^\land]v vrot​=v∥​+(v−v∥​)cosθ+wsinθ=cosθv+(1−cosθ)v∥​+wsinθ=[cosθI+(1−cosθ)kkT+sinθk∧]v最终,得到两种形式的罗德里格斯公式 R = I + ( 1 − cos ⁡ θ ) k ∧ k ∧ + sin ⁡ θ k ∧ R = cos ⁡ θ I + ( 1 − cos ⁡ θ ) k k T + sin ⁡ θ k ∧ R=I+(1-\cos\theta)k^\land{k^\land}+\sin\theta k^\land\\R=\cos\theta{I}+(1-\cos\theta)kk^T+\sin\theta k^\land R=I+(1−cosθ)k∧k∧+sinθk∧R=cosθI+(1−cosθ)kkT+sinθk∧( k k k为单位向量时,有以下等式成立, k ∧ k ∧ = [ − k 2 2 − k 3 2 k 1 k 2 k 1 k 3 k 1 k 2 − k 1 2 − k 2 3 k 2 k 3 k 1 k 3 k 2 k 3 − k 1 2 − k 2 2 ] = k k T − I k^\land k^\land=\begin{bmatrix}-k_2^2-k_3^2&k_1k_2&k_1k_3\\k_1k_2&-k_1^2-k^3_2&k_2k_3\\k_1k_3&k_2k_3&-k_1^2-k_2^2\end{bmatrix}=kk^T-I k∧k∧= ​−k22​−k32​k1​k2​k1​k3​​k1​k2​−k12​−k23​k2​k3​​k1​k3​k2​k3​−k12​−k22​​ ​=kkT−I,带入上述两个公式可以发现二者是等价的。)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。