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

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

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

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

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

rosbag info *.bag

结果如下:
查看.bag文件信息

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

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

<launch>
      <node pkg="rosbag" type="play" name="rosbag" args="-d 2 /home/nawenjie/1st.bag"/>
      <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME">
        <remap from="image" to="/pandora/sensor/pandora/camera/front_color"/>
      </node>
 </launch>

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

roscore

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

roslaunch export.launch

解析结果如下:
launch

解析的图片在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:=<IMAGE TOPIC IN BAGFILE>

新建终端,执行以下命令

roscore

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

rosbag play -r 0.5  <BAG FILE>

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

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

有两种方法:

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

方法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/

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值