ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 15 录制与回放数据
2017-08-03 14:35
736 查看
http://wiki.ros.org/cn/ROS/Tutorials/Recording%20and%20playing%20back%20data
引言
本节教程的将描述如何录制ROS系统运行过程中的数据到一个.bag文件中,然后通过回放该数据来重现之前的运动过程。1.录制
1.1 先决条件
我们打开两个节点:roscore rosrun turtlesim turtlesim_node rosrun turtlesim turtle_teleop_key
查看当前存在话题的详细消息:
$ rostopic list -v
1.2 录制数据
一旦产生了消息,就可以录制了。mkdir ~/bagfiles cd ~/bagfiles rosbag record -a
这里创建了一个新文件夹,使用rosbag record -a 命令录制所以话题的数据。
此时我们使用箭头移动小龟。使得在话题上产生数据。
1.3 查看.bag文件
使用rosbag info命令来查看录制的bag文件。$ rosbag info <recorded bagfile>
此命令只会看到详细的统计信息,看不懂实际的数据记录。
1.4 回放.bag文件
现在,我们退出turtle_teleop_key节点。
执行以下命令:
$ rosbag play <your bagfile>
$ rosbag play -r 2 <your bagfile>
“-r”选项可以改变消息发布的速率,用于加快回放。
1.5 录制数据子集
当运行复制系统时,会有大量的数据发布(如摄像头的视频流),在这种情况下录制数据是不实际的,因此可以选择性的录制某些数据.例如:
$ rosbag record -O subset /turtle1/command_velocity /turtle1/pose
-O 选项指定了.bag文件的名字,这里为“subset”
后面两个参数指定了要记录的话题。
1.6 局限性
在前述部分中你可能已经注意到了turtle的路径可能并没有完全地映射到原先通过键盘控制时产生的路径上——整体形状应该是差不多的,但没有完全一样。造成该问题的原因是turtlesim的移动路径对系统定时精度的变化非常敏感。rosbag受制于其本身的性能无法完全复制录制时的系统运行行为,rosplay也一样。对于像turtlesim这样的节点,当处理消息的过程中系统定时发生极小变化时也会使其行为发生微妙变化,用户不应该期望能够完美的模仿系统行为。相关文章推荐
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 2 浏览ROS的文件系统
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 6 理解ROS话题
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 4 构建一个包
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 14 测试简单的Service和Client
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 12 测试消息发布器和订阅器
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 13 编写简单的服务器和客户端
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 8 学习ROS的rqt_console和roslaunch命令
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 7 理解ROS服务和参数
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 10 创建ROS消息和ROS服务
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 3 创建一个ROS包
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 5 理解ROS节点
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 16 roswtf入门
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 1 安装和配置你的ROS环境
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 9 使用rosed编辑ROS中的文件
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 11 编写简单的消息发布器和订阅器 (C++)
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第一章 安装ROS到Ubuntu主机
- ROS教程(十五):录制与回放数据
- 大数据下基于Tensorflow框架的深度学习示例教程
- ROS Jade配置Gazebo5:jade官方教程+gazebo官方教程的汇总——Ubuntu系统14.04
- ROS学习--(十五)记录,回放数据