【ROS2指南-9】Bag的record和play操作

这篇具有很好参考价值的文章主要介绍了【ROS2指南-9】Bag的record和play操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目标:记录在某个话题上发布的数据,以便您可以随时回放和检查它。

教程级别:初学者

时间: 10分钟

内容

  • 背景

  • 先决条件

  • 任务

    • 1 设置

    • 2 选择一个主题

    • 3 ros2包记录

    • 4 ros2 包信息

    • 5 ros2包玩

  • 概括

  • 下一步

  • 相关内容

背景

ros2 bag是一个命令行工具,用于记录系统中主题发布的数据。它可以访问任意数量的话题上传递的数据并将其保存在数据库中。然后您可以重播数据以重现测试和实验的结果。记录bag也是分享您的作品并允许其他人重新创作的好方法。

先决条件

您应该作为常规 ROS 2 安装程序的一部分进行安装。ros2 bag

如果您是从 Linux 上的 Debians 安装的,但您的系统无法识别该命令,请像这样安装它:

sudo apt-get install ros-dashing-ros2bag \
ros-dashing-rosbag2-converter-default-plugins \
ros-dashing-rosbag2-storage-default-plugins

本教程讨论了以前教程中涵盖的概念,例如nodes和topics。仍然使用turtlesim 包。

任务

1 设置

您将在turtlesim系统中记录您的键盘输入以便稍后保存和重播,因此首先启动/turtlesim/teleop_turtle节点。

打开一个新的终端并运行:

ros2 run turtlesim turtlesim_node

打开另一个终端并运行:

ros2 run turtlesim turtle_teleop_key

让我们也创建一个新目录来存储我们保存的录音,就像一个好习惯:

mkdir bag_files
cd bag_files

2 选择一个主题

ros2 bag只能记录发布主题的数据。要查看系统主题列表,请打开一个新终端并运行以下命令:

ros2 topic list

哪个将返回:

/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose

在主题教程中,您了解到/turtle_teleop节点在主题上发布命令/turtle1/cmd_vel以使海龟在 turtlesim 中移动。

要查看正在发布的数据/turtle1/cmd_vel,请运行以下命令:

ros2 topic echo /turtle1/cmd_vel

一开始什么都不会出现,因为 teleop 没有发布任何数据。返回到您运行 teleop 的终端并选择它以使其处于活动状态。使用方向键移动海龟,您将看到正在运行的终端上正在发布数据。

ros2 topic echo

linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0
  ---

3 ros2包记录

要记录发布到主题的数据,请使用命令语法:

ros2 bag record <topic_name>

在对您选择的主题运行此命令之前,打开一个新终端并进入bag_files您之前创建的目录,因为 rosbag 文件将保存在您运行它的目录中。

运行命令:

ros2 bag record /turtle1/cmd_vel

您将在终端中看到以下消息(日期和时间会有所不同):

[INFO] [rosbag2_storage]: Opened database 'rosbag2_2019_10_11-05_18_45'.
[INFO] [rosbag2_transport]: Listening for topics...
[INFO] [rosbag2_transport]: Subscribed to topic '/turtle1/cmd_vel'
[INFO] [rosbag2_transport]: All requested topics are subscribed. Stopping discovery...

现在正在记录该主题上发布的数据。返回 teleop 终端并再次移动乌龟。移动并不重要,但尝试制作一个可识别的模式,以便稍后重放数据时查看。

ros2 bag/turtle1/cmd_vel

【ROS2指南-9】Bag的record和play操作

Ctrl+C停止录音。

数据将累积在一个包文件中,其名称为:

rosbag2_year_month_day-hour_minute_second

3.1 记录多个主题

您还可以录制多个主题,以及更改保存文件的名称。

ros2 bag

运行以下命令:

ros2 bag record -o subset /turtle1/cmd_vel /turtle1/pose

-o选项允许您为包文件选择一个唯一的名称。在本例中,以下字符串subset是文件名。

