摘要:小伙伴在学习高博的《视觉SLAM十四讲》的时候,对罗德里格斯公式理解比较抽象,所以本次对该公式进行理论推导,并且整理该讲内容,其中有错误的地方,望指正。

一.罗德里格斯公式的推导

  1.该公式的推导,主要的步骤有两个:

    第一:寻找到一个向量,该向量与向量α的向量积=向量b

    第二:将寻找到的这个向量转化成对应的反对称矩阵

    其中旋转轴用单位向量视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园表示

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

说明:这里是不是感觉和SLAM十四讲上面的公式不一样,刚开始推导出来,对比之后发现,确实不一样。反复检查几次,发现推导过程并没有太大错误。确实这个过程是没啥问题的,只是这个环节还差一步,关于视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园反对称矩阵与向量之间的变换关系(这个公式是李群李代数里面的,具体推导只能再另外一篇博文中阐述了)。把这个公式代入:

 

 视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

2.公式推导分步解释

2.1旋转向量与反对称矩阵之间的关系(这个过程建立三维旋转向量与对应反对称矩阵的关系) 

 视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

其中:

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

2.2向量积(叉乘)

(为什么说明这一步,因为我在推导的过程中,由于向量积的基础知识不牢固,这里卡壳了两天)

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

     2.3向量的投影

    视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

二.变换矩阵与齐次坐标系(旋转、平移)

  1.向量

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

2.向量的内积

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

3.向量的外积

  视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园 

   4.正交矩阵的性质补充

    视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

   5.向量的旋转

    向量的旋转与向量的外积(叉乘):旋转轴方向与视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园一致。旋转的角度视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园   

    视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

  6.坐标系的旋转

    三维直角坐标系的三个轴视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园的相对位置永远保持一致(刚体),只需要对一个向量如:视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园旋转平移,整个坐标系就完成了变换操作

    6.1刚体的变换(坐标系的欧式变换)

    视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园       

    视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

 视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园 

       视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

      视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

三.坐标变换:缩放、平移、旋转(欧拉角)

  这个过程主要是能够直观的理解坐标系的变换(此步可以跳过)

1.缩放

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

其中Sc是缩放比例

2.平移

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

3.旋转

3.1二维坐标系旋转

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

   3.2三维坐标系旋转

  视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

  视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

4.欧拉角和万向锁

我们以rpy角进行旋转(即旋转顺序为ZYX:绕Z轴旋转得到偏航角yaw,绕旋转后的Y轴旋转得到俯仰角pitch,绕旋转后的X轴旋转,得到滚转角roll,这里和我们前面的分步旋转顺序是相反的,尽量和SLAM十四讲中的内容一致,所以我们把前面的内容调整一下,就是简单的调整一下左乘矩阵的顺序)

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

下面我们在hypermesh中创建坐标系,实际演示一下,坐标系旋转的实现过程。

视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]-冯金伟博客园

从旋转过程可以看出,在绕Z轴旋转和绕X轴旋转的时候,其实坐标轴都是绕同一的向量(世界坐标系的轴)在旋转。这个就是万向锁问题。这个过程将三个旋转向量(轴)变换,丢失一个一个旋转。