解析rosbag中的.bag文件,得到.jpg图片数据和.pcd点云数据

解析rosbag中的.bag文件,得到.jpg图片数据和.pcd点云数据

使用ROS对Pandora进行数据获取,得到 .bag文件

  1. 查看.bag文件信息
  2. 解析到.jpg的图像数据
  3. 解析为.pcd的点云数据

1. 查看某个.bag的数据信息(其中*为.bag文件名)

rosbag info *.bag

结果如下:
解析rosbag中的.bag文件,得到.jpg图片数据和.pcd点云数据_第1张图片

2. 解析该.bag文件到.jpg格式图片

方法一(存在解析出的图片数量与msg数量不符的情况,方法二可解决)
建立export.launch文件, 文件内容如下:


      
      
        
      
 

其中"home/nawenjie/1st.bag"为需要解析的.bag文件路径, "/pandora/sensor/pandora/camera/front_color"想要解析的话题名称
打开终端,运行roscore:

roscore

新建终端, cd到export.launch文件夹下, 运行代码如下

roslaunch export.launch

解析结果如下:
解析rosbag中的.bag文件,得到.jpg图片数据和.pcd点云数据_第2张图片

解析的图片在home下的 .ros目录里,将目录下的图片移动到你想要的文件夹

mv ~/.ros/frame*.jpg ~/image_pandora/1stbag/front_color

其中 /image_pandora/1stbag/front_color 为你的目标文件夹

方法二
据说,需要以下依赖

sudo apt-get install mjepgtools
sudo apt-get install ffmpeg

调整到你需要存储图片的文件夹中,或者新建文件夹,执行以下命令,其中<>中为你的topic信息

rosrun image_view extract_images _sec_per_frame:=0.05 image:=

新建终端,执行以下命令

roscore

新建终端。调整到待解析的rosbag文件目录下,回放rosbag包,执行以下命令:

rosbag play -r 0.5  

其中 -r 0.5表示回放速度。如果出现图片数量缺失的情况,可调整_sec_per_frame的值。

3. 解析.bag文件到.pcd点云数据文件

有两种方法:

  1. 利用bag_to_pcd, 代码如下(亲测有效):
rosrun pcl_ros bag_to_pcd <*.bag>  
  1. 利用pointcloud_to_pcd, 代码如下:
rosrun pcl_ros pointcloud_to_pcd input:=

方法2未运行成功,该命令行,需要在节点进行通信时,抓取话题信息,暂时无法测试.

参考
1.http://wiki.ros.org/rosbag/Tutorials/Exporting image and video data
2.https://answers.ros.org/question/9102/how-to-extract-data-from-bag/

你可能感兴趣的:(学习记录)