ORB_SLAM2安装调试过程

36 篇文章 6 订阅
3 篇文章 0 订阅

整个安装过程基本是参考了博客:

https://blog.csdn.net/qq_42585108/article/details/105519029

总体来说还算顺利。

其中遇到一些问题在此做个记录:

一、安装工具

在配置过程中需要cmake、gcc、g++和Git工具。可在终端通过以下命令下载。

(1)更新apt库,更新软件列表

sudo apt-get update

(2)安装git,用于从Github上克隆项目到本地

sudo apt-get install git

(3)安装cmake,用于程序的编译

sudo apt-get install cmake

(4)安装gcc、g++

sudo apt-get install g++ 
sudo apt-get install gcc  

这些其实安装ROS的时候都有了,基本不需要重新安装

二、安装Pangolin作为可视化和用户界面

(1)安装依赖项

sudo apt-get install libglew-dev libpython2.7-dev

(2)从Github将项目下载到本地

git clone https://github.com/stevenlovegrove/Pangolin.git

(3)编译安装

cd Pangolin
mkdir build
cd build
cmake ..
make -j
sudo make install

在原博客中这里似乎是没有问题的,但是我在编译的时候报了一系列的警告,虽然最后编译通过了,但是感觉还是有点奇怪
在这里插入图片描述
不知道后面发生的问题是不是跟这里有关系。

三、安装OpenCV ,用于处理图像和特征

(1)安装依赖项

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

(2)在OpenCV官网(http://opencv.org)下载OpenCV 3.4.1的source版本,然后解压到本地或者用命令下载如下

wget -O opencv-3.4.1.zip https://github.com/Itseez/opencv/archive/3.4.1.zip

(3)编译安装

cd ~/opencv-3.4.1
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release –D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8
sudo make install

(4)配置一些OpenCV的编译环境

1.sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到

sudo gedit /etc/ld.so.conf.d/opencv.conf 

执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加

/usr/local/lib  

保存回到命令行界面,执行如下命令使得刚才的配置路径生效

sudo ldconfig  

2.配置bash

sudo gedit /etc/bash.bashrc  

在最末尾添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

保存,执行如下命令使得配置生效

source /etc/bash.bashrc  

这里安装opencv没有遇到问题。

四、安装Eigen3,它是一个开源线性库,可进行矩阵运算

sudo apt-get install libeigen3-dev

五、安装ORB-SLAM2

这里注意有两种不同的安装方式,一种是依赖于ROS的一种是不依赖于ROS的。如果要安装依赖于ROS的话要安装到ROS的工作路径下,第一次安装没注意安装了一个不依赖于ROS的以后,再安装第二个一直报一个路径问题。最终都没能解决这个问题。无奈重装系统

这里记录一个依赖于ROS的安装过程:

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

cd ~/catkin_ws/src
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

1)将包含Examples/ROS/ORB_SLAM2的路径添加到ROS_PACKAGE_PATH环境变量中。打开.bashrc文件并在最后添加以下行。

sudo  gedit ~/.bashrc

在这里插入图片描述

source ./catkin_ws/devel/setup.sh

使修改后的/.bashrc文件生效

source ~/.bashrc
cd catkin_ws/src/ORB_SLAM2
chmod +x build_ros.sh
./build_ros.sh

运行后会出现错误:
在这里插入图片描述
解决办法:

修改Examples/ROS/ORB_SLAM2/文件夹下的CMakeLists.txt文件。

set(LIBS 
${OpenCV_LIBS} 
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
)

修改为:

set(LIBS 
${OpenCV_LIBS} 
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
-lboost_system
)

其实只是在后面加了一句:

-lboost_system

再次运行,:

chmod +x build_ros.sh
./build_ros.sh

