ROS入门:保存和回放数据(bag文件的使用) |
您所在的位置:网站首页 › 包的英文bag怎么读 › ROS入门:保存和回放数据(bag文件的使用) |
ROS入门:保存和回放数据(bag文件的使用)
简介:1.记录数据(生成bag文件)2.检查并播放bag文件3.记录数据集的子集:4.常用命令汇总(更新中)
简介:
.bag文件可以保存ros系统运行过程中产生的话题和服务数据,并可以播放出来以供其他系统使用,有种仿真器的感觉,在使用 别人数据集的过程中十分有用。本文讲解了如何将正在运行的ROS系统中的数据记录到一个.bag文件中,然后回放这些数据,以在运行的系统中产生类似的数据流。 1.记录数据(生成bag文件)首先在不同的终端运行下列指令,以运行小海龟的仿真程序: 终端1: roscore终端2: rosrun turtlesim turtlesim_node终端3: rosrun turtlesim turtle_teleop_key这时便会生成两个节点,一个用于可视化小海龟,另一个用于读取键盘的指令。在终端3下通过按上下左右即可控制乌龟的运动方向。
这里创建一个临时bagfiles来记录数据,然后运行带有-a选项的rosbag record,-a表示所有发布的主题都应该保存在一个bag文件中。 现在通过键盘移动小海龟,大约10s钟即可 在运行rosbag record exit的窗口中,使用Ctrl-C键以停止程序。现在检查目录~/bagfiles的内容。您应该看到一个文件,文件名以年份、日期和时间开头,后缀为.bag。这是一个bag文件,包含运行rosbag记录时任何节点发布的所有主题。 查看bag文件信息: 在bag文件路径下打开终端,根据自己bag名称运行一下命令: rosbag info 2020-07-04-11-01-11.bag
这时终端会输出很多消息 截取数据子集的原因是,很多时候系统中会有数十个话题,而我们可能只需要其中几个话题的数据。 具体做法很简单: rosbag record -O subset /turtle1/cmd_vel /turtle1/pose-O表示只记录一些数据子集,/turtle1/cmd_vel /turtle1/pose是所要记录的话题 用rosbag info命令查看bag文件的信息,发现只剩下了两个话题 (1)记录所有的话题(-a),并制定名称(-O subset) rosbag record -a -O subset(2)记录指定的话题 rosbag record /imu /left(3)按一定速率播放bag文件( -r 100 ) rosbag play -r 100 ./test.bag(4)更改话题名称并更改播放速率 rosrun topic_tools throttle messages /left-bef 4.0 /left-aft(5)提取数据集中的图片: 首先安装依赖项 sudo apt-get install ffmpeg新建一个文件夹用于存储图片,并打开终端运行 rosrun image_view extract_images _sec_per_frame:=0.01 image:=< IMAGETOPICINBAGFILE >为bag文件 PS:如果输出的图片数量与rosbag info命令查询得到的数量不符,可以减少_sec_per_frame参数的值。 运行roscore并播放rosbag数据集 参考ros教程: http://wiki.ros.org/ROS/Tutorials/Recording%20and%20playing%20back%20data |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |