[ORB_SLAM3]运行

本文详细介绍了在Ubuntu20.04ROSnoetic环境中安装OpenCV3.4.5,包括boost库和libssl-dev的安装,以及如何在ROS下配置和编译ORB_SLAM3,包括数据集的下载和运行示例。

环境配置

  • Ubuntu 20.04
  • ROS版本:noetic
  • OpenCV:3.4.5
  • Pangolin
  • Eigen3
  • boost库
  • libssl-dev

OpenCV版本:源码要求版本在3.2以上,但是听说最好不要安装OpenCV4以上(据说4默认不会生成.pc文件,最后查看版本的时候查看不到)可以选择3.4.5版本,这是一个稳定版本。
本人亲自试验的成功安装链接: link

ORB_SLAM3比起 ORB_SLAM2需要多安装boost库和libssl-dev,下面就介绍这两个的安装。

1.1 安装boost库

由此链接进入boost官网: Boost C++ Libraries进行下载。
请添加图片描述下载后在自己定的位置解压,然后进入文件夹,打开终端,输入:

sudo ./bootstrap.sh
sudo ./b2 install

耐心等待即可。

1.2 安装libssl-dev

sudo apt-get install libssl-dev

安装 ORB_SLAM3

2.1创建环境

如果需要在ROS环境下运行ORB_SLAM,最好将工程放在catkin_ws/src文件夹下:

mkdir -p xxx_ws/src(必须得有 src)
cd xxx_ws
catkin_make

2.2下载

在合适的位置(例如刚刚创建的catkin_ws/src文件夹下):

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git

文件很大,耐心等待。

2.3修改配置文件

2.3.1

打开ORB-SLAM3对应的CMakeLists.txt找到find_package(OpenCV 4.4) 这行代码(33行),将OpenCV版本号改为find_package(OpenCV 3.4)(你自己对应的版本号)

2.3.2

在项目打开终端

sed -i 's/++11/++14/g' CMakeLists.txt

2.3.3

mono_euroc.cc的第83行false改为true

2.4一行一行执行编译

可以一键编译

cd ORB_SLAM3
chmod +x build.sh
./build.sh

但是直接编译消耗内存太大,因此打开build.sh脚本,依次执行每条指令,并选择合适的核数进行编译。

2.5可能出现的问题

error: no match for ‘operator/’:

解决办法:
在报错的文件中,例如KannalaBrandt8.cpp,LocalMapping.cc
在include 之后加上以下代码:

namespace cv
{
template<typename _Tp, int m, int n> static inline
Matx<_Tp, m, n> operator / (const Matx<_Tp, m, n> &a, float alpha)
{
return Matx<_Tp, m, n>(a, 1.f / alpha, Matx_ScaleOp());
}
}

运行

3.1下载data

数据集下载地址:link

要下载ASL格式的,我下的是第一个MH01。

解压后,在合适的位置(项目根目录下)创建data文件夹,导入解压后的文件。

3.2运行

在ORB-SLAM3的源码的Examples文件夹中本来有一个脚本euroc_examples.sh,但是最新的ORB-SLAM3版本已经找不到了,可以去下面这个链接拷贝过来link

里面有ORB-SLAM3各种运行模式针对各个数据集的运行指令,选择下载数据集对应模式下的指令,提取出来(以MH01、单目+IMU为例):

./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml "$pathDatasetEuroc"/MH01 ./Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono

把"$pathDatasetEuroc"/MH01 改成你自己的路径,然后把末尾的dataset-MH01_mono删了

得到:

./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml ../data/MH01 ./Monocular/EuRoC_TimeStamps/MH01.txt

进入Examples文件夹运行终端,输入上文即可。

参考博客:
1.link
2.link

