zoukankan      html  css  js  c++  java
  • 视觉SLAM十四讲(一)之旋转矩阵与旋转向量[罗德里格斯公式]

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

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

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

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

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

        其中旋转轴用单位向量表示

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

     

     

    2.公式推导分步解释

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

     

    其中:

    2.2向量积(叉乘)

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

         2.3向量的投影

        

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

      1.向量

    2.向量的内积

    3.向量的外积

       

       4.正交矩阵的性质补充

        

       5.向量的旋转

        向量的旋转与向量的外积(叉乘):旋转轴方向与一致。旋转的角度   

        

      6.坐标系的旋转

        三维直角坐标系的三个轴的相对位置永远保持一致(刚体),只需要对一个向量如:旋转平移,整个坐标系就完成了变换操作

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

               

        

      

           

          

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

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

    1.缩放

    其中Sc是缩放比例

    2.平移

    3.旋转

    3.1二维坐标系旋转

       3.2三维坐标系旋转

      

      

    4.欧拉角和万向锁

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

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

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

     

  • 相关阅读:
    requests实现接口自动化(三)
    api 25 PopupWindow会占据整个屏幕
    INSTALL_FAILED_USER_RESTRICTED
    事件分发_水平滑动和垂直冲突解决
    MPAndroidChart market右边显示不全问题
    SimpleDateFormat 取当前周的周一和周日的日期,当前月第一个和最后一天的日期
    Callable,Runnable比较及用法
    Android系统启动流程
    debug-stripped.ap_' specified for property 'resourceFile' does not exist
    Theme.AppCompat.Light的解决方法
  • 原文地址:https://www.cnblogs.com/liuhuacai/p/12093770.html
Copyright © 2011-2022 走看看