999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

RT-Linux在工業(yè)機(jī)器人控制系統(tǒng)中的實(shí)時(shí)性研究

2015-05-11 01:32:42劉金鐵葉方平
關(guān)鍵詞:系統(tǒng)

劉金鐵,張 哲, 葉方平

(1 武漢軟件工程職業(yè)學(xué)院, 湖北 武漢 430205;2 華中科技大學(xué), 湖北 武漢 430074; 3 湖北工業(yè)大學(xué)機(jī)械工程學(xué)院,湖北 武漢 430068)

?

RT-Linux在工業(yè)機(jī)器人控制系統(tǒng)中的實(shí)時(shí)性研究

劉金鐵1,張 哲2, 葉方平3

(1 武漢軟件工程職業(yè)學(xué)院, 湖北 武漢 430205;2 華中科技大學(xué), 湖北 武漢 430074; 3 湖北工業(yè)大學(xué)機(jī)械工程學(xué)院,湖北 武漢 430068)

從硬件和軟件兩方面闡述機(jī)器人控制系統(tǒng)在實(shí)時(shí)性上的要求,并以RT-Linux系統(tǒng)為軟件平臺(tái),采用模塊化的軟件設(shè)計(jì)方法,利用PC技術(shù)、現(xiàn)場(chǎng)總線技術(shù)以及多傳感器技術(shù),研究開放式工業(yè)機(jī)器人控制系統(tǒng)的問題。經(jīng)實(shí)驗(yàn)驗(yàn)證,該系統(tǒng)具有較好的實(shí)時(shí)性。

工業(yè)機(jī)器人;嵌入式RT-Linux;實(shí)時(shí)性

機(jī)器人的實(shí)時(shí)控制由于其功能單一和計(jì)算能力差,在實(shí)際應(yīng)用中難以保證。人們總希望機(jī)器人的控制系統(tǒng)在某種程度上選擇特定的內(nèi)核模塊,而將不用的部分去掉,以減少其體積,適應(yīng)市場(chǎng)變化和不同的任務(wù)需求,從根本上解決體積和功能的矛盾[1]。本研究以傳統(tǒng)工業(yè)機(jī)器人為對(duì)象,開發(fā)了工業(yè)機(jī)器人實(shí)時(shí)控制平臺(tái),并驗(yàn)證了平臺(tái)的實(shí)時(shí)性,為實(shí)現(xiàn)基于視覺技術(shù)的機(jī)器人搬運(yùn)、分揀等實(shí)時(shí)控制作業(yè)打下基礎(chǔ)。

1 機(jī)器人控制系統(tǒng)的硬件組成

本研究采用美國(guó)TI公司推出的DSP芯片TMS320LF2407A作為電機(jī)控制芯片,其內(nèi)嵌的CAN控制器是一個(gè)完全的CAN控制器,每個(gè)TMS320LF2407A器件都包括兩個(gè)事件管理模塊EVA和EVB,并且使用一片TMS320LF2407A芯片就可以對(duì)四個(gè)電機(jī)進(jìn)行控制,而對(duì)于六自由度機(jī)器人來(lái)說(shuō),只需兩塊控制卡就能對(duì)六軸進(jìn)行聯(lián)動(dòng)插補(bǔ)控制。采用位置和速度雙閉環(huán)控制系統(tǒng)來(lái)保證機(jī)器人運(yùn)動(dòng)的平穩(wěn)和準(zhǔn)確定位, 將DSP的高速運(yùn)算能力和面向電機(jī)的高效控制能力集于一體,使其高速性和復(fù)雜的控制策略得以實(shí)現(xiàn)。工業(yè)PC通過CAN總線與DSP模塊進(jìn)行通信。DSP模塊定期向工控機(jī)發(fā)送一次中斷請(qǐng)求,接收來(lái)自工控機(jī)的位置和速度脈沖數(shù),將脈沖數(shù)與編碼器反饋的脈沖數(shù)進(jìn)行比較,并將差值送到比例控制器進(jìn)行比較并進(jìn)行增益調(diào)節(jié),再將調(diào)節(jié)的脈沖數(shù)送到偏差計(jì)數(shù)器,經(jīng)過數(shù)模轉(zhuǎn)換為電壓值,發(fā)送給伺服驅(qū)動(dòng)器,最終實(shí)現(xiàn)對(duì)各個(gè)伺服電機(jī)的實(shí)時(shí)控制。設(shè)計(jì)硬件系統(tǒng)體系結(jié)構(gòu)見圖1。

