ORB-slam的配置和使用

  • ORB-slam介绍

ORB-SLAM2 is a real-time SLAM library for Monocular, Stereo and RGB-D cameras that computes the camera trajectory and a sparse 3D reconstruction (in the stereo and RGB-D case with true scale). It is able to detect loops and relocalize the camera in real time. We provide examples to run the SLAM system in the KITTI dataset as stereo or monocular, in the TUM dataset as RGB-D or monocular, and in the EuRoC dataset as stereo or monocular. We also provide a ROS node to process live monocular, stereo or RGB-D streams. The library can be compiled without ROS. ORB-SLAM2 provides a GUI to change between a SLAM Mode and Localization Mode, see section 9 of this document.

ORB源码

作为目前开源的slam项目之一,ORB-SLAM的效果是非常好的。基于ORB特征点的方法使其能准确的对图像进行匹配,进而计算出两帧图像的位姿变化,采用g2o作为后端优化工具,能有效的减少对特征点位置和自身位姿的估计误差,采用DBOW减少了寻找特征的计算量,同时回环匹配和重定位效果较好。同时还有单目、双目、RGBD相机的接口,唯一美中不足的是构建出的地图是稀疏点云图。只保留了图像中特征点的一部分作为关键点,固定在空间中进行定位,很难描绘地图中的障碍物的存在,所以不好作为机器人避障所用的地图。

ORB-SLAM的配置还是十分简单的,安装好依赖后,就可以直接跑测试集的数据了。因为相机标定还没做好,我先用tum上的数据集 做个简单演示。

选择rgbd测试集,里面有真实的位姿轨迹、演示图和对应的深度图,用对应的 associate.py脚本 将其对应,生成关联文件。
ORB-slam的配置和使用_第1张图片

在ORB_SLAM2/Example/RGB-G的路径下,执行测试:
这里写图片描述
ORBvoc.txt是加载的词典文件,TUM1.yaml是对应与测试集的相机参数文件。

ORB-slam的配置和使用_第2张图片

运行时就能构建显示稀疏的地图了,运行之后生成的 KeyFrameTrajectory.txt 轨迹文件,可以用evaluate_ate.py 比较和真实轨迹的误差:
ORB-slam的配置和使用_第3张图片

作为很多人第一个接触是slam工程,ORBSLAM是相当系统完整的。国内有泡泡机器人注释的ORB源码ORB_SLAM2源码注释 ,有高翔博士增添的能显示稠密点云的改进版本ORBSLAM2_with_pointcloud_map 。对于ORBSLAM的原理可以参照论文,网上好的博客也很多,这里就不详述了,感谢大佬们的注释改进。

你可能感兴趣的:(slam)