动态SLAM毕设(三) ORB SLAM2、DynaSLAM安装

动态SLAM毕设(三) ORB SLAM2、DynaSLAM安装

前言

本科毕设做的是一个基于ORB SLAM2的一个动态去除SLAM,感谢@XindaBack,学长帮了我很多忙。整个过程比较依赖github和百度以及CSDN上的文章,因此也想记录下自己做的东西。本人从纯小白学起,因此很多内容也没有理论支持,如有不对请及时指正,避免误导他人。如果有引用不当的问题也请提醒。

ORB SLAM2安装

网上有很多文章已经写的很详细了,我补充一些吧。
终端运行:

git clone https://github.com/raulmur/ORB_SLAM2.git

下载得到的ORB SLAM2安装包。

#安装pangolin依赖:

sudo apt-get install libglew-dev libpython2.7-dev libboost-dev libboost-thread-dev libboost-filesystem-dev -y

#安装openssl依赖:

apt-get install libssl-dev

#安装其他依赖

sudo apt-get install build-essential -y
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -y

#安装可选包

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install pkg-config -y

#安装cmake(源码)和cmake-gui。cmake默认安装在/usr/local/bin下
cmake官网下载源码。我的是在home文件夹下编译的,版本是3.17.0。
运行命令编译:

./bootstrap
make
make install
#检查安装:
cmake --version 

安装cmake gui

sudo apt-get install cmake-qt-gui

#安装eigen3
参考文章:ubuntu16.04+eigen3安装
eigen3官网下载安装包,我的放在了home文件夹下。注意一下版本,最好是3.1.0之后的。

sudo tar -xzvf eigen-eigen-5a0156e40feb.tar.gz -C /usr/local/include

注意:/usr/local/include 也可以换成/usr/include 但是上面对应的位置也要匹配修改,该命令 tar -xzvf file.tar.gz 表示解压tar.gz文件, -C表示建立解压缩档案

这条指令将eigen-eigen-5a0156e40feb.tar.g文件解压到了/usr/local/include目录下,在/usr/local/include目录下得到文件eigen-eigen-5a0156e40feb
运行命令;

sudo mv /usr/local/include/eigen-eigen-5a0156e40feb /usr/local/include/eigen3

这条指令将eigen-eigen-5a0156e40feb文件 更名为eigen3

运行命令:

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

因为eigen3 被默认安装到了usr/local/include里了(或者是usr/include里,这两个都差不多,都是系统默认的路径),在很多程序中include时经常使用#include <Eigen/Dense>而不是使用#include <eigen3/Eigen/Dense>所以要做下处理,否则一些程序在编译时会因找不到Eigen/Dense而报错。上面指令将usr/local/include/eigen3文件夹中的Eigen文件递归地复制到上一层文件夹(直接放到/usr/local/include中,否则系统无法默认搜索到 -> 此时只能在CMakeLists.txt用include_libraries(绝对路径了))

DynaSLAM安装

参考文章:
安装DynaSLAM
DynaSLAM源码
这里安装的是cpu版本。需要提前安装opencv2.4.11,参考:

下载源码:

git clone  https://github.com/BertaBescos/DynaSLAM.git

下载coco,我是安装到了home文件夹

git clone https://github.com/waleedka/coco.git

下载maskrcnn必需文件:百度网盘 提取码:gbrt

准备tensorflow1.12.3版本(对应的keras为2.0.9)(直接复制链接到浏览器进行下载)

https://pypi.tuna.tsinghua.edu.cn/packages/84/db/5ba3fa1dedc0cdf02fc7cb19592a52974cff8cdbbf788c172b68d5371bc3/tensorflow-1.12.3-cp27-cp27mu-manylinux1_x86_64.whl (83.1MB)

然后直接通过pip的方式进行安装,没有pip的先行安装pip

sudo pip install tensorflow-1.12.3-cp27-cp27mu-manylinux1_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装keras:

sudo pip install keras==2.0.9 -i https://pypi.tuna.tsinghua.edu.cn/simple 

进入coco/PythonAPI

cd coco/PythonAPI
sudo make install

将编译好的pycocotools(在coco/PythonAPI/中)放置到我们下载好的Dynaslam的src/python目录下,然后将数据集mask_rcnn_coco.h5放置在Dynaslam的src/python目录下

打开Check.py 文件将17行的

ROOT_DIR = "src/python"

改为

ROOT_DIR = "./"

运行

python Check.py #以此检验python部分是否有错误

安装boot库

 sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev #这个命令不一定正确,大家可以先忽略这一步,后续根据报错信息进行安装缺失的依赖
 sudo apt-get install libboost-all-dev #或者根据这个命令安装boost库

将Dynaslam根目录中的CMakeLists.txt 以及 Thirdparty中DBoW2和g2o中的CMakeLists.txt文件中的 -match native去掉 (否则会报核心转储的错误)

打开Dynaslam根目录中的CMakeLists.txt,如果你的src等文件夹中有mono_carla文件,就忽略这部,没有的话,删掉最后这三行:

add_executable(mono_carla
Examples/Monocular/mono_carla.cc)
target_link_libraries(mono_carla ${PROJECT_NAME})

同时,找到这段话:

include_directories(
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/include
${EIGEN3_INCLUDE_DIR}
${Pangolin_INCLUDE_DIRS}
/usr/include/python2.7/
/usr/lib/python2.7/dist-packages/numpy/core/include/numpy/
${Boost_INCLUDE_DIRS}
)

如果你的/usr/lib/python2.7/dist-packages/numpy/core/include/numpy/不正确,需要改为/usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/

找到

find_package(OpenCV 2.4.11 QUIET)
if(NOT OpenCV_FOUND)
    message("OpenCV > 2.4.11 not found.")
    find_package(OpenCV 3.0 QUIET)
    if(NOT OpenCV_FOUND)
        message(FATAL_ERROR "OpenCV > 3.0 not found.")
    endif()
endif()

如果你的opencv跟我一样没有安装在默认位置,这里需要修改为:

set(OpenCV_DIR ~/opencv-2.4.11/build/installed/share/OpenCV)
message("PROJECT_SOURCE_DIR: " ${OpenCV_DIR})
find_package(OpenCV 2.4.11 QUIET)

或者

set(OpenCV_DIR ~/opencv-2.4.11/build)
message("PROJECT_SOURCE_DIR: " ${OpenCV_DIR})
find_package(OpenCV 2.4.11 QUIET)

其中OpenCV_DIR后面最好是绝对路径。
其余按照参考文章来就好了

运行:安装好之后,在DynaSLAM根目录中新建data文件夹,在data文件夹中再新建两个文件夹mask和output。运行

./Examples/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml /home/arm19c/data/rgbd_dataset_freiburg3_walking_xyz /home/arm19c/data/rgbd_dataset_freiburg3_walking_xyz/associate.txt
  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值