原文到这里就完成编译了,但是我在执行最后一步的时候出现了一个错误导致了编译失败:
在这里插入图片描述
这里似乎是没有找到libDBoW2.so文件,百度了说是会跟ROB_SLAM2一起编译的才对,但是似乎在这里出现了一些问题,感觉类似于本来ORB_SLAM2依赖于这些东西,那么这些东西会在ORB_SLAM2之前获得编译,但是现在它们似乎还没有完成编译就先去编译了ORB_SLAM2,导致了里面的Mono也好还是RGBD也好缺少这些依赖。个人理解。具体不知道问题出在哪里

这里卡了挺久的,而且开始也没有找到解决方法,直到后来在

https://www.pianshen.com/article/3952637520/

中找到了方法

这篇文章有点乱,但是注意到它跟上面链接中的方式不同的是它在编译ORB_SLAM2的时候单独编译了DBoW2

于是这里我采用了相同的方式:

进入Thirdparty/DBoW2/目录下,执行:

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make

然后再回头去编译

chmod +x build_ros.sh
./build_ros.sh

这两句话,但是后面报了关于libgo2.so以及libORB_SLAM2.so我问题,其实就是对应于

set(LIBS 
${OpenCV_LIBS} 
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so

中的这些东西,说白了一个都没有找到。

使用同样的方法编译这两个文件即可,注意libg2o.so在Thirdparty文件夹下,但是libORB_SLAM2.so这个其实是找不到的,它需要在ORB_SLAM2文件夹下直接运行编译命令,这时候会生成一个lib文件夹,libORB_SLAM2.so就在这个文件夹下。

把这三个都编译完成后再对整个包重新编译一次,就可以正常运行了。

这里关于第二个错误似乎还有一种方式,就是在运行./build_ros.sh之前先运行:

sh build.sh

这个编译过程会将除了ORB_SLAM对于ROS接口的几个文件以外的文件先编译完成,然后再执行:

./build_ros.sh

这样前面的依赖都完成了就不会再报上面的错误了。

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
引用\[1\]:在ROS环境下运行ORB_SLAM,最好将工程放在catkin_ws/src文件夹下: cd ~/catkin_ws/src git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2。\[1\]这样可以确保工程文件正确地放置在ROS工作空间中。 引用\[2\]:在导入ORB_SLAM2到PyCharm之前,需要确保ORB_SLAM2已经成功编译并安装了所需的依赖项。根据引用\[2\]中的描述,编译过程中可能会出现一些错误,例如不到libDBoW2.so文件。这可能是因为依赖项没有正确地编译或安装导致的。你可以尝试按照错误提示中提到的解决方法,安装相应版本的包,如pip install daal==2021.4.0和pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pathlib。这样可以确保所需的依赖项正确安装。 在PyCharm中导入ORB_SLAM2时,你可以按照以下步骤进行操作: 1. 打开PyCharm,并创建一个新的Python项目。 2. 在项目文件夹中,创建一个名为ORB_SLAM2的文件夹。 3. 将之前在catkin_ws/src文件夹下克隆的ORB_SLAM2工程文件夹复制到ORB_SLAM2文件夹中。 4. 在PyCharm中打开ORB_SLAM2文件夹。 5. 在PyCharm的项目设置中,将ORB_SLAM2文件夹添加到项目的源代码路径中。 6. 确保你的Python环境中已经安装ORB_SLAM2所需的依赖项。 7. 现在你可以在PyCharm中使用ORB_SLAM2了,可以导入ORB_SLAM2的模块并开始编写代码。 请注意,以上步骤假设你已经正确地编译和安装ORB_SLAM2,并且已经解决了任何可能出现的依赖项问题。如果你在导入过程中遇到任何问题,请仔细检查编译和安装过程中的错误信息,并尝试解决这些问题。 #### 引用[.reference_title] - *1* *2* [ORB_SLAM2安装调试过程](https://blog.csdn.net/YiYeZhiNian/article/details/108270337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Ubuntu20.04配置YOLOV5算法相关环境,并运行融合YOLOV5的ORB-SLAM2开源代码(亲测有效)](https://blog.csdn.net/weixin_70026476/article/details/128184135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶执念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值