圖1 控制系統(tǒng)硬件總體示意圖

電機(jī)、驅(qū)動(dòng)器和編碼器相配套組成伺服系統(tǒng)。工業(yè)機(jī)器人一般由多個(gè)獨(dú)立的伺服單元組成,每一個(gè)伺服系統(tǒng)對(duì)應(yīng)伺服軸的控制通過DSP運(yùn)動(dòng)控制卡來(lái)完,所有軸系均由步進(jìn)電機(jī)組成,各驅(qū)動(dòng)器位置反饋采用帶有增量式光電碼盤閉環(huán)反饋結(jié)構(gòu)[2],通過閉環(huán)控制提高控制精度,其硬件接線見圖2。工控機(jī)完成上層的運(yùn)動(dòng)規(guī)劃,通過解釋器將機(jī)器人操作指令解釋為DSP的運(yùn)動(dòng)程序,下載到DSP運(yùn)動(dòng)控制卡中執(zhí)行,伺服運(yùn)動(dòng)完全可以只用DSP系統(tǒng)軟件以及運(yùn)動(dòng)程序來(lái)實(shí)現(xiàn),而電碼盤、極限開關(guān)以及其他外部設(shè)備的I/O輸入輸出處理功能,轉(zhuǎn)移到PC機(jī)上完成。

圖2 閉環(huán)DSP運(yùn)動(dòng)控制卡結(jié)構(gòu)框圖

2 基于RT-Linux的控制系統(tǒng)軟件平臺(tái)

建立完全意義上的開放式控制器,控制系統(tǒng)必須擺脫對(duì)專用軟件系統(tǒng)和硬件系統(tǒng)的依賴,選擇何種操作系統(tǒng),并如何在該操作系統(tǒng)上實(shí)現(xiàn)控制系統(tǒng)的實(shí)時(shí)控制要求,就成為了發(fā)展開放式控制系統(tǒng)的一個(gè)關(guān)鍵,而RT-Linux操作系統(tǒng)恰好可以解決這一問題。由于是可以運(yùn)行于多種硬件平臺(tái)的多任務(wù)實(shí)時(shí)操作系統(tǒng),故本系統(tǒng)采用RT-Linux操作系統(tǒng)平臺(tái),充分利用RT-Linux源代碼開放、軟件資源豐富,針對(duì)特殊的應(yīng)用要求自行裁剪,構(gòu)建具有硬實(shí)時(shí)特性的多任務(wù)操作系統(tǒng)。

RT-Linux實(shí)質(zhì)是在原有標(biāo)準(zhǔn)Linux內(nèi)核的基礎(chǔ)上引入一個(gè)小而精巧的實(shí)時(shí)內(nèi)核,把標(biāo)準(zhǔn)Linux內(nèi)核作為優(yōu)先級(jí)最低的任務(wù)來(lái)執(zhí)行,Linux內(nèi)核隨時(shí)可以被優(yōu)先級(jí)更高的實(shí)時(shí)任務(wù)搶占,實(shí)現(xiàn)由標(biāo)準(zhǔn)Linux內(nèi)核完成非實(shí)時(shí)任務(wù),由實(shí)時(shí)內(nèi)核完成實(shí)時(shí)任務(wù)的調(diào)度[3]。實(shí)時(shí)任務(wù)與Linux內(nèi)核之間通過特定的通信機(jī)制(如RT-FIFO管道或共享)進(jìn)行通信。這樣既保證了Linux系統(tǒng)的穩(wěn)定性和完整性,又從根本上解決了原有Linux核心態(tài)進(jìn)程不可被搶占的問題,減少搶占延遲,提高系統(tǒng)的實(shí)時(shí)性能,RT-Linux對(duì)Linux內(nèi)核運(yùn)行原理的改造如圖3所示。

