在使用D435i运行ORB-SLAM3时,纯视觉模式(不加入IMU)与视觉-惯性模式(加入IMU)得到的位姿矩阵相差一个绕X轴旋转90度的变换,这主要是由于两种模式的世界坐标系定义不同导致的。

1. 坐标系定义差异

  • 相机坐标系(D435i):Z轴向前(正前方),Y轴向下(垂直于地面),X轴向右(右手坐标系)。
  • IMU坐标系(D435i):与相机坐标系一致(Z向前、Y向下、X向右)。
  • 纯视觉模式(无IMU)
    ORB-SLAM3以第一帧的相机坐标系作为世界坐标系。此时,世界坐标系的Y轴向下(与相机坐标系一致)。
  • 视觉-惯性模式(有IMU)
    ORB-SLAM3以重力方向定义世界坐标系:Z轴向上(与重力方向相反)、X轴向右、Y轴向前。系统通过IMU的加速度计数据感知重力方向,并据此对齐世界坐标系。

2. 坐标系转换关系

  • 重力方向在D435i中的IMU坐标系测量值为(0, g, 0)
  • 为了将IMU坐标系转换到世界坐标系(Z向上),需要执行一个旋转:
    旋转矩阵 R = [1,  0,  0]
                 [0,  0,  1]
                 [0, -1,  0]
    

3. 位姿矩阵差异的来源

  • 在视觉-惯性模式中,ORB-SLAM3在初始化时应用上述旋转,将IMU数据转换到Z向上的世界坐标系。
  • 而纯视觉模式没有重力对齐,世界坐标系保持第一帧相机的Y轴向下的方向。
  • 因此,同一个相机位姿在两种模式下的表示不同。

4. 注意

  • 轨迹对齐
    若需比较两种模式的轨迹,先将纯视觉的轨迹左乘2中的旋转矩阵。

  • ORB-SLAM3配置
    检查相机-IMU外参(Tbc)是否设置正确。D435i的相机与IMU坐标系一致,外参旋转矩阵应为单位矩阵。

总结

差异的根本原因是世界坐标系的定义不同

  • 无IMU时:世界坐标系Y向下(与第一帧相机坐标系一致)。
  • 有IMU时:世界坐标系Z向上(重力对齐)。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