VIORB-SLAM编译

ORB-SLAM2可以说是目前最优秀的基于特征带的视觉SLAM,由于是开源的,很多人在此基础上进行了改进与应用.废话不多说,下面说说关于IMU+ORB的编译流程与运行结果.

论文是这篇论文:Mur-Artal, R., & Tardós, J. D. (2017). Visual-inertial monocular slam with map reuse. IEEE Robotics & Automation Letters, 2(2), 796-803.

但是论文上没有源码地址,不过好在pangjing根据此片论文,写了相应代码:https://github.com/jingpang/LearnVIORB

由于代码是基于ROS写的,因此需要安装ROS.

(1)ROS安装(ubuntu14.04 64位 ros-indigo)

安装:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt-get update
sudo apt-get install ros-indigo-desktop-full
apt-cache search ros-indigo
sudo rosdep init  ///出错则使用:sudo c_rehash /etc/ssl/certs sudo -E rosdep init
rosdep update
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall

验证:

打开4个终端,分别运行下面四段话,没出错则安装成功O_O
roscore
rosrun turtlesim turtlesim_node  
rosrun turtlesim turtle_teleop_key  
rosrun rqt_graph rqt_graph  

卸载:

sudo apt-get remove ros-*  ////////-----------------------------------卸载ros

(2)安装其他库

和ORB-SLAM编译一样,就不多说了,嘿嘿.

https://github.com/raulmur/ORB_SLAM2

(3)编译

创建一个catkin空间(个人喜欢用,嘿嘿):

mkdir -p catkin_ORBVI/src
cd catkin_ORBVI
catkin_make

sudo gedit ~/.bashrc
在最后一行添加:source ~/catkin_VIORB/devel/setup.bash
source ~/.bashrc

将代码下载下来复制到catkin_ORBVI/src里.

由于我的系统默认安装的opencv3.1.0,而ubuntu14.04安装ros默认链接的是opencv2.4.8,因此编译会报一个关于opencv版本的错,以下是报错的部分内容.

what(): /build/buildd/opencv-2.4.8+dfsg1/modules/core/src/persistence.cpp:74

1:开始打算把ROS的默认链接opencv版本改为opencv3.1.0,http://www.cnblogs.com/Jessica-jie/p/6959309.html,不过ROS编译不能通过,rosbuild()报错,有点郁闷,这个暂时就不管了,对rosbuild()不太熟悉.

2:还是安装一个opencv2.4.8版本吧,注意修改opencv安装路径,不然会覆盖之前的opencv.很简单在opencv的CMakeLists中设置安装路径就可以了.

set(CMAKE_INSTALL_PREFIX "/usr/local/opencv249" CACHE PATH "Installation Directory")

之后在find_package(OpenCV 2.4.9 REQUIRED)上面添加下面的一句话就可以找到你安装的opencv了O_O

set(OpenCV_DIR "/usr/local/opencv249/share/OpenCV")

由于一直没找到oopencv2.4.8因此安装了一个opencv2.4.9.之后再编译就可以了 

chmod +x build.sh
./build.sh

(4)运行

roslaunch src/VIORB/Examples/ROS/ORB_VIO/launch/testeuroc.launch
rosbag play vins_data/MH_01_easy.bag

路径自己设置,嘿嘿

(5)结果

成功了,嘿嘿

至于怎么避开ROS,用单目运行,后面再说吧!!!!!!!!!!!!!!!!!!!

猜你喜欢

转载自blog.csdn.net/qq_38589460/article/details/82559816