ROS2整体框架概述
ROS2是一个用于机器人应用开发的框架,它提供了通信、硬件抽象、状态管理、包管理等一系列功能。ROS2的架构可以大致分为几个关键层次:
-
操作系统层:
- ROS2本身是基于Linux、Windows、Mac或RTOS等操作系统构建的。这一层负责驱动计算机硬件、底层网络通信等实现。
-
DDS实现层:
- 数据分发服务(DDS, Data Distribution Service)是ROS2通信机制的核心。DDS是一种去中心化的数据通讯方式,由对象管理组(OMG)发布。ROS2内部提供了DDS的抽象层实现,可以使用多种DDS的实现,如Fast-DDS、Cyclone-DDS等。
-
ROS2中间件层:
- 这一层主要由客户端库(如rclcpp、rclpy等)、DDS抽象层与进程内通讯API构成。客户端库提供了对ROS2话题、服务、参数、Action等接口的访问能力。
-
应用层:
- 应用层是开发者构建机器人应用程序的地方。在ROS2中,应用程序以功能包(package)为核心,功能包中包含源码、数据定义、接口等内容。开发者通过实现具有特定功能的功能包来构建机器人应用程序。
ROS2文件系统结构
从文件系统的角度来看,ROS2的工作空间(Workspace)是组织代码和文件的基本单