基于RT-Linux機(jī)器人控制系統(tǒng)實時性的研究_第1頁
基于RT-Linux機(jī)器人控制系統(tǒng)實時性的研究_第2頁
基于RT-Linux機(jī)器人控制系統(tǒng)實時性的研究_第3頁
基于RT-Linux機(jī)器人控制系統(tǒng)實時性的研究_第4頁
基于RT-Linux機(jī)器人控制系統(tǒng)實時性的研究_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于 RT-Linux 機(jī)器人控制系統(tǒng)實時性的研究摘要本文結(jié)合 實時系統(tǒng)與控制 這門課的知識, 對提高機(jī)器人控制系統(tǒng)的實時性做深入探討,主要是在了解機(jī)器人實時控制系統(tǒng)的運行調(diào)度與運行管理機(jī)制的情況下,探討基于RT-Linux平臺下提高機(jī)器人控制系統(tǒng)實時性的可能性,從任務(wù)調(diào)度的可搶占性及低延遲中斷處理等角度來分析和論證該方案的有效性,同時在此基礎(chǔ)上劃分機(jī)器人控制系統(tǒng)任務(wù),達(dá)到進(jìn)一步提高系統(tǒng)的實時性性能的目的。最后我們對理論分析進(jìn)行簡單的實驗驗證,以希望對機(jī)器人控制系統(tǒng)實時性提高有一個初步認(rèn)識,為以后更深入的研究打下基礎(chǔ)。關(guān)鍵詞:機(jī)器人;實時性; RT-Linux ;劃分任務(wù)1 引言隨著仿人機(jī)器人

2、技術(shù)的高速發(fā)展,機(jī)器人能夠?qū)崿F(xiàn)的功能也越來越強(qiáng)大,這無疑對機(jī)器人控制器的信息處理速度提出了更高的要求,如何在現(xiàn)有的條件下,進(jìn)一步提高機(jī)器人控制系統(tǒng)的實時性已然成為國內(nèi)外研究機(jī)器人技術(shù)的一個很重要的課題。 由于本人對機(jī)器人控制很感興趣, 所以希望能夠?qū)⑺鶎W(xué) 實時系統(tǒng)與控制 的理論知識與該領(lǐng)域的研究熱點結(jié)合起來,從提高系統(tǒng)實時性的角度探討如何完善機(jī)器人控制系統(tǒng)。2 需求分析:實時系統(tǒng)是能夠在確定的時間內(nèi)執(zhí)行計算或處理事務(wù)并對外部事件作出響應(yīng)的計算機(jī)系統(tǒng)。 仿人機(jī)器人是一個典型的實時系統(tǒng), 對工業(yè)機(jī)器人控制來說, 尤其在遠(yuǎn)程機(jī)器人控制中,如果不能很好地滿足系統(tǒng)所需的實時性要求, 它的很多功能就失去了

3、意義。 以圖 1 所示遠(yuǎn)程機(jī)器人控制器的系統(tǒng)為例:圖 1 遠(yuǎn)程機(jī)器人監(jiān)控系統(tǒng)該系統(tǒng)中的機(jī)器人控制器運行于一臺Penrium 工業(yè)控制微型計算機(jī)(IPC) 上。在該 IPC上安裝了位置控制卡, 其輸出直接與機(jī)器人伺服電機(jī)驅(qū)動器相連, 由其直接驅(qū)動機(jī)器人本體上的伺服電機(jī)來完成相應(yīng)的動作。圖形仿真與監(jiān)控系統(tǒng)運行于另一臺微機(jī)上。PT2600 機(jī)器人共有五軸 , 它有兩塊 PCL2832 三軸多功能位置卡, 如果位置誤差反饋計數(shù)超過閾值, 說明機(jī)器人運動異常 ,三軸位置控制卡以毫秒級發(fā)出DDA 中斷請求。對 DDA 中斷的響應(yīng)的快慢是決定整個機(jī)器人控制器實時性能的關(guān)鍵指標(biāo)。我們必須及時響應(yīng)這個中斷 ,

