zoukankan      html  css  js  c++  java
  • [转]ROS学习笔记十一:ROS中数据的记录与重放

    本节主要介绍如何记录一个正在运行的ROS系统中的数据,然后在一个运行的系统中根据记录文件重新产生和记录时类似的运动情况。本例子还是以小海龟例程为例。

    记录数据(创建一个bag文件)

    首先运行小海龟例程:

    roscore
    rosrun turtlesim turtlesim_node
    rosrun turtlesim turtle_teleop_key
    • 1
    • 2
    • 3

    记录所有的topics

    mkdir ~/bagfiles
    cd ~/bagfiles
    rosbag record -a
    • 1
    • 2
    • 3

    记录指定的topics

    在运行一个特别复杂的程序时,可能有成百上千个topics,这时记录所有的topics就有些不太现实了。而rosbag record支持记录指定的topics上的数据:

    ros record -O subset /turtle1/cmd_vel /turtle1/pose
    • 1

    其中的-O选项说明输出的bag文件为subset.bag文件,要记录的topics就是后面指定的两个。

    检验并重放数据

    检验数据

    可以利用rosbag info来查看bag文件的信息:

    rosbag info subset.bag
    path:        subset.bag
    version:     2.0
    duration:    27.9s
    start:       Aug 28 2016 10:33:08.22 (1472351588.22)
    end:         Aug 28 2016 10:33:36.10 (1472351616.10)
    size:        154.3 KB
    messages:    1889
    compression: none [1/1 chunks]
    types:       geometry_msgs/Twist [9f195f881246fdfa2798d1d3eebca84a]
                 turtlesim/Pose      [863b248d5016ca62ea2e895ae5265cf9]
    topics:      /turtle1/cmd_vel    146 msgs    : geometry_msgs/Twist
                 /turtle1/pose      1743 msgs    : turtlesim/Pose
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    重放数据

    关闭发布数据的节点turtle_teleop_key,然后在一个终端中输入如下命令:

    rosbag play subset.bag
    • 1

    在turtlesim图形窗口中可以看到小海龟又在运动了,按照subset.bag文件中的数据。默认情况下rosbag play会先等待一段时间0.2秒钟,这是因为他要告诉所有订阅了这个topic的节点都知道这个topic要发布信息了,让节点们做好接收信息的准备,否则刚开始发布的几条信息节点有可能收不到。当然我们可以自定义重放的参数。

    rosbag record/play的局限性

    在前面进行重放演示的时候就应该已经发现,演示时小海龟的路径和原始输入时的路径并不一致。主要原因是turtlesim的路径跟踪在系统中对于微小的变化都十分敏感,然而rosbag在精确复制系统的运行情况的能力是有限的,所以这个功能好像基本没有什么用途。。。

    总结

    rosbag record:记录运行系统中的数据并生成bag文件 
    rosbag info:查看bag文件的信息 
    rosbag play:根据bag文件中的数据,重放系统

  • 相关阅读:
    Multisim的电路分析方法
    转载论文关于fir滤波器的fpga实现
    verilog数组定义及其初始化
    FIR滤波器的FPGA实现方法
    matlab的fda工具使用方法
    卷积的幽默解释
    lvds配置
    latch的产生和消除
    时序优化实例
    第九篇:使用 lstat 函数获取文件信息
  • 原文地址:https://www.cnblogs.com/qiuheng/p/9156741.html
Copyright © 2011-2022 走看看