ORB-SLAM2和ORB-SLAM的区别

  对于ORB-SLAM2整体还是使用基于ORB-SLAM的结构,但对部分细节做了改进,适用面更广。下图是ORB-SLAM2的系统结构图,可以看到和ORB-SLAM的相差不大(区别在于tracking中多了预处理模块,以及最后有一个全局BA,其余流程没变):
ORB-SLAM2和ORB-SLAM的区别_第1张图片
  关于和ORB-SLAM相同的部分就不再赘述,详细的可以参考:ORB-SLAM介绍(无源码版本)本文主要介绍一下ORB-SLAM2和ORB-SLAM相比的区别

  1.ORB-SALM完全基于ROS平台,而ORB-SLAM2提供了ROS的接口,也可以不用ROS
  2.ORB-SLAM2显示模块改用pangolin(配环境时要配对应的环境)
  3.ORB-SLAM2比ORB-SLAM1多支持双目和RGB-D
  4.ORB-SLAM可能有尺度漂移、执行纯旋转时会失败,ORB-SLAM2支持的双目或RGB-D将会解决以上问题
  5.增加全局BA,提高建图精度(发生在回环检测之后,单起一个线程)
  6.比ORB-SLAM去除了初始化的部分,增加预处理部分(因为可以直接获取深度信息了)主要是面对双目和RBG-D,将两份特征合并为一份来提供更多信息,提高精度。
  7.双目或者深度的信息使得尺度信息可观测。几何校验和位姿图优化将不再需要处理尺度漂移,尺度信息是基于刚体变换的,而不是基于相似性,更准确
  8.ORB-SLAM2增加一个定位模式,该模式适用于轻量级以及在地图已知情况下长期运行,只要那个环境没有发生剧烈变化。在该模式中,局部建图和回环检测的线程中是停用的,并且这个相机始终都是在通过追踪进行重定位。在这个模式下,追踪模块使用视觉里程计进行匹配图像的点云。视觉里程计匹配在当前帧的ORB算子和由双目或者深度相机收集的3D点云。这些匹配使得在没有地图的区域也能够精确重新定位,但是漂移将会被累加。地图点云匹配要确保在一个已经存在的地图当中零漂移定位

补充说明:

1.预处理的作用
ORB-SLAM2和ORB-SLAM的区别_第2张图片
  由上图的预处理过程图可知,双目/RGB-D提取最终都会转化为单目或者stereo进行处理
  2. 远/近双目特征点:看匹配的深度值大于还是小于40被双目或者RGB-D的基线。小于就是近,大于就是远。近的特征点能够从一帧的深度值能够三角测量化,是精确的估计,并且能够提供尺度,平移和旋转的信息。另外一方面,远的特征点,能够提供精确的旋转信息,但是很少的尺度和平移信息。当提供多视图的时候,我们才能三角化那些远的点。

参考资料:
ORB-SLAM2原文翻译:【泡泡机器人翻译专栏】ORB-SLAM2:一种开源的VSLAM方案

因作者水平有限,如有错误之处,请在下方评论区指正,谢谢!

你可能感兴趣的:(SLAM,自动驾驶,人工智能,机器学习)