首先介绍下环境配置:
树莓派3B+,Ubuntu mate 16.04,ROS kinetic,opencv2.4.13
编译方式:
1.安装各种需要的软件包和依赖库
$ sudo apt-get install libglew-dev
$ sudo apt-get install cmake
$ sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
$ sudo apt-get install libpython2.7-dev
$ sudo apt-get install libeigen3-dev
2.安装Pangolin
下载,编译安装,忘记记录了,哈哈。
3.安装下面的依赖
$ sudo apt-get install libblas-dev
$ sudo apt-get install liblapack-dev
4.编译ORB-SLAM2
进入到ROS的工作空间,树莓派的话先打开build.sh这个文件,将里面的make -j全部改成make,否则容易死机,亲测,泪奔
$ cd ~/catkin_ws/src
$ cd ORB_SLAM2-master //进入ORB-SLAM2文件夹里
$ chmod +x build.sh //更改文件属性,当然,用sudo的话这步就可以省了
$ ./build.sh
编译ROS下的ORB-SLAM2
$ chmod +x build.sh
$ ./build_ros.sh //同上,电脑性能不好的记得改make -j为make
如果出现下面的错误:(我出现了这种错误)
undefined reference to symbol '_ZN5boost6system15system_categoryEv'
则打开ORB-SLAM2文件夹里面的Example文件夹,打开ROS文件夹
$ cd ~/catkin_ws/src/ORB_SLAM2-master/Examples/ROS
修改里面的CMakeLists.txt文件
原因的话,打开build_ros.sh,看里面的程序就知道了
找到
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 即可,亲测可用。
ps.有些参考找不到原博了,如有冒犯,请联系我做相应修改和标注。