上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系统架构