旋转矩阵求导
旋转矩阵求导
定义
我们知道,在机器人建立运动学/动力学模型时,很常见的情况是对旋转矩阵进行求导,因此特地拿出一节用作记录。
旋转矩阵可以有四元数的形式,也可以有欧拉角等形式,这里特指欧拉角形式。
旋转轴已知,假设只发生了旋转变换,上标 e 代表 inertial 坐标系,上表 b 代表随动的机体坐标系。
明确反对称矩阵表示为:
a×b=S(a)b
其中,
S(a)=⎣⎡0az−ay−az0axay−ax0⎦⎤
证明
注意到,对仅旋转的向量 re 有:
dtdre=ωe×re
因此对旋转矩阵,将其看作为三个在地球坐标系下表达的列向量的组合,有:
dtdReb=dtd[b1eb2eb3e]=[ωe×b1eωe×b2eωe×b3e]=[S(ωe)b1eS(ωe)b2eS(ωe)b3e]=S(ωe)Reb
其中,Reb 代表从惯性系 e 转换到随体系 b 的旋转矩阵。
此外,具有如下性质:
S(Rω)=RS(ω)RT
这本质上是一个线性变换在不同空间下的观察结果,也就是相似矩阵。
假定 R: A->B,按照题意 ω 代表在 B 坐标系下观察到的角速度,那么参考 矩阵坐标意义和变换意义 中对相似矩阵的分析,有:
S(Rω)=(RT)−1S(ω)RT
即上面的式子。
例子
如论文 @caiModelAnalysisModified2021 模型所示,坐标系如下:
为了求向量 c 和向量 d 在全局坐标系 Ob 下的速度,有(为了方便,下文不写向量符号了):
cd=tm+Rbmcm=tm+Rbmts+RbmRmsds
因此速度有微分为:
vcvd=dtdc=tm˙+S(wm)Rbmcm=dtdd=tm˙+S(wm)Rbmts+Rbmts˙+S(wm)RbmRmsds+Rbm(S(wsm)Rmsds)
将坐标系转换到坐标系 m 上,得到结果:
cd=RbmTtm+cm=RbmTtm+ts+Rmsds
注意到,把旋转变换当作一个变换时,其切换空间满足:R:A→B, T 为定义在 A 上的线性变换,那么在 B 坐标系下看:
TB=RTTR
对速度,结合 叉积以及反对称矩阵的性质,有:
vcvd=dtdc=RbmTtm˙+RbmTS(wm)Rbmcm=RbmTtm˙+S(RbmTwm)cm=RbmTtm˙−S(cm)RbmTwm=dtdd=ts˙+RbmTtm˙+RbmTS(wm)Rbmts+RbmTS(wm)RbmRmsds+RbmTRbm(S(wsm)Rmsds)=ts˙+RbmTtm˙−S(ts)RbmTwm−S(Rmsds)RbmTwm+(S(wsm)Rmsds)=ts˙+RbmTtm˙−S(ts))RbmTwm−S(Rmsds)RbmTwm−(S(Rmsds)wsm)
参考