2020-11-14
位姿以及变换矩阵
属于易混淆的基础问题,特此记录下来,以供不时之需。
1、位姿
位姿,即位置+姿态。
位姿是相对参考坐标系的存在,下面以大地坐标OXYZ为参考坐标系来讲解空间中某一点Pi的位姿。
位置,点Pi的坐标原点在基座标OXYZ中的位置坐标;
姿态,点Pi的Xi、Yi、Zi轴相对于基座标OXYZ中的方向向量;
图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中的位姿写作:
这个矩阵也视作基座标O到坐标Pi的变换矩阵,即基座标O*, 可以到达Pi的位姿。
进一步,如果在坐标系Pi里有一个坐标系Pi-1,并且已知Pi-1相对于Pi的位姿,则可以推出坐标Pi-1在基座标O下的位姿。
图2 套娃坐标
基座标O乘以矩阵可以到达Pi-1的位姿。
2、变换矩阵
在第一节中,Pi点的位姿我们是通过定义直接得出的,但大多数时候, Pi点的位姿是无法直接看出来的,需要通过变换矩阵得到。
基础变换矩阵有4个,绕x轴旋转、绕y轴旋转、绕z轴旋转、平移矩阵;
下面一一列出:
绕X轴旋转:
绕Y轴旋转:
绕Z轴旋转:
平移矩阵:
下面举例说明基础矩阵的用法,还是以第一节中的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轴的看,顺时针为负值)
图3 绕固定轴变换
由此得到点Pi相对基座标O的位姿为:
把这个公式翻译一下,就是
-
基座标 先绕Y轴旋转-90°:;得到O1X1Y1Z1相对基座标的位姿。
-
位姿 再绕Z轴旋转-90°:得到O2X2Y2Z2相对基座标的位姿。
-
位姿 沿X、Y、Z轴移动: ;得到Pi相对基座标的位姿。
可以看出,绕固定坐标系旋转是将变换矩阵左乘位姿。
再谈一谈第二种类型,绕新坐标系的坐标变换。
即基座标系OXYZ先绕Y 轴转-90°,得到坐标系O1X1Y1Z1(绿色坐标系);
坐标系O1X1Y1Z1绕自身的X1轴转-90°,得到坐标系O2X2Y2Z2(橙色坐标系);
最后坐标系O2X2Y2Z2沿X2轴平移3、沿Y2轴平移2、沿Z2轴平移1,得到PiXiYiZi
图4 绕旋转轴变换
由此得到点Pi相对基座标O的位姿为:
把这个公式翻译一下,就是
-
基座标 先绕Y轴旋转-90°:;得到O1X1Y1Z1相对基座标的位姿。
-
位姿 再绕X1轴旋转-90°:得到O2X2Y2Z2相对基座标的位姿。
-
位姿 沿X2、Y2、Z2轴移动:;得到Pi相对基座标的位姿。
可以看出,绕旋转坐标系旋转是将变换矩阵右乘位姿。
最后,希望这篇文章也能帮到其他人。