第 1 层:操作系统层
作为 ROS2 运行的物理底座,负责管理 Linux 系统下的硬件驱动、网络协议栈、传感器与执行器驱动,以及整机硬件资源调度。所有硬件交互、数据收发最终都要通过操作系统的系统调用来完成;同时它也屏蔽了不同操作系统间的差异,保障上层代码具备跨平台兼容能力。

第 2 层:DDS 实现层
这是 ROS2 分布式通信的核心引擎,默认采用 Fast DDS 作为实现方案,底层基于 RTPS 协议运行。它承担了节点自动发现、数据可靠分发、跨设备通信、QoS 服务质量管控等核心能力,是支撑机器人多节点、多设备之间高效数据交互的 “通信发动机”。

第 3 层:DDS 接口层
也叫 RMW(ROS 中间件抽象)层,核心作用是解耦与统一标准。它将不同厂商 DDS 的差异化接口封装成 ROS2 统一的标准接口,让上层代码无需修改即可切换底层 DDS 实现;同时统一定义了话题、服务、动作的消息格式规范与 QoS 策略,保证整个 ROS2 通信体系的标准一致。

第 4 层:ROS2 客户端层
这是开发者日常开发最常接触的功能入口层,包含面向 C++ 的 rclcpp、面向 Python 的 rclpy 等开发库,基于底层 RCL 核心库封装,提供了调用 ROS2 核心能力的统一 API。同时还配套了 Launch 启动管理工具、RViz2 三维可视化工具、RQT 图形化调试工具集,覆盖了从代码开发到运行调试的全流程需求。

第 5 层:应用层
位于架构最顶端的业务逻辑层,用户编写的所有功能代码都运行在这一层。它以节点为基本功能单元,通过话题、服务、动作、参数四种核心通信机制实现不同节点间的协作,最终搭建出视觉识别、运动控制、自主导航等具体的机器人应用,是开发者实现业务功能的核心区域。
                     

 本文部分文字内容经 AI 辅助优化

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