现代机器人学:角速度

在了解角速度这块的时候,有必要了解一些基础的知识;

反对称矩阵

称其为反对称矩阵,将向量表示成反对称矩阵如下

后面用符号[x]来表示向量x的反对称矩阵,将所有的3*3反对称矩阵称为so(3), 其中so表示反对称矩阵,定义如下

其中反对称矩阵so(3)称为SO(3)群的李代数,SO表示特殊正交(special orthogonal)的意思, 特殊在detR=+1,用于表示空间中的旋转矩阵,其SO的定义如下

角速度表示

R可以表示空间中的旋转,那如果想知道空间旋转的角速度,是不是直接求导就行了?和他提出的疑问是一样的

当然不能直接求导,因为矩阵里面有9个变量,只希望用三个变量来表示角速度,我们知道,角速度可以通过一个旋转轴和对应的旋转速度来表示

空间角速度

这里假设了旋转轴为 , 是一个相对于惯性坐标系,也可以称之为静止坐标系,为了单位的统一,这里可以假设旋转轴为单位旋转向量,其中单位向量的识别符为在上面加个帽子,即 ,用单位旋转轴乘以其速率,即可得到角速度向量 ,即

这样坐标系{b}在绕这个轴旋转时,其x轴方向将相对于s坐标系画一个圆,

不难得到,坐标系{b}的三个轴的速度可以表示为

利用括号运算符(表示叉乘), 通过上式,就可以直接得到如下关系式了(比直接看机器人操作的数学导论更容易理解,那书中就直接定义了,也没给出解释,搞得有点懵)

空间旋转轴的表示方法

相对于s坐标系的旋转矩阵一般可以省略下标,通过以上推导,就不难得到第一个重要的公式,即

当然,这里给出的角速度是相对于空间坐标系的,当然可以相对于物体坐标系,通过下标对消规则, 可以表示为

下面得到第二个重要公式前,需要知道一个定理,即

这样不难推导出第二个重要公式,即

物体角速度的解释

值得注意的是:并不是相对动坐标系的角速度;确切地说, 表示的是相对静坐标系{b}的角速度,{b}只是与运动刚体随动坐标系瞬时重合。另外还需要注意一点,这里无论对 左乘还是右乘 都会得到有关角速度的一个反对称矩阵,只是相对的坐标系不同。

更容易理解的推导

根据坐标变换公式:

对上式左右同时求导:

因为 p是附着在刚体上的, 所以p相对于刚体坐标系下的速度为0,故有

可以看出 将点的位置变成了点的线速度。又有角速度和线速度的公式:

所以有空间角速度

对于自己而言,这种方式推导出的结果,记忆效果最佳;

参考

[1] 现代机器人学

[2] 机器人学笔记——中科院软件所

CMakeLists Eigen FCPX GNU Gazebo Git Interest KDL Life Linux Matrix ODE ROS Ros UML Ubuntu VcXsrv algorithm algorithms axis-angle bode calibration chrome control cpp data_struct dots figure gdb latex launch life linux mac math matlab memory motor moveit operator optimal algorithm python robot robotics ros ros2 rtb simulation stl thread tools twist urdf velocity vim web work wsl
知识共享许可协议