應(yīng)用、相應(yīng)服務(wù)和系統(tǒng)資源; 實時操作系統(tǒng)(17),用于提供機器人實時任務(wù)的服務(wù)和系統(tǒng)資源; 混合操作系統(tǒng)支撐框架(RGMP) (19),用于支撐機器人操作系統(tǒng)和實時操作系統(tǒng)的運行和協(xié)調(diào),將非實時操作系統(tǒng)(13)與實時操作系統(tǒng)(17)同時運行在多核處理器平臺上。2.根據(jù)權(quán)利要求1的機器人混合系統(tǒng),其特征在于: 非實時操作系統(tǒng)(13)與實時操作系統(tǒng)(17)分別占用獨立的內(nèi)存空間, 所述多核處理器平臺是基于ARM/X86架構(gòu)的開放式多核處理器控制板、控制器和/或工控機,其連接的外設(shè)包含非實時硬件部分(14)和實時硬件部分(18), 所述非實時操作系統(tǒng)(13)是Linux,所述實時操作系統(tǒng)(17)是Yuqix。3.根據(jù)權(quán)利要求1的機器人混合系統(tǒng),其特征在于: 混合操作系統(tǒng)支撐框架(RGMP)包括RGMP非實時部分框架(191)和RGMP實時部分框架(192), 非實時操作系統(tǒng)(13)是嵌入式系統(tǒng),運行在RGMP非實時部分框架(191)之上, 實時操作系統(tǒng)(17)運行在RGMP實時部分框架(192)之上。4.根據(jù)權(quán)利要求3的機器人混合系統(tǒng),其特征在于: 非實時操作系統(tǒng)(13)包含操作系統(tǒng)基本的系統(tǒng)庫SYS LIB (131)、C語言庫LIBC (132)、網(wǎng)絡(luò)協(xié)議NET (133)、BOOST庫(134)、非實時操作系統(tǒng)內(nèi)核(135)以及驅(qū)動程序(136),實時操作系統(tǒng)(17)中提供有符合P0SIX標(biāo)準(zhǔn)的系統(tǒng)調(diào)用接口, 實時操作系統(tǒng)(17)包含操作系統(tǒng)基本的系統(tǒng)庫SYS LIB (171)、C語言庫LIBC (172)、網(wǎng)絡(luò)協(xié)議NET (173)、BOOST庫(174)、實時操作系統(tǒng)內(nèi)核(175)以及驅(qū)動程序(176), 實時操作系統(tǒng)(17)和非實時操作系統(tǒng)(13)之間通過混合操作系統(tǒng)支撐框架(RGMP)(19)的VNET虛擬網(wǎng)絡(luò)機制進(jìn)行通信。5.根據(jù)權(quán)利要求4的機器人混合系統(tǒng),其特征在于: 在機器人操作系統(tǒng)(12)之上是使用機器人操作系統(tǒng)標(biāo)準(zhǔn)接口與機器人操作系統(tǒng)工具編寫的非實時機器人操作系統(tǒng)應(yīng)用程序節(jié)點(11); 在實時操作系統(tǒng)(17)之上是供用戶直接編寫或通過RTroscpp軟件框架(16)編寫的實時機器人操作系統(tǒng)應(yīng)用節(jié)點(15)。6.根據(jù)權(quán)利要求4的機器人混合系統(tǒng),其特征在于: 在實時操作系統(tǒng)(17)之上是供用戶使用標(biāo)準(zhǔn)的機器人操作系統(tǒng)函數(shù)接口編寫機器人操作系統(tǒng)實時節(jié)點程序(15)的RTroscpp軟件框架(16)。7.根據(jù)權(quán)利要求4的機器人混合系統(tǒng),其特征在于: 實時操作系統(tǒng)(17)和非實時操作系統(tǒng)(13)分別單獨占用多核處理器的不同處理器核心來運行,它們同時維持各自的應(yīng)用狀態(tài)而不必針對混合操作系統(tǒng)架構(gòu)進(jìn)行優(yōu)化,其運行、調(diào)試均相互獨立, 在混合系統(tǒng)運行時,實時操作系統(tǒng)(17)和非實時操作系統(tǒng)(13)獨立占有各自的硬件資源; 對于共享設(shè)備的調(diào)度,實時操作系統(tǒng)(17)和非實時操作系統(tǒng)(13)通過它們之間的所述通信(通過混合操作系統(tǒng)支撐框架(RGMP) (19)的VNET虛擬網(wǎng)絡(luò)機制進(jìn)行通信)來實現(xiàn)。8.根據(jù)權(quán)利要求7的機器人混合系統(tǒng),其特征在于: 實時操作系統(tǒng)(17)和非實時操作系統(tǒng)(13)之間的所述通信通過混合操作系統(tǒng)支撐框架(RGMP)(19)的VNET虛擬網(wǎng)絡(luò)機制進(jìn)行,并使用機器人操作系統(tǒng)提供機器人操作系統(tǒng)的節(jié)點間通信協(xié)議,由混合操作系統(tǒng)支撐框架(RGMP) (19)為實時操作系統(tǒng)(17)和非實時操作系統(tǒng)(13)之間提供以共享內(nèi)存為基礎(chǔ)的上層通信接口,其中包括:實時與非實時系統(tǒng)之間的標(biāo)準(zhǔn)TCP/IP協(xié)議棧; —實時系統(tǒng)調(diào)試信息打印管道;3個用戶自定義接口, 且實時操作系統(tǒng)(17)和非實時操作系統(tǒng)(13)分別使用計算機內(nèi)存中不同的內(nèi)存地址段, 實時操作系統(tǒng)(17)和非實時操作系統(tǒng)(13)之間外部設(shè)備中斷相互獨立,無共享,中斷通過所述ARM/X86多核處理器中提供的中斷路由器進(jìn)行獨立分配,實時操作系統(tǒng)(17)和非實時操作系統(tǒng)(13)均使用標(biāo)準(zhǔn)的機器人操作系統(tǒng)編程與通信接口,在整個機器人系統(tǒng)中應(yīng)用和控制程序都是以標(biāo)準(zhǔn)機器人操作系統(tǒng)節(jié)點的形式運行,可以由機器人操作系統(tǒng)統(tǒng)一管理,節(jié)點之間通過機器人操作系統(tǒng)標(biāo)準(zhǔn)通信接口進(jìn)行通信,原來運行在機器人操作系統(tǒng)(12)上的不依賴第三方函數(shù)庫的節(jié)點程序可被直接放置到實時操作系統(tǒng)(17)運行, 實時應(yīng)用在實時操作系統(tǒng)(17)上被編寫,通過實時總線連接電機驅(qū)動器等實時外設(shè),完成包括復(fù)雜電機運動控制在內(nèi)的實時性要求高的任務(wù)。9.根據(jù)權(quán)利要求7的機器人混合系統(tǒng),其特征在于進(jìn)一步包括: 底層控制器部分,包括:語音傳感器、視覺傳感器、超聲傳感器、溫度傳感器、絕對編碼器、相對編碼器、電機驅(qū)動器(單元)、實時以太網(wǎng)口、無線網(wǎng)絡(luò)Wifi網(wǎng)口,其中: —絕對編碼器與相對編碼器存在于電機驅(qū)動器當(dāng)中,所有的電機驅(qū)動器通過CAN接口的方式串聯(lián)連接;語音傳感器與視覺傳感器通過USB接口與所述ARM/X86多核處理器(21)相連接,其中視覺傳感器由實時操作系統(tǒng)(17)控制; —實時以太網(wǎng)口與無線網(wǎng)絡(luò)Wifi網(wǎng)口支持機器人的分布式運算與遠(yuǎn)程控制,用于通過有線與無線的方式與遠(yuǎn)端計算機相連,從而實現(xiàn)局域網(wǎng)或者是廣域網(wǎng)的網(wǎng)絡(luò)通信,形成分布式控制系統(tǒng)。10.根據(jù)權(quán)利要求3的機器人混合系統(tǒng),其特征在于: 非實時操作系統(tǒng)(13)根據(jù)不同的機器人控制應(yīng)用需求,運行不同功能的機器人操作系統(tǒng)實時節(jié)點,包括:位置閉環(huán)控制單元(2408)、電流控制單元(2410)、插補解算單元(2409)、位置控制單元(2411),以及不同功能的機器人操作系統(tǒng)非實時節(jié)點,包括:語音處理單元(2401)、圖像處理單元(2403)、語音識別單元(2402)、三維建模單元(2404)、物體識別單元(2405)、建圖導(dǎo)航單元(2406), 實時操作系統(tǒng)(17)中的運動控制以不同的線程進(jìn)行功能區(qū)分,其中 主線程(31)為實時機器人操作系統(tǒng)節(jié)點線程,負(fù)責(zé)建立符合機器人操作系統(tǒng)通信協(xié)議的實時節(jié)點,負(fù)責(zé)機器人電機的初始化以及實時操作系統(tǒng)(17)與非實時操作系統(tǒng)(13)上運行的機器人操作系統(tǒng)節(jié)點之間的通信,負(fù)責(zé)實時與非實時節(jié)點之間的通信,并把消息分發(fā)到其余的各個線程, CAN總線收發(fā)線程(34)用于發(fā)送和讀取從CAN總線設(shè)備描述符中獲得的CAN總線(23)的數(shù)據(jù),并把相關(guān)的數(shù)據(jù)實時發(fā)布到其它線程(36), 運動控制線程(32)用于設(shè)置機器人的初始位置姿態(tài),同時實現(xiàn)針對運動單元動作的精細(xì)插補, 在發(fā)送運動控制指令之后,閉環(huán)控制線程(33)讀取目前機器人各個運動關(guān)節(jié)的狀態(tài),若運動單元節(jié)沒有到達(dá)控制指令所要求到達(dá)的位置,閉環(huán)控制線程(33)會重發(fā)并修正當(dāng)前運動單元的位置姿態(tài), 實時系統(tǒng)中具有監(jiān)控線程(35)負(fù)責(zé)在CAN總線(23)空閑時讀取機器人的運行姿態(tài),以保證運動控制的正常運行,同時讀取各個運動單元上的傳感器數(shù)據(jù)信息,以及控制板上的任務(wù)狀態(tài)標(biāo)志。11.根據(jù)權(quán)利要求4的機器人混合系統(tǒng),其特征在于進(jìn)一步包括: 全局中斷路由模塊(45), 其中, 支撐非實時應(yīng)用節(jié)點組(41)的非實時操作系統(tǒng)內(nèi)核(135)與支撐實時應(yīng)用節(jié)點組(42)的實時操作系統(tǒng)內(nèi)核(175)利用共享內(nèi)存(43)通信,并分別通過全局中斷路由模塊(45)獲得各自的外部設(shè)備(44和46)的中斷, 外部設(shè)備(44和46)的中斷號分別通過配置的方式控制全局中斷路由模塊(45)將固定的中斷號路由到相應(yīng)的所述ARM/X86多核處理器中,從而有效地保證中斷的響應(yīng)的實時性。
【專利摘要】本發(fā)明描述了一種基于多核處理器架構(gòu)的機器人混合系統(tǒng)應(yīng)用框架。在采用ARM/X86多核處理器作為控制器的機器人系統(tǒng)中,利用ARM/X86多核處理器的多核并行處理結(jié)構(gòu),在整個機器人控制器同時運行由實時操作系統(tǒng)、非實時操作系統(tǒng)、系統(tǒng)支撐框架組成的機器人混合系統(tǒng)應(yīng)用框架,來提供改進(jìn)的操作系統(tǒng)服務(wù)。在該應(yīng)用框架中,一個實時操作系統(tǒng)單獨運行在其中一個ARM/X86核中,同時若干個非實時操作系統(tǒng)運行在其它ARM/X86核中,操作系統(tǒng)間彼此單獨占用處理器資源與外設(shè),分別運行不同實時性要求的機器人應(yīng)用程序,應(yīng)用程序可以以統(tǒng)一的機器人操作系統(tǒng)(ROS)應(yīng)用節(jié)點形式使用(圖1)。
【IPC分類】G06F9/44
【公開號】CN105278940
【申請?zhí)枴緾N201410324304
【發(fā)明人】魏洪興, 鄒瑩, 陳友東, 劉淼, 黃真
【申請人】北京航空航天大學(xué)
【公開日】2016年1月27日
【申請日】2014年7月8日