旋转矩阵的导数(机器人学)

旋转矩阵的导数(机器人学)

   假设旋转矩阵为 R ( θ ) R(\theta) R(θ),旋转矩阵有 R R T = I RR^T=I RRT=I,即旋转矩阵是正交矩阵。现求 R R R θ \theta θ的导数:

[ d d θ R ( θ ) ] R ( θ ) T + R ( θ ) [ d d θ R ( θ ) T ] = 0 (1) \lbrack \frac{d}{d\theta} R(\theta)\rbrack R(\theta)^T +R(\theta)\lbrack \frac{d}{d\theta} R(\theta)^T\rbrack=0 \tag{1} [dθdR(θ)]R(θ)T+R(θ)[dθdR(θ)T]=0(1)

S = [ d d θ R ( θ ) ] R ( θ ) T S= \lbrack\frac{d}{d\theta} R(\theta)\rbrack R(\theta)^T S=[dθdR(θ)]R(θ)T,则:

S + S T = 0 (2) S+S^T=0 \tag{2} S+ST=0(2)

即:

S = − S T (3) S=-S^T \tag{3} S=ST(3)

   即S是一个反对称矩阵。由 S = [ d d θ R ( θ ) ] R ( θ ) T S= \lbrack\frac{d}{d\theta} R(\theta)\rbrack R(\theta)^T S=[dθdR(θ)]R(θ)T两边同时右乘 R ( θ ) R(\theta) R(θ),则

d d θ R = S R ( θ ) (4) \frac{d}{d\theta}R=SR(\theta) \tag{4} dθdR=SR(θ)(4)

   例如, R R R为绕着 X X X轴旋转的旋转矩阵,即:

R ( θ ) = [ 1 0 0 0 c o s θ − s i n θ 0 s i n θ c o s θ ] (5) R(\theta) = \begin{bmatrix} 1 &0&0\\ 0&cos\theta&-sin\theta\\ 0&sin\theta&cos\theta \end{bmatrix} \tag{5} R(θ)=1000cosθsinθ0sinθcosθ(5)
S = [ d d θ R ( θ ) ] R ( θ ) T = [ 0 0 0 0 − s i n θ − c o s θ 0 c o s θ − s i n θ ] . [ 1 0 0 0 c o s θ s i n θ 0 − s i n θ c o s θ ] = [ 0 0 0 0 0 − 1 0 1 0 ] (6) S= \lbrack\frac{d}{d\theta} R(\theta)\rbrack R(\theta)^T= \begin{bmatrix} 0 &0&0\\ 0&-sin\theta&-cos\theta\\ 0&cos\theta&-sin\theta \end{bmatrix} . \begin{bmatrix} 1 &0&0\\ 0&cos\theta&sin\theta\\ 0&-sin\theta&cos\theta \end{bmatrix} = \begin{bmatrix} 0 &0&0\\ 0&0&-1\\ 0&1&0 \end{bmatrix} \tag{6} S=[dθdR(θ)]R(θ)T=0000sinθcosθ0cosθsinθ.1000cosθsinθ0sinθcosθ=000001010(6)

d d θ R = S R ( θ ) = [ 0 0 0 0 0 − 1 0 1 0 ] . [ 1 0 0 0 c o s θ − s i n θ 0 s i n θ c o s θ ] = [ 0 0 0 0 − s i n θ − c o s θ 0 c o s θ − s i n θ ] (7) \frac{d}{d\theta}R=SR(\theta)= \begin{bmatrix} 0 &0&0\\ 0&0&-1\\ 0&1&0 \end{bmatrix}. \begin{bmatrix} 1 &0&0\\ 0&cos\theta&-sin\theta\\ 0&sin\theta&cos\theta \end{bmatrix}= \begin{bmatrix} 0 &0&0\\ 0&-sin\theta&-cos\theta\\ 0&cos\theta&-sin\theta \end{bmatrix} \tag{7} dθdR=SR(θ)=000001010.1000cosθsinθ0sinθcosθ=0000sinθcosθ0cosθsinθ(7)

  进一步,如果 θ \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 (8) \dot{R}=\frac{dR}{dt}=\frac{dR}{d\theta}\frac{d\theta}{dt}=SR\dot{\theta}=\dot{\theta}SR=S(\omega(t))R\tag{8} R˙=dtdR=dθdRdtdθ=SRθ˙=θ˙SR=S(ω(t))R(8)

其中, S ( ω ( t ) ) S(\omega(t)) S(ω(t))为反对称矩阵, ω ( t ) \omega(t) ω(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 ] S(a)= \begin{bmatrix} 0&-a_z&a_y\\ a_z &0&-a_x\\ -a_y&a_x&0 \end{bmatrix} S(a)=0azayaz0axayax0

性质

   1. S ( α a + β b ) = α S ( a ) + β S ( b ) S(\alpha a+\beta b) =\alpha S(a) +\beta S(b) S(αa+βb)=αS(a)+βS(b)
   2. S ( a ) b = a × b S(a)b=a\times 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 ) RS(a)R^T=S(Ra) RS(a)RT=S(Ra)

 其中 R R R是3阶仿真, a a a b b b是向量, α \alpha α β \beta β是常数。

  • 18
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
在点云匹配中,假设P'是机器人坐标系中的三维点云,P是世界坐标系中的点云。我们可以先考虑二维空间的情况,然后再推广到三维空间。 在二维空间中,我们可以用一个二维向量表示点云,即P' = [x', y']^T 和 P = [x, y]^T。 机器人位姿可以用一个旋转矩阵R和一个平移向量T表示,即机器人坐标系相对于世界坐标系的变换可以表示为: P' = R * P + T 我们需要求解J关于机器人位姿R和T的导数。假设J为一个误差函数,它度量了点云匹配的误差。 首先,我们对于旋转矩阵R求导。假设误差函数J只依赖于P'和P之间的欧氏距离,即J = ||P' - P||。 对于旋转矩阵R,我们可以使用四元数来表示。设四元数表示为q = [q0, q1, q2, q3]^T,即旋转矩阵R可以通过四元数进行表达。 那么,对于旋转矩阵R的导数可以通过四元数求导公式得到: dJ/dR = dJ/dq * dq/dR 其中,dq/dR是四元数q相对于旋转矩阵R的导数。 接下来,我们对于平移向量T求导。假设误差函数J只依赖于P'和P之间的欧氏距离,即J = ||P' - P||。 对于平移向量T的导数,可以直接计算: dJ/dT = dJ/dP' * dP'/dT 其中,dJ/dP'是误差函数J相对于P'的导数。 以上是对于二维空间的情况进行的求解。在三维空间中,我们将上述方法进行推广,即将二维向量扩展为三维向量,将旋转矩阵扩展为三维旋转矩阵,将四元数扩展为四元数或旋转矩阵等。 需要注意的是,在具体求解过程中,涉及到点云匹配算法和误差函数的具体形式,导数的求解方法可能会有所不同。以上是一种一般性的推导过程,具体应用中需要根据具体情况进行求解。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuntou0906

玛莎拉蒂是我的目标!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值