ubuntu18.04安装Rtabmap
踩坑:rtabmap下载下来之后只需要单独放在主目录下,Rtabmap-ros需要放在工作空间下。两者不可以放在同一个文件下,否则在工作空间中catkin_make不通过。请不要打乱以下教程命令的执行顺序!!!!
1、安装rtabmap
(1)源码安装rtabmap
执行:
git clone https://github.com/introlab/rtabmap.git rtabmap
时会出现连接错误:那请使用手机热点下载。
如果还是不行的话将执行命令变更为:
git clone git://github.com/introlab/rtabmap.git rtabmap
且请使用手机热点下载,校园网总是失败,出现提前结束的错误。
(2)新建rtabmap_ws工作空间。//这里自定义建立的工作空间rtabmap_ws名字与步骤(4)中建立“软链接”(步骤(4)中第二行代码)所使用的名字需要一致。
mkdir -p ~/rtabmap_ws/src
cd ..
cd ~/rtabmap_ws
catkin_make
sudo gedit ~/.zshrc
或者sudo gedit ~/.bashrc
打开.zshrc文件在最后一行添加source ~/rtabmap_ws/devel/setup.zsh
或者source ~/rtabmap_ws/devel/setup.bashrc
(3)一定要先安装依赖
重新开启一个终端依次执行以下两句命令安装必要的PCL, VTK, OpenCV, …等依赖(这个地方切换为有线网络就可以)
sudo apt-get install ros-melodic-rtabmap ros-melodic-rtabmap-ros
sudo apt-get remove ros-melodic-rtabmap ros-melodic-rtabmap-ros
踩坑记录:如果前一步没有先安装依赖那么这里将会报错如图所时缺少“PCL”…
CMake Error at CMakeLists.txt:217 (FIND_PACKAGE):
By not providing “FindPCL.cmake” in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by “PCL”, but
CMake did not find one.
Could not find a package configuration file provided by “PCL” (requested
version 1.7) with any of the following names:
PCLConfig.cmake
pcl-config.cmake
Add the installation prefix of “PCL” to CMAKE_PREFIX_PATH or set “PCL_DIR”
to a directory containing one of the above files. If “PCL” provides a
separate development package or SDK, be sure it has been installed.
– Configuring incomplete, errors occurred!
See also “/home/ly/rtabmap_ws/src/rtabmap/build/CMakeFiles/CMakeOutput.log”.
如果前一步没有先安装依赖后续两步也会出现错误
make: *** 没有指明目标并且找不到 makefile。 停止。
(4)继续前进
执行:
cd rtabmap/build
cmake -DCMAKE_INSTALL_PREFIX=~/rtabmap_ws/devel ..
make -j4
make install
2、安装rtabmap_ros
cd ~/rtabmap_ws
打开手机热点执行:
git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
如果遇到问题:
正克隆到 ‘src/rtabmap_ros’…
fatal: unable to access ‘https://github.com/introlab/rtabmap_ros.git/’: gnutls_handshake() failed: Error in the pull function.
请将https换作git就可以
git clone git://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
OK,解决了效果如下图:
继续执行:catkin_make
如果出现下图则说明没问题。
修改rtabmap_ws/src/rtabmap_ros/launch中的rtabmap.launch
修改目录如下图:
57行到61行替换的内容:
<!-- RGB-D related topics -->
<arg name="rgb_topic" default="/camera/rgb/image_rect_color" />
<arg name="depth_topic" default="/camera/depth_registered/image_raw" />
<arg name="camera_info_topic" default="/camera/rgb/camera_info" />
<arg name="depth_camera_info_topic" default="$(arg camera_info_topic)" />
换为:
<!-- RGB-D related topics -->
<arg name="rgb_topic" default="/camera/color/image_raw" />
<arg name="depth_topic" default="/camera/aligned_depth_to_color/image_raw" />
<arg name="camera_info_topic" default="/camera/color/camera_info" />
<arg name="depth_camera_info_topic" default="$(arg camera_info_topic)" /> <!-- RGB-D related topics -->
新开启终端执行:
roslaunch realsense2_camera rs_rgbd.launch
roslaunch rtabmap_ros rtabmap.launch rtabmap_args:="--delete_db_on_start"
结果为如图