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

一、说明

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
HyperAI超神经4 小时前
15亿参数挑战机器人控制,MiniCPM-RobotManip正式开源;覆盖文本/图/视频/动作序列,英伟达发布全模态模型Cosmos3-Edge
人工智能·深度学习·机器人·多模态·图像生成·具身智能·智能体
zdl68610 小时前
EasyMarkets:“机器人商业化仍待验证”
数据库·机器人
深圳慧闻智造技术有限公司11 小时前
机器人本体结构件精密加工难点拆解:薄壁变形控制与五轴量产工艺方案
机器人·机器人零件加工·五轴cnc加工
ergevv13 小时前
从大模型到空间智能:未来机器人的终极架构畅想
机器人·vla·世界模型·空间智能·认知地图
iiiiii1115 小时前
【论文阅读笔记】Reparameterization Proximal Policy Optimization (RPO):将PPO的稳定性引入可微分强化学习
论文阅读·人工智能·笔记·深度学习·机器学习·机器人·具身智能
HiEV15 小时前
Mobileye 3.0:自动驾驶科技问题基本解决,Shashua押注物理AI
人工智能·自动驾驶
总线通信小百科1 天前
汽车零部件LIN总线测试三大痛点
经验分享·自动驾驶·汽车·数据处理
四方云1 天前
录音转文字完整技术原理(ASR自动语音识别)技术文档
人工智能·机器人·语音识别·外呼系统·销售成长·拓客
QYR-分析1 天前
具身智能风口下,机器人AI计算机市场发展现状、痛点与趋势解析
人工智能·机器人
张彦峰ZYF1 天前
具身智能:AI 长出“手脚”,进入物理世界——大模型驱动机器人、自动驾驶与产业落地调研
人工智能·机器人·自动驾驶