二、ORB-SLAM3编译安装和运行(Ubuntu22.04)

一开机“该虚拟机似乎正在使用中。”“无法打开虚拟机,是否从库中移除××”???吓死个人😢然后我定睛一看发现我的Ubuntu那个页面竟然开了两个,关了报错的那个页面就好了。
⭐还是这句话:我遇到的问题写在了后面,如果安装遇到问题可以先看看其中是否有相同的问题,是否有其解决方法。

记录一下ORB-SLAM3编译安装和运行过程:

源码编译:
如果安装的和我一样版本的OpenCV【3.4版本】打开ORB-SLAM3文件夹内的CMakeLists.txt将OpenCV版本号改为find_package(OpenCV 3.4)
在这里插入图片描述

cd ORB_SLAM3

然后打开ORB_SLAM3文件夹下的build.sh脚本,依次(一条一条的)执行脚本中每条指令,并根据自己虚拟机分配的核数选择make后面的核数进行编译【首先尝试原来的脚本命令,运行不动到自动结束进程的地步的话改成make -j4,还运行不动直接改成make,这样会运行的慢一些但至少不卡,慢慢等吧,我的是Sophus运行那一块和最后一句指令卡住了,吐槽一下:天啦噜,运行不动啊真的会哭】
对于我年纪大了点的电脑太不容易了啊!这不得放张图纪念一下!
在这里插入图片描述
数据集测试:
进入链接:EuRoC数据集
→点Downloads→这里我下载了Machine Hall 04、Vicon Room 103和Vicon Room 202这3个数据集【选ASL Dataset Format】
在这里插入图片描述
下载euroc_examples.sh这个脚本:https://gitcode.com/mirrors/electech6/orb_slam3_detailed_comments/blob/master/Examples/euroc_examples.sh
里面有ORB-SLAM3各种运行模式针对各个数据集的运行指令,选择下载数据集对应模式下的指令,提取出来(以MH04、单目为例)
找到包含MH04的指令:

./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml "$pathDatasetEuroc"/MH04 ./Monocular/EuRoC_TimeStamps/MH04.txt dataset-MH04_mono

将"$pathDatasetEuroc"/MH04改成自己数据集的路径,这里本人的为:./Dataset/MH04,并去掉指令中的dataset-MH04_mono【注意:我下载的这个euroc_examples.sh脚本的命令有的地方前面要加上./Examples】
最终改成的指令如下:

./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./Dataset/MH04 ./Examples/Monocular/EuRoC_TimeStamps/MH04.txt

先进入

cd ORB_SLAM3

然后终端输入以上那条修改后的指令运行。
在这里插入图片描述
但没有可视化界面!解决方法:首先将./Examples/Monocular/mono_euroc.cc中的83行代码中的false改成true,然后重新一条一条执行build.sh脚本(这次执行的速度会明显变快)最后再运行那条指令!/(ㄒoㄒ)/~~如下所示:
在这里插入图片描述

./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./Dataset/MH04 ./Examples/Monocular/EuRoC_TimeStamps/MH04.txt

最终运行结果:
在这里插入图片描述
遇到的问题:
Error1: ‘slots_reference’ was not declared in this scope,执行以下指令:
在这里插入图片描述

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

Error2: c++: fatal error: 已杀死 signal terminated program cc1plus
compilation terminated.
在这里插入图片描述
【增加SWAP交换空间】具体怎么解决看的这里:https://blog.csdn.net/lucky__peng/article/details/124272717
Error3:
CMake Warning at CMakeLists.txt:43 (find_package):
By not providing “Findrealsense2.cmake” in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
“realsense2”, but CMake did not find one.
在这里插入图片描述
则执行下面的命令:

sudo apt-get install librealsense2-utils
sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo bionic main" -u
sudo apt-get install librealsense2-utils
sudo apt-get install librealsense2-dev

Error4:
还在运行中出现了“段错误 (核心已转储)”这个错误并停止运行了。
在这里插入图片描述
这个目前还没解决,评论有看到这样一个解决方案,等我试一下,解决了再回来编辑这篇博客。
在这里插入图片描述

⭐在此立个flag:之后要努力读文献,读代码~加油吖(ง •_•)ง

  • 26
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值