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

文章介绍了罗德里格斯公式,用于描述三维空间中向量绕单位向量旋转的数学表达。通过向量的分解、叉乘以及反对称矩阵,详细推导了旋转矩阵的构建过程,展示了从轴角到旋转矩阵的转换方法。

介绍

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

推导过程

向量vvv绕单位向量kkk旋转角度θ\thetaθ,旋转后向量为vrotv_{rot}vrot。罗德里格斯公式描述如何了从轴角θk\theta kθk构造旋转矩阵RRR,以表示vrotv_{rot}vrotvvv之间的旋转关系。
罗德里格斯公式

向量vvv可以拆分为与单位向量kkk平行的向量v∥v_\parallelv和垂直的向量v⊥v_{\perp}v,表示为v=v∥+v⊥v=v_\parallel+v_{\perp}v=v+v向量v∥v_\parallelv表示为v∥=(v⋅k)k=k(v⋅k)=kkTvv_\parallel=(v\cdot{k}){k}=k(v\cdot{k})=kk^Tvv=(vk)k=k(vk)=kkTv定义向量w=k×vw=k\times{v}w=k×v,且根据叉乘特性,有∣w∣=∣k∣∣v∣sin⁡ϕ|w|=|k||v|\sin\phiw=k∣∣vsinϕ,其中ϕ\phiϕvvvkkk的夹角,则向量v⊥v_{\perp}v表示为v⊥=w×k=−k×wv_{\perp}=w\times{k}=-k\times{w}v=w×k=k×w且有∣v⊥∣=∣w∣|v_{\perp}|=|w|v=w。令k∧=[0−k3k2k30−k1−k2k10]k^\land=\begin{bmatrix}0&-k_3&k_2\\k_3&0&-k_1\\-k_2&k_1&0\end{bmatrix}k=0k3k2k30k1k2k10表示kkk的反对称矩阵,可将向量叉乘表示成矩阵乘法的形式,即有k×v=k∧vk\times{v}=k^\land{v}k×v=kv,进而可知w=k∧vw=k^\land{v}w=kvv⊥=−k∧k∧vv_{\perp}=-k^\land k^\land{v}v=kkv

旋转过程中向量v∥v_\parallelv保持不变,向量v⊥v_{\perp}v绕单位向量kkk旋转了θ\thetaθ角。向量v⊥v_{\perp}v绕单位向量kkk旋转了θ\thetaθ角后,沿v⊥v_{\perp}v方向的分量表示为v⊥∣v⊥∣∣v⊥∣cos⁡θ=v⊥cos⁡θ\frac{v_{\perp}}{|v_{\perp}|}|v_{\perp}|\cos\theta=v_{\perp}\cos\thetavvvcosθ=vcosθ,沿www方向的分量表示为w∣w∣∣v⊥∣sin⁡θ=wsin⁡θ\frac{w}{|w|}|v_{\perp}|\sin\theta=w\sin\thetawwvsinθ=wsinθ。则旋转后的向量表示为vrot=v∥+v⊥cos⁡θ+wsin⁡θv_{rot}=v_\parallel+v_{\perp}\cos\theta+w\sin\thetavrot=v+vcosθ+wsinθ代入v∥=v−v⊥v_\parallel=v-v_{\perp}v=vvvrot=v−v⊥+v⊥cos⁡θ+wsin⁡θ=v−(cos⁡θ−1)v⊥+wsin⁡θ=[I+(1−cos⁡θ)k∧k∧+sin⁡θk∧]vv_{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]vvrot=vv+vcosθ+wsinθ=v(cosθ1)v+wsinθ=[I+(1cosθ)kk+sinθk]v代入v⊥=v−v∥v_{\perp}=v-v_\parallelv=vvvrot=v∥+(v−v∥)cos⁡θ+wsin⁡θ=cos⁡θv+(1−cos⁡θ)v∥+wsin⁡θ=[cos⁡θI+(1−cos⁡θ)kkT+sin⁡θk∧]vv_{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]vvrot=v+(vv)cosθ+wsinθ=cosθv+(1cosθ)v+wsinθ=[cosθI+(1cosθ)kkT+sinθk]v最终,得到两种形式的罗德里格斯公式R=I+(1−cos⁡θ)k∧k∧+sin⁡θk∧R=cos⁡θI+(1−cos⁡θ)kkT+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^\landR=I+(1cosθ)kk+sinθkR=cosθI+(1cosθ)kkT+sinθkkkk为单位向量时,有以下等式成立,k∧k∧=[−k22−k32k1k2k1k3k1k2−k12−k23k2k3k1k3k2k3−k12−k22]=kkT−Ik^\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-Ikk=k22k32k1k2k1k3k1k2k12k23k2k3k1k3k2k3k12k22=kkTI,带入上述两个公式可以发现二者是等价的。)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值