ORB-SLAM2安装问题总结

本文详细记录了在ROS环境下编译ORB_SLAM2过程中遇到的包路径配置错误、链接库缺失及依赖库版本不匹配等问题,并提供了具体的解决方案,包括修改.bashrc文件、调整CMakeLists.txt中的库路径以及安装和配置必要的依赖库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题1

[rosbuild] Building package ORB_SLAM-master
 [rosbuild] Error from directory check:  /opt/ros/kinetic/share/ros/core/rosbuild/bin/check_same_directories.py/home/windistance/program/ORB_SLAM2/Examples/ROS/ORB_SLAM2
 Traceback (most recent call last):
 File "/opt/ros/kinetic/share/ros/core/rosbuild/bin/check_same_directories.py", line 46, in 
 raise Exception
 Exception
 CMake Error at /opt/ros/kinetic/share/ros/core/rosbuild/private.cmake:102 (message):
 [rosbuild] rospack found package "ORB_SLAM2" at "", but the current
 directory is "/home/windistance/program/ORB_SLAM2/Examples/ROS/ORB_SLAM2". You should
 double-check your ROS_PACKAGE_PATH to ensure that packages are found in the
 correct precedence order.
 Call Stack (most recent call first):
 /opt/ros/kinetic/share/ros/core/rosbuild/public.cmake:177 (_rosbuild_check_package_location)
 CMakeLists.txt:4 (rosbuild_init)

 -- Configuring incomplete, errors occurred!
 See also "/home/windistance/program/ORB_SLAM2/Examples/ROS/ORB_SLAM2/build/CMakeFiles/CMakeOutput.log".
  • 解决方案为

    gedit ~/.bashrc
    

在.bashrc 末尾添加:

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/windistance/program/ORB_SLAM2/Examples/ROS/ORB_SLAM2
source ~/.bashrc

问题2

[  0%] Built target rospack_genmsg_libexe
[  0%] Built target rosbuild_precompile
[ 22%] Built target Mono
[ 33%] Linking CXX executable ../RGBD
[ 44%] Linking CXX executable ../Stereo
[ 77%] Built target MonoAR
/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:213: 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:213: 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
    
    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
    
    
    

    将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
    /usr/lib/x86_64-linux-gnu/libboost_system.so
    /usr/lib/x86_64-linux-gnu/libboost_filesystem.so
    )
    
    

    再次编译,问题解决:

    [  0%] Built target rospack_genmsg_libexe
    [  0%] Built target rosbuild_precompile
    [ 11%] Linking CXX executable ../Mono
    [ 22%] Linking CXX executable ../RGBD
    [ 33%] Linking CXX executable ../Stereo
    [ 44%] Linking CXX executable ../MonoAR
    [ 55%] Built target RGBD
    [ 66%] Built target Mono
    [ 88%] Built target MonoAR
    [100%] Built target Stereo
    
    

问题3

安装pangolin

CMake Error at CMakeModules/FindEigen.cmake:33 (file):
  file failed to open for reading (No such file or directory):

    /usr/include/eigen3/Eigen/src/Core/util/Macros.h
Call Stack (most recent call first):
  CMakeModules/FindEigen.cmake:57 (_eigen3_check_version)
  tools/CMakeLists.txt:11 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/windistance/下载/Pangolin/build/CMakeFiles/CMakeOutput.log".

  • 出错原因为:找不到eigen

  • 解决方案为

sudo cp -r /usr/local/include/eigen3 /usr/include

重新编译问题解决

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值