ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ROS工作空间下安装-编译ORB_SLAM2

2022-01-13 22:31:38  阅读:271  来源: 互联网

标签:src catkin SLAM2 build ROS ORB


目录

一、创建ROS工作空间

二、下载ORB_SLAM2开源代码

三、添加环境变量

四、编译ORB_SLAM2

1.usleep配置

2.编译ORB_SLAM2 - build.sh

3.配置lib文件

4.编译ORB_SLAM2 - build_ros.sh

5.运行./build_ros.sh时出现的错误

错误1:

解决方法:

错误2:

解决方法:


一、创建ROS工作空间

声明:系统配置为 ubuntu-18.04、ROS-melodic

依次运行以下命令(在主目录下):

mkdir -p catkin_ws/src

cd catkin_ws

catkin_make

工作空间编译完成后进行下一步

二、下载ORB_SLAM2开源代码

依次运行以下命令(在catkin_ws/src目录下)

cd catkin_ws/src

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

Note:如果因为翻不了墙,可以在我的百度网盘中下载,地址为链接:https://pan.baidu.com/s/1szAxDUTvIMlOvJVTbJPXHw 提取码:w5dg 

cd ORB_SLAM2

三、添加环境变量

在文件管理界面的主目录中使用“ctrl+h”查看隐藏文件,打开.bashrc,在其中的最后一行添加ORB_SLAM2中的ROS文件的路径,

即export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/你的用户名/工作空间名/src/ORB_SLAM2/Examples/ROS

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/shaoyingjie/catkin_ws/src/ORB_SLAM2/Examples/ROS

依次运行以下命令(什么路径都可以):

source ~/.bashrc

echo $ROS_PACKAGE_PATH

显示/opt/ros/kinetic/share:PATH/ORB_SLAM2/Examples/ROS,即可以接着进行

echo $ROS_ROOT

显示/opt/ros/kinetic/share/ros,即可以接着进行

四、编译ORB_SLAM2

1.usleep配置

找到对应的System.cc添加头文件  #include<unistd.h>

Examples/Monocular/mono_euroc.cc

Examples/Monocular/mono_kitti.cc

Examples/Monocular/mono_tum.cc

Examples/RGB-D/rgbd_tum.cc

Examples/Stereo/stereo_euroc.cc

Examples/Stereo/stereo_kitti.cc

src/LocalMapping.cc

src/LoopClosing.cc

src/System.cc

src/Tracking.cc

src/Viewer.cc

ViewerAR.cc

2.编译ORB_SLAM2 - build.sh

依次运行以下命令(在catkin_ws/src/ORB_SLAM2中)

chmod +x build.sh

./build.sh

3.配置lib文件

在catkin_ws/src/ORB_SLAM2/lib中添加 libboost_system.so,libboost_filesystem.so

目录如下:

/usr/lib/x86_64-linux-gnu/libboost_system.so

/usr/lib/x86_64-linux-gnu/libboost_filesystem.so

复制后粘贴到catkin_ws/src/ORB_SLAM2/lib中,

接着进入到catkin_ws/src/ORB_SLAM2/Examples/ROS中的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
${PROJECT_SOURCE_DIR}/../../../lib/libboost_system.so
-lboost_system
)

修改完成后,保存,退出

在完成以上操作后更新一下环境变量(在工作空间catkin_ws中):

source ./devel/setup.bash

4.编译ORB_SLAM2 - build_ros.sh

依次运行以下命令(在catkin_ws/src/ORB_SLAM2中)

cd catkin_ws/src/ORB_SLAM2

chmod +x build_ros.sh

./build_ros.sh

5.运行./build_ros.sh时出现的错误

错误1:

出现:  未找到目标文件makefile

解决方法:

在主目录下运行:

rosdep update

成功后,删掉catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2 中的build文件夹,接着再次运行以下命令:

chmod +x build_ros.sh

./build_ros.sh

错误2:

出现:usleep错误时

解决方法:

提示哪个文件错误,就在哪个文件中添加头文件 #include<unistd.h>

成功后,删掉catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2 中的build文件夹,接着再次运行以下命令:

chmod +x build_ros.sh

./build_ros.sh

Notes:

1)在解决每个错误后,必须更新环境变量:在工作空间中运行命令source ./devel/setup.bash

2)我目前只遇到了这些问题,如果有其他问题可以在评论区交流

标签:src,catkin,SLAM2,build,ROS,ORB
来源: https://blog.csdn.net/weixin_41485784/article/details/122482663

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有