圖3 RT-Linux內(nèi)核運(yùn)行原理

整個(gè)系統(tǒng)軟件大體上可以分為4部分:實(shí)時(shí)模塊(控制層),非實(shí)時(shí)模塊(應(yīng)用層),實(shí)時(shí)模塊與非實(shí)時(shí)部分的接口以及設(shè)備驅(qū)動(dòng)程序(系統(tǒng)層)。軟件系統(tǒng)結(jié)構(gòu)如圖4所示。

圖4 軟件系統(tǒng)結(jié)構(gòu)

實(shí)時(shí)模塊利用RT-Linux精確的定時(shí)精度與多線程實(shí)時(shí)調(diào)試機(jī)制,實(shí)現(xiàn)對(duì)多實(shí)時(shí)任務(wù)進(jìn)行定時(shí)調(diào)度。同時(shí),RT-Linux內(nèi)核提供了多線程對(duì)應(yīng)的API函數(shù):

pthread_create() ;//創(chuàng)建線程

pthread_make_periodic_np();//函數(shù)用于設(shè)定一個(gè)周期性線程設(shè)置這個(gè)實(shí)時(shí)進(jìn)程的開始執(zhí)行時(shí)間,周期的間隔為多少納秒。RTLInux 的周期任務(wù)可達(dá)到納秒級(jí)的精度。

pthread_wait_np( ) 與pthread_make_periodic_np( )連用,暫停線程運(yùn)行,等待下一周期到來(lái)。

pthread_suspend_np( );// 掛起某一實(shí)時(shí)線程(可以掛起自己)

pthread_wakeup_np( ) ;//喚醒被pthread_suspend_np( )掛起的實(shí)時(shí)線程

pthread_delet_np() ;// 銷毀線程,即刪除啟動(dòng)的實(shí)時(shí)進(jìn)程、刪除分配的RT-FIFO 和共享內(nèi)存,釋放申請(qǐng)的I/O 地址。

采用線程互斥鎖來(lái)實(shí)現(xiàn)線程間的互斥:

int pthread_mutex_lock() ;// 將線程鎖定并掛起.

int pthread_mutex_unlock();//將互斥鎖解開

RTLinux 提供的這些簡(jiǎn)明的API, 已足以完成包括插補(bǔ)運(yùn)算、逆運(yùn)動(dòng)學(xué)、位姿控制、PLC控制等內(nèi)核實(shí)時(shí)線程間實(shí)現(xiàn)復(fù)雜的時(shí)序關(guān)系。

非實(shí)時(shí)模塊主要完成實(shí)時(shí)數(shù)據(jù)的存儲(chǔ)、處理、通信,人機(jī)交互的數(shù)據(jù)顯示,多傳感器的信息融合,工作規(guī)劃等工作。監(jiān)控系統(tǒng)主要完成系統(tǒng)各個(gè)組成部件的工作狀態(tài)監(jiān)測(cè)、機(jī)器人工作過程的監(jiān)測(cè)、故障的報(bào)警提示等對(duì)實(shí)時(shí)要求不高的場(chǎng)合,減少對(duì)系統(tǒng)的資源占用,從而達(dá)到多任務(wù)并行處理的目的。

實(shí)時(shí)模塊與非實(shí)時(shí)部分的通信可以采用RT-FIFO實(shí)現(xiàn)。在這里采用RT-FIFO,它是一種能夠被內(nèi)核實(shí)時(shí)線程和用戶空間線程訪問的先入先出隊(duì)列,即第一個(gè)寫入的數(shù)據(jù)將首先被讀出。利用read()函數(shù)從FIFO管道里讀取數(shù)據(jù)。由系統(tǒng)中斷觸發(fā)內(nèi)核空間的中斷服務(wù)程序,中斷服務(wù)程序調(diào)用驅(qū)動(dòng)程序的rtl_com_read()函數(shù)從串口讀取數(shù)據(jù),再利用rtf_put()函數(shù)將數(shù)據(jù)發(fā)送到FIFO管道[4]。同樣,write()函數(shù)往FIFO管道寫數(shù)據(jù),當(dāng)需要往串口寫數(shù)據(jù),可以通過調(diào)用驅(qū)動(dòng)程序的rlt_com_write()函數(shù)完成。

