本节书摘来自华章社区《机器人与数字人:基于MATLAB的建模与控制》一书中的第3章,第3.2节线速度和角速度,作者[美]顾友谅(Edward Y.L.Gu),更多章节内容可以访问云栖社区“华章社区”公众号查看
3.2线速度和角速度
为了求得给定的3×1位置向量p∈瘙綆3所表示平移运动的瞬时速度,即通常的刚体运动的线速度,可以简单地对位置向量p按时间求导,即v=。但是在求导之前,需要先完成一些准备工作,必须先把位置向量p投影到一个固定的基础坐标系上,而不能是移动的坐标系上。也就是说,如果pi当前投影到一个非固定坐标系i上,那么必须找到坐标系i相对于基础坐标系的方向矩阵Rib,在计算线速度vb=b之前,需要先求pb=Ribpi。原因很明显,vb=b=ibpi+Ribi≠Ribi,除非Rib是常数矩阵,然而计算很繁琐而且这表明坐标系i是不动的。
相比之下,求解一个坐标系i相对于基础坐标系的角速度ω的过程,比线速度求解过程要复杂得多。因为并没有一个有效的3×1向量来唯一表达坐标系的旋转运动。只有数学中的SO(3)群可以唯一地、稳妥地表示坐标系的方向和旋转运动。一般来说,一个3×1的角速度ω并不完全是某个3×1向量的时间导数。换言之,不存在角位置向量ρ∈瘙綆3,使得ω=,除非旋转运动是绕着一个固定轴进行的,如二维自旋。当使用外微积分时,第一类微分σ=ωdt 是不恰当的,也通常是不闭合的。
为了更好地理解和洞察三维旋转运动和方向的本质,需要寻找角速度ω的传统定义和旋转矩阵R∈SO(3)的时间导数之间的关系。
基于旋转矩阵R∈SO(3)的正交特性,可以得到,RRT = I。两边分别对时间求导,可得出:
RT+RT=O
式中,O是一个3×3的零矩阵。通过这个结果,立即可知RRT是一个斜对称矩阵。另一方面,回顾第2章中介绍并讨论的k过程的概念,对于一个固定的单位轴k,角速度的传统定义应该解释成
ω=·k(38)
或者其相应的斜对称矩阵
S(ω)=ω×=Ω=K
换言之,角速度通常定义为一个坐标系绕着某个固定轴的旋转速率在其坐标系上的投影。