張化龍 李艷杰 卜春光 高英麗
(沈陽理工大學(xué)機(jī)械工程學(xué)院1,遼寧 沈陽 110159;中國科學(xué)院沈陽自動(dòng)化研究所2,遼寧 沈陽 110016 )
履帶復(fù)合式移動(dòng)機(jī)器人控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
張化龍1李艷杰1卜春光2高英麗2
(沈陽理工大學(xué)機(jī)械工程學(xué)院1,遼寧 沈陽110159;中國科學(xué)院沈陽自動(dòng)化研究所2,遼寧 沈陽110016 )
摘要:針對六履帶四擺臂履帶式移動(dòng)機(jī)器人的機(jī)構(gòu)特點(diǎn),采用EtherCAT總線技術(shù)和QNX多任務(wù)實(shí)時(shí)操作系統(tǒng)設(shè)計(jì)機(jī)器人控制系統(tǒng)。著重介紹機(jī)器人控制系統(tǒng)的硬件集成與軟件設(shè)計(jì)??紤]到控制程序的可擴(kuò)展性與可移植性需求,采用共享內(nèi)存通信方式設(shè)計(jì)模塊化控制軟件。試驗(yàn)表明,該機(jī)器人可在遠(yuǎn)程遙控狀態(tài)下實(shí)現(xiàn)行走及越障功能,驗(yàn)證了控制系統(tǒng)的可靠性與穩(wěn)定性,達(dá)到設(shè)計(jì)要求。
關(guān)鍵詞:移動(dòng)機(jī)器人控制系統(tǒng)EtherCAT總線實(shí)時(shí)控制遙控模塊化設(shè)計(jì)防災(zāi)減災(zāi)
Disasterpreventionandmitigation
0引言
隨著科技、經(jīng)濟(jì)水平的提高,城市中高層建筑物的數(shù)量不斷增加。當(dāng)火災(zāi)、危化品泄漏、恐怖襲擊等突發(fā)事件發(fā)生之后,大型救援設(shè)備無法迅速進(jìn)入災(zāi)害現(xiàn)場,這時(shí)就需要體積小、靈活且能適應(yīng)非結(jié)構(gòu)環(huán)境的移動(dòng)機(jī)器人參與救援。移動(dòng)機(jī)器人可協(xié)助救援人員實(shí)施救援,有效減少救援人員的傷亡,提高救援效率。本課題旨在設(shè)計(jì)一種質(zhì)量小且能實(shí)時(shí)控制的移動(dòng)機(jī)器人,用于執(zhí)行公共安全事件的勘探、救援等任務(wù)。
本文在研究六履帶四擺臂履帶式移動(dòng)機(jī)器人結(jié)構(gòu)的基礎(chǔ)上,設(shè)計(jì)機(jī)器人控制系統(tǒng)。根據(jù)工業(yè)現(xiàn)場總線EtheCAT的優(yōu)越運(yùn)行原理、多種拓?fù)浣Y(jié)構(gòu)、通信快速性等特點(diǎn),在實(shí)時(shí)操作系統(tǒng)QNX上搭建機(jī)器人控制系統(tǒng),實(shí)現(xiàn)對六履帶四擺臂履帶式移動(dòng)機(jī)器人的遠(yuǎn)程控制。
1機(jī)器人本體結(jié)構(gòu)
履帶式移動(dòng)機(jī)器人性能優(yōu)越[1],能適應(yīng)復(fù)雜的非結(jié)構(gòu)化地形環(huán)境[2],可廣泛用于災(zāi)難救援、反恐防暴、極地科考等重要領(lǐng)域。本文采用的六履帶四擺臂履帶式移動(dòng)機(jī)器人機(jī)械結(jié)構(gòu)長690mm、寬520mm、小臂臂長360mm,機(jī)器人質(zhì)心在對稱線上,自重25kg,最大載重15kg,如圖1所示。
圖1 機(jī)器人本體結(jié)構(gòu)圖
機(jī)器人共有6個(gè)自由度,即平面內(nèi)的移動(dòng)、轉(zhuǎn)動(dòng)和4個(gè)擺臂的自由轉(zhuǎn)動(dòng)。機(jī)器人內(nèi)側(cè)的2條主履帶分別由2個(gè)直流有刷電機(jī)驅(qū)動(dòng),通過等速控制主履帶電機(jī)實(shí)現(xiàn)機(jī)器人的前進(jìn)、后退,通過差速控制實(shí)現(xiàn)機(jī)器人任意半徑轉(zhuǎn)彎;機(jī)器人2側(cè)的4個(gè)擺臂分別由4個(gè)直流無刷電機(jī)驅(qū)動(dòng),擺臂可以繞驅(qū)動(dòng)輪軸線360°旋轉(zhuǎn),通過對電機(jī)正反轉(zhuǎn)動(dòng)控制,實(shí)現(xiàn)機(jī)器人質(zhì)心位置的變化,使機(jī)器人在復(fù)雜的地面環(huán)境下保持穩(wěn)定。當(dāng)機(jī)器人遇到一定高度的障礙物時(shí),通過協(xié)調(diào)控制主履帶與擺臂的運(yùn)動(dòng),可以使機(jī)器人順利通過障礙物。
2控制系統(tǒng)硬件設(shè)計(jì)
控制系統(tǒng)有兩個(gè)上層控制站:其中一個(gè)控制站通過路由器連接機(jī)器人本體上的控制器,主要用于研制階段機(jī)器人的調(diào)試;另一個(gè)控制站通過圖傳、數(shù)傳設(shè)備連接,主要用于對機(jī)器人的遠(yuǎn)程控制。機(jī)器人通過攜帶的圖傳、數(shù)傳設(shè)備,將圖像、姿態(tài)信息傳給遠(yuǎn)端的控制站。遠(yuǎn)端控制人員根據(jù)實(shí)時(shí)狀態(tài)信息對機(jī)器人進(jìn)行實(shí)時(shí)控制。機(jī)器人控制硬件系統(tǒng)如圖2所示。
圖2 硬件系統(tǒng)結(jié)構(gòu)圖
由質(zhì)量輕、儲(chǔ)能高、壽命長、綠色環(huán)保的鋰電池為整個(gè)系統(tǒng)供電,其最高電壓可達(dá)30V;由ATXM3寬壓直插式電壓轉(zhuǎn)換模塊為系統(tǒng)設(shè)備提供合適的電壓。
機(jī)器人本體控制器選用研華公司生產(chǎn)的PCM3362板卡,該主板采用PC104總線技術(shù),板載2GBFLASH,標(biāo)準(zhǔn)尺寸為90mm×90mm。板卡間通過堆棧的形式可靠地連續(xù)連接,抗震能力強(qiáng)。機(jī)器人控制器接收上層控制站發(fā)送的控制指令進(jìn)行運(yùn)動(dòng)控制,并將機(jī)器人當(dāng)前的運(yùn)動(dòng)狀態(tài)信息發(fā)送給上層控制站。
無線模塊選用RTD公司的WLAN17202模塊,采用PC/104PLUS總線架構(gòu),以堆疊的方式與PCM3362連接,用于調(diào)試計(jì)算機(jī)與機(jī)器人本體控制器通信。
采用赫優(yōu)訊(Hilscher)公司的CIFX104板卡搭建EtherCAT網(wǎng)絡(luò)。其硬件連接如圖3所示。
圖3 EtherCAT網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
本文EtherCAT網(wǎng)絡(luò)采用總線型網(wǎng)絡(luò)擴(kuò)展。CIFX板卡的Channel0端口連接從站1的EtherCAT輸入端,從站1的輸出端連接從站2的EtherCAT輸入端,依次類推,連接所有的從站設(shè)備;主站的Channel1和最后一個(gè)從站的輸出端連接,從而搭建起整個(gè)硬件EtherCAT網(wǎng)絡(luò)。該連接方法能夠快捷地進(jìn)行網(wǎng)絡(luò)搭建,網(wǎng)絡(luò)結(jié)構(gòu)簡單,易于網(wǎng)絡(luò)擴(kuò)展。特別是當(dāng)其中某兩個(gè)設(shè)備之間的連線出現(xiàn)問題時(shí),不會(huì)影響其他設(shè)備間的通信,最大限度地保證了系統(tǒng)的穩(wěn)定性。
電機(jī)驅(qū)動(dòng)器采用ELMO公司的GOLDSOLOWHISTLE直流電機(jī)驅(qū)動(dòng)器,該驅(qū)動(dòng)器輸入電壓為12~95VDC,可控制直流無刷、直流有刷電機(jī)。通過ELMO公司提供的ESA軟件,可配置電機(jī)的電流環(huán)、速度環(huán)、位置環(huán)的PID參數(shù),控制系統(tǒng)無需對電機(jī)進(jìn)行速度、位置、力矩等進(jìn)行閉環(huán)控制,簡化了上層編程控制程序。
3控制系統(tǒng)系統(tǒng)軟件平臺(tái)
3.1QNX實(shí)時(shí)操作系統(tǒng)
本文所設(shè)計(jì)機(jī)器人本體控制器采用QNXNeutrino[3]實(shí)時(shí)操作系統(tǒng),其系統(tǒng)模塊能夠靈活地增減,以滿足實(shí)時(shí)嵌入式系統(tǒng)資源有限的要求。QNX系統(tǒng)支持x86、PowerPC、ARM、MIPS和SH-4等平臺(tái)[4]。QNX所有的驅(qū)動(dòng)程序、應(yīng)用程序、協(xié)議棧和文件系統(tǒng)都在受保護(hù)的用戶空間內(nèi)安全運(yùn)行。幾乎所有組件都能在運(yùn)行失敗時(shí)自動(dòng)重啟,不會(huì)影響其他組件或內(nèi)核。
在調(diào)試地面站上安裝由QNX提供的集成開發(fā)環(huán)境(integrateddevelopmentenvironment,IDE),用C語言編寫控制程序,并通過路由器將控制指令發(fā)送到機(jī)器人的QNX系統(tǒng)中。機(jī)器人本體控制器接收控制指令并解析,將電機(jī)的速度、位置等指令通過EtherCAT網(wǎng)絡(luò)發(fā)送到對應(yīng)驅(qū)動(dòng)器中,最終實(shí)現(xiàn)對機(jī)器人的運(yùn)動(dòng)控制。
mmap函數(shù)內(nèi)存映射圖如圖4所示。
圖4 mmap函數(shù)內(nèi)存映射圖
在QNX系統(tǒng)中,進(jìn)程間的通信方式有文件、管道、信號(hào)、套接字、消息隊(duì)列、共享內(nèi)存、信號(hào)量等[5]。QNX中每個(gè)進(jìn)程都有自己的虛擬地址空間,可通過mmap函數(shù)來分配和釋放虛擬內(nèi)存。該函數(shù)的主要功能是將文件或設(shè)備映射到調(diào)用進(jìn)程的地址空間中,從而直接操作這段虛擬地址對文件進(jìn)行讀、寫等,不必再進(jìn)行read、write等系統(tǒng)調(diào)用。本文采用共享內(nèi)存通信方式設(shè)計(jì)機(jī)器人模塊化控制軟件。
3.2工業(yè)現(xiàn)場總線EtherCAT特點(diǎn)
工業(yè)現(xiàn)場總線EtherCAT是一個(gè)以以太網(wǎng)為基礎(chǔ)的開放架構(gòu)的現(xiàn)場總線[6],最初是由德國倍福研發(fā)的[7]。不同于傳統(tǒng)以太網(wǎng),EtherCAT網(wǎng)絡(luò)無需在每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)處接收數(shù)據(jù)。當(dāng)網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)綇恼驹O(shè)備時(shí),從站控制器讀取主站發(fā)來的數(shù)據(jù);當(dāng)從站需要輸入數(shù)據(jù)時(shí),可在報(bào)文通過時(shí)將數(shù)據(jù)插入報(bào)文。該過程由從站硬件實(shí)現(xiàn),通信速度與協(xié)議堆棧軟件的實(shí)時(shí)運(yùn)行系統(tǒng)或處理器性能無關(guān)。網(wǎng)段中的最后一個(gè)EtherCAT從站將經(jīng)過充分處理的報(bào)文傳回主站。EtherCAT幾乎支持所有的拓?fù)浣Y(jié)構(gòu),最多可容納65 535個(gè)設(shè)備,因此對網(wǎng)絡(luò)規(guī)模幾乎沒有限制。
EtherCAT自問世以來,已經(jīng)成為多種相關(guān)的國際標(biāo)準(zhǔn),如IEC61158(國際電工委員會(huì))中Type12、IEC61784的CPF12等。EtherCAT支持CANopenDSP402協(xié)議,這為實(shí)現(xiàn)機(jī)器人控制提供了技術(shù)支持。
通過Hilscher提供的SYCON軟件搭建主站網(wǎng)絡(luò)及配置從站數(shù)據(jù),包括主站驅(qū)動(dòng)板卡配置、從站設(shè)備識(shí)別、從站驅(qū)動(dòng)配置、從站網(wǎng)絡(luò)協(xié)議配置等。
4控制系統(tǒng)軟件設(shè)計(jì)
本文的機(jī)器人主要用于遙控操作,采用模塊化的思想[8]進(jìn)行軟件設(shè)計(jì),選用共享內(nèi)存的形式實(shí)現(xiàn)進(jìn)程間通信??刂瞥绦虮粍澐譃?個(gè)模塊,工作流程如圖5所示。
圖5 控制流程圖
①串口通信模塊(Communicator)的功能包括接收、識(shí)別一包完整的控制指令,并將控制指令存儲(chǔ)到串口接收共享內(nèi)存中;將串口發(fā)送共享內(nèi)存中的機(jī)器人實(shí)時(shí)狀態(tài)數(shù)據(jù)發(fā)送到遠(yuǎn)程地面站。
②協(xié)議解析模塊(Protocol)的功能包括將串口接收共享內(nèi)存的數(shù)據(jù)解析成機(jī)器人控制指令,并將控制指令寫入?yún)f(xié)議解析接收共享內(nèi)存中;將機(jī)器人狀態(tài)共享內(nèi)存中的機(jī)器人當(dāng)前狀態(tài)信息數(shù)據(jù)進(jìn)行編碼,并寫入串口發(fā)送共享內(nèi)存中。
③算法模塊(Controller)的功能包括將協(xié)議解析接收共享內(nèi)存中的數(shù)據(jù)經(jīng)算法運(yùn)算成電機(jī)驅(qū)動(dòng)器控制指令,運(yùn)用IMU數(shù)據(jù)以及驅(qū)動(dòng)器返回的數(shù)據(jù)進(jìn)行閉環(huán)控制,并將控制指令寫入對應(yīng)驅(qū)動(dòng)器發(fā)送共享內(nèi)存中;將驅(qū)動(dòng)器接收共享內(nèi)存中的電機(jī)狀態(tài)數(shù)據(jù)以及IMU共享內(nèi)存中的數(shù)據(jù)轉(zhuǎn)化成機(jī)器人本體狀態(tài)信息,并將機(jī)器人狀態(tài)信息寫入機(jī)器人狀態(tài)共享內(nèi)存中[9]。
④驅(qū)動(dòng)器模塊(Drivercommunication)的功能包括將驅(qū)動(dòng)器發(fā)送共享內(nèi)存中的電機(jī)控制指令發(fā)送給對應(yīng)電機(jī)驅(qū)動(dòng)器,實(shí)現(xiàn)電機(jī)控;將電機(jī)實(shí)時(shí)數(shù)據(jù)(如速度、電流、位置等信息)存入驅(qū)動(dòng)器接收共享內(nèi)存中。
⑤姿態(tài)位置數(shù)據(jù)模塊(IMU)的功能是讀取機(jī)器人實(shí)時(shí)姿態(tài)信息、位置信息,并將數(shù)據(jù)保存到IMU共享內(nèi)存。
⑥共享內(nèi)存數(shù)據(jù)輸出模塊(SHMprint)的功能是在調(diào)試時(shí),將共享內(nèi)存中的數(shù)據(jù)輸出到終端中,便于查看共享內(nèi)存中的數(shù)據(jù)以及調(diào)試。
⑦鍵盤控制模塊(keycontroller)用于調(diào)試地面站對整個(gè)系統(tǒng)進(jìn)行調(diào)試。
相互獨(dú)立的模塊之間周期性地發(fā)送與接收共享內(nèi)存中的數(shù)據(jù),通過讀寫保護(hù)機(jī)制保護(hù)共享內(nèi)存中的數(shù)據(jù),以保證在同一時(shí)間內(nèi)可以有多個(gè)線程讀取共享內(nèi)存中的數(shù)據(jù)。在寫數(shù)據(jù)時(shí),只有一個(gè)線程向共享內(nèi)存中寫數(shù)據(jù),其他線程處于等待狀態(tài)。
本文在QNX實(shí)時(shí)系統(tǒng)上實(shí)現(xiàn)EtherCAT網(wǎng)絡(luò)通信,通過發(fā)送CANopenDSP402協(xié)議指令到ELMO電機(jī)驅(qū)動(dòng)器進(jìn)行運(yùn)動(dòng)控制。CANopen協(xié)議有SDO與PDO兩種通信方法[10]。SDO通信方法面向服務(wù)數(shù)據(jù)的發(fā)送與接收,實(shí)時(shí)性不高,主要用于從站配置;PDO通信方法面向過程數(shù)據(jù),實(shí)時(shí)性高、速度快,適用于實(shí)時(shí)性控制。驅(qū)動(dòng)器通信模塊采用PDO通信方式。
5試驗(yàn)
在QNX實(shí)時(shí)操作系統(tǒng)上測試EtherCAT網(wǎng)絡(luò)通信,設(shè)備驅(qū)動(dòng)號(hào)為1270100,串行接口為20403,固件類型為EtherCAT主站?;贑ANopenDSP402通信協(xié)議的ELMO電機(jī)驅(qū)動(dòng)器反饋數(shù)據(jù)237,表示電機(jī)啟動(dòng)。
由履帶機(jī)器人搭載可以構(gòu)建三維場景模型的激光傳感器,在國家地震救援訓(xùn)練中心進(jìn)行實(shí)地測試。經(jīng)測試,該機(jī)器人能夠在模擬地震廢墟中順利通過可變波浪路面、穿插式可變障礙、可變坡度、復(fù)雜可變路面、攀爬30°斜坡和45°樓梯等環(huán)境。機(jī)器人的最大越障垂直高度為320mm,最大跨越溝道寬度為500mm;在不打滑的情況下,最大爬坡能力為45°。
6結(jié)束語
經(jīng)試驗(yàn)測試,本文設(shè)計(jì)的控制系統(tǒng)能夠在復(fù)雜的非結(jié)構(gòu)環(huán)境下穩(wěn)定運(yùn)行,連續(xù)工作時(shí)間為2h,達(dá)到了設(shè)計(jì)要求。該控制系統(tǒng)不僅適用于六履帶四擺臂履帶式移動(dòng)機(jī)器人,還適用于其他多自由度的機(jī)械系統(tǒng),如機(jī)械臂等。本文設(shè)計(jì)的六履帶四擺臂履帶式移動(dòng)機(jī)器人可與可見光/紅外相機(jī)、激光傳感器、溫度傳感器、氣體傳感器、機(jī)械臂等設(shè)備集成,構(gòu)成機(jī)器人化的應(yīng)用系統(tǒng),用于災(zāi)難救援、公共安全應(yīng)急響應(yīng)等領(lǐng)域。
參考文獻(xiàn)
[1] 陳淑艷,陳文家.履帶式移動(dòng)機(jī)器人研究綜述[J].機(jī)電工程,2007(12):109-112.
[2] 李允旺,葛世榮,朱華,等.四履帶雙擺臂機(jī)器人越障機(jī)理及越障能力[J].機(jī)器人, 2010(2):157-165.
[3] 趙磊.QNX實(shí)時(shí)操作系統(tǒng)及其應(yīng)用分析[J].軟件導(dǎo)刊,2009(5):22-24.
[4] 邢葆軼.基于QNX的七自由度機(jī)械臂控制系統(tǒng)設(shè)計(jì)[D].沈陽:沈陽理工大學(xué),2013.
[5] 李存.QNXNeutrino實(shí)時(shí)操作系統(tǒng)性能分析[J].微型電腦應(yīng)用,2014(3):35-37.
[6] 張群.一種實(shí)時(shí)以太網(wǎng)EtherCAT介紹[J].電子世界,2012(22):15-16.
[7] 成繼勛,朱紅萍.工業(yè)以太網(wǎng)技術(shù)的新進(jìn)展[J].自動(dòng)化儀表,2004(12):4-7+11.
[8] 趙新剛,顧爽,吳成東,等.基于QNX實(shí)時(shí)系統(tǒng)的行為輔助機(jī)器人控制系統(tǒng)[C]//2009全國虛擬儀器大會(huì)論文集(二),2009:4.
[9] 劉建.礦用救援機(jī)器人關(guān)鍵技術(shù)研究[D].北京:中國礦業(yè)大學(xué),2014.
[10]李玉杰.基于EtherCAT的從站微處理器的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2012.
DesignandImplementationoftheControlSystemforCompoundTrackedMobileRobot
Abstract:According to the mechanism characteristics of six tracked mobile robot with four swing arms, a robot control system is designed using technology of EtherCAT bus and QNX multi-task real-time operating system.Hardware integration and software design of the control system are introduced emphatically.To realize the scalability and portability of control software, the modular control software is designed by using shared memory communication mode.The experimental results show that the walking and obstacle surmounting functions of robot can be implemented under remote control; the reliability and stability of the control system are verified, which are met the design requirements.
Keywords:Mobile robotControl systemEtherCAT busReal-time controlRemote controlModular design
中圖分類號(hào):TH-3;TP242
文獻(xiàn)標(biāo)志碼:A
DOI:10.16086/j.cnki.issn 1000-0380.201606009
國家科技支撐基金資助項(xiàng)目(編號(hào):2013BAK03B02)。
修改稿收到日期:2015-01-01。
第一作者張化龍(1988-),男,現(xiàn)為沈陽理工大學(xué)機(jī)械電子工程專業(yè)在讀碩士研究生;主要從事機(jī)器人控制系統(tǒng)集成方向的研究。