罗德里格斯公式的证明

罗德里格斯公式的证明

from wikipedia
声明:
设 v 是一个 R 3 R^{3} R3的向量, k是一个表示轴的单位向量,v绕k轴旋转的角度为 θ \theta θ,路德里格斯公式的转动向量为 v r o t v_{rot} vrot,
v r o t = v c o s ( θ ) + k ( k × v ) s i n θ + k ( k ⋅ v ) ( 1 − c o s θ ) v_{rot}=vcos(\theta) + k(k \times v)sin\theta +k(k \cdot v )(1-cos\theta) vrot=vcos(θ)+k(k×v)sinθ+k(kv)(1cosθ)
设两个非零向量ab, α \alpha α是它们的夹角,并且符合右手系规则,k可以用ab来表示:
k = a × b ∣ a × b ∣ = a × b ∣ a ∣ ∣ b ∣ s i n α k=\frac{a \times b}{|a \times b|}=\frac{a \times b}{|a||b|sin\alpha} k=a×ba×b=absinαa×b

求导:
v = v ∥ + v ⊥ v=v_{\Vert}+v_{\bot} v=v+v
v ∥ = ( v ⋅ k ) k v_{\Vert}=(v\cdot k)k v=(vk)k
v ⊥ = v − v ∥ = v − ( k ⋅ v ) k = − k × ( k × v ) v_{\bot}=v-v_{\Vert}=v-(k\cdot v)k=-k\times (k\times v) v=vv=v(kv)k=k×(k×v)
平行向量不因旋转而改变: v ∥ r o t = v ∥ v_{\Vert rot}=v_{\Vert} vrot=v
只有垂直分量才会改变方向: ∣ v ⊥ r o t ∣ = ∣ v ⊥ ∣ |v_{\bot rot}|=|v_{\bot}| vrot=v
v ⊥ r o t = c o s θ v ⊥ + s i n θ k × v ⊥ v_{\bot rot}=cos\theta v_{\bot}+sin\theta k\times v_{\bot} vrot=cosθv+sinθk×v
k和 v ∥ v_{\Vert} v平行,
k × v ∥ = 0 k\times v_{\Vert}=0 k×v=0
k × v ⊥ = k × ( v − v ∥ ) = k × v − k × v ∥ = k × v k\times v_{\bot}=k\times (v-v_{\Vert})=k\times v-k\times v_{\Vert}=k\times v k×v=k×(vv)=k×vk×v=k×v
v ⊥ r o t = c o s θ v ⊥ + s i n θ k × v v_{\bot rot}=cos\theta v_{\bot}+sin\theta k\times v vrot=cosθv+sinθk×v
2D极坐标: ( r , θ ) (r,\theta) (r,θ)
r = r c o s θ e x + r s i n θ e y r=rcos\theta e_{x}+rsin\theta e_y r=rcosθex+rsinθey e x , e y e_x,e_y ex,ey是单位向量
v r o t = v ∥ r o t + v ⊥ r o t v_{rot}=v_{\Vert rot}+v_{\bot rot} vrot=vrot+vrot
用等式结果中的 v ∥ r o t v_{\Vert rot} vrot v ⊥ r o t v_{\bot rot} vrot的定义代替:

v r o t = v ∥ + c o s θ v ⊥ + s i n θ k × v = v ∥ + c o s θ ( v − v ∥ ) + s i n θ k × v = c o s θ v + ( 1 − c o s θ ) v ∥ + s i n θ k × v = c o s θ v + ( 1 − c o s θ ) ( k ⋅ v ) k + s i n θ k × v \begin{aligned}v_{rot}&= v_{\Vert}+cos\theta v_{\bot} + sin\theta k\times v\\ &=v_{\Vert}+cos\theta(v-v_{\Vert})+sin\theta k\times v\\ &=cos\theta v+(1-cos\theta )v_{\Vert}+sin\theta k \times v\\ &=cos\theta v+(1-cos\theta)(k\cdot v)k + sin\theta k \times v \end{aligned} vrot=v+cosθv+sinθk×v=v+cosθ(vv)+sinθk×v=cosθv+(1cosθ)v+sinθk×v=cosθv+(1cosθ)(kv)k+sinθk×v

