【ROS2】初级:CLI工具-录制并回放数据

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

 教程级别:初学者

 时间:15 分钟

 目录

  •  背景

  •  先决条件

  •  管理主题数据

    • 1. 设置

    • 2. 选择一个话题

    • 3 .记录主题

    • 4..检查主题数据

    • 5 .播放主题数据

  •  管理服务数据

    • 1. 设置

    • 2.检查服务可用性

    •  3.记录服务

    • 4.检查服务数据

    • 5 .播放服务数据

  •  摘要

  •  下一步

  •  相关内容

 背景

ros2 bag 是一个命令行工具,用于记录 ROS 2 系统中发布在主题和服务上的数据。它可以累积任意数量的主题和服务传递的数据,然后将其保存在数据库中。您可以随后重放数据以复现您的测试和实验结果。记录主题和服务也是分享您的工作并让他人重现的好方法。

 先决条件

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

如果您需要安装 ROS 2,请查看安装说明。

本教程讨论了前面教程中涉及的概念,如节点、主题和服务。它还使用了 turtlesim 包和服务内省演示。

始终不要忘记在您打开的每个新终端中获取 ROS 2 的源。

管理主题数据

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

将返回:

cxy@ubuntu2404-cxy:~/bag_files$ 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

刚开始时什么也不会显示,因为遥控器没有发布任何数据。返回到你运行遥控器的终端,并选择它以便它处于活动状态。使用箭头键移动乌龟,你将看到运行 ros2 topic echo 的终端上发布了数据。

cxy@ubuntu2404-cxy:~/bag_files$ ros2 topic echo /turtle1/cmd_vel
linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0
---
linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: -2.0
---
linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0
---
linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0
---

4bb5873b623176661074d03393a4faeb.png

3 记录主题 

3.1 记录单一主题 

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

ros2 bag record <topic_name>

在运行此命令之前,请打开一个新的终端,并移动到您之前创建的 bag_files 目录,因为 rosbag 文件将保存在您运行它的目录中

 执行命令:

ros2 bag record /turtle1/cmd_vel

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

cxy@ubuntu2404-cxy:~/bag_files$ ros2 bag record /turtle1/cmd_vel
[INFO] [1720089680.740411870] [rosbag2_recorder]: Press SPACE for pausing/resuming
[INFO] [1720089680.938029175] [rosbag2_recorder]: Listening for topics...
[INFO] [
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值