8.15-ros-bag使用

Posted lizhensheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.15-ros-bag使用相关的知识,希望对你有一定的参考价值。

rosbag-数据记录工具

TOC

参考

使用示例
rosbag-wiki
Bag file format
MATLAB working with bag file
Bag file
rqt_bag
rosgab/migration
Python 分析rosbag files
How to extract data from bag file
Matlab: transform quaternion to rotation

前言

  • 因实验,需要将机器人坐标记录下来,在matlab上做对比实验
  • 需要学习,rosbag的基本使用,bag文件的处理,matlab上ROS工具箱使用

记录

rosbag基本使用

  • bag实际上是将一个node的行为录制下来,然后可以重新播放
  • 使用命令行能够:录制,从包重新发布,获取包的概括信息,检查包的消息类型,使用Python表达式过滤包中信息,压缩解压缩包,重新索引包
  • 如果录制高带宽的东西,例如图像信息,建议在本地录制和存放文件
  • bag文件默认名字为日期,可以添加前缀
  • 基本命令包括
    • record:制定主题来录制
rosbag record rosout tf cmd_vel
rosbag record -a #所有
rosbag record --duration=30 /chatter #持续30s,5m,2h
rosbag record --split --size=1024 /chatter #空间达到1024M后分文件存储
rosbag record --split --duration=30 /chatter #持续时间到30s后分文件存储
rosbag record -o session1 /chatter #为文件名字做前缀
rosbag record -O session2_090210.bag /chatter #为文件命名
rosbag record --node=/joy_teleop #录制该节点左右消息
rosbag record -l 1000 /chatter  # 录制该主题1000个消息限制
  • info
  • play
    • 注意:如果两个包被播放,它们将作为一个包对待。比如你录制一个包,在一个小时之后再录制一个包,然后同时播放,这个时候你会经历1个小时的空白。
rosbag play recorede1.bag
rosbag play --clock recorded1.bag #发布时钟时间
rosbag play --clock --hz=200 recorded1.bag #时钟频率默认100
rosbag play -r 10 recorded1.bag # 发布速度翻倍
rosbag play -d 5 recorded1.bag #每一次advertise后等待5秒
rosbag play -u 240 recorded1.bag #只播放240s
rosbag play -l recorded1.bag # 循环播放
  • check
rosbag check old.bag
rosbag check -g diagnostics.bmr diag.bag #生成一个移植规则文件migration rule file
  • fix
rosbag fix old.bag repaired.bag myrules.bmr #使用规则文件恢复包文件内容
  • filter
filter <in-bag> <out-bag> <expression> # 详情请访问网页,可以使用topic, m, t, 等要素,分别是主题,消息,时间
rosbag filter input.bag output.bag "t.to_sec() <= 1284703931.86"
  • compress
  • decompress
  • reindex
    • 修复包的命令

rqt_bag

  • 提供全方位的图形化界面,具有录制,播放,显示,保存,加载文件,暂停等功能

数据修改

  • 请参考migration网页

数据导出到matlab分析

  • 先导出为CSV文件,逗号分隔值文件格式
rostopic echo -b log_file.bag /topic_name
rostopic echo -p /topic_name #使用matlab友好格式进行显示
  • 再存为文件
rostopic echo -b file.bag -p /topic > data.txt

以上是关于8.15-ros-bag使用的主要内容,如果未能解决你的问题,请参考以下文章

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份