4、以保證機(jī)器人的安全運行。3 問題提出對機(jī)器人控制系統(tǒng)的中斷的響應(yīng)速度一定程度上決定了該系統(tǒng)的實時性的性能,該系統(tǒng)是由多個環(huán)節(jié)組成,其他環(huán)節(jié)的處理速度也會對系統(tǒng)的實時性產(chǎn)生一定的影響,才能全面提高該機(jī)器人控制系統(tǒng)的實時性呢?又由于怎樣4 問題分析:提高該系統(tǒng)實時響應(yīng)速度的方法可以針對系統(tǒng)各個環(huán)節(jié)有所不同,但總的來說, 都可以通過優(yōu)化系統(tǒng)的軟、硬件結(jié)構(gòu)使之得到改善。硬件角度:( 1)Linux 是一個典型的分時多任務(wù)操作系統(tǒng) , 所以我們要尋找一種實時操作系統(tǒng)既具備Linux 的優(yōu)點又能夠達(dá)到機(jī)器人控制的實時性要求;( 2)采用多線程機(jī)制將機(jī)器人控制器的功能加以劃分。軟件角度: 研究適合機(jī)器人控制

5、需要的實時調(diào)度算法,進(jìn)一步來提升它的實時性。本文主要從硬件方面,提出并實現(xiàn)一種將RT-Linux 與 Linux 結(jié)合的控制系統(tǒng),并在此基礎(chǔ)上采用多線程機(jī)制將機(jī)器人控制器的功能加以劃分來提高機(jī)器人控制的實時性。5 研究過程5.1 RT-Linux 平臺對實時性的提高5.1.1 Linux 在實時性上的弱點Linux雖然具備很多有利于工業(yè)機(jī)器人控制的優(yōu)點, 但是它是一個分時操作系統(tǒng), 所以在實時性上有著同Windows 相類似的欠缺。 Linux 不能滿足實時性的主要原因來自于Linux的分時調(diào)度機(jī)制和核心的不可搶占性,主要由以下兩點:a.Linux采用時間片輪轉(zhuǎn)的方式來調(diào)度CPU 時間 , 這

6、種方法是不利于實時進(jìn)程的。時間片輪轉(zhuǎn)調(diào)度方法使實時進(jìn)程的執(zhí)行受到系統(tǒng)復(fù)雜性和不可預(yù)測性的影響, 同時也受到其它進(jìn)程的影響。b. 運行在內(nèi)核模式下的Linux進(jìn)程是不能被其它進(jìn)程搶占的, 也就是說 , 一旦一個進(jìn)程進(jìn)行系統(tǒng)調(diào)用進(jìn)入了核心態(tài), 除非系統(tǒng)調(diào)用結(jié)束或者進(jìn)程本身被阻塞, 它將一進(jìn)運行下去。 即使是優(yōu)先級比進(jìn)入核心態(tài)的進(jìn)程高的進(jìn)程, 也不得不等待。但是一個系統(tǒng)調(diào)用可能會進(jìn)行很長時間 , 這對于某些實時進(jìn)程是不可容忍的。還有一點就是標(biāo)準(zhǔn)Linux內(nèi)核使用禁止中斷的方法作為同步機(jī)制,通過向 x86處理器送“ sti ”、“ cli ”、“ iret ”宏指令來開中斷、關(guān)中斷及中斷返回。由于開中

7、斷和關(guān)中斷的混合使用使得中斷的分派延時不可預(yù)測。5.1.2 RT-Linux 的改進(jìn)圖 2 是 RT-Linux 的體系結(jié)構(gòu)圖。任務(wù)搶占 :由圖 2 可以看出, RT-Linux將原先的Linux 操作系統(tǒng)內(nèi)核作為一個執(zhí)行在一個小的實時操作系統(tǒng)之下的任務(wù)。Linux 內(nèi)核僅在沒有實時任務(wù)時才能運行,Linux任務(wù)不能阻塞任何中斷, 在任何實時任務(wù)到來時總是可以被搶占的。中斷實現(xiàn): RT-Linux 中的實時任務(wù)是一個可加載的核心模塊。從圖3 可知 , 實時內(nèi)核直接管理硬件中斷, 因此 , 實時內(nèi)核操縱著機(jī)器的響應(yīng)時間, 原來的 Linux 內(nèi)核就無法影響實時任務(wù)了。 RT-Linux 中軟中斷

