旋转矩阵求导

旋转矩阵的导数

证明

\quad 假设旋转矩阵为 R ( θ ) \mathbf{R}(\theta) R(θ) ,旋转矩阵有 R R T = I \mathbf{RR^T}=I RRT=I ,即旋转矩阵是正交矩阵。现在 R \mathbf{R} R θ \mathbf{\theta} θ 求导数:
[ d d θ R ( θ ) ] R ( θ ) T + R ( θ ) [ d d θ R ( θ ) T ] = 0 \left[\frac{\mathrm{d}}{\mathrm{d} \theta} \mathrm{R}(\theta)\right] \mathrm{R}(\theta)^{\mathrm{T}}+\mathrm{R}(\theta)\left[\frac{\mathrm{d}}{\mathrm{d} \theta} \mathrm{R}(\theta)^{\mathrm{T}}\right]=0 [dθdR(θ)]R(θ)T+R(θ)[dθdR(θ)T]=0
\quad S = [ d d θ R ( θ ) ] R ( θ ) T S=\left[\frac{\mathrm{d}}{\mathrm{d} \theta} \mathrm{R}(\theta)\right] \mathrm{R}(\theta)^{\mathrm{T}} S=[dθdR(θ)]R(θ)T ,则:
S + S T = 0 \mathbf{S}+\mathbf{S^T}=0 S+ST=0
\quad 即:
S = − S T \mathbf{S}=-\mathbf{S^T} S=ST
\quad S S S 是一个反对陈矩阵。由 S = [ d d θ R ( θ ) ] R ( θ ) T S=\left[\frac{\mathrm{d}}{\mathrm{d} \theta} \mathrm{R}(\theta)\right] \mathrm{R}(\theta)^{\mathrm{T}} S=[dθdR(θ)]R(θ)T 两边同时右乘 R ( θ ) \mathbf{R(\theta)} R(θ),则:
d d θ R ( θ ) = S   R ( θ ) \frac{\mathrm{d}}{\mathrm{d} \theta} \mathrm{R}(\theta) =S\ \mathrm{R}(\theta) dθdR(θ)=S R(θ)
\quad 此时,可以总结一下关于 R R R 的导数,对 R R R 求导相当于在原来的基础上右乘了个反对陈矩阵,而我们则关系这个反对陈矩阵的具体形式到底是什么。例如在 IMU 系统中对 R R R 求导后得到的是 d d θ R ( θ ) = S ( w ) R ( θ ) \frac{\mathrm{d}}{\mathrm{d} \theta} \mathrm{R}(\theta)=S(w)R(\theta) dθdR(θ)=S(w)R(θ) ,即 w w w 的反对称矩阵乘以 R R R

\quad 下面以具体的例来进行说明:

\quad 例如, R R R 为绕着 X X X 轴旋转的旋转矩阵,即:
R ( θ ) = [ 1 0 0 0 cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ ] \begin{array}{c} \mathrm{R}(\theta)=\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & \cos \theta & -\sin \theta \\ 0 & \sin \theta & \cos \theta \end{array}\right] \\ \end{array} R(θ)= 1000cosθsinθ0sinθcosθ

\quad 其中 R R R 是关于 θ \theta θ 的函数, R R R θ \theta θ 的导数乘以 R T R^T RT 即得到 S S S

S = [ d d θ R ( θ ) ] R ( θ ) T = [ 0 0 0 0 − sin ⁡ θ − cos ⁡ θ 0 cos ⁡ θ − sin ⁡ θ ] ⋅ [ 1 0 0 0 cos ⁡ θ sin ⁡ θ 0 − sin ⁡ θ cos ⁡ θ ] = [ 0 0 0 0 0 − 1 0 1 0 ] \mathrm{S}=\left[\frac{\mathrm{d}}{\mathrm{d} \theta} \mathrm{R}(\theta)\right] \mathrm{R}(\theta)^{\mathrm{T}}=\left[\begin{array}{ccc} 0 & 0 & 0 \\ 0 & -\sin \theta & -\cos \theta \\ 0 & \cos \theta & -\sin \theta \end{array}\right] \cdot\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & \cos \theta & \sin \theta \\ 0 & -\sin \theta & \cos \theta \end{array}\right]=\left[\begin{array}{ccc} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{array}\right] \\ S=[dθdR(θ)]R(θ)T= 0000sinθcosθ0cosθsinθ 1000cosθsinθ0sinθcosθ = 000001010

