ROS 录制和回放数据(rosbag)

记录如何从正在运行的ROS系统中话题数据(????)


数据的录制

将话题放到一个 袋(bag)文件中

终端One

roscore

终端Two

rosrun turtlesim turtlesim_node

终端Three

rosrun turtlesim turtle_teleop_key

在这里插入图片描述

在键盘控制界面上控制 turtle 的移动[随意]

新建一个终端4

rostopic list -v

输出的结果类似于
在这里插入图片描述

发布的主题列表是唯一可以被记录到日志文件当中的消息类型,由teleop_turtle发布的/turtle1/cmd_vel话题是指令消息,作为turtlesim进程的输入。消息/turtle1/color_sensor和/turtle1/pose是turtlesim发布的输出消息

保存数据

随意路径下创建一个文件夹保存

mkdir ~/bagfiles
cd ~/bagfiles
rosbag record -a

rosbag record -a 开始运行的时候,就可以使用键盘控制?移动进行保存了
在这里插入图片描述

Ctrl + C 退出并且查看文件内容:

rosbag info bag文件夹名字

bag

这些信息告诉你bag文件中所包含话题的名称、类型和消息数量。,在之前使用rostopic命令查看到的五个已公告的话题中,其实只有四个在录制期间发布了消息。带-a参数选项运行rosbag record命令时系统会录制下所有节点发布的所有消息

如果无需录制所有发布的消息可以使用一下命令来录制对应数据子集

rosbag record -O subset /turtle1/cmd_vel /turtle1/pose

然后通过键盘控制 ? 随意移动几秒钟,最后按Ctrl+C退出rosbag record命令

回放

使用一下命令对之前录制的结果进行回放:

rosbag play -r speed bag文件夹名字

其中speed 是回放速度
当 speed 为 1时:
在这里插入图片描述
当 speed 为 2时:
在这里插入图片描述

Thinking

rosbag 具有一定的局限性,? 并非可以完全的映射到原先通过键盘控制时产生的路径上,整体形状应该是差不多的,但没有完全一样。在 ROS 系统对运动模型比较敏感的时候,ros bag 并非具有很好的场景适应性


???完结撒花???
??@FAE??



版权声明:本文为Msyusheng原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。