ORB_SLAM2
1. install glew: https://www.cnblogs.com/yongfengnice/p/8568557.html
2. install pangolin: mkdir build, cd build, cmake .., sudo make install etc.
3. install DBow2: show: https://www.cnblogs.com/luyb/p/6033196.html
4. install eigen3: https://www.jianshu.com/p/41ff7b4502d5
5. install g2o: https://www.jianshu.com/p/b2829b042048
change CMakeLists.txt:
#include_directories(${EIGEN3_INCLUDE_DIR}) system-self eigen3
include_directories(/usr/local/include/eigen3) my new eigen3 > 3.3
e.g.
find_package(Eigen3 3.3 REQUIRED)
if (TARGET Eigen3::Eigen)
set(G2O_EIGEN3_EIGEN_TARGET Eigen3::Eigen)
else()
#include_directories(${EIGEN3_INCLUDE_DIR})
include_directories(/usr/local/include/eigen3)
endif ()
6. https://blog.csdn.net/sinat_38343378/article/details/78883919
出错原因为:libboost_system.so 与libboost_filesystem.so找不到链接目录
解决方案为
1) 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
2) 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
3) 将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 )
according to real-files!!!
${PROJECT_SOURCE_DIR}/../../../lib/libboost_filesystem.so.1.58.0
${PROJECT_SOURCE_DIR}/../../../lib/libboost_system.so.1.58.0
7. ORB_SLAM2/src/System.cc:315:20: error: ‘usleep’ was not declared in this scope usleep(5000);
在source文件的开头增加include
#include <unistd.h>
需要增加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
8. ./build_ros.sh
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS