在機器人控制器的設計中,如何最大程度的提高機器人控制的實時性是一個關鍵問題。這里我們運用了將軟件任務劃分實時域與非實時域的思想,實現了一種將RT-Linux與Linux結合的實時機器人控制系統。該系統的優點是:提供了非常高效的滿足底層硬件設備的實時性能,可以充分利用 Linux的強大功能;而且RT-Linux是完全開放源代碼的免費軟件,降低了開發成本。
1 RT-Linux的系統結構
RT-Linux的基本思想就是使Linux運行在實時核心之下,如圖1所示。RT—Linux是一個可加載的核心模塊。一個小的RT-Linux實時內核同原來的Linux內核共同控制處理器。實時內核直接管理硬件中斷,因此實時內核操縱著機器的響應時間,原來的Linux就無法影響實時任務了。在RT- Linux中設計了兩類中斷。軟中斷是正常的Linux中斷,硬中斷則是真正的實時中斷,執行時幾乎沒有任何延遲。實現時,RT-Linux是通過在 Linux核心和中斷處理器之間設計一個仿真軟件來達到其目的的。
在RT-Linux中采用兩種調度策略。一種是基于優先級的搶占式調度算法;另一種是lsmaelRipoll實現的 EDF(EarliestDeadlineFirst)算法。對于周期性任務可以采用單調率調度算法,即周期短的任務能夠獲得較高的優先級。調度策略將 Linux視為賦予最低優先級的實時任務。
Linux僅僅在實時系統沒有其它任務時運行。Linux和實時任務之間的轉換依據上述提及的軟中斷狀態而定。RT-Linux通過這樣一種設計方法,將標準的Linux核心改成一個可搶占的、具有低延遲中斷處理的實時系統。
2 實時機器人控制系統的軟/硬件結構
2.1硬件系統結構
整個實時機器人控制系統主要的硬件部件為:與IBM—PC兼容PentiumIII733MHzq-業控制微機(IPC),內存l28MB;三軸位置控制卡(PCL一832);l0/100M自適應網卡、集線器等以太網連接設備;機器人本體為具有5個自由度的日產PT500機器人。
機器人控制器運行于一臺工業控制微型計算機(IPC)上。在該IPC上安裝了兩塊三軸位置控制卡。每塊三軸位置控制卡能對三軸進行聯動插補控制。每軸有專用位置芯片控制,構成一個伺服位置和速度環。放在DDA脈沖緩沖器中的脈沖數被傳到DDA發生器,在下一個DDA周期中輸出。然后由三軸位置控制卡將各軸對應的脈沖數解釋為相應的電平信號,驅動伺服驅動器以驅動機器人本體的運動。
2.2軟件系統結構
整個機器人實時控制器的系統結構如圖2所示,整個系統分為2個域:實時域和非實時域。實時域中實現的是實時設備驅動程序,負責PCL-832位置控制卡的控制與中斷響應,驅動機器人本體運動;非實時域中實現的是上層的機器人控制界面和遠程監控子系統;二者之問通過實時先進先出(RT-FIFO)緩沖隊列進行數據交換。內核調度策略將Linux視為賦予最低優先級的實時任務,Linux中的非實時任務僅僅在實時系統沒有其它任務時運行,以確保實時任務的最高實時優先級。
(1)RT-Linux中的實時模塊
實時域中的軟件模塊主要是三軸位置控制卡(PCL一832)的設備驅動程序。驅動程序是能夠直接訪問硬件的模塊,具有應用程序不具備的處理中斷和讀寫端口的能力,是嵌入操作系統核心的底層軟件。三軸位置控制卡以毫秒級發出DDA中斷請求,對DDA中斷的響應的快慢是決定整個機器人控制器實時性能的關鍵指標。RT-Linux中的三軸位置控制卡的實時設備驅動程序必須處理以下事務:
① 響應三軸位置卡的插補周期中斷(DDA),并輸出位置脈沖數值;
② 響應三軸位置卡的誤差溢出中斷(Ov),通知應用程序進行相應處理;
③ 為應用程序提供服務,如讀寫I/O端口、設置參數、讀取狀態等。
(2)Linux中的非實時模塊
非實時域中的軟件模塊由機器人控制器和遠程監控子系統組成。本地的機器人控制器負責將文本機器人指令解釋成相應的位置脈沖數據,通過先進先出(RT- FIFO)緩沖隊列發送給實時域中的驅動程序驅動機器人本體運動。同時具有權限的用戶能夠以離線編程方式或在線操作方式通過高速以太網分別與離線編程與仿真數據發生器和機器人控制器進行連接,實現離線編程和對機器人的實際控制。
3 實時系統的性能評估
實時系統的性能評估主要在8個方面進行。它們分別是任務換道性能、任務優先級性能、內存分配性能、任務內部通信性能、中斷延遲時間、操作系統運行時效率、初始化時間和關機時間。而在機器人控制中最講究的就是中斷響應時問。因為就本項目而言,我們最關I~,RT-Linux系統對三軸位置控制卡(PCL一 832)的DDA中斷的響應時間,所有工作的目的就是為了盡量減少中斷響應時間。
3.1測試環境及方法
用于測試的工業控制微機的硬件配置為IntelPentium(clockl20MHz),RAM64MB;服務器軟件是用 RedHatLinux6.0(內核版本號2.2.5一l5),RT-Linux的版本號2.2;網絡環境l0/100M自適應網卡。中斷響應時間的快慢直接反映了這樣一個過程的快慢:在用戶層的用戶進程通過系統調用將脈沖數據寫入位于核心層的實時驅動程序的數據緩沖隊列,在下一個DDA中斷請求到來時,中斷服務例程將數據緩沖隊列中的脈沖數據寫入三軸位置控制卡的動作控制芯片的緩沖區,驅動機器人本體運行。圖3反映了上述過程。
3.2測試結果
分別設置DDA周期為8、12、16、24ms的4種情況作了測試,經過計算,可以得出表1所示的結果。
表1 低負載下D DA中斷響應處理時問測試結果
由此得出,在低負載下RT-Linux的測量時間要比Linux下快0.5—0.6ms左右,證明采用RT—Linux系統確實能夠提高系統的實時性能。需要注意的是:
① RT—Linux直接接受硬件中斷,所以我們將PCL一832卡的DDA中斷和OV中斷安裝在實時域中,目的就是讓RT-Linux最先捕獲這兩個實時中斷,進行處理。
② 如果用戶應用層開辟大量的用戶進程,則對于分時的標準Linux來說會受到很大程度的影響。
由測試結果可看出,RT-Linux系統中斷響應比標準Linux延時時間短,這個結果也預示在系統高負載情況下RT-Linux系統中的實時性能的優勢將更為明顯。實際使用該實時機器人控制器時,機器人運行非常穩定,能夠滿足實時控制的需要。
-
控制系統
+關注
關注
41文章
6661瀏覽量
110889 -
機器人
+關注
關注
211文章
28646瀏覽量
208427 -
Linux
+關注
關注
87文章
11345瀏覽量
210403
發布評論請先 登錄
相關推薦
基于arm的實時linux操作系統
4種實時操作系統實時性的分析對比分析,VxWorks、μC/OS-II、RT-Linux、QNX選哪個?
如何實現基于RT-Linux的防危核?
基于ARM9和Linux的機器人控制系統設計
變電站巡檢機器人控制系統設計
基于RT-Linux防危保障機制的實驗模型
![基于<b class='flag-5'>RT-Linux</b>防危保障機制的實驗模型](https://file1.elecfans.com//web2/M00/A5/E3/wKgZomUMOqCAEwXIAAAYR0iA2JM608.gif)
關于四種實時嵌入式Linux操作系統的對比分析淺析
工業實時操作系統對比:鴻道Intewell跟rt-linux有啥區別
![工業<b class='flag-5'>實時</b>操作<b class='flag-5'>系統</b>對比:鴻道Intewell跟<b class='flag-5'>rt-linux</b>有啥區別](https://file1.elecfans.com/web2/M00/F7/73/wKgZomaEsH2Ad2P6AACEWL2wGtg560.png)
評論