记录关于我们运行roslaunch openni_launch openni.launch 命令时生成的话题以及这些话题的数据类型便于后期的处理,只有知道它们的数据结构,才能很好的对数据进行处理,我们观察到使用rostopic list的所有话题的列表,当然其中也有一些不经常使用的话题类型,比如下面这些话题是我们经常使用的
/camera/depth/image
/camera/depth/image_raw
/camera/depth/points
/camera/ir/image_raw
/camera/rgb/image_color
/camera/rgb/image_raw
发布的话题:
使用命令查看sensor_msgs/Image的数据

介绍几个ROS节点运行的几种工具。他们的作用是ROS格式点云或包与点云数据(PCD)文件格式之间的相互转换。
(1)bag_to_pcd
用法:rosrun pcl_ros bag_to_pcd <input_file.bag> <topic> <output_directory>
读取一个包文件,保存所有ROS点云消息在指定的PCD文件中。
(2)convert_pcd_to_image
用法:rosrun pcl_ros convert_pcd_to_image <cloud.pcd>
加载一个PCD文件,将其作为ROS图像消息每秒中发布五次。
(3) convert_pointcloud_to_image
用法:rosrun pcl_ros convert_pointcloud_to_image input:=/my_cloud output:=/my_image
订阅一个ROS的点云的话题并以图像的信息发布出去。
(4)pcd_to_pointcloud
用法:rosrun pcl_ros pcd_to_pointcloud <file.pcd> [ <interval> ]
<file.pcd> is the (required) file name to read.
<interval> is the (optional) number of seconds to sleep between messages. If <interval> is zero or not specified the message is published once.
加载一个PCD文件,发布一次或多次作为ROS点云消息
(5)pointcloud_to_pcd
订阅一个ROS的话题和保存为点云PCD文件。每个消息被保存到一个单独的文件,名称是由一个可自定义的前缀参数,ROS时间的消息,和以PCD扩展的文件。
那么我们使用一个简单的例子来实现在ROS中进行平面的分割,同时注意到使用的数据转换的使用
在这里我们的input就是要订阅的话题/camera/depth/points
我们在rosrun 的时候注明input:=/camera/depth/points的这样就可以使用kienct发布的点云数据,同时你也可以指定点云的数据