一、对左乘一个旋转矩阵的理解
左乘旋转矩阵的旋转是相对与一个固定的坐标系的,这个坐标系不会因相应的向量或坐标的改变而改变,通常坐标系的初始位置就是固定坐标系的位置。
1)相对于固定坐标系单次向量的旋转
这里的“单次”指的是绕RPY角的某个方向旋转某个角度。
以三维坐标为例,对于一个坐标系下的向量
根据旋转角度 θ 左乘一个对应的旋转矩阵,就能得到旋转θ角后的向量。
这里说到“对应”的旋转矩阵,就是绕x轴旋转(roll轴)、绕y轴旋转(pitch轴)和绕z轴旋转(yaw轴)对应的矩阵,其矩阵对应旋转角度θ的关系如下:
很多文章中的公式中的sin和这里是相反的,也是很多人容易弄混的,事实上对于向量的旋转就是上面这个公式,sin取负值(事实上是θ取负值)对应的是矩阵的旋转,因为矩阵旋转相对于向量旋转是相反方向的嘛,所以如果按矩阵旋转的方式理解,在上述矩阵前面加上负号就可以了。
关于矩阵相乘这里就不多说了。
2)相对于固定坐标系单次坐标轴的旋转
向量往某个方向旋转某个角度,也可以看成是坐标系往反方向旋转了相应的角度。向量的方向不变,但是相对于坐标系的方向改变了。
公式即为上述公式中θ取负数。
在完成云台激光项目的时候,就应用到了这里,将云台旋转后识别到的点的坐标转换成固定坐标系下点的坐标,以此方便计算角度。
3)关于多角度的旋转
如果向量的偏移不是沿着RPY角度的,而是对多个角度都有分量,那么就要左乘多个旋转矩阵。
左乘旋转矩阵的顺序不同,会导致结果出现偏差。也就是说先pitch轴旋转再yaw轴旋转和先yaw轴旋转再pitch轴旋转的结果是不相同的。因此需要根据实际情况确定旋转的顺序。
在左乘多个旋转矩阵时,
二、对右乘一个旋转矩阵的理解
右乘旋转矩阵表示旋转矩阵与向量相乘,旋转是相对于向量所在的空间中的局部坐标系(即局部坐标系)。
相对于自身的坐标系坐标轴的旋转
左乘是相对于固定坐标系下的旋转,而右乘则是关于自身当前状态下的坐标系来旋转的。比如一个坐标先沿pitch角度旋转,再沿旋转后的坐标系的yaw轴角度旋转。
对应角度的旋转矩阵如下:(与上面的坐标轴旋转是相同的)
三、总结及应用
基于固定坐标系的旋转变换左乘旋转矩阵,基于自身坐标系的旋转变换右乘旋转矩阵。
-
左乘:将对象绕固定的参考框架旋转。左乘通常适用于多维数据分析、图像处理、和物理仿真中,其中参考框架是不变的。
-
右乘:将对象绕自身参考框架旋转。右乘通常适用于机械臂、机器人、和局部坐标系的变换中。