安装RTAB-MAP,并用RealSense R200运行

前言

RTAB-MAP(Real-Time Appearance-Based Mapping)是RGB-D SLAM中比较经典的一个方案。它实现了RGB-D SLAM中所有应该有的东西:基于特征的视觉里程计、基于词袋的回环检测、后端的位姿图优化,以及点云和三角网格地图。因此,RTAB-MAP给出了一套完整的(但有些庞大的)RGB-D SLAM方案。目前我们可以直接从ROS中获得其二进制程序,此外,在Google Project Tango上也可获取其APP使用。
RTAB-MAP支持一些常见的RGB-D和双目传感器,像kinect、Xtion、Realsense等,且提供实时的定位和建图功能。不过由于集成度较高,使得其他开发者在其基础上进行二次开发变得困难,所以RTAB-MAP更适合作为SLAM应用而非研究使用。
——以上内容摘自《视觉SLAM十四讲》。
参考资料
主页:http://introlab.github.io/rtabmap/
Github:https://github.com/introlab/rtabmap_ros#installation
wiki:http://wiki.ros.org/rtabmap_ros/Tutorials/HandHeldMapping

安装

有两种安装方式,分别为二进制程序和源码编译安装,二者任选其一即可。

二进制程序安装

  • indigo
sudo apt-get install ros-indigo-rtabmap-ros

其他ROS版本,比如kinetic,替换indigo即可。
启动rtabmap_ros的节点时,如果加载共享库时出错,请在~/ .bashrc末尾添加下一行来修复它:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/indigo/lib/x86_64-linux-gnu

(PS:这个问题我没有遇到。)
这种安装方式的优点是简单快速,缺点是可能不是最新的版本。

源码编译安装

  • 安装可选的依赖

这部分我图方便,都没安装,并无大碍。

  • 安装RTAB-Map
cd ~
git clone https://github.com/introlab/rtabmap.git rtabmap
cd rtabmap/build
cmake ..
make  #编译速度较慢,建议根据电脑性能开启多线程,如:make -j8
sudo make install
  • 安装RTAB-Map ros-pkg
$ cd ~/catkin_ws
$ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
$ catkin_make -j1

source ~/catkin_ws/devel/setup.bash添加到~/.bashrc

  • 更新版本
###########
# rtabmap
###########
$ cd rtabmap
$ git pull origin master
$ cd build
$ make
$ make install
# Do "sudo make install" if you installed rtabmap in "/usr/local"

###########
# rtabmap_ros
###########
$ roscd rtabmap_ros
$ git pull origin master
$ roscd
$ cd ..
$ catkin_make -j1 --pkg rtabmap_ros

安装Realsense R200的驱动

参考:intel Realsense R200在Ubuntu 14.04上驱动的安装

用RealSense R200运行RTAB-MAP

1.启动RealSense R200

roslaunch realsense_camera r200_nodelet_rgbd.launch
// To get registration without empty lines
rosrun rtabmap_ros pointcloud_to_depthimage cloud:=/camera/depth/points camera_info:=/camera/rgb/camera_info image_raw:=/camera/depth/points/image_raw image:=/camera/depth/points/image _approx:=false _fill_holes_size:=2

2.建图

roslaunch rtabmap_ros rtabmap.launch rtabmap_args:="--delete_db_on_start" depth_topic:=/camera/depth/points/image_raw

安装RTAB-MAP,并用RealSense R200运行_第1张图片

注意:缓慢移动相机,3D Map背景为红色时表示跟踪丢失,需要回到先前未丢失的位置恢复。
上图的可视化工具为rtabmapviz,也可以用rviz

roslaunch rtabmap_ros rtabmap.launch rtabmap_args:="--delete_db_on_start" depth_topic:=/camera/depth/points/image_raw rviz:=true rtabmapviz:=false

3.保存地图
建图完成后,在终端窗口按ctrl+c退出,地图将保存在~/.ros/rtabmap.db
4.查看地图

rtabmap-databaseViewer ~/.ros/rtabmap.db

安装RTAB-MAP,并用RealSense R200运行_第2张图片

总结

暂时做到这里,定位、导航等内容请参考官网主页、wiki等,推荐这篇博客。
我计划用双目相机运行RTAB-MAP在室外建图并导航,可以用投影地图或scan地图来作为 move_base 的地图输入,然后利用 Navigation Stack 进行路径规划。
我的安装过程很顺利,没有报错,如果遇到问题,请查找相关资料。
我觉得很多问题可能是因为我们之前安装的环境和现在的有冲突,或者之前某次安装破坏了一些东西,导致遇到各式各样的问题。
有时候可能就因为某个问题,导致一些工作都无法进行,又没有重装系统重头再来的勇气,只能忍受一次次报错带来的折磨。
所以,要么有魄力,要么机器多,哈哈。

你可能感兴趣的:(SLAM)