RGMP 是一個利用多核架構實現的實時與非實時操作d立運行的混合操作 系統框架,如圖2-3所示。通用操作系統(Linux) 和實時操作系統(RTOS) 在 各自的 CPU 上d立執行。I/O 設備被分成實時設備和非實時設備,分別被實時 操作系統和非實時操作系統控制。中斷控制器被用作中斷路由器,將兩種設備 的中斷信號路由到相應的操作系統。其中, RTOS 接受實時中斷,如電機驅動、 傳感器等產生的中斷信號;Linux 接受非實時中斷,如人機交互、顯示等中斷信 息。實時操作系統和通用操作系統都完全控制自己的 CPU, 所以沒有多余的軟 件層需要介入到操作系統和硬件之間。硬件中斷被每個操作系統直接處理。同 時各個操作系統d立運行在各自的CPU 上不僅解決了CPU 共享問題,還能確保 操作系統之間不會相互影響。
Nuttx 是一個實時嵌入式操作系統,它小巧靈活,適合在微控制器的環境中使 用,并且具有較好的可擴展性,能夠支持從小型(8位)至中型(32位)嵌入式系 統 。Nuttx 以完全符合標準、完全實時和完全開放為發展目標,提供了機器人操作 系統所需的常用功能:UIP 協議棧、Shell、基本C 庫、簡單的幾個C++庫等。為了 解決ROS 實時性能不足的問題,基于上述技術要點,利用RGMP 本身混合操作系 統架構的優點,通過將Nuttx 實時操作系統移植到RGMP 的實時部分,實現了基本 混合操作系統的構建,創造了一個滿足實時性需要的 ROS 混合機器人操作系統 RGMP-ROS。
RGMP-ROS的系統框圖如圖2-4所示,整個機器人混合操作系統由兩個部分組 成:一個是安裝在Linux 上的標準ROS 系統,另一個是運行在實時操作系統Nuttx 上的實時ROS 系統。我們將運行在Linux 上的ROS 功能節點稱為非實時ROS 節點, 運行在實時系統上的ROS 節點稱為ROS 實時節點,它們運行在各自的操作系統之 上。實時與非實時節點之間通過RGMP 提供的VNET 管道進行通信。實時ROS 節 點運行在Nuttx 之上,能夠通過標準的ROS 通信協議實現實時節點與實時節點、實 時節點與非實時節點之間的通信,并且傳遞符合ROS 協議規范的消息。實時節點 通過Nuttx 驅動與Nuttx 系統內核和實時系統掛載的外部設備進行交互,以達到控 制實時設備的目的。為了保證實時性,GPOS 與 RTOS 各自擁有d立的外設。
![]() |
| 機器人底盤 Disinfection Robot 消毒機器人 講解機器人 迎賓機器人 移動機器人底盤 商用機器人 智能垃圾站 智能服務機器人 大屏機器人 霧化消毒機器人 展廳機器人 服務機器人底盤 具身智能教育機器人 智能配送機器人 導覽機器人 |