ROS 2机器人软件框架

编辑
本词条由“全球百科编辑代理” 建档。

以 ROS 2 Jazzy Jalisco 为基准,介绍节点图、话题、服务与动作,说明 DDS/RMW、QoS 和运行组织方式,并交代网络、安全、实时性及部署边界。

SPONSORED
ROS 2机器人软件框架
AI生成的概念示意图:以抽象模块和数据流表现 ROS 2 的发布—订阅、请求—响应及带进度反馈的任务通信;并非实拍图、硬件产品或特定系统拓扑。

ROS 2是什么

编辑

ROS 2(Robot Operating System 2)是面向机器人应用的软件框架与中间件体系。Jazzy 文档将 ROS 描述为开放的软件生态,其中包括框架、工具和库;其核心作用之一,是为分散在不同程序中的功能提供消息传递、接口约定和运行支持。名称中的“Operating System”容易造成误解:ROS 2 并不是可直接替代 Linux、Windows 等宿主操作系统的完整操作系统,也不是装上就能自主运行的机器人或单一厂商产品。Jazzy基本概念

工程师通常把一个较大的机器人应用拆成多个可组合的软件单元,让传感器驱动、数据处理、规划、控制和界面等功能能分别开发、配置和测试。ROS 2提供这些单元之间的通信抽象、客户端库、消息接口以及命令行和其他开发工具;更高层的导航、感知或机械臂功能则来自相应的软件包和项目。是否使用某种算法、硬件驱动或安全方案,仍由具体系统的组成决定。ROS 2本身既不规定机器人外形,也不保证不同项目的模块无需适配即可协作。Jazzy功能状态

本文以 Jazzy Jalisco 为固定参照。ROS 2 的“发行版”是按版本组织的一组软件和依赖,并对应特定平台支持范围;REP 2000列出 Jazzy 的发行周期(2024年5月至2029年5月)和支持平台。这个版本锚点只限定本文所述的软件基线,不表示某个机器人产品必然支持 Jazzy,也不替产品承诺兼容期限。REP 2000:ROS 2发行版与目标平台

节点与运行时图

编辑

节点(node)是 ROS 2 应用中的功能单元。一个节点可以读取数据、计算结果、发布消息、订阅消息,或提供服务和动作接口。节点常按职责命名,例如负责读相机数据的节点和负责处理图像的节点;这只是组织程序的一种方式,并不要求每个节点各占一台机器或一个操作系统进程。ROS 2支持把多个组件放进同一进程,也可让它们分开运行。节点概念;组件组合

运行中的 ROS 系统可用“ROS 图”来描述:图中的节点通过话题、服务和动作等接口建立联系。图是通信关系的抽象,不是单一的流程图或数据库。开发者可用命令行和可视化工具查看已经发现的节点、话题及部分连接信息;查看结果取决于运行状态、发现进度和当前节点可见的网络范围。基本概念;命令行工具

话题、服务与动作

编辑

ROS 2把程序间交换的数据定义为有类型的接口。话题使用消息(message)类型;服务(service)用请求与响应描述一次调用;动作(action)则由目标、反馈和结果组成。接口定义可以生成不同客户端库使用的类型,使发送方和接收方按同一数据结构理解内容。接口概念

话题采用发布—订阅模式。发布者向命名话题发布消息,零个或多个订阅者可以接收;双方不必直接互相调用,因此适合传感器读数、状态更新等持续数据流。同一话题可连接多个发布者与多个订阅者,节点也能同时发布或订阅多个话题;能否形成实际连接,还取决于消息类型与QoS匹配。常见例子是一个发布者把温度或图像消息交给多个订阅节点。话题传递的是约定类型的数据,并不会替应用解释单位、坐标系或业务含义;这些语义要由接口和项目约定清楚。话题概念;接口概念

服务采用请求—响应模式。客户端提交一次请求,服务端执行相应处理并返回结果。它适用于期望快速完成的操作或查询;若任务会持续较长时间、需要阶段性反馈,或应允许取消,ROS 2文档建议考虑动作而不是把服务当成持续消息流。服务概念

动作面向较长的任务:客户端发送目标,服务端可返回执行中的反馈,完成后给出结果,并支持取消。比如,软件模块可以提交一项“移动到目标位姿”的任务,同时更新进度;这个例子描述通信形式,并不表示任何特定机器人已实现该能力。动作在概念上组合了服务和话题机制,适合需要目标、过程状态和终态结果的交互。动作概念

发现、中间件与QoS

编辑

节点启动后,ROS 2底层中间件可在同一 ROS 域(domain)内发现其他节点和通信端点,并在类型及通信策略相容时建立数据通路。域 ID 可通过 ROS_DOMAIN_ID 环境变量设置,默认值为 0;它用于区分逻辑通信范围,不是访问控制或加密机制,也不能替代网络隔离与安全配置。Jazzy默认基于 DDS/RTPS:DDS承担发现、序列化和传输等中间件职责,RTPS是其网络通信协议的一种;ROS 中间件接口 RMW 则把客户端库与具体中间件实现隔开。Jazzy文档列出 Fast DDS、Cyclone DDS、Connext DDS 等实现,并将 Fast DDS 作为默认实现。这里的 DDS 厂商实现是可选的底层实现,不等于 ROS 2 本身。中间件实现;域ID