\quad 进而通过刚刚推倒出的导数的形式,可以得到绕着 X X X 轴旋转的旋转矩阵 R R R 的导数为:
d d θ R = S R ( θ ) = [ 0 0 0 0 0 − 1 0 1 0 ] ⋅ [ 1 0 0 0 cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ ] = [ 0 0 0 0 − sin ⁡ θ − cos ⁡ θ 0 cos ⁡ θ − sin ⁡ θ ] \frac{\mathrm{d}}{\mathrm{d} \theta} \mathrm{R}=\mathrm{SR}(\theta)=\left[\begin{array}{ccc} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{array}\right] \cdot\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & \cos \theta & -\sin \theta \\ 0 & \sin \theta & \cos \theta \end{array}\right]=\left[\begin{array}{ccc} 0 & 0 & 0 \\ 0 & -\sin \theta & -\cos \theta \\ 0 & \cos \theta & -\sin \theta \end{array}\right] dθdR=SR(θ)= 000001010 1000cosθsinθ0sinθcosθ = 0000sinθcosθ0cosθsinθ
\quad 进一步,如果 θ \theta θ 也是关于时间 t t t 的导数,即 θ ( t ) \theta (t) θ(t) ,那么在之前的基础上,进一步可得:
R ˙ = d R d t = d R d θ d θ d t = S R θ ˙ = θ ˙ S R = S ( ω ( t ) ) R \dot{\mathrm{R}}=\frac{\mathrm{dR}}{\mathrm{dt}}=\frac{\mathrm{dR}}{\mathrm{d} \theta} \frac{\mathrm{d} \theta}{\mathrm{dt}}=\mathrm{SR} \dot{\theta}=\dot{\theta} \mathrm{SR}=\mathrm{S}(\omega(\mathrm{t})) \mathrm{R} R˙=dtdR=dθdRdtdθ=SRθ˙=θ˙SR=S(ω(t))R
\quad 其中 S ( w ( t ) ) S(w(t)) S(w(t)) 为反对陈矩阵, w ( t ) w(t) w(t) 为角速度。

补充

  • 反对陈矩阵

    向量 a = ( a x , a y , a z ) T a=(a_x,a_y,a_z)^{T} a=(ax,ay,az)T 则其对应的反对陈矩阵为
    S ( a ) = [ 0 − a z a y a z 0 − a x − a y a x 0 ] \begin{array}{c} \mathrm{S}(a)=\left[\begin{array}{ccc} 0 & -a_z & a_y \\ a_z & 0 & -a_x \\ -a_y & a_x & 0 \end{array}\right] \\ \end{array} S(a)= 0azayaz0axayax0

  • 性质

    1. S ( α a + β b ) = α S ( a ) + β S ( b ) \mathrm{S}(\alpha \mathrm{a}+\beta \mathrm{b})=\alpha \mathrm{S}(\mathrm{a})+\beta \mathrm{S}(\mathrm{b}) S(αa+βb)=αS(a)+βS(b)
    2. S ( a ) b = a × b \mathrm{S}(\mathrm{a}) \mathrm{b}=\mathrm{a} \times \mathrm{b} S(a)b=a×b
    3. R ( a × b ) = R ( a ) × R ( b ) R(a \times b)=R(a) \times R(b) R(a×b)=R(a)×R(b)
    4. R S ( a ) R T = S ( R a ) R S(a) R^{T}=S(R a) RS(a)RT=S(Ra)
      其中 R R R 3 3 3 阶矩阵, a a a b b b 是向量, α \alpha α β \beta β 是常数。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值