zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    在Unix上使用管道压缩exp导出文件
    自制CPU的黑暗历程一
    Error C1189: #error: Please use the /MD switch for _AFXDLL builds
    Redis乐观锁解决高并发抢红包的问题
    PHP分页类
    汇编基础——使用nasm和bochs学习汇编
    数据同步工具DBsync
    完成端口的一些教程
    sdf
    (转)C#(WIN FORM)两个窗体间LISTVIEW值的修改
  • 原文地址:https://www.cnblogs.com/lizhensheng/p/11117687.html
Copyright © 2011-2022 走看看