ROS学习--(十五)记录,回放数据

来源:互联网 发布:小米网络助手在哪里 编辑:程序博客网 时间:2024/04/30 12:49

这部分教程可以引导我们记录正在运行的ROS系统的数据,存储在包里
先运行roscore,海龟窗口

$ roscore$ rosrun turtlesim turtlesim_node$ rosrun turtlesim turtle_teleop_key

打开新终端,看看系统有发布什么话题。

$ rostopic list -v

打开新终端,运行一下命令

mkdir ~/bagfilescd ~/bagfilesrosbag record -a

现在我们已经新建了存放话题信息的目录,-a的意思是将所有发布了的话题都收集到包里
现在回到键盘控制乌龟的窗口,控制乌龟动,制造些信息。
在运行rosbag的窗口ctrl+c,回到bagfiles,发现多了个后缀名为bag的文件,不能直接打开
使用命令 rosbag info <your bagfile>(bag文件的名称)

回放记录
先停止teleop的终端,运行rosbag play <your bagfile>
然后会看到
[ INFO] [1418271315.162885976]: Opening 2014-12-10-20-08-34.bag

Waiting 0.2 seconds after advertising topics… done.

Hit space to toggle paused, or ‘s’ to step.
默认rosbag play在真正发布bag里的内容前会在发布每条消息后会等待0.2秒的时间。这是会了让订阅器知道消息广播后还会有一些消息继续发布,如果不等待0.2秒的时间,订阅器可能会收不到一开始的几条消息。可以通过-s参数选项让rosbag play命令等待一段时间跳过bag文件初始部分后再真正开始回放。最后一个可能比较有趣的参数选项是-r选项,它允许你通过设定一个参数来改变消息发布速率。如果你执行:rosbag play -r 2 这就是以两倍的速度通过按键发布控制命令时产生的轨迹。

录制数据子集(也就是只录制其中一个话题的信息)
执行命令rosbag record -o subset /turtle1/command_velocity/turtle1/pose

局限性:路径仍然存在误差

引用块内容

0 0
原创粉丝点击