要一次记录多个主题,只需列出每个主题并用空格分隔即可。

您将看到以下消息,确认正在录制两个主题。

[INFO] [rosbag2_storage]: Opened database 'subset'.
[INFO] [rosbag2_transport]: Listening for topics...
[INFO] [rosbag2_transport]: Subscribed to topic '/turtle1/cmd_vel'
[INFO] [rosbag2_transport]: Subscribed to topic '/turtle1/pose'
[INFO] [rosbag2_transport]: All requested topics are subscribed. Stopping discovery...

您可以四处移动乌龟并Ctrl+C在完成后按下。

PS:您可以将另一个选项添加到命令中,-a它会记录您系统上的所有主题。但是,这可能会导致循环依赖并导致系统崩溃。最好选择您需要的主题的子集。

4 ros2 包信息

您可以通过运行以下命令查看有关录制的详细信息:

ros2 bag info <bag_file_name>

在 bag 文件上运行此命令subset将返回文件信息列表:

ros2 bag info subset
Files:             subset.db3
Bag size:          228.5 KiB
Storage id:        sqlite3
Duration:          48.47s
Start:             Oct 11 2019 06:09:09.12 (1570799349.12)
End                Oct 11 2019 06:09:57.60 (1570799397.60)
Messages:          3013
Topic information: Topic: /turtle1/cmd_vel | Type: geometry_msgs/msg/Twist | Count: 9 | Serialization Format: cdr
                 Topic: /turtle1/pose | Type: turtlesim/msg/Pose | Count: 3004 | Serialization Format: cdr

要查看单个消息,您必须打开数据库(在本例中为 sqlite3)进行检查,这超出了 ROS 2 的范围。

5 ros2包玩

在重放 bag 文件之前,进入Ctrl+C运行 teleop 的终端。然后确保你的 turtlesim 窗口是可见的,这样你就可以看到正在运行的包文件。

输入命令:

ros2 bag play subset

终端将返回消息:

[INFO] [rosbag2_storage]: Opened database 'subset'.

你的乌龟将遵循你在记录时输入的相同路径(虽然不是 100% 准确;turtlesim 对系统时间的微小变化很敏感)。

【ROS2指南-9】Bag的record和play操作

因为该subset文件记录了/turtle1/pose主题,所以只要您运行 turtlesim,该命令就不会退出,即使您没有移动。

ros2 bag play

这是因为只要/turtlesim节点处于活动状态,它就会/turtle1/pose定期发布有关该主题的数据。您可能已经注意到,在上面的示例结果中,该主题的信息只有 9;那是我们在录制时按下箭头键的次数。

ros2 bag info/turtle1/cmd_velCount

注意 的/turtle1/poseCount超过 3000;在我们录制期间,关于该主题的数据被发布了 3000 次。

要了解位置数据的发布频率,您可以运行以下命令:

ros2 topic hz /turtle1/pose

概括

您可以使用命令记录 ROS 2 系统中主题传递的数据。无论您是与他人分享您的工作成果还是反思您自己的实验,它都是一个值得了解的好工具。ros2 bag

下一步

您已经完成了“初学者:CLI 工具”教程!下一步是处理“初学者:客户端库”教程,从创建工作区开始。文章来源地址https://www.toymoban.com/news/detail-474718.html

