虚拟机+Ubuntu18.04+ORB_SLAM3+ROS环境配置(配置环境的过程以及途中出现的错误,解决方法)

前提概要:因为导师的科研安排,需要做三维重建,并基于Jeston的硬件平台来完成,由于板子还没有到(应该说报销的费用还没到,没钱买QAQ),所以先用虚拟机模拟配置一下环境。写这篇文章也是为了板子到了以后能够方便自己配置环境,将更多时间用在改代码上,我把参考的文章都直接复制在了步骤中,并且将配置过程中出现过的错误也进行了总结。如果有写的粗糙或者不严谨的地方,请各位小伙伴和前辈们批评指正,也欢迎各位小伙伴一起学术交流,共同进步,那么我们进入正题。

(P.S.:配置这个环境足足用了我一周时间!因为自己是小白,又没人指导,只能摸着石头过河,参考CSDN上各位大神的方法,几经崩溃,总算是配置成功了)

一、虚拟机+Ubuntu18.04

这两者的配置还是蛮简单的,没有耗费太多时间,至于为什么选择Ubuntu18.04,是因为ORB_SLAM3的研究大神们用的更多还是18.04或者16.04的版本,何况自己还是个小白,因此我选择了弹幕最多的打法:)。

1、虚拟机的配置:

我参考的是这位博主:(28条消息) 最新超详细VMware虚拟机下载与安装_隐秀_的博客-CSDN博客_vmware虚拟机https://blog.csdn.net/qq_40950957/article/details/80467513?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165614577216781683976750%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165614577216781683976750&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~hot_rank-1-80467513-null-null.nonecase&utm_term=%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%98%AF%E4%BB%80%E4%B9%88&spm=1018.2226.3001.4450

的方法,跟着他的步骤安装的,途中也没出什么错,所以就不再总结啦。

2、在虚拟机上安装Ubuntu18.04系统:

我参考的是这位博主的文章:

​​​​​​(28条消息) Windows10下安装Ubuntu18.04LTS详细教程_beita08的博客-CSDN博客_windows安装乌班图https://blog.csdn.net/beita08/article/details/80628840?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165700751916782246422060%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165700751916782246422060&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~hot_rank-4-80628840-null-null.185%5Ev2%5Econtrol&utm_term=VM%E5%AE%89%E8%A3%85Ubuntu18.04&spm=1018.2226.3001.4450

基本流程也是大差不差,用其他博主的方法也可以的,不影响,不过我在这边说一点,在Ubuntu初始化安装到系统语言选择界面的步骤时,我选择的是英文,而不像博主选择了中文,因为在后续的一些代码中,读取路径时包含中文路径名可能会出现错误,酌情选择吧。

二、ORB_SLAM3+ROS环境配置

1、依赖库的配置:

在 ORB_SLAM3的整体安装中,我主要参考的是这位博主:

(28条消息) ubuntu18.04配置ORB-SLAM3(包含ROS)完整版教程_黄宏智的博客-CSDN博客https://blog.csdn.net/hhz_999/article/details/120473659?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%9F%BA%E4%BA%8EUbuntu%E5%AE%89%E8%A3%85%E8%BF%90%E8%A1%8Corb_slam3%20ROS&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-120473659.142%5Ev24%5Epc_rank_34,157%5Ev15%5Enew_3&spm=1018.2226.3001.4187

写的真心不错,很细心,不过有几个步骤,我还是出现了错误并且无法解决,因此我用了其他人的方法或者对某些步骤进行了补充,并且列出如下(建议先看下面三条再点上边的链接):

1)Pangolin的安装:用上面那位博主的步骤,我总是会出现各种安装错误,卡了两天,后来我用了这位博主的方法,解决了问题,并且成功安装:(28条消息) ubuntu18.04下 安装SLAM-Pangolin(亲测有效)_清虞的博客-CSDN博客_ubuntu安装pangolinz​​​​​​​zhttps://blog.csdn.net/qq_43647590/article/details/120226747?ops_request_misc=&request_id=&biz_id=102&utm_term=SLAM-Pangolin&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-120226747.142%5Ev30%5Econtrol,185%5Ev2%5Econtrol&spm=1018.2226.3001.4187

 注意,这位博主下载的是v0.5版本的Pangolin,但是用博主给出的链接是下载不了的,可以用这个:

git clone -b v0.5 https://github.com/stevenlovegrove/Pangolin.git

 下载的也是v0.5的分支版本。

2)Opencv:作者在文章里提到了一个文件:ippicv_2017u3_lnx_intel64_general_20180518.tgz,其下载方式我也是找了好久,在这边我直接列出来,点进去就直接下载了:

https://gitee.com/bingobinlw/opencv_3rdparty/raw/ippicv/master_20180518/ippicv/ippicv_2017u3_lnx_intel64_general_20180518.tgz

3)注意!如果你想配置ROS的话,那么请先不要进行ORB_SLAM3的编译步骤(即只对依赖库进行配置,随后先对ROS进行配置)

 2、ROS、ORB_SLAM3的配置:

1)ROS的配置:

对于ROS的下载配置,上面参考的博主也给出了相应步骤,但是我用他的方法一步一步配置时,总会出现报错,并且找不到解决方案,因此我选用了鱼香ROS大神的一键ROS配置,果然成功!不同人可能会出现不同的情况,下面是鱼香ROS大神的一键配置博客:

