Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

在《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 noderos2 topicros2 service等的实现。

2. 软件架构

推荐阅读
ROS2常用命令 ROS2常用命令 Ubuntu安装ROS2 Ubuntu安装ROS2 ROS2中ROS_DOMAIN_ID的作用与配置 ROS2中ROS_DOMAIN_ID的作用与配置

评论