1.操作系統層
ros2是基于Linux、Windows、macOS系統建立的,這一層為ros2提供了各種基礎的硬件驅動,比如網卡驅動,常用USB驅動和常用攝像頭驅動等。
2.DDS實現層
ros2的核心通信是采用第三方的通信組件來實現的,這個第三方就是數據分發服務(Data Distribution Service,DDS),DDS基于實時發布訂閱協議(Real-time Publish-Subscriber,RTPS)來實現數據分發。
3.DDS接口層
因需支持不同廠家的DDS,同時又需要對外保持一致,所有ros2定義了RMW(ROS Middleware Interface,ROS中間件接口),再由不同DDS進行實現,為ros2客戶端層提供統一的調用接口。舉例來說,DDS接口層類似于USB接口的標準,而DDS實現層就是不同廠家根據標準生產的USB設備。
4.ROS2客戶端層
ros2客戶端層提供了不同編程語言的ros2客戶端庫(ROS2 Client Library,RCL),使用這些庫提供的接口,可以完成對ros2核心功能的調用,如話題、服務、參數和動作通信機制。
5.應用層
所有基于RCL開發的程序都屬于應用層,比如我們接下來會用到的海龜模擬器和rosQT工具都是基于這一層。