(28条消息) 如何一行代码安装ROS|2022最新版|一行代码安装ROS2|一行代码解决rosdep|一行代码配置多ROS环境_鱼香ROS的博客-CSDN博客_ros安装脚本https://blog.csdn.net/qq_27865227/article/details/120191557?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165707006216782350829046%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165707006216782350829046&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-28-120191557-null-null.185%5Ev2%5Econtrol&utm_term=ROS&spm=1018.2226.3001.4450按照这位大神的步骤进行,ROS就算是配置好了,接下来还要搭建catkin_ws工作空间,步骤如下:

  • 初始化工作空间:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
  • 编译工作空间:
cd ~/catkin_ws/
catkin_make
  • 使工作空间的环境变量生效:
    source devel/setup.bash
  • 使得环境变量在所有的终端中都有效:
    echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
     
  • 检查环境变量已经生效,创建一个新终端,输入:
    echo $ROS_PACKAGE_PATH
     如果打印的路径中包含当前工作空间的路径,则环境变量设置成功。

2) 编译:

上述步骤成功且没有报错,那么我们就要开始正式编译啦,我参考过一些博主的博客,发现ORB_SLAM3的v0.4分支版本似乎更稳定,因此我直接下载了v0.4的版本的压缩包,在本地进行解压,步骤如下:

  • 首先进入GitHub,下载网址:
    https://github.com/UZ-SLAMLab/ORB_SLAM3
    在master-tag中选择0.4-beta的版本,下载压缩包在本地,并且将下载好的压缩包复制在home主目录中。
  • 解压:打开一个终端,输入:
    unzip ORB_SLAM3-0.4-beta.zip

    解压成功后,将解压后的文件重命名为ORB_SLAM3(主要是为了方便),并且将其复制到:

    /home/Ubuntu/catkin_ws/src

    中,其中Ubuntu是你自己的用户名。

 随后我们先对build.sh文件进行编译,在对build_ros.sh文件进行编译,步骤如下:

build.sh的编译:

  • 首先进入到/home/Ubuntu/catkin_ws/src/ORB_SLAM3,随后的步骤便依然可以参考

 (28条消息) ubuntu18.04配置ORB-SLAM3(包含ROS)完整版教程_黄宏智的博客-CSDN博客https://blog.csdn.net/hhz_999/article/details/120473659?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%9F%BA%E4%BA%8EUbuntu%E5%AE%89%E8%A3%85%E8%BF%90%E8%A1%8Corb_slam3%20ROS&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-120473659.142%5Ev24%5Epc_rank_34,157%5Ev15%5Enew_3&spm=1018.2226.3001.4187中对build.sh编译的步骤即可,其中可能会出现的问题(文章中没有介绍的),其解决方法都在下面的博客中:

ubuntu18.04编译ORB_SLAM3遇到的问题_Mwithz的博客-CSDN博客https://blog.csdn.net/Mwithz/article/details/117222990ORB-SLAM3编译问题 recipe for target ‘CMakeFiles/ORB_SLAM3.dir/src/LocalMapping.cc.o‘ failed_李皮皮的悲惨生活的博客-CSDN博客https://blog.csdn.net/weixin_48464886/article/details/118970304?ops_request_misc=&request_id=&biz_id=102&utm_term=recipe%20for%20target%20%27CMakeFiles/&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-118970304.142%5Ev26%5Econtrol,157%5Ev15%5Enew_3&spm=1018.2226.3001.4187其中的问题应该都可以解决了。

build_ros.sh的编译:

  • 首先要对相关路径进行配置,打开一个新终端,步骤如下:
    #将源码中的 Examples/ROS/ORB_SLAM3 路径添加到ROS_PACKAGE_PATH环境变量中
    sudo gedit ~/.bashrc
    
    #在**~/.bashrc的最后一行加入以下代码(ubuntu换成各位的名字)
    export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/ubuntu/catkin_ws/src/ORB_SLAM3/Examples/ROS
    
    #再打开一个终端运行
    source ~/.bashrc
    
    echo ${ROS_PACKAGE_PATH}
    #如果能正确显示刚刚加入的地址则正常。

    配置完成。

  • 随后打开:/home/Ubuntu/catkin_ws/src/ORB_SLAM3

 在该文件夹中,右键打开终端,输入:

chmod +x build_ros.sh
./build_ros.sh

 如果编译成功,则正式完成。

在此步骤中可能会出现的错误以及解决办法:

ORBSLAM2中build_ros.sh编译问题解决_ChrisLiu__的博客-CSDN博客https://blog.csdn.net/qq_42703283/article/details/95969737ImportError: /usr/lib/x86_64-linux-gnu/libblas.so.3: undefined symbol: gotoblas_Mountain Q的博客-CSDN博客https://blog.csdn.net/qck15570179927/article/details/103648961Eigen报错: fatal error: Eigen/Core: No such file or directory_wongHome的博客-CSDN博客https://blog.csdn.net/qq_39779233/article/details/108593406成功配置图如下:

虚拟机+Ubuntu18.04+ORB_SLAM3+ROS环境配置(配置环境的过程以及途中出现的错误,解决方法)_第1张图片​​​​​​​

 

 完结撒花~

你可能感兴趣的:(ORB_SLAM3,c++)