ros下ORB-SLAM2安装记录

虚拟机环境下安装orbslam2,没有摄像头。最后用来测试数据

 

1.环境

 

ubuntu16.04 ros kinetic

 

2.安装orbslam2的依赖项

在Ubuntu主目录下创建新文件夹"3d party package",用来存放将要安装的依赖项

(1)安装pangolin

 

https://github.com/stevenlovegrove/Pangolin

将pangolin源码下载后,解压至3d party package

sudo apt-get install libglew-dev   #安装Glew
sudo apt-get install cmake         #安装CMake
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev  #安装Boost
下载pangolin
cd ~/3d party package/Pangolin-master 
mkdir  build
cd build
cmake ..
make -j4

到这里安装出错,在网上找到解决办法。

解决办法如下

https://www.cnblogs.com/liufuqiang/p/5618335.html

 

(2)安装openCV

将opencv源码下载后,解压至3d party package

cd ~/3d party package/opencv3.3.0
mkdir  build
cd build
cmake ..
make -j4

(3)安装eigen

(4)安装ORBslam2

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

解压至你的ros 工作空间的src文件夹如

然后cd至该文件夹,比如/catkin_ws/src/ORB_SLAM2-master

然后执行命令安装

chmod +x build.sh
./build.sh

(5) 现在安装ROS部分

首先修改.bashrc文件

cd ~
gedit .bashrc

打开.bashrc文件在最后一行加入

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/src/ORB_SLAM2-master/Examples/ROS

注意~/catkin_ws/src/ORB_SLAM2-master应该修改为你对应的文件夹

 然后cd至orbslam2文件夹,比如我的是/catkin_ws/src/ORB_SLAM2-master

最后执行以下代码

chmod +x build_ros.sh
./build_ros.sh

我遇到了以下错误

 

在编译ubuntu16.04ros包的时候出现以下问题
`/usr/bin/ld: CMakeFiles/RGBD.dir/src/ros_rgbd.cc.o: undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’ 
/usr/lib/x86_64-linux-gnu/libboost_system.so: error adding symbols: DSO missing from command line 
collect2: error: ld returned 1 exit status 
CMakeFiles/RGBD.dir/build.make:218: recipe for target ‘../RGBD’ failed 
make[2]: * [../RGBD] Error 1 
CMakeFiles/Makefile2:67: recipe for target ‘CMakeFiles/RGBD.dir/all’ failed 
make[1]: * [CMakeFiles/RGBD.dir/all] Error 2 
make[1]: * 正在等待未完成的任务…. 
/usr/bin/ld: CMakeFiles/Stereo.dir/src/ros_stereo.cc.o: undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’ 
/usr/lib/x86_64-linux-gnu/libboost_system.so: error adding symbols: DSO missing from command line 
collect2: error: ld returned 1 exit status 
CMakeFiles/Stereo.dir/build.make:218: recipe for target ‘../Stereo’ failed 
make[2]: * [../Stereo] Error 1 
CMakeFiles/Makefile2:104: recipe for target ‘CMakeFiles/Stereo.dir/all’ failed 
make[1]: * [CMakeFiles/Stereo.dir/all] Error 2 
Makefile:127: recipe for target ‘all’ failed 
make: * [all] Error 2

出错原因为:libboost_system.so 与libboost_filesystem.so找不到链接目录 
- 解决方案为

locate  boost_system
//查找到目录
/usr/lib/x86_64-linux-gnu/libboost_system.a
/usr/lib/x86_64-linux-gnu/libboost_system.so
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.58.0
/usr/local/MATLAB/R2017a/bin/glnxa64/libboost_system.so.1.56.0
 
locate boost_filesystem
//查找到目录
/usr/lib/x86_64-linux-gnu/libboost_filesystem.a
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.58.0
/usr/local/MATLAB/R2017a/bin/glnxa64/libboost_filesystem.so.1.56.0

将libboost_system.so与libboost_filesystem.so复制到ORB_SLAM2/lib下,并且将ORBSLAM2/Examples/ROS/ORBSLAM2下的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_filesystem.so 
${PROJECT_SOURCE_DIR}/../../../lib/libboost_system.so
 
问题得以解决

转载自https://blog.csdn.net/qq_39055391/article/details/79725211

 

你可能感兴趣的:(其他)