8、是正常的Linux 內(nèi)核中斷 , 硬中斷是真正的實時中斷。RT-Linux 將標(biāo)準(zhǔn) Linux 內(nèi)核中的中斷處理指令cli 、 sti和 iret分別用匯編宏代碼S_CLI、S_STI、S_IRET 替換。 RT-Linux 引入一個虛擬層,采用在Linux內(nèi)核和中斷控制硬件之間增加一層仿真軟件的方法截取所有的硬件中斷,將所有的中斷分成Linux中斷和實時中斷兩類,如果是實時中斷,則繼續(xù)向硬件發(fā)出中斷,如果是普通Linux中斷,就設(shè)置一個軟中斷標(biāo)志 SFIF ,等到 RT-Linux內(nèi)核空閑時通過軟中斷傳遞給Linux內(nèi)核去處理。這樣就使得 Linux 永遠(yuǎn)不能禁止中斷, 無論 Linux 處

9、在什么狀態(tài), 它都不會對實時系統(tǒng)的中斷響應(yīng)時間增加任何延遲,以致時間上的不可預(yù)測性。圖 3 RT-Linux 的中斷結(jié)構(gòu)調(diào)度策略 :目前為止,在RT-LINUX 中采用兩種調(diào)度策略。一種是基于優(yōu)先級的搶占式調(diào)度算法; 對于有 N 個任務(wù)的實時調(diào)度來說,滿足公式( 1) 的實時任務(wù)將能夠成功的調(diào)度,每個任務(wù)都不會超過它們的最終期限, 對于周期性任務(wù)可以采用單調(diào)率調(diào)度算法, 即周期短的任務(wù)能夠獲得較高的優(yōu)先級。C1C2C3. Cn1n(1)T1T2T3Tn2n1Ci為任務(wù) I 最壞情況下執(zhí)行的時間;Ti為任務(wù) I 執(zhí)行時間;另一種是 Ismael Ripoll實現(xiàn)的 EDF 算法。調(diào)度策略將 Li

10、nux 視為賦予最低優(yōu)先級的實時任務(wù),僅僅在實時系統(tǒng)沒有其它任務(wù)時運行,它和實時任務(wù)之間的轉(zhuǎn)換依據(jù)上述提及的軟中斷狀態(tài)而定。通過這樣一種設(shè)計方法,將標(biāo)準(zhǔn)的 LINUX 核心改成一個可搶占的、具有低延遲中斷處理的實時系統(tǒng)。內(nèi)存管理: RT-Linux的實時內(nèi)核和實時線程都是用Linux可裝載模塊方式得以實現(xiàn)的,因此 RT-Linux的實時內(nèi)核和實時線程都是運行在單一的Linux內(nèi)核態(tài)地址空間。在Linux 內(nèi)核態(tài)地址空間下內(nèi)存按照頁面方式管理,按照段頁式方式進(jìn)行訪問,Linux 內(nèi)核將定期將使用頻率高的頁面裝入內(nèi)存,并將使用頻率低的頁面從內(nèi)存中換出,因此一旦出現(xiàn)應(yīng)用程序的訪問內(nèi)容不在內(nèi)存中時,就

11、會出現(xiàn)缺頁異常的現(xiàn)象,這對于實時任務(wù)來說,會造成時間上的不可預(yù)測性,是嚴(yán)格禁止的。 RT-Linux對內(nèi)存訪問方式進(jìn)行了修改,不再采用 “按需分頁” 方式,而是內(nèi)核中的每一個虛擬地址必然在物理內(nèi)存的頁面上有一單元與之一一對應(yīng),實時任務(wù)可以在任何情況下第一時間從內(nèi)存中讀寫自己所需要的數(shù)據(jù),這樣從根本上杜絕了缺頁異常情況的發(fā)生,從而內(nèi)存管理的實時性能得到了極大改進(jìn)。5.1.3 RT-Linux 平臺下機(jī)器人控制系統(tǒng)實時性的實現(xiàn)中斷實現(xiàn):機(jī)器人控制中影響實時性的關(guān)鍵處即為對DDA 的響應(yīng)速度。我們將圖 1 遠(yuǎn)程機(jī)器人監(jiān)控體系劃分為實時域圖4 和非實時域圖5。( 1) RT-Linux 中的實時模塊實

