1、Point Cloud 转深度图 Range Image
(1)在point_ws中编译rangeimage包时,出现如下报错:
从错误提示中不难看出,是由于缺少Dynamic_DaramsConfig.h头文件,找到/home/sun/point_ws/src/rangeimage/src/range_image.cpp文件,可以找到如下语句:
从中我们可以看出,Dynamic_DaramsConfig.h头文件是由参数文件cfg生成的,根据这一点可以很容易找出错误的出在cfg文件上,通过查看cfg文件发现,该文件没有允许作为可执行文件,勾选该选项即可编译成功。
(2)在终端输入命令:roslaunch rangeimage run.launch,打开rviz界面,但是界面中并没有数据。报错如下:
解决方法:在终端输入rosbag play -l seu.bag
原因分析:range_image.cpp的作用是将点云转化为深度图,实现方法是订阅话题/rslidar_points,然后发布话题/range_img。
在这个过程中,rviz起到两个作用,一是订阅话题/rslidar_points,实时呈现点云数据;二是订阅话题/range_img,实时呈现深度图数据。在rviz的使用中需要注意,可以通过保存的.rviz文件直接打开之前配置好的界面,但是需要注意的是,它只是保存的一种显示格式,而不包含数据,也就是说通过rviz打开.rviz文件,不发布rviz订阅的话题,此时界面不会有任何数据。
总结一下就是,运行命令rosbag play -l seu.bag会启动相关节点,会发布话题/rslidar_points;运行命令roslaunch rangeimage run.launch,会启动节点range_image,订阅话题/rslidar_points并发布话题/range_img。最终话题被rviz订阅,呈现画面。
通过命令 rosrun rqt_reconfigure rqt_reconfigure可以实现动态更改点云生成深度图的参数(模拟传感器位置朝向、角度范围、角度分辨率等),改变的是深度图而不是点云。