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

目录

一、创建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)我目前只遇到了这些问题,如果有其他问题可以在评论区交流

上一篇:wcs相关


下一篇:warning in ./src/main.js 8:8-17 "export 'default' (imported as 'VueRouter