rosbag中的一些细节

将运行的ROS软件上的数据记录到一个.bag文件,然后重放数据再产生相同的效果。
 
1. 记录数据(创建一个bag文件)
从一个运行的ROS系统中记录topic的数据,这个topic数据会在一个bag文件中积累。
$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key

 
(1) 记录所有发布的topics
$ rostopic list -v

Published topics:
* /turtle1/color_sensor [turtlesim/Color] 1 publisher
* /turtle1/cmd_vel [geometry_msgs/Twist] 1 publisher
* /rosout [rosgraph_msgs/Log] 2 publishers
* /rosout_agg [rosgraph_msgs/Log] 1 publisher
* /turtle1/pose [turtlesim/Pose] 1 publisher
 
Subscribed topics:
* /turtle1/cmd_vel [geometry_msgs/Twist] 1 subscriber

* /rosout [rosgraph_msgs/Log] 1 subscriber

这些发布的topic只是可能被记录在数据记录文件上的message文件类型。


mkdir ~/bagfiles

cd ~/bagfiles

rosbag record -a

 
2. 检验和回放bag文件

(1) 用info命令检查bag的内容而不用回放它:

$ rosbag info <your bagfile>

path:        your bagfile
version:     2.0
duration:    1:38s (98s)
start:       
end:         
size:        865.0 KB
messages:    12471
compression: none [1/1 chunks]
types:       geometry_msgs/Twist [9f195f881246fdfa2798d1d3eebca84a]
rosgraph_msgs/Log   [acffd30cd6b6de30f120938c17c593fb]
turtlesim/Color     [353891e354491c51aabe32df673fb446]
turtlesim/Pose      [863b248d5016ca62ea2e895ae5265cf9]
topics:      /rosout                    4 msgs    : rosgraph_msgs/Log   (2 connections)
/turtle1/cmd_vel         169 msgs    : geometry_msgs/Twist
/turtle1/color_sensor   6149 msgs    : turtlesim/Color

/turtle1/pose           6149 msgs    : turtlesim/Pose

显示了topic的名字和类型还有每个topic在bag文件中包含的messages数量。
 

(2) 重放bag文件,以在运行系统上产生相同的效果。

在运行turtle_teleop_key的终端用Ctrl+c杀死上个部分还在运行的teleop程序。让turtle继续运行。

在产生原始bag文件的目录中运行以下命令:

$ rosbag play <your bagfile>

[ INFO] [1418271315.162885976]: Opening  your bagfile.bag
 
Waiting 0.2 seconds after advertising topics... done.
 

Hit space to toggle paused, or 's' to step.

等待可以用-d来特别指定。而是使用-s参数在不是bag文件开始的其他部分开始回放。
rosbag play -r 2 <your bagfile>   通过一个特定的因子改变发布数据的速度
 ===================================细节===========================
3. 记录数据子集
允许用户值记录它们感兴趣的topics。在bag文件目录中运行:
$ rosbag record -O filename /turtle1/cmd_vel /turtle1/pose
 
检查bag文件的内容rosbag info subset.bag):
path:        filename.bag
version:     2.0
duration:    12.6s
start:       
end:         
size:        68.3 KB
messages:    813
compression: none [1/1 chunks]
types:       geometry_msgs/Twist [9f195f881246fdfa2798d1d3eebca84a]
turtlesim/Pose      [863b248d5016ca62ea2e895ae5265cf9]
topics:      /turtle1/cmd_vel    23 msgs    : geometry_msgs/Twist

/turtle1/pose      790 msgs    : turtlesim/Pose

4. rosbag record/play的局限
注意到小乌龟的路径跟你用键盘控制的路径不是非常准确的吻合,即使大概的形状是一样的,但是小乌龟没有非常完全跟踪那个路径。原因是小乌龟跟踪的路径对系统中时间变化非常敏感。在系统中,在messages被roscore记录和处理时以及使用rosplay 产生和处理messages时,rosbag复制运行系统的行为的能力是有限的。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值