12、時域中實現(xiàn)的是實時設(shè)備驅(qū)動程序,負(fù)責(zé) PCL-832 位置控制卡的控制與中斷響應(yīng),驅(qū)動機(jī)器人本體運動;實時域中的軟件模塊主要是三軸位置控制卡(PCL 一 832)的設(shè)備驅(qū)動程序。三軸位置控制卡以毫秒級發(fā)出DDA 中斷請求, 對 DDA 中斷的響應(yīng)的快慢是決定整個機(jī)器人控制器實時性能的關(guān)鍵指標(biāo)。實時設(shè)備驅(qū)動程序位于RT-Linux 的實時域中,享有系統(tǒng)最高實時優(yōu)先級。 RT-Linux 中的三軸位置控制卡的實時設(shè)備驅(qū)動程序必須處理以下事務(wù):1)響應(yīng)三軸位置卡的插補(bǔ)周期中斷(DDA),并輸出位置脈沖數(shù)值;2)響應(yīng)三軸位置卡的誤差溢出中斷 (Ov),通知應(yīng)用程序進(jìn)行相應(yīng)處理; 3)為應(yīng)用程序提供服務(wù)

13、,如讀寫I O 端口、設(shè)置參數(shù)、讀取狀態(tài)等。圖 4.RT-Linux中的實時模塊2) Linux 中的非實時模塊非實時域中的軟件模塊由機(jī)器人控制器和遠(yuǎn)程監(jiān)控子系統(tǒng)組成。本地的機(jī)器人控制器負(fù)責(zé)將文本機(jī)器人指令解釋成相應(yīng)的位置脈沖數(shù)據(jù),通過先進(jìn)先出(給實時域中的驅(qū)動程序驅(qū)動機(jī)器人本體運動。RT- FIFO)緩沖隊列發(fā)送圖 5.RT-Linux 中的非實時模塊內(nèi)核調(diào)度策略將 Linux 視為賦予最低優(yōu)先級的實時任務(wù), Linux 中的非實時任務(wù)僅僅在實時系統(tǒng)沒有其它任務(wù)時運行,以確保實時任務(wù)的最高實時優(yōu)先級。5.2劃分機(jī)器人控制器任務(wù)提高實時性在基于 RT-Linux 的平臺上,如果對機(jī)器人控制器的

14、任務(wù)進(jìn)行劃分也能對它的實時性進(jìn)行提高,我們對它的應(yīng)用程序加以分割 , 使大量的沒有嚴(yán)格時間限制的工作盡量在用戶空間完成。(1) 我們讓硬件實時部分負(fù)責(zé)一切和時間限制有關(guān)的操作,將硬實時部分的功能劃分成三個線程 , 它們分別負(fù)責(zé)PCL2832 卡的驅(qū)動程序 ( 中斷處理、設(shè)備文件操作) , 用戶命令或用戶程序、在線示教、遠(yuǎn)程監(jiān)控產(chǎn)生的基本指令的執(zhí)行 , 以及機(jī)器人程序文件的生成和調(diào)用。在RT-Linux 環(huán)境下 , 標(biāo)準(zhǔn) Linux 是可以被搶占的 , 所以機(jī)器人程序文件這些文件很可能在其它實時線程搶占 Linux 時遭到不可恢復(fù)的破壞 , 導(dǎo)致嚴(yán)重的丟失或錯誤。故我們開辟這樣一個實時線程進(jìn)行文