設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核和機(jī)器硬件之間的接口,所有硬件設(shè)備都被看成設(shè)備文件,這樣提供了一個(gè)可用的程序接口使其他程序能夠與這個(gè)設(shè)備互動(dòng)。例如DSP運(yùn)動(dòng)控制卡就要在實(shí)時(shí)內(nèi)核里編寫相應(yīng)的驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)程序主要是為滿足不同的控制對(duì)象(即不同自由度的工業(yè)機(jī)器人),通過對(duì)設(shè)備文件的讀寫從而對(duì)驅(qū)動(dòng)程序發(fā)送命令,這樣在使用不同的硬件配置時(shí)只需修改驅(qū)動(dòng)程序就可以滿足要求,以實(shí)現(xiàn)系統(tǒng)的通用性。

3 系統(tǒng)實(shí)時(shí)性能分析

機(jī)器人控制系統(tǒng)對(duì)實(shí)時(shí)性要求非常嚴(yán)格。實(shí)時(shí)系統(tǒng)的性能評(píng)估包括:任務(wù)優(yōu)先級(jí)性能、任務(wù)換道性能、任務(wù)內(nèi)部通信性能、內(nèi)存分配性能、中斷延遲時(shí)間、操作系統(tǒng)運(yùn)行時(shí)效率等,其中最嚴(yán)格的就是中斷響應(yīng)時(shí)間,如插補(bǔ)運(yùn)算、位置控制、故障處理等都必須要在一定的時(shí)間內(nèi)完成。如果中斷響應(yīng)不及時(shí),則可能導(dǎo)致無(wú)法到達(dá)預(yù)定軌跡點(diǎn)、急停無(wú)法及時(shí)響應(yīng)等后果。所以機(jī)器人實(shí)時(shí)控制部分必須精確安排各任務(wù)的執(zhí)行時(shí)間和執(zhí)行順序,避免各任務(wù)之間產(chǎn)生資源和時(shí)間上的競(jìng)爭(zhēng)。在本研究中,最為重要的是RT-Linux系統(tǒng)對(duì)DSP運(yùn)動(dòng)控制卡(TMS320LF2407A)的中斷響應(yīng)時(shí)間,所有工作的目的就是為了盡量減少中斷響應(yīng)時(shí)間。

RT-Linux定時(shí)精度可達(dá)到10 μs左右,最大中斷延遲時(shí)間不超過15 μs,最大任務(wù)切換時(shí)間不超過35 μs,分辨率約為1 μs,且與系統(tǒng)負(fù)載無(wú)關(guān),只取決于計(jì)算機(jī)硬件[5]。因此,工業(yè)控制微機(jī)的硬件配置為Pentium(R)4 CPU 2.26 GHz,DDR 1 G內(nèi)存;服務(wù)器軟件是用RedHatLinux5.0 (內(nèi)核版本號(hào)2.6.29),RT-Linux補(bǔ)丁版本號(hào)2.6.29.6。在系統(tǒng)測(cè)試過程中,用戶進(jìn)程通過系統(tǒng)調(diào)用將持續(xù)發(fā)送脈沖寫入核心層的實(shí)時(shí)驅(qū)動(dòng)程序的緩沖隊(duì)列,在下一個(gè)中斷請(qǐng)求到來(lái)時(shí),中斷服務(wù)進(jìn)程將數(shù)據(jù)緩沖隊(duì)列中的脈沖數(shù)據(jù)寫入DSP運(yùn)動(dòng)控制卡的緩沖,最終,驅(qū)動(dòng)機(jī)器人運(yùn)動(dòng)。此過程中開啟多個(gè)進(jìn)程。測(cè)試程序部分代碼為:

#include

#include

#include

#include

#include

#include