设旋转矩阵对应的旋转向量为R, v r o t = R ⋅ v v_{rot}=R\cdot v vrot=Rv
R ⋅ v = c o s θ v + ( 1 − c o s θ ) n n T v + s i n θ n ∧ v R = c o s θ I + ( 1 − c o s θ ) n n T + s i n θ n ∧ R\cdot v=cos\theta v+(1-cos\theta)nn^{T}v+sin\theta n^{\land}v\\ R=cos\theta I + (1-cos\theta) nn^{T}+sin\theta n^{\land} Rv=cosθv+(1cosθ)nnTv+sinθnvR=cosθI+(1cosθ)nnT+sinθn

矩阵表示:
[ ( k × v ) x ( k × v ) y ( k × v ) z ] = [ k y v z − k z v y k z v x − k x v z k x v y − k y v x ] = [ 0 − k z k y k z 0 − k x − k y k x 0 ] [ v x v y v z ] \begin{bmatrix} (k \times v)_x \\(k \times v)_y \\(k \times v)_z \end{bmatrix}=\begin{bmatrix} k_yv_z-k_zv_y\\k_zv_x-k_xv_z\\k_xv_y-k_yv_x \end{bmatrix} =\begin{bmatrix}0 & -k_z &k_y\\k_z &0&-k_x\\-k_y&k_x&0 \end{bmatrix} \begin{bmatrix}v_x\\v_y\\v_z\end{bmatrix} (k×v)x(k×v)y(k×v)z=kyvzkzvykzvxkxvzkxvykyvx=0kzkykz0kxkykx0vxvyvz
K= [ 0 − k z k y k z 0 − k x − k y k x 0 ] \begin{bmatrix}0 & -k_z &k_y\\k_z &0&-k_x\\-k_y&k_x&0 \end{bmatrix} 0kzkykz0kxkykx0
K v = k × v K ( K v ) = K 2 v = k × ( k × v ) Kv=k\times v\\ K(Kv)=K^2v=k\times (k\times v) Kv=k×vK(Kv)=K2v=k×(k×v)
v r o t = − k × ( k × v ) + k × v s i n θ + v + k × ( k × v ) = ( 1 − c o s θ ) k × ( k × v ) + k × v s i n θ + v = ( i − c o s θ ) K 2 v + K v s i n θ + v = [ I + s i n θ K + ( 1 − c o s θ ) K 2 ] v = R v \begin{aligned}v_{rot}&=-k\times (k\times v)+k\times v sin\theta + v+k\times(k\times v)\\ &=(1-cos\theta) k\times (k\times v)+k\times v sin\theta +v \\ &= (i-cos\theta)K^2v+Kvsin\theta + v\\ &=[I+sin\theta K + (1-cos\theta)K^2]v\\ &=Rv \end{aligned} vrot=k×(k×v)+k×vsinθ+v+k×(k×v)=(1cosθ)k×(k×v)+k×vsinθ+v=(icosθ)K2v+Kvsinθ+v=[I+sinθK+(1cosθ)K2]v=Rv
R = I + s i n θ K + ( 1 − c o s θ ) K 2 R=I+sin\theta K+(1-cos\theta)K^2 R=I+sinθK+(1cosθ)K2

n的反对称矩阵为 n ∧ n^{\land} n: n × v = n ∧ v n \times v=n^{\land}v n×v=nv
n × ( n × v ) = n ∧ n ∧ v v r o t = c o s θ v + ( 1 − c o s θ ) ( n n T v ) n \times (n \times v)=n^{\land}n^{\land}v \\ v_{rot}=cos\theta v + (1-cos\theta)(nn^{T}v) n×(n×v)=nnvvrot=cosθv+(1cosθ)(nnTv)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值