# monoORBSLAM2 **Repository Path**: whitbyli/mono-orbslam2 ## Basic Information - **Project Name**: monoORBSLAM2 - **Description**: 个人参照 ORB-SLAM2 官方代码,在 Ubuntu 20.04 上使用较新的 c++ 库和 c++17 标准重新写的单目版本,另外未撰写回环检测模块 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-08-31 - **Last Updated**: 2024-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: 视觉SLAM ## README # monoORBSLAM2 ### 介绍 个人参照 ORB-SLAM2 官方代码,在 Ubuntu 20.04 上使用较新的 c++ 库和 c++17 标准重新写的单目版本,另外未撰写回环检测模块 ### 依赖包 ##### 1. Eigen3 Eigen3 笔者使用的是 Ubuntu 20.04 官方库版本(版本号 3.3.7),安装命令如下: ```bash sudo apt-get update sudo apt-get install libeigen3-dev ``` ##### 2. OpenCV4 OpenCV4 同样也使用 Ubuntu 20.04 官方库版本(版本号 4.2.0),安装命令如下: ```bash sudo apt-get update sudo apt-get install libopencv-dev ``` ##### 3. g2o g2o 开源地址为 `https://github.com/RainerKuemmerle/g2o/tree/20201223_git` (这里选择与 eigen、opencv 发布年代相近的分支版本),安装编译命令如下: ```bash sudo apt-get update sudo apt-get install libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-dev-qt5 # 可选依赖 # 切换到 g2o 下载目录,编译并安装 mkdir build && cd build cmake .. make -j 8 sudo make install ``` ### 编译运行 #### 第三方库 DBoW2 编译 ORB-SLAM2 需要使用词袋模型进行参考关键帧跟踪定义,以及局部建图模块关键帧匹配,三角化新的地图点,编译命令如下: ```bash cd thirdParty/DBoW2 mkdir build && cd build cmake .. make -j 8 ``` #### monoORBSLAM2 编译 ```bash # monoORBSLAM2 目录下 mkdir build && cd build cmake .. make -j 8 ``` #### KITTI 数据运行 这里使用去畸变的 KITTI 数据集,官方地址为:`https://www.cvlibs.net/datasets/kitti/eval_odometry.php`(官网下载数据需要注册账号验证)。这里使用 kitti sequence 10 数据测试运行测试截图如下:
#### 手机采集校园场景数据运行 开发鸿蒙 APP ([SLAMRecord](https://gitee.com/whitbyli/slamrecorder))读取手机设备传感器数据,在校园步行录制数据运行测试。 这里暂时提供一个较小的样例数据(2G),[百度网盘下载链接](https://pan.baidu.com/s/1d9YE1Kb9rbSbiVf2_viFFw?pwd=qfar)(10月11日后失效)。解压命令如下: ```bash # cd 下载目录 tar -zxvf data.tar.gz # 数据包结构如下: 2023_08_10_walk_001 ├── camera.txt # 数据格式:相机帧时间戳 重力加速度 ├── images │ ├── 00000000.png │ ├── 00000001.png │ ├── ... │ imu.txt # 数据格式:IMU时间戳 陀螺仪 加速度计 ``` 运行命令: ```bash # 对应 test/phoneDemo.cpp 文件 test/slam_demo setting.yaml vocabulary_file data_folder trajectory_save_path ```