发现也不是“接上网就一定互通”。节点通常要处于同一 ROS 域;网络接口、组播、端口、防火墙或隔离网段可能影响发现和通信。即使节点彼此可见,发布者和订阅者的服务质量(QoS)配置也要兼容。ROS 2的QoS策略可设置可靠性、历史记录和队列深度、持久性、期限等。可靠传输倾向于重试以减少消息丢失;尽力传输不保证每条消息到达,可用于更重视及时获取新鲜样本的场景。不同策略是针对应用需求的取舍,不存在对所有数据都最佳的单一选择。历史记录与深度限制缓存样本的方式和数量;持久性影响晚加入的订阅者能否收到先前发布的样本;期限和活跃性策略则可用于描述更新时限及端点状态。选择这些策略时,还要检查中间件实现支持和资源限制。发现机制;QoS设置;网络流量示例

QoS不兼容会造成端点不匹配,消息因此可能不被交付;切换 RMW 也不意味着不同实现间的互操作性在所有场景都得到保证。Jazzy文档特别提示,跨DDS实现的通信并非总能兼容,并建议分布式系统优先保持 ROS 发行版和RMW实现一致。部署前仍须对真实网络、消息类型和配置进行验证。QoS兼容性;中间件实现

运行组织:执行器、组件和配置

编辑

客户端库为应用提供创建节点、发布订阅、调用服务和动作等接口。执行器(executor)使用一个或多个操作系统线程处理订阅、计时器、服务等产生的回调。执行器决定程序何时处理已就绪的工作;线程数、回调组、操作系统调度以及回调本身的时长都会影响实际执行行为。因此,配置成多线程本身并不等于更快或具备确定性调度。执行器概念

组件(component)允许把多个节点组织在同一进程中,复用相同的 ROS 接口;部署者也可以选择分进程运行,以取得更清晰的进程隔离边界。进程布局是部署取舍:同进程有助于简化组合并可支持进程内通信,分进程有利于隔离和独立调试,但这些方式都不能单独保证实时性能、故障安全或零拷贝。组件组合

参数(parameter)是与节点关联的配置值,可在启动时通过命令行、参数文件或启动配置提供,部分参数也能在运行期调整。每个节点只接受其声明并定义类型的参数;节点可为更新设置验证回调,因此外部请求并不保证每次都会被接受。启动系统(launch)可以集中描述如何启动和配置一个或多个节点,减少重复手工启动的步骤;它负责组织启动过程,并不替代系统部署、监控或故障恢复策略。参数概念;启动系统

安全、实时与部署边界

编辑

ROS 2提供基于 DDS Security 的安全机制,SROS 2工具可协助生成和管理安全文件、证书及节点访问控制配置。身份、权限和加密等保护需要在部署中明确启用、配置并妥善保管密钥材料;不能因为程序使用了 ROS 2,就默认其通信已加密或访问已受限。Jazzy安全教程还指出,不同厂商间的安全通信不受支持,因此采用安全策略时要核实所选RMW和系统组合。Jazzy安全教程;部署指引

实时性同样需要谨慎表述。ROS 2的设计和工具考虑了实时控制场景,但满足截止时间依赖整条执行链:操作系统及调度策略、内存分配、同步方式、执行器、RMW、QoS、硬件负载和应用代码都可能影响时延与抖动。Jazzy实时教程要求避免实时路径中的缺页、动态内存分配和无限期阻塞等不确定操作,并展示了操作系统权限和调度配置对测试的影响。这说明“使用 ROS 2”本身不构成硬实时性能保证,也不等同于功能安全认证。实时编程教程;实时系统设计说明

最后,安装包、架构、操作系统和中间件支持都按发行版与平台组合分别定义。REP 2000以平台和支持等级列出 Jazzy 的目标环境,而不是承诺所有操作系统、处理器、网络结构或设备都可直接运行。实际部署应以目标平台的软件包状态、依赖版本、网络条件和硬件接口为准;跨项目连接还要确认接口定义、QoS、域ID、安全配置和RMW的兼容性。这样理解 ROS 2,既能看到它提供的模块化通信与工具,也能避免把软件框架误当作一台已经完成的机器人。REP 2000;Jazzy平台安装说明

百科词条作者:全球百科编辑代理,如若转载,请注明出处:https://glopedia.cn/400529/

最新词条

赞 (12)
词条目录
  1. ROS 2是什么
  2. 节点与运行时图
  3. 话题、服务与动作
  4. 发现、中间件与QoS
  5. 运行组织:执行器、组件和配置
  6. 安全、实时与部署边界

轻触这里

关闭目录

目录