一種基于多核處理器架構(gòu)的機(jī)器人混合系統(tǒng)應(yīng)用框架的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于機(jī)器人領(lǐng)域,涉及一種基于多核處理器架構(gòu)的機(jī)器人混合系統(tǒng)應(yīng)用框架。
【背景技術(shù)】
[0002]機(jī)器人控制是機(jī)器人研究的一個(gè)重要領(lǐng)域,其對(duì)應(yīng)用程序的需求日趨復(fù)雜,并伴隨著使用各種實(shí)時(shí)與非實(shí)時(shí)操作系統(tǒng)來(lái)提供系統(tǒng)支持。程序員需要使用操作系統(tǒng)提供的豐富編程資源編寫(xiě)機(jī)器人控制程序,同時(shí)也需要操作系統(tǒng)提供的實(shí)時(shí)性支持?;贚inux的機(jī)器人操作系統(tǒng)(Robotic Operating System, R0S)就是為了提高機(jī)器人開(kāi)發(fā)效率所誕生的開(kāi)源操作系統(tǒng),但Linux的非實(shí)時(shí)特性限制了機(jī)器人操作系統(tǒng)R0S在機(jī)器人實(shí)時(shí)控制領(lǐng)域的應(yīng)用。而目前市場(chǎng)上有眾多的實(shí)時(shí)操作系統(tǒng),由于相對(duì)通用操作系統(tǒng)來(lái)說(shuō),它們大多都是功能單一,系統(tǒng)應(yīng)用資源少,難以方便實(shí)現(xiàn)復(fù)雜的應(yīng)用。機(jī)器人開(kāi)發(fā)者需要在滿足實(shí)時(shí)性的同時(shí)能夠高效地開(kāi)發(fā)出機(jī)器人應(yīng)用程序。
【發(fā)明內(nèi)容】
[0003]為了解決現(xiàn)有的技術(shù)問(wèn)題,本發(fā)明提供一種基于多核處理器架構(gòu)的機(jī)器人混合系統(tǒng)應(yīng)用框架。該框架可以應(yīng)用于各種基于ARM/X86多核架構(gòu)的機(jī)器人控制器中,在保證實(shí)時(shí)性要求的同時(shí),能夠大幅度提高機(jī)器人控制軟件的開(kāi)發(fā)效率,并降低集成開(kāi)發(fā)成本。
[0004]此應(yīng)用框架主要由三個(gè)部分組成,機(jī)器人操作系統(tǒng)R0S,實(shí)時(shí)操作系統(tǒng),混合操作系統(tǒng)支撐框架 RGMP(RT0S and GPOS on Mult1-Processor)。
[0005]-機(jī)器人操作系統(tǒng)R0S(含支持機(jī)器人操作系統(tǒng)R0S的非實(shí)時(shí)操作系統(tǒng),通常是Linux),用于提供基本的機(jī)器人應(yīng)用、相應(yīng)服務(wù)和系統(tǒng)資源。
[0006]-實(shí)時(shí)操作系統(tǒng),用于提供機(jī)器人實(shí)時(shí)任務(wù)的服務(wù)和系統(tǒng)資源。
[0007]-混合操作系統(tǒng)支撐框架RGMP,用于支撐機(jī)器人操作系統(tǒng)R0S和實(shí)時(shí)操作系統(tǒng)的運(yùn)行和協(xié)調(diào)。
[0008]RGMP是一個(gè)在多核處理器上支持實(shí)時(shí)操作系統(tǒng)和非實(shí)時(shí)操作系統(tǒng)并行運(yùn)行的開(kāi)源支撐框架,它利用SMP (對(duì)稱多核體系結(jié)構(gòu))計(jì)算機(jī)的中斷路由器獨(dú)立分配實(shí)時(shí)操作系統(tǒng)和非實(shí)時(shí)操作系統(tǒng)的中斷資源,可以自然地將這些操作系統(tǒng)分別并行運(yùn)行在各處理器核心上,合理分配處理資源,減小系統(tǒng)耦合,并避免了傳統(tǒng)的共享式混合操作系統(tǒng)因同處一個(gè)處理器核心而帶來(lái)的資源競(jìng)爭(zhēng)和切換問(wèn)題。RGMP開(kāi)源源碼及文檔見(jiàn)【1】,即:
[0009]http://rgmp.sourceforge.net/wiki/index.php/Main_Page
[0010]混合操作系統(tǒng)支撐框架RGMP包括以下四個(gè)系統(tǒng)布置內(nèi)容部分:
[0011]---用戶通過(guò)實(shí)時(shí)應(yīng)用框架RTroscpp實(shí)現(xiàn)快速開(kāi)發(fā)實(shí)時(shí)機(jī)器人控制程序(可選)。
[0012]—非實(shí)時(shí)系統(tǒng)與實(shí)時(shí)系統(tǒng)分別單獨(dú)占用多核處理器的不同CPU核心,它們可同時(shí)維持各自的應(yīng)用狀態(tài)而不必針對(duì)混合操作系統(tǒng)架構(gòu)進(jìn)行優(yōu)化,其運(yùn)行、調(diào)試均相互獨(dú)立。
[0013]—在混合系統(tǒng)運(yùn)行時(shí),實(shí)時(shí)與非實(shí)時(shí)操作系統(tǒng)獨(dú)立占有各自的硬件資源。
[0014]—對(duì)于共享設(shè)備的調(diào)度通過(guò)它們之間的通信來(lái)實(shí)現(xiàn)。
[0015]本發(fā)明中,實(shí)時(shí)系統(tǒng)與非實(shí)時(shí)系統(tǒng)之間使用機(jī)器人操作系統(tǒng)提供R0S的節(jié)點(diǎn)間通信協(xié)議,由RGMP為兩個(gè)系統(tǒng)之間提供以共享內(nèi)存為基礎(chǔ)的上層通信接口,其中包括:
[0016]---實(shí)時(shí)與非實(shí)時(shí)系統(tǒng)之間的標(biāo)準(zhǔn)TCP/IP協(xié)議棧;
[0017]—實(shí)時(shí)系統(tǒng)調(diào)試信息打印管道;
[0018]3個(gè)用戶自定義接口。
[0019]本發(fā)明中應(yīng)用框架的幾個(gè)特征包括:
[0020]—實(shí)時(shí)與非實(shí)時(shí)系統(tǒng)分別使用計(jì)算機(jī)內(nèi)存中不同的內(nèi)存地址段。
[0021]---系統(tǒng)間外部設(shè)備中斷相互獨(dú)立,無(wú)共享,中斷通過(guò)ARM/X86多核中提供的中斷路由器進(jìn)行獨(dú)立分配。
[0022]—實(shí)時(shí)系統(tǒng)與非實(shí)時(shí)系統(tǒng)均使用標(biāo)準(zhǔn)的R0S編程與通信接口,在整個(gè)機(jī)器人系統(tǒng)中應(yīng)用和控制程序都是以標(biāo)準(zhǔn)R0S節(jié)點(diǎn)的形式運(yùn)行,可以由R0S統(tǒng)一管理,節(jié)點(diǎn)之間通過(guò)R0S標(biāo)準(zhǔn)通信接口進(jìn)行通信。
[0023]—用戶可以將原來(lái)運(yùn)行在R0S上的不依賴第三方函數(shù)庫(kù)的節(jié)點(diǎn)程序直接放置到實(shí)時(shí)系統(tǒng)運(yùn)行。用戶使用R0S機(jī)器人操作系統(tǒng)編寫(xiě)的機(jī)器人應(yīng)用程序可以在實(shí)時(shí)或者非實(shí)時(shí)設(shè)備上運(yùn)行。
[0024]—用戶可以利用R0S提供的應(yīng)用資源,使用本發(fā)明對(duì)R0S應(yīng)用進(jìn)行的有效擴(kuò)展。其中:
[0025]對(duì)于高復(fù)雜度的,同時(shí)對(duì)實(shí)時(shí)性要求較低的功能節(jié)點(diǎn),通過(guò)以太網(wǎng)的方式將其運(yùn)行在裝有R0S標(biāo)準(zhǔn)機(jī)器人操作系統(tǒng)的服務(wù)器當(dāng)中。
[0026]運(yùn)行在非實(shí)時(shí)系統(tǒng)上的應(yīng)用程序與運(yùn)行在實(shí)時(shí)系統(tǒng)上的機(jī)器人控制程序使用R0S提供的標(biāo)準(zhǔn)通信接口進(jìn)行信息交互。
[0027]在使用本發(fā)明時(shí),應(yīng)用程序在非實(shí)時(shí)操作系統(tǒng)部分可直接利用R0S本身的相關(guān)軟件資源,如人機(jī)交互、語(yǔ)音識(shí)別、三維建模、建圖導(dǎo)航等任務(wù),也可以獨(dú)立編寫(xiě)程序;在實(shí)時(shí)系統(tǒng)部分編寫(xiě)實(shí)時(shí)應(yīng)用,通過(guò)采用實(shí)時(shí)總線(如CAN(控制器局域網(wǎng)Controller AreaNetwork)總線、倍孚公司EtherCAT總線等)連接電機(jī)驅(qū)動(dòng)器,完成復(fù)雜電機(jī)運(yùn)動(dòng)控制和其他實(shí)時(shí)性要求較高的任務(wù)。
[0028]根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于多核處理器架構(gòu)的機(jī)器人混合系統(tǒng),其特征在于包括:
[0029]機(jī)器人操作系統(tǒng),其包含含支持機(jī)器人操作系統(tǒng)的非實(shí)時(shí)操作系統(tǒng),用于提供基本的機(jī)器人應(yīng)用、相應(yīng)服務(wù)和系統(tǒng)資源;
[0030]實(shí)時(shí)操作系統(tǒng),用于提供機(jī)器人實(shí)時(shí)任務(wù)的服務(wù)和系統(tǒng)資源;
[0031]混合操作系統(tǒng)支撐框架(RGMP),用于支撐機(jī)器人操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng)的運(yùn)行和協(xié)調(diào),將非實(shí)時(shí)操作系統(tǒng)與實(shí)時(shí)操作系統(tǒng)同時(shí)運(yùn)行在多核處理器平臺(tái)上。
[0032]根據(jù)一個(gè)進(jìn)一步的方面,在上述機(jī)器人混合系統(tǒng)中,非實(shí)時(shí)操作系統(tǒng)與實(shí)時(shí)操作系統(tǒng)分別占用獨(dú)立的內(nèi)存空間,所述多核處理器平臺(tái)是基于ARM/X86架構(gòu)多核處理器的控制板、控制器和/或工控機(jī)等,所述非實(shí)時(shí)操作系統(tǒng)可以是Linux,所述實(shí)時(shí)操作系統(tǒng)可以是 Yuqix0
【附圖說(shuō)明】
[0033]圖1為本發(fā)明的總體組成結(jié)構(gòu)圖。
[0034]圖2為本發(fā)明的典型控制應(yīng)用示例的連接圖。
[0035]圖3為本發(fā)明的典型應(yīng)用示例中運(yùn)動(dòng)控制部分的流程圖。
[0036]圖4為本發(fā)明基于CorteX-A9雙核處理器平臺(tái)的中斷資源分配圖。
【具體實(shí)施方式】
[0037]下面結(jié)合附圖用示例詳細(xì)說(shuō)明本發(fā)明技術(shù)方案中所涉及的各個(gè)細(xì)節(jié)問(wèn)題,應(yīng)指出的是,所描述的實(shí)例僅旨在便于對(duì)本發(fā)明的理解,而對(duì)其不起任何限定作用。
[0038]雖然本申請(qǐng)對(duì)具體實(shí)施例的說(shuō)明,主要是結(jié)合Linux非實(shí)時(shí)操作系統(tǒng)和Yuqix實(shí)時(shí)操作系統(tǒng)進(jìn)行描述的,但可應(yīng)用本發(fā)明的非實(shí)時(shí)操作系統(tǒng)與實(shí)時(shí)操作系統(tǒng),不僅限于Linux非實(shí)時(shí)操作系統(tǒng)和Yuqix實(shí)時(shí)操作系統(tǒng),而是可以適用于任何其他的非實(shí)時(shí)操作系統(tǒng)和/或?qū)崟r(shí)操作系統(tǒng)。
[0039]請(qǐng)參閱圖1所示的本發(fā)明的一種基于多核處理器架構(gòu)的機(jī)器人混合系統(tǒng)應(yīng)用框架的總體組成結(jié)構(gòu)圖,該機(jī)器人混合系統(tǒng)應(yīng)用框架通過(guò)混合操作系統(tǒng)框架RGMP19將Linux系統(tǒng)13與Yuqix實(shí)時(shí)系統(tǒng)17這兩種不同系統(tǒng)同時(shí)運(yùn)行在基于ARM架構(gòu)的、包含非實(shí)時(shí)設(shè)備14和實(shí)時(shí)設(shè)備18的多核處理器平臺(tái)上;Linux系統(tǒng)13與Yuqix實(shí)時(shí)系統(tǒng)17分別占用獨(dú)立的內(nèi)存空間。
[0040]Linux系統(tǒng)13是嵌入式系統(tǒng),包含操作系統(tǒng)基本的系統(tǒng)庫(kù)SYS LIB131、C語(yǔ)言庫(kù)LIBC132、網(wǎng)絡(luò)協(xié)議NET133、BOOST庫(kù)134、Linux內(nèi)核135以及驅(qū)動(dòng)程序136等必要模塊,運(yùn)行在RGMP (非實(shí)時(shí)部分)框架191之上,在Linux系統(tǒng)13上層運(yùn)行的是機(jī)器人操作系統(tǒng)R0S12。在R0S12之上是使用R0S標(biāo)準(zhǔn)接口與R0S工具編寫(xiě)的非實(shí)時(shí)R0S應(yīng)用程序節(jié)點(diǎn)11。
[0041]另一方面,Yuqix實(shí)時(shí)操作系統(tǒng)17中提供了大量符合P0SIX標(biāo)準(zhǔn)的系統(tǒng)調(diào)用接口,它也包含操作系統(tǒng)基本的系統(tǒng)庫(kù)SYS LIB171、C語(yǔ)言庫(kù)LIBC172、網(wǎng)絡(luò)協(xié)議NET173、BOOST庫(kù)174、Yuqix內(nèi)核175以及驅(qū)動(dòng)程序176等必要模塊。在Yuqix實(shí)時(shí)系統(tǒng)17之上,用戶可以直接編寫(xiě)實(shí)時(shí)R0S應(yīng)用節(jié)點(diǎn)15,也可以依賴RTroscp