RESLAM 开源项目使用教程
1. 项目介绍
RESLAM 是一个实时、鲁棒的基于边缘的 SLAM(Simultaneous Localization and Mapping)系统,专为 RGBD 传感器设计。边缘在不同光照条件下比原始强度值更稳定,这使得 RESLAM 在特征或光一致性方法经常失败的场景中表现更准确和鲁棒。
RESLAM 是一个研究项目,代码发布时没有任何保证,并且可能不会再进行进一步开发。
主要特点
- 实时性:能够在实时环境中运行。
- 鲁棒性:基于边缘的算法在不同光照条件下表现更稳定。
- 适用于 RGBD 传感器:特别适用于 RGBD 传感器,如 Kinect。
引用
如果您使用此工作,请引用以下出版物之一:
- RESLAM: A real-time robust edge-based SLAM system, Schenk Fabian, Fraundorfer Friedrich, ICRA 2019.
- Combining Edge Images and Depth Maps for Robust Visual Odometry, Schenk Fabian, Fraundorfer Friedrich, BMVC 2017.
- Robust Edge-based Visual Odometry using Machine-Learned Edges, Schenk Fabian, Fraundorfer Friedrich, IROS 2017.
2. 项目快速启动
系统要求
- Ubuntu 16.04 / 15.10 / 17.04
- OpenCV > 3
- Eigen > 3.3
- Ceres >= 1.13
- Sophus(包含在 thirdparty/Sophus 中)
构建步骤
-
克隆仓库
git clone https://github.com/fabianschenk/RESLAM.git cd RESLAM
-
创建并进入构建目录
mkdir build cd build
-
生成构建文件
cmake ..
-
编译项目
make -j
运行示例
在 RESLAM
目录下运行以下命令:
build/RESLAM config_files/reslam_settings.yaml config_files/dataset_tum1.yaml
3. 应用案例和最佳实践
应用案例
RESLAM 主要用于需要高精度定位和地图构建的场景,如机器人导航、增强现实和虚拟现实。
最佳实践
- 数据集准备:使用 TUM RGBD 数据集进行测试,并生成
associate.txt
文件。 - 多线程:启用多线程可能会导致结果略有不同,因为浮点加法在每次运行中执行的顺序不同。
- 错误处理:注意处理可能的段错误,特别是在深度图包含大部分无效值的情况下。
4. 典型生态项目
相关项目
- OpenCV:用于图像处理和计算机视觉任务。
- Eigen:用于线性代数运算。
- Ceres Solver:用于非线性优化问题。
- Sophus:用于李群和李代数的操作。
这些项目与 RESLAM 紧密结合,共同构成了一个完整的 SLAM 解决方案。