[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

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值