在ROS中使用bag包来记录运行过程中各个topic中的message,对于这些message,我们可以使用
rosbag play *.bag
的方式进行播放,但如果要截取bag包中的某一些数据,并逐一对其进行处理,那么我们就需要的bag进行解析。
ros中的点云文件为PointCloud2,我们将一个用velodyne64线雷达采集的bag包中的点云文件转换为我们能够使用pcl_viewer直接显示的pcd点云文件。
我们先对我们的bag内有什么样的数据进行显示。输入以下命令:
rosbag info *.bag
就可以显示bag包中记录的话题及其记录的消息的类型。截图如下:
上面的信息显示,在这个bag包中我们记录很多topic的数据以及这些topic的消息类型,以及对应的有多少帧消息。在上图中,除了我们需要的PointCloud2消息类型外还有其他不同的消息,例如GPS的数据,这些数据也是十分重要的。对于这个包,目前我们只解析其中的点云文件,这是因为ros中自带将bag包中点云文件解析的工具。
输入以下命令:
rosrun pcl_ros bag_to_pcd 3.bag /velodyne_points pcd
上述命令中,三个参数分别为bag包名,需要解析的节点名称和解析