ORB-SLAM2使用TUM深度相机、KITTI单目双目、自己摄像头

安装依赖

    sudo apt-get install libglew-dev   #安装Glew  
    sudo apt-get install cmake         #安装CMake 3
    #安装Boost  
    sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev  

编译安装Pangolin

    编译安装Pangolin:
     
    git clone https://github.com/stevenlovegrove/Pangolin.git
    cd Pangolin
    mkdir build
    cd build
    cmake ..
    make

安装OPENCV、Eigen、g2o、BLAS and LAPACK、DBoW2 and g2o (Included in Thirdparty folder)等

见https://www.cnblogs.com/ilym/p/9080141.html
编译ORB_SLAM2

    git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
    cd ORB_SLAM2
    chmod +x build.sh
    ./build.sh
     
    注意:首先将build.sh中最后一行的make -j 改为make ,否则容易死机
    等待一段时间,就编译成功了!
     
    编译完成后生成libORB_SLAM2.so,其位于lib目录下,
     
    生成的可执行程序mono_tum, mono_kitti, rgbd_tum, stereo_kitti, mono_euroc and stereo_euroc,位于Examples目录下。

RGB-D实例,TUM数据集

    #首先把rgb和depth合成assocaite
    python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt
     
    #然后进入ORB-SLAM2执行
    ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE
    #如
    ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM2.yaml /home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360 /home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360/associations.txt

单目实例,KITTI左目图像

     
    #使用该数据集,运行下面的命令:
    ./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER
     
    #针对上述命令,做如下修改:
    #将KITTIX.yaml改为 KITTI00-02.yaml、KITTI03.yaml、KITTI04-12.yaml其中之一即可
    #PATH_TO_DATASET_FOLDER修改为所下载数据集合放置的位置
     
    #如
    ./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTI04-12.yaml ~/KITTI/04/

 双目实例,KITTI

     
    #使用该数据集,运行下面的命令:
    ./Examples/Stereo/stereo_kitti Vocabulary/ORBvoc.txt Examples/Stereo/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER
     
    #针对上述命令,做如下修改:
    #将KITTIX.yaml改为 KITTI00-02.yaml、KITTI03.yaml、KITTI04-12.yaml其中之一即可
    #PATH_TO_DATASET_FOLDER修改为所下载数据集合放置的位置
     
    #如
    ./Examples/Stereo/stereo_kitti Vocabulary/ORBvoc.txt Examples/Stereo/KITTI04-12.yaml ~/KITTI/04/

 
ROS包,笔记本摄像头实例

    #建立ROS工作空间,把ORB-SLAM2整个放进去src
    catkin_make
    cd ~/catkin_ws/src
     
    #将包含Examples/ROS/ORB_SLAM2的路径添加到ROS_PACKAGE_PATH环境变量中。
    #打开.bashrc文件并在最后添加以下行,其中PATH为ORB-SLAM2项目所在路径
    export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/PATH/TO/ORB_SLAM2/Examples/ROS
     
    source ~/.bashrc
    #修改ROS/ORB-SLAM2/src/ros_mono.cc中订阅的摄像头话题
    #/camera改为自己的 如 /usb_cam
       ros::Subscriber sub = nodeHandler.subscribe("/usb_cam/image_raw", 1, &ImageGrabber::GrabImage,&igb);
     
    #编译orb的ros包
    chmod +x build_ros.sh
    ./build_ros.sh
     
    #启动摄像头
    roslaunch usb_cam usb_cam-test.launch
     
    #启动实时slam
    rosrun ORB_SLAM2 Mono ~/ORB_SLAM_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt ~/ORB_SLAM_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml

编译ros包遇到的问题

`/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

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

    locate boost_system //查找到目录
     
    locate boost_filesystem //查找到目录

将libboost_system.so、libboost_filesystem.so、
libboost_system.so.1.58.0、libboost_filesystem.so.1.58.0复制到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
 

重新运行.sh即可
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORB-SLAM2是一种用于实时单目双目和RGB-D相机的视觉SLAM系统,是由西班牙国家研究委员会(CSIC)领导的研究团队开发的。它使用ORB( Oriented FAST and Rotated BRIEF,基于FAST角点检测和BRIEF描述子的改进算法)上的特征,并使用Bundle Adjustment优化算法来提高相机姿态的估计精度。ORB-SLAM2源码中文详解pdf,主要是对ORB-SLAM2算法进行详细的解析,方便了解该算法并进行修改定制。以下是本人对具体内容的一些观点: 首先,该pdf分为5部分,分别是ORB-SLAM2算法的总体介绍、系统设计、系统架构与流程、实验结果与分析和源码解读。其中,总体介绍部分介绍了ORB-SLAM2系统的功能和应用场景,并提出了该系统的优势和不足点。系统设计部分详细介绍了系统的设计思路和实现方式,主要包括相机模型、特征提取、特征匹配、姿态估计和位姿优化等方面。系统架构与流程部分则重点介绍了ORB-SLAM2实现过程中的整体架构和流程。 接着,实验结果与分析部分介绍了ORB-SLAM2在Kitti数据集、EuRoC MAV数据集和TUM RGB-D SLAM dataset等公共的数据集上的实验结果,分析了系统的性能和稳定性,并在实验过程中解决了一些系统出现的问题。最后,源码解读部分是对ORB-SLAM2源代码的详细解释,方便参考者了解和修改该算法。该部分包括ORB-SLAM2的主要模块(包括System、Tracker、LoopClosing、Map和Optimizer等模块)的源代码解释和功能说明。同时,该部分还详细介绍了ORB特征提取和尺度恢复、相机运动估计、位姿优化和闭环检测等关键技术的源代码实现和运行原理。 总的来说,ORB-SLAM2源码中文详解pdf系统性地介绍了ORB-SLAM2算法的原理、设计思路和实现流程,方便参考者了解该算法并进行修改优化。同时,该文还详细介绍了ORB-SLAM2的源代码实现和关键技术,对学习和研究计算机视觉和SLAM技术的人士都有很大的参考价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值