ROS 2 — 托管(生命周期)节点简介

一、说明

这篇文章是关于理解ROS 2中托管(生命周期)节点的概念。我们描述了概念性的想法以及我们为什么需要它*。*所以让我们开始吧!

二、托管式节点 --- 什么和为什么?

为了理解托管式节点,让我们从一个简单的问题陈述开始。

假设您正在处理一个具有 5 个节点的 ROS 项目,其中一个节点用于从相机获取图像。

我们通常做的是,我们用发布者为相机创建一个普通节点。一旦此节点启动,它将加载设备驱动程序,配置相机并开始发布图像。

但是,如果我们想对这个节点有更多的控制呢?

假设节点已启动,但我们希望确定何时加载设备驱动程序、何时启动相机、何时开始和结束发布、何时取消配置相机。我们甚至希望控制发布 --- 我们选择在运行时暂停和恢复发布。

一个普通的ROS节点在这里不足(至少没有我们在内部保存状态)。

但是看哪!这就是托管(生命周期)节点所启用的 --- 它抽象了此控件,我们需要做的就是向它发送一个信号,说明我们希望节点在运行过程中的任何时候执行的操作。

怎么会这样?
让我们用一些例子来回答这个问题------

三、示例一 --- 通常的听众-说话者

这是我们在学习 ROS 1/ROS 2 基础知识时看到的常见听众-说话者示例。

  • 谈话者节点 --- 具有发布者以发布有关主题的消息的节点
  • 侦听器节点 --- 具有订阅者的节点,用于从发布者获取有关同一主题的消息

一旦这些节点启动,说话者节点将发布消息,侦听器节点将接收它们。

但请注意,默认情况下,我们对说话者节点没有运行时控制。一旦它开始发布,它就是一匹野生种马 😉

现在让我们看看基于托管节点的谈话者如何为我们提供更多控制权,这就是我们在 ROS 2 中使用托管节点的原因。

四、示例二 --- 基于托管节点的侦听者-说话者

这是我们基于托管节点的侦听者-说话者示例,其中说话者发布,听众接收消息。像往常一样,对吧?

但这里有一个问题 --- 我们可以在运行时使用服务客户端节点控制说话者节点(或者我们现在称之为生命周期说话者节点)。让我们更深入地了解------

  • 谈话者节点 --- 实际继承自生命周期节点的节点,而不是 ROS 2 中的"普通节点"。此节点现在通过其内部的服务公开控制,可以使用您希望节点转到的状态调用该服务。每个状态都映射到此节点中的服务回调。
    例如,假设此节点已启动。现在,如果要在其中配置实际的发布者(或者可能是我们前面示例中的相机),则可以使用服务客户端,要求节点进入"配置"状态。这将导致"on_configure()"方法执行。在编写此节点时,您可以覆盖此方法或决定其中实际发生的情况。很酷,不是吗?
  • 侦听器节点 --- 具有订阅者的节点,用于从发布者获取有关同一主题的消息。因此,它像以前一样继承了我们的"正常节点"。
    但我们也在这里看到了一个新的订阅 - 通知订阅。这只是意味着侦听器节点可以订阅生命周期说话者在转换期间不断更新其内部状态的主题。就是这样
  • 服务客户端节点 --- 具有 2 个服务客户端的节点,一个用于更改生命周期发布者的状态,另一个用于询问其当前状态。
    如前所述,生命周期节点使用服务公开其控制。因此,我们需要一个服务客户端来请求生命周期节点的转换。
  • 被调用方脚本 --- 使用服务客户端节点和请求状态转换的脚本。好吧,这个只是在代码中演示概念。因此,如果您只是对概念感兴趣,则可以忽略这一点。

五、构建基于托管(生命周期)节点的演示 ---

我们脑子里有这个概念。现在怎么办?

我们将在 ROS 2 中从头开始编写上面显示C++的示例。理想情况下,我们会在这里这样做。但那将是一个冗长的帖子,解释不理想。所以我用实时编码在托管节点上制作了一个 2 小时的视频。
机器人
罗斯2
罗斯
机器人操

相关推荐
想成为PhD的小提琴手13 小时前
论文阅读13——基于大语言模型和视觉模态融合的可解释端到端自动驾驶框架:DriveLLM-V的设计与应用
论文阅读·语言模型·自动驾驶
lqqjuly21 小时前
Lidar调试记录Ⅳ之Ubuntu22.04+ROS2+Livox_SDK2环境下编译Livox ROS Driver 2
人工智能·机器人·自动驾驶
BestOrNothing_20151 天前
运动学模型推导 + 离散化 + 工程化版本(适用于前方单舵轮 AGV / 自动驾驶 / MPC)
自动驾驶·mpc·模型预测控制·运动学模型·转向小车
机器觉醒时代1 天前
“干活”机器人“教练”登场:宇树机器人推出首款轮式机器人G1-D
人工智能·机器学习·机器人·人形机器人
数据与后端架构提升之路1 天前
小鹏VLA 2.0的“神秘涌现”:从痛苦到突破,自动驾驶与机器人如何突然“开窍”?
人工智能·机器人·自动驾驶
机器人行业研究员1 天前
机器人“小脑”萎缩,何谈“大脑”智慧?六维力/关节力传感器才是“救命稻草”
人工智能·机器人·人机交互·六维力传感器·关节力传感器
互联网科技看点1 天前
多场景服务机器人代理品牌深度解析
人工智能·机器人
std78791 天前
核电站里,机器人当起“侦察兵”
运维·安全·机器人
拓端研究室1 天前
专题:2025构建全自动驾驶汽车生态系统:中国智能驾驶行业全景研究报告|附80+份报告PDF、数据仪表盘汇总下载
pdf·自动驾驶·汽车
听风南巷2 天前
机器人全身控制WBC理论及零空间原理解析(数学原理解析版)
人工智能·数学建模·机器人