因为需要rtabmap跑3D地图,所以一般需要安装这几个重要的库文件(在编译rtabmap源码时会提示*),如果已经安装,则不必理会;如若需要重新安装,则请先卸载之前安装的版本,再进行安装,避免发生版本冲突或其他的错误
1. 安装依赖
$ sudo apt install ros-melodic-rtabmap ros-melodic-rtabmap-ros
$ sudo apt remove ros-melodic-rtabmap ros-melodic-rtabmap-ros
2.安装opencv4, g2o,GTSAM , libpointmatcher、ceres
(1) ros自带opencv不包含xfeatures2d和nonfree模块,需自己安装opencv4+opencv_contrib模块, 参考链接:https://blog.csdn.net/wilson1068/article/details/88768865
注意:1)修改opencv版本号; 2)在 脚本中 添加FLAGS=“${FLAGS} -DOPENCV_ENABLE_NONFREE=ON” (要不然编译出来的程序运行的时候提示不能使用这个算法)
(2)g2o,一般ros自带
(3) 安装 GTSAM
参考链接 https://gtsam.org/get_started/
(4)安装 Libpointmatcher
参考链接:
https://github.com/ethz-asl/libpointmatcher#quick-start
(5)安装 ceres
参考链接:http://www.ceres-solver.org/installation.html
3.编译rtabmap 源码
$ cd ~
$ git clone https://github.com/introlab/rtabmap.git rtabmap
$ cd rtabmap/build
$ cmake .. [<---double dots included]
$ make
$ sudo make install
4.编译源码rtabmap_ros
$ cd ~/catkin_ws
$ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
$ catkin_make
当catkin_ws/src 下增加新包是,可以指定包编译,执行命令:
catkin_make -DCATKIN_WHITELIST_PACKAGES="package1;package2"
package1和package2这两个包,这里需要注意的应该放入的是package的名字,而不是你的文件夹下的文名,具体查看package.xml文件。例如rtabmap_ros的包名:
5. 验证
找了一个bag文件,先启动下bag文件,然后再启动下rtabmap_ros下的demo
roslaunch rtabmap_ros demo_robot_mapping.launch rtabmapviz:=false rviz:=true
暂时先将 rtabmapviz关掉,硬件性能较低,启动不起来,使用rviz代替。