ORB_SLAM2配置与运行

安装工具

下载cmake、gcc、g++和git工具

下载cmake

sudo apt-get install cmake

下载git

sudo apt-get install git

下载gcc和g++

sudo apt-get install gcc g++  

安装Pangolin

先安装依赖项

sudo apt-get install libglew-dev
sudo apt-get install libpython2.7-dev

下载Pangolin

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOSR=1 ..

开始编译

sudo make -j8

编译好了后安装

sudo make install

安装OpenCV

我装的是opencv 3.2.0

1.先安装依赖包

sudo apt install libgtk2.0-dev  
sudo apt install pkg-config

2.到opencv网站下载opencv 3.2.0

https://link.zhihu.com/?target=https%3A//opencv.org/releases.html

3.开始安装

unzip opencv-3.2.0.zip
cd opencv-3.2.0
mkdir build
cd build

4.开始编译

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D ENABLE_PRECOMPILED_HEADERS=OFF ..

这里可能会出现 以下问题

Downloading ippicv_linux_20151201.tgz…
CMake Error at 3rdparty/ippicv/downloader.cmake:73 (file):
file DOWNLOAD HASH mismatch

手动下载ippicv_linux_20151201.tgz,替换到opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e文件下

sudo make -j8
sudo make install

5.添加路径

sudo vim /etc/ld.so.conf.d/opencv.conf   

内容:

/usr/local/lib

6.添加环境变量

sudo vim ~/.profile

.profile最后一行添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

7.测试

cd ../samples/cpp/example_cmake
cmake .
make
./opencv_example

结果如下说明opencv安装成功

在这里插入图片描述

安装Eigen3

sudo apt-get install libeigen3-dev

安装ROS-melodic

参考以下博文:

https://blog.csdn.net/qq_41450811/article/details/99079041

但是在初始化rosdep的时候,遇到了大麻烦:

ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

网上修改hosts的方法也行不通,最后根据以下博文手动把包下载下来,并修改源码:

https://blog.csdn.net/nanianwochengshui/article/details/105702188

建立ORB-SLAM2

建立ROS工作区catkin_ws

cd ~
mkdir ./catkin_ws
cd catkin_ws
mkdir src

方法1:复制项目
cd ~/catkin_ws/src
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

但是经常会下载不下来,所以可以用方法2

或者
方法2:将ORB_SLAM2项目下载到~/catkin_ws/src下,解压

cd ORB_SLAM2
chmod +x build.sh
./build.sh

这时候可能会出现以下问题:

error: ‘usleep’ was not declared in this scope
usleep(3000);

方法:在./include/System.h文件中添加#include<unistd.h>

跑MONO_TUM数据集

下载tum数据集http://vision.in.tum.de/data/datasets/rgbd-dataset/download,解压

tar zxvf rgbd_dataset_freiburg3_nostructure_texture_far.tgz -C ./
cd ~/catkin_ws/src/ORB_SLAM2/
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt ./Examples/Monocular/TUM3.yaml /home/youyx/data/tum/rgbd_dataset_freiburg3_nostructure_texture_far
chmod +x build_ros.sh
./build_ros.sh

可能会遇到:fatal error: Eigen3/Core: 没有那个文件或目录

建立软链接

sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen

重新

./build_ros.sh

又遇到问题:undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’

方法:在Examples/ROS/ORB_SLAM2/文件夹下的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
改为
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
-lboost_system
)

完成!

用ROS启动ORB_SLAM2

rosrun ORB_SLAM2 Mono /home/sharon/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/sharon/catkin_ws/src/ORB_SLAM2/Examples/Monocular/TUM2.yaml

跑RGBD_TUM数据集

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt ./Examples/RGB-D/TUM2.yaml /home/sharon/Documents/rgbd_dataset_freiburg2_pioneer_360 associations.txt

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值