<think>好的,我现在需要帮助用户解决在rgbdTUM数据集上运行ORB_SLAM3的问题。首先,用户提到了ORB_SLAM2的引用,但问题关于ORB_SLAM3,所以可能需要比较两者的差异。用户需要具体的步骤,可能包括数据集准备、环境配置、参数调整等。 首先,我应该回忆ORB_SLAM3的基本运行流程。ORB_SLAM3支持多种模式,包括单目、双目、RGB-D等,而rgbdTUM数据集属于RGB-D类型。需要确认ORB_SLAM3是否支持该数据集,通常TUM数据集是常用的基准,所以应该支持。 接下来,用户可能需要安装ORB_SLAM3的依赖项,比如Pangolin、OpenCV、Eigen等。编译源码的步骤和ORB_SLAM2类似,但可能有不同的CMake配置或者第三方库要求,需要指出。 然后,下载rgbdTUM数据集,可能需要从TUM官网获取,并且数据集的目录结构需要符合ORB_SLAM3的要求。比如,图像和深度图的时间戳对齐,可能需要使用提供的associate.py脚本进行关联。 运行命令方面,ORB_SLAM3可能有不同的可执行文件和参数。例如,对于RGB-D模式,可能需要调用rgbd_tum词汇文件和配置文件,同时指定数据集路径、关联文件等。 用户可能遇到的问题包括数据集路径错误、关联文件生成不正确、参数文件缺失等。需要提醒检查路径是否正确,配置文件是否存在,以及是否安装了所有依赖。 此外,用户可能想了解如何在CLion中配置运行参数,类似于ORB_SLAM2的示例,所以需要给出在IDE中的参数设置示例。 最后,生成相关问题可以帮助用户深入理解,比如性能优化、参数调整、不同数据集的比较等。需要确保问题相关且有价值,避免重复或太宽泛。</think>### ORB_SLAM3在rgbdTUM数据集上的运行方法 #### 1. 环境准备与源码编译 - **安装依赖项** 确保已安装必要的依赖库:Pangolin(界面渲染)、OpenCV(图像处理)、Eigen(线性代数)、DBoW2(词袋模型)等。例如在Ubuntu系统中: ```bash sudo apt-get install libopencv-dev libeigen3-dev libboost-all-dev ``` - **克隆ORB_SLAM3源码** ```bash git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git cd ORB_SLAM3 ``` - **编译源码** 使用build.sh脚本编译,需注意OpenCV版本兼容性(建议4.2以上): ```bash chmod +x build.sh ./build.sh ``` #### 2. 数据集准备 - **下载rgbdTUM数据集** 从[TUM官网](https://cvg.cit.tum.de/data/datasets/rgbd-dataset/download)获取数据集(例如`rgbd_dataset_freiburg1_desk`),解压后目录应包含`rgb/`、`depth/`和`groundtruth.txt`文件。 - **生成时间戳关联文件** 使用ORB_SLAM3提供的`associate.py`脚本对齐RGB与深度图时间戳: ```bash python associate.py PATH_TO_RGB.txt PATH_TO_DEPTH.txt > associations.txt ``` 注意替换实际文件路径[^1]。 #### 3. 配置文件调整 - **修改RGB-D参数文件** 检查`ORB_SLAM3/Examples/RGB-D/TUMX.yaml`(X对应数据集编号),确认相机内参和分辨率与数据集匹配。例如`TUM1.yaml`适用于`freiburg1`序列。 #### 4. 运行ORB_SLAM3 - **终端命令示例** ```bash ./Examples/RGB-D/rgbd_tum \ Vocabulary/ORBvoc.txt \ Examples/RGB-D/TUM1.yaml \ PATH_TO_DATASET_FOLDER \ PATH_TO_ASSOCIATIONS_FILE ``` 参数说明: - `ORBvoc.txt`:ORB特征词汇表 - `TUM1.yaml`:相机配置文件 - 数据集路径和关联文件路径需替换为实际值 #### 5. CLion调试配置(可选) - 在CLion中设置运行参数: - **Executable**: 选择编译生成的`rgbd_tum` - **Program arguments**: 按顺序填写词汇表、配置文件、数据集路径、关联文件路径 - **Working directory**: 设为ORB_SLAM3根目录 #### 常见问题排查 - **关联文件格式错误**:确保时间戳对齐精度达到$10^{-6}$秒级 - **相机参数不匹配**:检查`TUMX.yaml`中的$f_x, f_y, c_x, c_y$与数据集标定文件一致 - **OpenCV版本冲突**:若出现图像读取失败,尝试重新编译OpenCV或调整版本 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值