准备工作
rbgdslam_v2
按照github ,实验环境Ubuntu 16.04, ROS kinetic
如果你电脑安装PCL版本是1.7,那么请直接跳到错误1,如果你也不知道有没有,或者版本多少,那么就跟着我的博客走下去吧
git clone https://github.com/felixendres/rgbdslam_v2.git
cd rgbdslam_v2
source install.sh
接着会提示
This script puts all code into ‘/home/damon/Code’. Edit this script to change the location.
Press enter to continue, Ctrl-C to cancel
按着步骤走编译出来的东西会被放在~/Code/rgbdslam_catkin_ws
这时候
source ~/Code/rgbdslam_catkin_ws/devel/setup.bash
到这里,rgbdslam_v2已经安装成功
运行,跑数据
首先得下载数据集,tum数据集地址在这里可能会下载比较慢,可以找找镜像或者百度云.
错误1
直接运行 roslaunch rgbdslam rgbdslam.launch 会报错
ROS_MASTER_URI=http://localhost:11311
process[rgbdslam-1]: started with pid [22155]
================================================================================REQUIRED process [rgbdslam-1] has died!
process has died [pid 22155, exit code -11, cmd /home/damon/Code/rgbdslam_catkin_ws/devel/lib/rgbdslam/rgbdslam __name:=rgbdslam __log:=/home/damon/.ros/log/adfdfee8-22d1-11ea-9524-02428408a590/rgbdslam-1.log].
log file: /home/damon/.ros/log/adfdfee8-22d1-11ea-9524-02428408a590/rgbdslam-1*.log
Initiating shutdown!
================================================================================
[rgbdslam-1] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
查资料提示PCL与g2o不兼容导致,下载pcl1.8版本替换系统的1.7
解决办法如下:
cd 到某个路径,存放pcl
wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.0.tar.gz
tar -zxvf pcl-1.8.0.tar.gz
cd pcl-pcl-1.8.0/
vim CMakeLists.txt
在146行加插入 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
mkdir build&&cd build
cmake ..
make VERBOSE=1 -j8 # 需要等待很久
sudo make install
接下来做以下操作:
修改rgbdslam_v2的 :修改第 79 行:find_package(PCL 1.7 REQUIRED COMPONENTS common io) 为 find_package(PCL 1.8 REQUIRED COMPONENTS common io)
修改 /opt/ros/kinetic/share/pcl_ros/cmake/pcl_rosConfig.cmake文件,将所有/usr/lib/x86_64-linux/libpcl开头的内容改成/usr/local/lib/libpcl
修改完成之后重新source install.sh 编译一下
再次运行
roslaunch rgbdslam rgbdslam.launch
运行 RGB-D 数据集
RGB-D 数据集 使用 rgbd_dataset_freiburg1_xyz.bag
修改 /home/用户名/Code/rgbdslam_catkin_ws/src/rgbdslam/launch文件下 rgbdslam.launch 中的 图像topic
roscore & rosbag play rgbd_dataset_freiburg1_rpy.bag
roslaunch rgbdslam rgbdslam.launch
结果
RGB-D 相机
RGB-D 相机 使用 realsense-d435i
修改 /home/用户名/Code/rgbdslam_catkin_ws/src/rgbdslam/launch文件下 rgbdslam.launch 中的 图像topic
运行
roslaunch rgbdslam rgbdslam.launch
roslaunch realsense2_camera rs_rgbd.launch
结果
如果是使用Kinetic V2 获取深度图像信息的话(先正常安装Kinetic V2 在ROS下正常使用的方法:Ubuntu16.04 ROS安装kinect2并获取骨骼数据+配置kinect2_tracker 链接:https://blog.csdn.net/qq_42145185/article/details/103955937),然后
在/home/用户名/Code/rgbdslam_catkin_ws/src/rgbdslam/launch文件下新建rgbdslam_kinect2.launch
打开一个终端
roslaunch kinect2_bridge kinect2_bridge.launch
打开另一个终端
roslaunch rgbdslam rgbdslam_kinect2.launch