ORB-SLAM程序提供了运行Monocular、Stereo和RGBD数据的程序。编译成功后,可以通过运行TUM的标准数据来验证程序是否成功。如果想自己测试一些数据,可以通过OpenCV提供的接口调起电脑的摄像头。
个人认为,ORB-SLAM是一个完整的单目SLAM实现,集合了当前流行的SLAM特性。作者的程序非常工程化,其中有诸多精度与运算量的权衡。具体总结如下。
ORB-SLAM的优点:
- Tracking的平均时间约为20ms每帧,基本可以达到实时追踪(i5-5200,2.2GHz)。
- 丢帧以后回到原来的场景,很容易就可以找回来。
- 定位的稳定性较好,姿态流畅,没有跳变。
- 在简单背景下,可以有效地追踪目标物体。
ORB-SLAM的缺点:
- 旋转时比较容易丢帧,特别是pure rotation。
- 地图中的点云很稀疏,完全不能看出任何结构。
- 加载地图需要一定时间(10秒左右,通过二进制词典可以加速,DBoW2的作者似乎是为了兼容性放弃了二进制)。
- 初始化时最好保持低速运动,对准特征和几何纹理丰富的物体。
- 作者为了增强系统的鲁棒性,在很多地方采用了多重判断,引入了N多参数。不同场景下的应用可能需要花一些时间理解和调整这些参数。
简言之,对于地图密度要求不高的定位和追踪问题,ORB-SLAM是个不错的选择。
该系列的其它文章: