2-1 描述位姿
#学习笔记 #机器人理论 #空间描述与坐标变换 #机器人运动学
位置描述
建立坐标系后用一个 3×1 的位置矢量就可以确定坐标系当中的任何点位
用一个向量就可以表示,图中的是 $^{A}P$
用位置矢量可以描述空间当中点的位置
$$
^{A}P=\begin{pmatrix}
p_{x}\
p_{y}\
p_{z}
\end{pmatrix}
$$
姿态描述
不仅要表示空间中点的位置,还要表示出空间中物体的姿态
于是定义两个坐标系,分别是{A}和{B}
在机器人学导论这本书当中,坐标系用中括号{}来表示,例如这个例子当中的{A}以及后面在计算连杆坐标系时的{0}、{1}
从图中可以看到,整个{B}坐标系是从{A}旋转再平移得到的,先研究旋转的这一部分
通过对坐标系旋转就可以表达机械臂的姿态,定义一个旋转矩阵为 ${B}^{A}R$,通过这个旋转矩阵可以实现{B}再{A}上的表示。{A}的三个单位矢量分别定义为 $\hat{X}{A}$$\hat{Y}{A}$$\hat{Z}{A}$ ,同理{B}的单位矢量也为 $\hat{X}{B}$$\hat{Y}{B}$$\hat{Z}{B}$,则可以表示旋转矩阵 ${B}^{A}R$ 为{B}的三个单位矢量再{A}上的投影,对于向量来说做投影就是进行点乘,所以可以表示为
$$
{B}^{A}R=(^{A}\hat{X}{B},^{A}\hat{Y}{B},^{A}\hat{Z}{B})
$$
$^{A}\hat{X}_{B}$ 表示为{B}的 X 方向单位矢量在{A}的表示,既然是在{A}的表示肯定是一个向量,所以是个 1×3 的向量,而整个旋转矩阵是 3×3 的矩阵
具体进行计算时整个矩阵可以表示为
$$
{B}^{A}R=
\begin{pmatrix}
\hat{X}{B}\cdot\hat{X}{A}& \hat{Y}{B}\cdot\hat{X}{A} & \hat{Z}{B}\cdot\hat{X}{A} \
\hat{X}{B}\cdot\hat{Y}{A}& \hat{Y}{B}\cdot\hat{Y}{A} & \hat{Z}{B}\cdot\hat{Y}{A} \
\hat{X}{B}\cdot\hat{Z}{A} & \hat{Y}{B}\cdot\hat{Z}{A} & \hat{Z}{B}\cdot\hat{Z}{A}
\end{pmatrix}
$$
通过这种方式可以计算出{B}当中所有的单位向量在{A}当中的表示,现在对这个矩阵进行转置操作
$$
{B}^{A}R^T=
\begin{pmatrix}
\hat{X}{B}\cdot\hat{X}{A}& \hat{X}{B}\cdot\hat{Y}{A} & \hat{X}{B}\cdot\hat{Z}{A} \
\hat{Y}{B}\cdot\hat{X}{A}& \hat{Y}{B}\cdot\hat{Y}{A} & \hat{Y}{B}\cdot\hat{Z}{A} \
\hat{Z}{B}\cdot\hat{X}{A} & \hat{Z}{B}\cdot\hat{Y}{A} & \hat{Z}{B}\cdot\hat{Z}{A}
\end{pmatrix}
$$
点乘有交换律的,$a\cdot b=b\cdot a$
所以
$$
{B}^{A}R^T=
\begin{pmatrix}
\hat{X}{A}\cdot\hat{X}{B}& \hat{Y}{A}\cdot\hat{X}{B} & \hat{Z}{A}\cdot\hat{X}{B} \
\hat{X}{A}\cdot\hat{Y}{B}& \hat{Y}{A}\cdot\hat{Y}{B} & \hat{Z}{A}\cdot \hat{Y}{B}\
\hat{X}{A}\cdot\hat{Z}{B} & \hat{Y}{A}\cdot\hat{Z}{B} & \hat{Z}{A}\cdot\hat{Z}{B}
\end{pmatrix}
={A}^{B}R
$$
所以对{B}对{A}的旋转矩阵进行转置就可以得到{A}对{B}的旋转矩阵,即
$$
{B}^{A}R={A}^{B}R^T
$$
这是旋转矩阵的重要性质
对于旋转矩阵还有另外一个重要性质,即旋转矩阵为正交矩阵
正交矩阵:一个矩阵 A 有 $AA^T=E$ 或者是 $A^TA=E$ 的性质说明该矩阵为正交矩阵,其中 E 为单位矩阵
$$
{B}^{A}R^T\ {B}^{A}R=I_{3}
$$
$I_{3}$ 为 3×3 的单位矩阵
因此
$$
{B}^{A}R={A}^{B}R^{-1}=_{A}^{B}R^{T}
$$
位姿描述
完整描述操作的位姿所需要的信息为两个,一个是位置另一个是姿态,在机器人学当中位置和姿态往往成对出现,于是将其组合为位姿,通过一个矢量例如 $^AP=(p_{x},p_{y},p_{z})^T$ 来表示位置,再用一个以三个矢量所构成的旋转矩阵 ${B}^{A}R$ 来表示姿态。
在后面的案例当中,表示位置常常用坐标系的原点位置,即 $^AP{BORG}$
BORG 分两部分,一部分是 B 代表坐标系,另一部分是 ORG 代表原点,即Origin。例如坐标系{0}的原点位置为 0 ORG
那么位姿{B}可以通过 $^AP_{BORG}$ 和 ${B}^{A}R$ 确定,即:
$$
{B}={{B}^{A}R,^{A}P_{BORG}}
$$
下面对位姿的图解表示法进行介绍,图解表示法是通过图示的方式说明位姿,如下图
在图中,世界坐标系当中存在三个位姿,已知位姿{A}和位姿{B}相对于世界坐标系的关系以及位姿{C}相对于位姿{A}的关系。
在图中使用图示的方式对位姿进行说明,每个位姿可以通过三个标有箭头的单位矢量来描述,定义位子的三根主轴。在图中可以看到从一个原点指向另一个原点的箭头,即图中蓝色箭头,这个矢量表示箭头处原点相对于箭尾处原点的位置,箭头方向表示相对的方向,例如在图中是{C}相对于{A}而不是{A}相对于{C}
总结
为了避免与后面的概念混淆,进行简单的总结,对于位姿的描述需要注意的几个点
- 机器人操作臂的姿态各异,通过操作臂坐标系与其他坐标系相对比旋转角度来描述操作臂的姿态
- 操作臂也有相对于其他坐标系的移动,也就是平移,其运动的量无非就是一个三维的矢量,参数也就是 xyz 这三个
- 把旋转后的姿态和平移的方向与距离进行描述就可以描述出操作臂的在空间中的特性
- 后面会讲到坐标的映射与算子,计算的方式和这一节的内容差不多,但是概念完全不同
- 位姿描述说的是如何描述操作臂在空间的状态
- 下一节映射说的是一个坐标系上的点在另外一个坐标系上的表示,是一个相同的量在不同坐标系下的表达
- 算子说的是在同一个坐标系下的旋转平移操作,类似于 3D 软件当中将一个方块进行 Translate 和 Rotate 操作