在《ROS2源码下载与编译》一文中,我们下载了ROS2的源码,并分析了代码的目录结构。本文将继续分析ROS2代码的软件架构设计
1. 核心模块(代码仓库)
模块(仓库) | 模块名称 | 主要功能 |
---|---|---|
ros2/ros2 |
元仓库 | ROS2仓库的工作空间和子仓库管理文件(.repos ) |
ros2/rcl |
ROS Client Library(C语言实现层) | ROS Client 库的核心实现,由C语言编写。 |
ros2/rclcpp |
ROS Client Library(C++接口层) | ROS Client 库的C++封装接口,由C++编写,基于rcl实现。 |
ros2/rclpy |
ROS Client Library(Python接口层) | ROS Client 库的Python封装接口,由Python编写,基于rcl实现。 |
ros2/rmw |
(通信)中间件接口 | ROS通信模块的中间件接口,也就是遵循DDS(Data Distribution Service )标准和规范的通信接口。 |
eProsima/Fast-DDS |
Fast-DDS实现库 | 中间件接口的一种实现,有eProsima团队开发和维护 |
eclipse-cyclonedds/cyclonedds |
CyCloneDDS实现库 | 中间件接口的一种实现,有eclipse团队开发和维护 |
ros2/rosidl |
ROS接口定义 | 负责统一管理ROS 2的接口定义(如.msg、.srv、.action),并通过代码生成工具将这些接口转换为多语言支持的代码(如C++、Python)和DDS兼容的IDL文件。 |
ros2/ros2cli |
命令行工具 | 常用的ROS命令如:ros2 node 、ros2 topic 、ros2 service 等的实现。 |
2. 软件架构