Void *pwm_code(void *arg){……} //脈沖發(fā)生函數(shù)

void *start_routine(void *arg){ start.time=gethrtime(CLOCK.REALTIME)}//獲取發(fā)送脈沖數(shù)據(jù)時(shí)刻(作為測(cè)試開始時(shí)刻)

readIO(); //讀取數(shù)據(jù)

while(1)

{

writeIO();//寫出數(shù)據(jù)

pthread_wait_np{};// 等下一個(gè)周期的到來(lái)

now=clock_gethrtime(CLOCK.REALTIME);//測(cè)試結(jié)束時(shí)刻

elapsed_time=now-start_time; //中斷延遲時(shí)間

rtl.printf(“elapsed.time=%L ,(long long)elapse.time”);

} //數(shù)據(jù)寫入運(yùn)動(dòng)控制卡數(shù)據(jù)緩沖區(qū)(作為測(cè)試結(jié)束時(shí)刻)

int param_handler(unsigned int fifo){ ……} //創(chuàng)建FIFO通道實(shí)現(xiàn)實(shí)時(shí)非實(shí)時(shí)通信

int init module(void){ ……} //module.o實(shí)時(shí)模塊的初始化函數(shù)

void cleanup_module(void){ ……} //清除模塊設(shè)置

中斷延遲時(shí)間的測(cè)試結(jié)果如圖5所示。

圖5 中斷延遲時(shí)間的測(cè)試結(jié)果

由實(shí)驗(yàn)結(jié)果可知,任務(wù)調(diào)度的周期是1 ms,取1 000個(gè)周期的數(shù)據(jù),分別記錄調(diào)度時(shí)的最大延時(shí)和最小延時(shí)。通過分析圖5的數(shù)據(jù)可以得出,在這1 000個(gè)周期內(nèi),任務(wù)調(diào)度的最大延遲時(shí)間不超過18 μs,而最小延遲時(shí)間基本為0,時(shí)間可以精確到微秒位,最大中斷延遲時(shí)間不超過4 μs。這體現(xiàn)RT-Linux系統(tǒng)的實(shí)時(shí)性能的優(yōu)勢(shì)相當(dāng)明顯,基本滿足底層硬件設(shè)備的實(shí)時(shí)性能。

4 結(jié)論

通過將RT-Linux與Linux結(jié)合的雙內(nèi)核結(jié)構(gòu),以及基于優(yōu)先級(jí)的可搶占式雙級(jí)中斷機(jī)制,為各種復(fù)雜的工業(yè)機(jī)器人的實(shí)時(shí)控制提供精確的時(shí)間保障,實(shí)時(shí)性能完全可以滿足機(jī)器人實(shí)時(shí)控制的要求,很大程度上解決傳統(tǒng)Linux內(nèi)核非實(shí)時(shí)的缺陷。

[1] 王振華,朱國(guó)力,郭長(zhǎng)旺,等.基于DSP和CAN總線的CNC多軸運(yùn)動(dòng)控制器研究[J].制造業(yè)自動(dòng)化, 2000,3(22):10-13.

