ROS 2机器人开发:从入门到实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.2 ROS 2系统架构

为了让你更加了解ROS 2,我们先来看一下它的系统架构。ROS 2的系统架构可以分为5层:操作系统层、DDS实现层、DDS接口层、ROS 2客户端层和应用层。

1.操作系统层

ROS 2是基于Linux、Windows和macOS系统建立的,这一层为ROS 2提供了各种基础硬件的驱动,比如网卡驱动、常用USB驱动和常用摄像头驱动等。

2.DDS实现层

前面曾说ROS 2的核心通信是采用第三方的通信组件来实现的,这个第三方就是数据分发服务(Data Distribution Service,DDS),DDS基于实时发布订阅协议(Real-time Publish-Subscribe,RTPS)来实现数据分发。

3.DDS接口层

因为要支持不同厂家的DDS,同时又需要对外保持一致,所以ROS 2定义了RMW(ROS Middleware Interface,ROS中间件接口),再由不同DDS进行实现,为ROS 2客户端层提供统一的调用接口。举例来说,DDS接口层类似于USB接口的标准,而DDS实现层就是不同厂家根据标准生产的USB设备。

4.ROS 2客户端层

ROS 2客户端层提供了不同编程语言的ROS 2客户端库(ROS 2 Client Library,RCL),使用这些库提供的接口,可以完成对ROS 2核心功能的调用,如话题、服务、参数和动作通信机制。

5.应用层

所有基于RCL开发的程序都属于应用层,比如我们接下来会用到的海龟模拟器和ROS QT工具就都是基于这一层的。当然,后续我们自己开发的机器人应用也属于这一层。

好了,了解完ROS 2的架构,结合图1-3,相信你会有更好的理解。

图1-3 ROS 2系统架构