ROS下使用realsense-d435i跑通 rgbdslam_v2运行踩坑完成

准备工作
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

会出现以下界面(这就说明你已经安装成功了):
ROS下使用realsense-d435i跑通 rgbdslam_v2运行踩坑完成_第1张图片

 

运行  RGB-D 数据集
RGB-D 数据集 使用 rgbd_dataset_freiburg1_xyz.bag

修改 /home/用户名/Code/rgbdslam_catkin_ws/src/rgbdslam/launch文件下 rgbdslam.launch 中的 图像topic


ROS下使用realsense-d435i跑通 rgbdslam_v2运行踩坑完成_第2张图片
运行

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

结果

ROS下使用realsense-d435i跑通 rgbdslam_v2运行踩坑完成_第3张图片

RGBD-SLAM使用kinetic v2

如果是使用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


 

你可能感兴趣的:(ros基础学习)