到了这里,关于【ROS2指南-9】Bag的record和play操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubutu下ros2实现小车仿真建模与目标检测

    1.安装ros2 这里使用小鱼的一键安装,根据自己的喜好安装,博主用的是ros2的foxy版本 2.下载代码(这里使用的是古月居的代码) https://book.guyuehome.com/ 可以结合古月居的B站视频来自己一步一步操作,里面有讲解基础理论与一些环境的配置 https://www.bilibili.com/video/BV16B4y1Q7jQ?p=1

    2024年02月04日
    浏览(40)
  • 从ROS1到ROS2无人机编程实战指南

    亲爱的读者们,我今天非常荣幸地向大家推荐一本本人的全新力作——《从ROS1到ROS2无人机编程实战指南》。这本书站在初学者的角度,从入门到进阶,再到实战,循序渐进,是学习ROS1和ROS2的最佳选择。如今已在全国范围内上市,购书即可享受次日达的快捷服务! 本书的创

    2024年02月10日
    浏览(46)
  • 【ROS2指南-8】入门Launch启动脚本

    目标: 创建launch文件以运行复杂的 ROS 2 系统。 教程级别: 初学者 时间: 10分钟 内容 背景 先决条件 任务 1 设置 2 编写启动文件 3 ros2发射 4 使用 rqt_graph 反省系统 概括 下一步 在到目前为止的教程中,您一直在为您运行的每个新节点打开新终端。随着越来越多的节点同时运

    2024年02月15日
    浏览(72)
  • 【ROS2指南-19】使用Launch启动/监控多个节点

    ROS 2 中的启动系统负责帮助用户描述他们系统的配置,然后按照描述执行。系统的配置包括要运行的程序、运行它们的位置、传递给它们的参数以及 ROS 特定约定,这些约定通过为它们提供不同的配置,使得在整个系统中重用组件变得容易。它还负责监视已启动流程的状态,

    2023年04月15日
    浏览(69)
  • 【ROS2指南-14】创建自定义的消息和服务

    目标: 自定义接口文件( .msg 和 .srv )并将它们与 Python 和 C++ 节点一起使用。 教程级别: 初学者 时间: 20分钟 内容 背景 先决条件 任务 1 创建一个新包 2 创建自定义定义 3个CMakeLists.txt 4个package.xml 5 构建tutorial_interfaces包 6 确认 msg 和 srv 创建 7 测试新接口 概括 下一步 在之

    2023年04月12日
    浏览(32)
  • Excel 端口操作指南

    通过将 EDI 报文可视化为 Excel,企业可以更好地了解和处理数据,提高工作效率,减少错误率。在未实现 EDI 系统和内部业务系统集成之前,Excel 方案则是一项可供选择的临时替代方案。 Excel方案的优点在于,无需对业务系统再做开发工作,数据可读性较强。用户只需将交易伙

    2024年02月15日
    浏览(48)
  • 端口操作指南

    知行之桥 EDI 系统中的端口是用于创建数据工作流的功能模块。每个端口可执行以下的一个任务: 使用标准网络协议 (AS2,AS4,FTP,SFTP,OFTP 等)与外部目标之间传输文件 与后端系统集成,例如数据库或云端应用程序 使用或公开 RESTful web API 将数据从一种格式转换为另一种格式

    2024年02月16日
    浏览(54)
  • git常用操作指南

    先可以使用git tag命令查看下当前有哪些tag,然后在原有tag的基础上增加版本号,并提交tag信息,例如: 即可 如果有个项目是用git的lfs管理的,那么首先需要安装git-lfs 然后执行: 最后,git clone 如何删除本地某个分支: 在删除你想删除的那个分支前,需要先切换到其他分支,

    2024年02月07日
    浏览(55)
  • Git操作指南

    Git是目前最流行的版本控制系统之一,它为开发者提供了便捷的代码管理和协作工具。对于初学者来说,熟悉Git的操作和基本概念是非常重要的。本文将带你从入门到进阶,逐步掌握Git的常用操作和技巧。 1、Git简介: Git是什么?为什么需要使用Git? Git是一个分布式版本控制

    2024年01月19日
    浏览(53)
  • Linux常规操作指南

    (1)查看当前目录内容 或查看详细信息: (2)切换工作目录 (3)创建新目录 (4)删除空目录 (5)删除文件或目录(递归删除) (1)复制文件或目录 (2)移动或重命名文件/目录 (3)查看文件内容 (4)编辑文件(使用vi/vim编辑器) 在vi中,输入 i 进入插入模式,编辑

    2024年01月19日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包