2020-11-14

位姿以及变换矩阵
属于易混淆的基础问题,特此记录下来,以供不时之需。

1、位姿
位姿,即位置+姿态。

位姿是相对参考坐标系的存在,下面以大地坐标OXYZ为参考坐标系来讲解空间中某一点Pi的位姿。

位置,点Pi的坐标原点在基座标OXYZ中的位置坐标;

姿态,点Pi的Xi、Yi、Zi轴相对于基座标OXYZ中的方向向量;

2020-11-14
图1 基座标下的点Pi

由图1可以得到,Pi的Xi向量在基座标下可以写成

Xi = 0X+0Y+1*Z,即Xi相对基座标的方向向量为[0 0 1]’;

同理可得Yi、Zi的方向向量分别为[1 0 0]’、[0 1 0]’;

Pi原点坐标为[2 1 3]’;

有了位姿的概念,接下来描述位姿;

以Pi点为例,它在基座标O中的位姿写作:
2020-11-14
这个矩阵也视作基座标O到坐标Pi的变换矩阵,即基座标O*, 可以到达Pi的位姿。

进一步,如果在坐标系Pi里有一个坐标系Pi-1,并且已知Pi-1相对于Pi的位姿,则可以推出坐标Pi-1在基座标O下的位姿。
2020-11-14
图2 套娃坐标

基座标O乘以矩阵可以到达Pi-1的位姿。2020-11-14
2、变换矩阵
在第一节中,Pi点的位姿我们是通过定义直接得出的,但大多数时候, Pi点的位姿是无法直接看出来的,需要通过变换矩阵得到。

基础变换矩阵有4个,绕x轴旋转、绕y轴旋转、绕z轴旋转、平移矩阵;

下面一一列出:

绕X轴旋转:
2020-11-14
绕Y轴旋转:
2020-11-14

绕Z轴旋转:
2020-11-14

平移矩阵:
2020-11-14

下面举例说明基础矩阵的用法,还是以第一节中的Pi点为例

从O点变换到Pi点,有两种类型的转化,一种是始终以固定的基座标OXYZ为基础,进行绕轴旋转和平移,另一种是以变换后的坐标为基础,进行绕轴旋转和平移。(这句话没理解没关系,后面有例子说明)

先谈第一种类型的转化,绕固定坐标系OXYZ变换。

即基座标OXYZ坐标系先绕Y轴转-90°,得到坐标系O1X1Y1Z1(绿色坐标系);

再坐标系O1X1Y1Z1绕Z轴转-90°,得到坐标系O2X2Y2Z2(橙色坐标系);

最后坐标系O2X2Y2Z2沿X轴平移2,沿Y轴平移1,沿Z轴平移3 ,得到PiXiYiZi;

(PS:这里绕Y轴旋转-90°,绕Y轴指的是逆着Y轴的看,顺时针为负值)

2020-11-14

图3 绕固定轴变换

由此得到点Pi相对基座标O的位姿为:
2020-11-14

把这个公式翻译一下,就是

  1. 基座标 先绕Y轴旋转-90°:;得到O1X1Y1Z1相对基座标的位姿。

  2. 位姿 再绕Z轴旋转-90°:得到O2X2Y2Z2相对基座标的位姿。

  3. 位姿 沿X、Y、Z轴移动: ;得到Pi相对基座标的位姿。

可以看出,绕固定坐标系旋转是将变换矩阵左乘位姿。

再谈一谈第二种类型,绕新坐标系的坐标变换。

即基座标系OXYZ先绕Y 轴转-90°,得到坐标系O1X1Y1Z1(绿色坐标系);

坐标系O1X1Y1Z1绕自身的X1轴转-90°,得到坐标系O2X2Y2Z2(橙色坐标系);

最后坐标系O2X2Y2Z2沿X2轴平移3、沿Y2轴平移2、沿Z2轴平移1,得到PiXiYiZi

2020-11-14

图4 绕旋转轴变换

由此得到点Pi相对基座标O的位姿为:

2020-11-14

把这个公式翻译一下,就是

  1. 基座标 先绕Y轴旋转-90°:;得到O1X1Y1Z1相对基座标的位姿。

  2. 位姿 再绕X1轴旋转-90°:得到O2X2Y2Z2相对基座标的位姿。

  3. 位姿 沿X2、Y2、Z2轴移动:;得到Pi相对基座标的位姿。

可以看出,绕旋转坐标系旋转是将变换矩阵右乘位姿。

最后,希望这篇文章也能帮到其他人。