编译运行DS-SLAM

DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments

代码链接:https://github.com/ivipsourcecode/DS-SLAM

结合segnet和orb-slam2的语义地图生成框架,结合语义信息和运动特征点检测,来滤除每一帧中的动态物体,从而提高位姿估计的准确性。同时建立了语义八叉树地图。在高运动的场景中,与ORB SLAM2相比提升明显。但也存在不足,如仅能识别20种物体,并只认为人是移动的类别;八叉树地图的作用不知道是干嘛的,闭环时要重新建图,并且类别概率关联不清楚。

编译运行DS-SLAM_第1张图片

本机环境:

CUDA:9.0

cudnn:7.0

GPU:NVIDIA 1060maxQ

CUP:i7-7700HQ

编译过程:

按照prerequisites说明,一步一步进行。

  1. ORBSLAM:该框架基于orbslam进行改进的,不需要单独运行,需按照github提供的链接下载Thirdparty and Vocabulary(provided at https://pan.baidu.com/s/1-zWXlzOn-X0tjoEF9XI6qA, extract code: 8t7x)。如果用自己的,可能会出现后缀名不同的情况。这里直接编译会出现orb词典错误,需按照TemplatedVocabulary.h或者TemplatedVocabulary.h(高翔)替换第三方库中的DBoW2库中相对应的文件,因为DS-SLAM给的第三方库中的该文件下定义的类中没有对应的loadFromBinaryFile(strVocFile)成员函数。

  2. ROS正常安装,创建工作空间,并把该代码放到src文件夹下

  3. segnet:需安装编译segnethttps://github.com/TimoSaemann/caffe-segnet-cudnn5。在编译前需安装caffe,需在https://github.com/BVLC/caffe下载后,安装教程参照官网http://caffe.berkeleyvision.org/installation.html。此处位置不用放到ros工作空间下。编译过程包括

    mkdir build
    cd build
    cmake ..
    make all
    sudo make install
    sudo make runtest
    

    在cmake时若出现缺少Altas组件,可直接使用 cmake -DBLAS=open … 进行编译。在编译完caffe后,按照同样的步骤编译Caffe SegNet cuDNN5(放在/Examples/ROS/ORB_SLAM2_PointMap_SegNetM目录下)。若出现找不到caffe.h文件时,有可能放置路径不对或caffe安装有问题。

  4. 安装OctoMap and RVIZ:直接按照链接https://github.com/OctoMap/octomap_mapping and https://github.com/OctoMap/octomap_rviz_plugins.下载到src目录下。注意添加#define COLOR_OCTOMAP_SERVER 在OctomapServer.h 文件下,目录:octomap_mapping/octomap_server/include/octomap_server(直接去掉注释即可)。并进行catkin_make编译。

  5. 编译DS-SLAM:

    cd DS-SLAM
    chmod +x DS_SLAM_BUILD.sh
    ./DS_SLAM_BUILD.sh
    
  6. 下载数据集

你可能感兴趣的:(slam,自动驾驶)