[2] 梁 喜,孫志輝.基于DSP和CAN總線的多軸工作臺(tái)分布運(yùn)動(dòng)控制系統(tǒng)研究[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新.2007,20(05):138-140.

[3] 吳 柳.基于RT-Linux的實(shí)時(shí)性能測(cè)試[M].浙江:浙江大學(xué)出版社,2010.

[4] 陳建春,劉雄偉.基于RT-Linux 系統(tǒng)的數(shù)控系統(tǒng)與PLC 通信的實(shí)現(xiàn)[C/OL]// 第十五屆全國(guó)機(jī)床專業(yè)學(xué)術(shù)會(huì)議,2002 [2011-02-13]http://wenku.baidu.com/link?url=FSb699KFFJjndETB9-tDXcv-vsciVN1M0RASOVfETPpr3by6EgU8uynINoSc2R8zYQ-b3F5lQcATVEnv66qor3UIEj0p9FN0iFeCpA4IaU3.

[5] 郭晉峰. RT-Linux的原理及其實(shí)時(shí)程序開發(fā)[J].微型機(jī)與應(yīng)用,2001(04):54-59.

[責(zé)任編校: 張 眾]

RT Linux Real-time Research in the Industrial Robot Control System

LIU Jintie1, ZHANG Zhe2,YE Fangping3

(1WuhanVocationalCollegeofSoftwareandEngin.,Wuhan430205,China;2HuazhongUniv.ofSci. &Tech.,Wuhan430074,China;3SchoolofMechanicalEngin.,HubeiUniv.ofTech.,Wuhan430068,China)

From the hardware and software aspects of the robot control system, the paper addressed the requirements of real-time. It also studied the problems of the open industrial robot control system, using the RT Linux system software platform, modular software design methods, the PC technology, field thread technology and multi-sensor technology. The experiment results show that the system has better real-time performance.

industrial robot;embedded RT-Linux;real-time performance

2014-07-15

劉金鐵(1969-), 男, 湖北武漢人, 武漢軟件工程職業(yè)學(xué)院工程師, 研究方向?yàn)椴牧铣尚停?機(jī)械制造及其自動(dòng)化

葉方平(1989-), 男,湖北仙桃人,湖北工業(yè)大學(xué)碩士研究生,研究方向?yàn)闄C(jī)械設(shè)計(jì)及理論

1003-4684(2015)01-0069-04

TH242.2

A

猜你喜歡
系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
基于UG的發(fā)射箱自動(dòng)化虛擬裝配系統(tǒng)開發(fā)
半沸制皂系統(tǒng)(下)
FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統(tǒng) 德行天下
PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 欧美三级不卡在线观看视频| 国产欧美精品专区一区二区| 国产免费网址| 高清久久精品亚洲日韩Av| 欧美一级视频免费| 国产成人精品第一区二区| 国产91精品调教在线播放| 欧美精品1区| 国产精品深爱在线| 人妻21p大胆| 欧美人与动牲交a欧美精品| 国产乱子伦一区二区=| 波多野结衣视频网站| 国产欧美在线观看精品一区污| 成人免费一级片| 久久特级毛片| 亚洲精品无码在线播放网站| 一级毛片中文字幕| 91人人妻人人做人人爽男同| 成人福利在线看| 欧美精品亚洲二区| 99re免费视频| 特黄日韩免费一区二区三区| 国精品91人妻无码一区二区三区| 天天摸夜夜操| 99手机在线视频| 最新精品久久精品| 伊人成人在线| 亚洲中文在线看视频一区| 亚洲开心婷婷中文字幕| 日本久久久久久免费网络| 色欲色欲久久综合网| 精品久久蜜桃| 亚洲男人天堂网址| 久久免费视频6| 强奷白丝美女在线观看| 四虎永久免费地址| 国产呦精品一区二区三区网站| 日韩AV无码一区| 国产精品3p视频| 日韩精品欧美国产在线| 欧美天堂在线| 国产18在线播放| 欧美成人综合在线| 在线观看精品自拍视频| 色婷婷成人网| 草逼视频国产| 这里只有精品在线播放| 欧美精品在线免费| 亚洲色图在线观看| 国产在线八区| 国产精品久久精品| 国产在线八区| 婷婷亚洲综合五月天在线| 久久久久久久久18禁秘| 26uuu国产精品视频| 一本色道久久88| 亚洲视频欧美不卡| 国产97视频在线| 综合色天天| 伊人久综合| 潮喷在线无码白浆| 欧美性猛交xxxx乱大交极品| 99热亚洲精品6码| 精品少妇人妻无码久久| 亚洲天堂久久| 欧美天天干| 久久96热在精品国产高清| 日韩二区三区无| 五月天综合婷婷| 久操线在视频在线观看| 欧美黄色网站在线看| 国产精品成人一区二区不卡| 一级一级一片免费| 欧美性精品| 国产在线专区| 久久精品人人做人人综合试看| 亚洲成人免费在线| 久草视频一区| 久久综合AV免费观看| 99久久精品国产麻豆婷婷| 日韩免费毛片|