ros中使用rosbag记录数据及转换视频

点击打开原文链接

1.查看.bag中包含的信息 : rosbag info

2.0回放.bag中包含的信息: rosbag play

2.1以某一频率发布消息 : rosbag play -r 2

2.2从某一时间节点开始发布消息 : rosbag play -s 2

3.1记录所有topic信息: rosbag record -a

3.2记录部分信息 : rosbag record -o subset /turtle1/cmd_vel /turtle1/pose 
产生一个名为subset.bag的文件。

4.将.bag记录的图像数据输出为图片或视频。 
a.创建文件 export.luach 并写入一下内容

<launch>
  <node pkg="rosbag" type="play" name="rosbag" args="-d 2 $(find image_view)/test.bag"/>
  <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME">
<remap from="image" to="/camera/image_raw"/>
  </node>
</launch>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
 $(find image_view)/test.bag" 其中image_view表示package名字,此处改为你的.bag文件所处的package的名字即可,同时test改为对应的名字。
  • 1
 <remap from="image" to="/camera/image_raw"/> 此处表示需将你记录的topic名字覆盖掉/image 这个原始的topic。
  • 1

b.运行launch文件,即

roslaunch export.launch
  • 1

此时数据将被分离成一组图片,并存在“.ros”文件夹中。

c.创建文件夹 /source 
将/.ros中的图片转移到/source中,即

 mv ~/.ros/frame*.jpg source/
  • 1

d.转换视频

cd ~/source
jpeg2yuv -I p -f 15 -j frame%04d.jpg -b 1 > tmp.yuv
//其中-f 15 表示频率, -b 1 表示起始图片的编号。
  • 1
  • 2
  • 3

如果要产生.ogv文件:

ffmpeg2theora --optimize --videoquality 10 --videobitrate 16778 -o output.ogv tmp.yuv
  • 1

如果要产生mpg文件:

mencoder "mf://*.jpg" -mf type=jpg:fps=15 -o output.mpg -speed 1 -ofps 30 -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=2500 -oac copy -of mpeg
  • 1

在本步骤中可能会需要安装部分package,按提示安装即可:

sudo apt-get install packeage-name

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值