15、件操作。 在 RT-Linux 中 , 只要將這個實時線程的優(yōu)先級設(shè)置成同其它實時線程一樣 , 則它們可以互不被搶占 , 保證了系統(tǒng)運行的可靠性。在非實時空間 , 主要開辟三個線程實現(xiàn)用戶界面、三維仿真以及遠(yuǎn)程機(jī)器人控制的通信。其中交互式的圖形用戶界面的線程在 Linux 下具備最高的優(yōu)先級 , 可以最快地接受用戶命令。機(jī)器人三維圖形仿真線程 , 可以通過離線編程創(chuàng)建機(jī)器人程序文件。以上從兩個方面即 RT-Linux 平臺下實時性的提高以及劃分機(jī)器人控制器任務(wù)情況下實時性的提升來進(jìn)行的分析。6.測試及結(jié)果分析討論機(jī)器人控制中最講究的就是中斷響應(yīng)時間,即RT-Linux系統(tǒng)對三軸位置控制卡(PC

16、L一 832 )的 DDA 中斷的響應(yīng)時間, 所有工作的目的就是為了盡量減少中斷響應(yīng)時間。以下將對 RT-linux 平臺下 DDA 的響應(yīng)時間做測試并與 Linux 平臺作比較測試方案:在用戶層的用戶進(jìn)程通過系統(tǒng)調(diào)用將脈沖數(shù)據(jù)寫入位于核心層的實時驅(qū)動程序的數(shù)據(jù)緩沖隊列, 在下一個中DDA 斷請求到來時, 中斷服務(wù)例程將數(shù)據(jù)緩沖隊列中的脈沖數(shù)據(jù)寫入三軸位置控制卡的動作控制芯片的緩沖區(qū), 驅(qū)動機(jī)器人本體運行。 因此, 我們將用戶層的用戶進(jìn)程開始調(diào)用系統(tǒng)調(diào)用發(fā)送脈沖數(shù)據(jù)的時刻作為測試開始時刻, 將下一個 中斷 DDA 請求到來時,相應(yīng)的中斷服務(wù) DDA 例程將數(shù)據(jù)寫入三軸位置控制卡的動作控制芯片的

17、緩沖區(qū),以驅(qū)動機(jī)器人本體運行的時刻作為測試結(jié)束的時刻。圖 6 反映了上述過程。圖 6 中斷響應(yīng)測試測試結(jié)果:我們分別設(shè)置 DDA 周期為 8 ms,12ms, 16ms, 24ms 4 種情況作了測試,經(jīng)過計算,可以得出表所示的結(jié)果。表 1 低負(fù)載下DDA 中斷響應(yīng)處理時間測試結(jié)果標(biāo)準(zhǔn)的8ms5.8827617512ms9.929027216ms14.02905324ms22.1663222LINUX5RT-LINUX5.2656519.44341913.49934821.690814結(jié)果分析:1)在低負(fù)載下RT-Linux的測量時間要比RT Linux 系統(tǒng)確實能夠提高系統(tǒng)的實時性能。Lin

18、ux下快0.5ms-0.6ms左右,即采用2)如果用戶應(yīng)用層開辟大量的用戶進(jìn)程,則對于分時的標(biāo)準(zhǔn)Linux來說會受到很大程度的影響。對于RT-Linux來說,實時進(jìn)程不會受到非實時域中用戶進(jìn)程的影響,所以在這種重負(fù)載情況下,RT-Linux 的實時性比標(biāo)準(zhǔn)Linux 下要高。由測試結(jié)果可以看出,RT-Linux系統(tǒng)中斷響應(yīng)比標(biāo)準(zhǔn)Linux 延時時間短,這個結(jié)果也預(yù)示在系統(tǒng)高負(fù)載情況下RT-Linux系統(tǒng)中的實時性能的優(yōu)勢將更為明顯。實際使用該實時機(jī)器人控制器時,機(jī)器人運行非常穩(wěn)定,能滿足實時控制的需要。結(jié)論從理論分析的角度:1)RT-Linux 其具有獨特的雙內(nèi)核以及基于優(yōu)先級的可搶占式兩級中斷機(jī)制,同時在定時精度、內(nèi)存管理等方面都優(yōu)于標(biāo)準(zhǔn)的 Linux, 這些因素都使它能夠一定程度上提高機(jī)器人控制系統(tǒng)的實時性。( 2)對基于 RT-Linux 平臺的機(jī)器人控制器的任務(wù)進(jìn)行劃分將它的應(yīng)用程序加以分割,讓硬件實時部分負(fù)責(zé)一切和時間限制有關(guān)的操作,將硬實時部分的功能劃分成三個線程, 使從實驗驗證的角度:在低負(fù)載下, RT-Linux 系統(tǒng)中斷響應(yīng)比標(biāo)準(zhǔn)Linux 延時時間短,對于RT-Linux 來說,實時進(jìn)程不會受到非實時域中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論