1. Geometric Primitives

Geometric Primitives,翻译成中文为:几何基础,顾名思义,谈到机器人几何基础,瞬间能想到以下几个话题:

  1. Vector:点的表达,平移的表达
  2. Rotation:坐标变换(仅旋转)
  3. Frame:齐次坐标系(Vector与Rotation组合)

几何基础还有另外一种意思:几何学,机构学

而这个领域讨论的恰好是“空间代数”,我们不去深究其理论,而是会使用即可

对于机器人的几何学,通常考虑两个对偶的元素:

4. Twist(运动空间向量),由线速度与角速度组成的6D空间

5. Wrench(力空间向量),由力与力矩组成的6D空间

接下来我们需要讨论的即为以上5个话题

2. Vector

《机器人学》中向量有两层意思:

Ø空间中的点(点向量)

Ø向量(平移关系,坐标系基向量)

  1. 创建向量

2. Get/Set函数

3. 四则运算

4. 归一化,归零化

注:Vector,Rotation,Twist,Wrench,Frame均有逻辑判断,不再赘述

3. Rotation

《机器人学》中旋转矩阵有三层意思:

Ø描述一个Frame相对于另外一个Frame的姿态

Ø描述点(向量)在Frame1中的表达换到Frame2(与Frame1仅有相对旋转)中的表达

Ø将点(向量)在Frame中进行旋转

  1. 创建旋转矩阵

注:旋转矩阵必须满足是正交矩阵,创建时需要注意矩阵的正交性

2. Get/Set函数

3. 矩阵运算

4. 旋转矩阵与欧拉角

5. 旋转矩阵与轴角

6. 旋转矩阵与四元数

7. 旋转矩阵与单轴运动

4. Twist & Wrench

运动旋量与力旋量涉及的内容相对比较复杂,简单来说就是两个3D向量的组合,更深层次的解释可以参考李泽湘教授的《机器人操作的数学导论》

  1. 创建旋量

2. Get/Set函数

3. 四则运算

4. 互运算

5. Frame

《机器人学》中Frame为旋转运动与平移运动的组合,并且赋予了矩阵运算的功能

表达了两层意思:

ØMapping:同一个点,两个坐标系之间的变换

ØOperator:同一个坐标系,两个点之间的变换

  1. 创建Frame

2. Get/Set函数

3. 矩阵运算

Reference

  1. github.com/orocos/oroco

2. orocos.org/wiki/Geometr

3. 林沛群. 机器人学. 国立台湾大学

4. Roy Featherstone. Rigid Body Dynamics Algorithms.