摘 要:針對(duì)雙臂單腿跳躍機(jī)器人的特點(diǎn),基于CAN總線搭建起上/下位機(jī)模式的控制系統(tǒng)。分析上位機(jī)(PC)與下位機(jī)(DSP)的特點(diǎn)及其在控制系統(tǒng)中的作用,提出一種“DSP定時(shí)PC從動(dòng)”的實(shí)時(shí)控制方式,并引入緩沖機(jī)制等提高實(shí)時(shí)性的關(guān)鍵技術(shù),使得Windows平臺(tái)下弱實(shí)時(shí)的上位機(jī)同樣可以勝任實(shí)時(shí)控制任務(wù),保證控制系統(tǒng)整體的實(shí)時(shí)性。通過(guò)實(shí)驗(yàn)證明該實(shí)時(shí)控制方式的可行。
關(guān)鍵詞:機(jī)器人;CAN總線;實(shí)時(shí)系統(tǒng);緩沖
中圖分類(lèi)號(hào):TP242文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1004-373X(2008)08-161-04
Research on the Realtime Control Techniques for a Onelegged Hopping
Robot with Two Actuated Arms
GU Hao1,LIANG Conghui1,ZHAO Bing2
(1.School of Automation Science and Electrical Engineering,Beijing University of Aeronautics and Astronautics,Beijing,100083,China;
2.School of Mechanical and Electrical Engineering,North China University of Technology,Beijing,100041,China)
Abstract:According to the characters of a onelegged hopping robot with two actuated arms,a realtime control system consisting of PC(Personal Computer) and DSP(Digital Signal Processor) based on Controller Area Network(CAN)is designed.After analyzing the behaviors of both PC and DSP in the control system,a way to realize realtime control is presented,in which DSP is used for timing and PC is driven to work by signals from DSP.Some techniques like buffering are introduced as well to improve the realtime performance.In this manner,even using Windows OS,PC can be qualified to make the whole system have good realtime performance.Experiments are given and the feasibility of this control method is demonstrated.
Keywords:robot;CAN bus;realtime system;buffering
與倒立擺相似,單腿跳躍機(jī)器人是自然不穩(wěn)定系統(tǒng),在實(shí)際的規(guī)劃與控制中,需要保證控制的實(shí)時(shí)性。這使得實(shí)時(shí)控制的研究顯得至關(guān)重要。
Windows系統(tǒng)本身不是實(shí)時(shí)操作系統(tǒng),但是,對(duì)于采用上/下位機(jī)模式(如PC+DSP)的控制系統(tǒng),因?yàn)橄挛粰C(jī)的定時(shí)精度高且響應(yīng)快,通過(guò)合理的設(shè)計(jì),同樣可以保證整個(gè)控制系統(tǒng)的實(shí)時(shí)性。
針對(duì)單腿跳躍機(jī)器人控制的要求,重點(diǎn)研究了實(shí)時(shí)控制技術(shù),并給出具體控制方案。在聯(lián)機(jī)調(diào)試之前,先設(shè)計(jì)實(shí)驗(yàn)驗(yàn)證該控制方案的可行。實(shí)驗(yàn)結(jié)果說(shuō)明控制系統(tǒng)的實(shí)時(shí)性能滿足設(shè)計(jì)要求。
1 機(jī)器人控制系統(tǒng)的搭建
本文所研究的是一種新型彈性單腿機(jī)器人[1,2],該機(jī)器人采用雙臂驅(qū)動(dòng),彈性伸縮腿中不安裝驅(qū)動(dòng)部件,系統(tǒng)依靠?jī)?nèi)部動(dòng)力學(xué)耦合實(shí)現(xiàn)動(dòng)態(tài)站立平衡、起跳和穩(wěn)定連續(xù)跳躍。其機(jī)械本體如圖1所示。
圖1 雙臂單腿機(jī)器人實(shí)物
兩個(gè)直流伺服電機(jī)安裝在機(jī)器人的臂端,電機(jī)的輸出經(jīng)由鋼絲傳到機(jī)器人肩部,從而實(shí)現(xiàn)臂的擺動(dòng)。電機(jī)自帶編碼器,測(cè)臂的擺角;機(jī)器人肩部裝有陀螺儀,測(cè)身體的傾角;腿部有一直線位移傳感器,用以測(cè)腿的伸縮長(zhǎng)度。
考慮到本雙臂單腿跳躍機(jī)器人主要為研究先進(jìn)控制理論和方法提供實(shí)驗(yàn)平臺(tái),其控制系統(tǒng)采用上/下位機(jī)的模式,主要由PC機(jī)、DSP(Digital Signal Processor)及機(jī)器人本體上的各傳感器組成,系統(tǒng)的結(jié)構(gòu)框圖如圖2所示。
圖2 控制系統(tǒng)結(jié)構(gòu)圖
PC與DSP之間通過(guò)CAN總線來(lái)通信。CAN適配卡采用周立功公司的PCI9810。PC作為上位機(jī)可充分利用其現(xiàn)有的軟件工具和開(kāi)發(fā)環(huán)境,方便實(shí)現(xiàn)多任務(wù)管理;DSP(TI公司的TMS320F2812)作為下位機(jī)則利用其高速運(yùn)算和精確定時(shí)。
2 Windows下的實(shí)時(shí)控制
這里希望在目前使用最廣的Windows平臺(tái)上開(kāi)發(fā)實(shí)時(shí)控制軟件,以充分發(fā)揮其圖形功能和豐富的軟硬件支持,減少開(kāi)發(fā)難度,提高軟件的通用性。所以在上位機(jī)采用的操作系統(tǒng)仍然是Windows系統(tǒng)。
但是,Windows并非一種實(shí)時(shí)操作系統(tǒng)[3],或者僅能稱(chēng)為“弱實(shí)時(shí)”[4]。他是基于消息驅(qū)動(dòng)機(jī)制的操作系統(tǒng),一旦計(jì)算機(jī)的CPU被某個(gè)進(jìn)程占用,或系統(tǒng)資源緊張時(shí),任何其他消息或進(jìn)程都將被暫時(shí)掛起而無(wú)法實(shí)時(shí)處理[5]。
所謂實(shí)時(shí),就是要在特定的時(shí)間間隔內(nèi)完成特定的任務(wù)。參考二級(jí)倒立擺控制周期[6](6~10 ms)和Raibert的SLIP跳躍機(jī)器人控制周期[7](6 ms),把控制周期定為5 ms。
2.1 控制方案
精確定時(shí)是實(shí)時(shí)控制中的關(guān)鍵指標(biāo),若不對(duì)操作系統(tǒng)進(jìn)行擴(kuò)展,Windows能達(dá)到的定時(shí)精度最高僅為1 ms[3,5,8],受其他任務(wù)干擾時(shí)精度會(huì)更低。如果僅用PC控制機(jī)器人,是無(wú)法保證實(shí)時(shí)性的。
然而,對(duì)于上/下位機(jī)模式的控制系統(tǒng),定時(shí)精度可以由下位機(jī)來(lái)保證,上位機(jī)只需在某個(gè)時(shí)間范圍內(nèi)完成任務(wù)并響應(yīng)即可。從某種意義上說(shuō),實(shí)時(shí)性其實(shí)是一個(gè)靠近下位的概念,生物具有高超的協(xié)調(diào)能力并不總需處于最上位的大腦的時(shí)刻關(guān)注。
大腦也是個(gè)多任務(wù)系統(tǒng),他總會(huì)被其他的事情干擾,但要進(jìn)行某一控制時(shí),他須具備2點(diǎn):
(1) 及時(shí)響應(yīng);
(2) 一次給下位足夠的信息和權(quán)限以便委任之。
這里要注意(1)中“及時(shí)”這個(gè)概念,他指上位可在某個(gè)時(shí)間范圍內(nèi)作出響應(yīng),而不是在某個(gè)精確的時(shí)間點(diǎn)。而且,當(dāng)(2)成立時(shí),上位機(jī)甚至可以在若干個(gè)控制周期里不響應(yīng),控制仍能正常進(jìn)行。
基于以上控制思路,現(xiàn)有配置的Windows平臺(tái)下PC機(jī)完全可以勝任上位機(jī)工作。
具體控制方案為:
下位機(jī)(DSP)
精確定時(shí),決定控制系統(tǒng)的控制周期,進(jìn)行底層的伺服控制。
上位機(jī)(PC)
不主動(dòng)動(dòng)作,只在接收到狀態(tài)量時(shí)才運(yùn)算并發(fā)送控制量。通過(guò)狀態(tài)預(yù)估,一次發(fā)送幾個(gè)控制量,包含了對(duì)未來(lái)狀態(tài)的控制。使用多線程技術(shù),并使用Windows下最高精度的定時(shí)器來(lái)專(zhuān)門(mén)負(fù)責(zé)發(fā)送,保證上位響應(yīng)的及時(shí)。
上/下位機(jī)協(xié)同工作過(guò)程的示意如圖3,其中T代表控制周期。
圖3 上下位機(jī)協(xié)同工作示意圖
2.2 提高實(shí)時(shí)性的關(guān)鍵技術(shù)
在實(shí)際的機(jī)器人控制軟件設(shè)計(jì)中,采用幾項(xiàng)提高軟件實(shí)時(shí)性的關(guān)鍵技術(shù),他們的引入,可以最大限度地發(fā)揮Windows的實(shí)時(shí)潛能,讓上位機(jī)更好地按照上節(jié)給出的控制方案運(yùn)行。
(1) 進(jìn)程及線程技術(shù)
進(jìn)程是程序在計(jì)算機(jī)上的一次執(zhí)行活動(dòng)。當(dāng)運(yùn)行控制軟件,其進(jìn)程就被啟動(dòng)。
Windows雖然不是實(shí)時(shí)操作系統(tǒng),但他的進(jìn)程管理還是有優(yōu)先級(jí)之分的。高優(yōu)先級(jí)進(jìn)程優(yōu)先運(yùn)行,只有當(dāng)高優(yōu)先級(jí)進(jìn)程不運(yùn)行時(shí),才調(diào)度低優(yōu)先級(jí)進(jìn)程運(yùn)行。
Windows下進(jìn)程優(yōu)先級(jí)有:實(shí)時(shí)、高、高于標(biāo)準(zhǔn)、標(biāo)準(zhǔn)、低于標(biāo)準(zhǔn)、低6個(gè)等級(jí),一般程序的默認(rèn)優(yōu)先級(jí)為“標(biāo)準(zhǔn)”。
這里可以API函數(shù)SetPriorityClass()將控制軟件進(jìn)程設(shè)置成“實(shí)時(shí)級(jí)”。實(shí)時(shí)級(jí)進(jìn)程能占用更多的CPU資源,這意味著減少Windows下其他任務(wù)對(duì)機(jī)器人控制的影響。
Windows下,一個(gè)進(jìn)程可以包含若干個(gè)線程,這就是多線程技術(shù),他讓控制軟件可以同時(shí)做幾件事。
由圖3可見(jiàn),軟件中主要有3個(gè)線程:線程1完成控制量的發(fā)送;線程2完成數(shù)據(jù)的接收與控制量運(yùn)算;線程3負(fù)責(zé)人機(jī)交互。
(2) 多媒體時(shí)鐘
多媒體時(shí)鐘是Windows下精度最高的定時(shí)器。在控制軟件中,他負(fù)責(zé)發(fā)送控制,線程1就是由多媒體時(shí)鐘建立的,他使上位完成運(yùn)算任務(wù)后,能把已得的控制量及時(shí)發(fā)送給下位。
(3) 緩沖技術(shù)
這是對(duì)提高實(shí)時(shí)性效果最顯著的技術(shù),他包含預(yù)估工作,因?yàn)橐淮伟l(fā)送的多個(gè)控制量里有未來(lái)量。狀態(tài)的微分值(一階、二階),是估計(jì)未來(lái)、預(yù)先給出控制量的基礎(chǔ)。
緩沖區(qū)設(shè)在下位,只要上位一次給下位的控制量足夠充足,即使上位有若干周期不發(fā)送控制量給下位也不會(huì)影響整體的控制效果。這為上位機(jī)爭(zhēng)取了更多的時(shí)間用于復(fù)雜控制算法的解算,也提高了抗干擾的能力。
以緩沖區(qū)大小等于4為例,緩沖機(jī)制的過(guò)程如圖4所示,其中T代表控制周期。可以看到即使PC有4個(gè)周期不發(fā)控制量,DSP依然能夠讀到所需的控制量(緩沖區(qū)中默認(rèn)的無(wú)控制量狀態(tài)是零)。
圖4 緩沖機(jī)制示意圖
3 實(shí)驗(yàn)驗(yàn)證
在雙臂單腿跳躍起機(jī)器人研究的前期,因?yàn)槔碚摵图夹g(shù)水平的限制,尚不能馬上進(jìn)入聯(lián)機(jī)調(diào)試階段。但可以設(shè)計(jì)實(shí)驗(yàn)先對(duì)控制系統(tǒng)的實(shí)時(shí)性能作出驗(yàn)證。
實(shí)驗(yàn)中:
控制周期為5 ms;緩沖區(qū)大小為4(即一次發(fā)送四個(gè)控制量);實(shí)驗(yàn)中所用到的一次矩陣運(yùn)算,指對(duì)某10維方陣的求逆并乘于另一方陣,系調(diào)用Matcom C++矩陣庫(kù)實(shí)現(xiàn)。一次運(yùn)算時(shí)間約0.1 ms。矩陣運(yùn)算的作用是模擬實(shí)際控制中進(jìn)行的運(yùn)算量。實(shí)驗(yàn)數(shù)據(jù)的采樣頻率為200Hz,數(shù)據(jù)值為信號(hào)電壓大小,單位為V。
3.1 實(shí)驗(yàn)設(shè)計(jì)
構(gòu)造一個(gè)由輸入控制輸出的系統(tǒng),即輸出跟隨輸入的動(dòng)作,這類(lèi)似于生物的反射回路,雖然算法簡(jiǎn)單,但很能說(shuō)明實(shí)時(shí)問(wèn)題。實(shí)時(shí)性不好,輸出就不能很好隨動(dòng),對(duì)于生物就是反應(yīng)遲鈍。所以即使從直觀上,這個(gè)實(shí)驗(yàn)也能反應(yīng)出系統(tǒng)的實(shí)時(shí)性好壞。
上位機(jī)中插入上百次的矩陣運(yùn)算用以模擬實(shí)際中復(fù)雜算法的時(shí)耗,從而實(shí)驗(yàn)中顯示的實(shí)時(shí)性性能同樣也可以說(shuō)明實(shí)際可用的實(shí)時(shí)性。
實(shí)驗(yàn)框圖如圖5所示。
圖5 實(shí)驗(yàn)框圖
控制軟件的運(yùn)行界面如圖6所示。
圖6 上位控制軟件的運(yùn)行界面
3.2 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)中,A/D采得的輸入信號(hào)經(jīng)CAN通信送給PC,PC由此來(lái)計(jì)算控制量(隨動(dòng)控制中,輸入/輸出只是簡(jiǎn)單的比例關(guān)系)再經(jīng)CAN發(fā)送給DSP,最后由DA輸出給電機(jī)。
實(shí)驗(yàn)最終要得到輸入與輸出曲線,看輸出能否很好地跟隨輸入。具體操作上,DSP在把控制量送給D/A的同時(shí),也回送給PC,所以輸入和輸出數(shù)據(jù)都可由PC采集(即圖中數(shù)據(jù)存儲(chǔ)按鈕對(duì)應(yīng)的功能)。再借助Matlab的曲線繪制功能來(lái)對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析。
為顯示系統(tǒng)在高負(fù)荷運(yùn)算下的實(shí)時(shí)性,以下實(shí)驗(yàn)均在插入100次矩陣運(yùn)算(時(shí)耗約為10 ms)的情況下進(jìn)行。
(1) 對(duì)位置的跟蹤
輸出等于輸入,如圖7所示,可以看到他們幾乎重合。幾處不吻合的地方是因預(yù)估造成的,也說(shuō)明那一刻PC并未順利將控制量發(fā)送給DSP(100次矩陣運(yùn)算造成的),DSP靠讀取其緩沖區(qū)中的估計(jì)控制量工作,但并不影響整體的控制效果。
如果不啟用緩沖,PC一次只發(fā)送1個(gè)控制量,將得到如圖8所示結(jié)果。
因?yàn)镈SP默認(rèn)的輸出是零,控制量的不及時(shí)到位,造成DSP在大部分時(shí)間都輸出零。這個(gè)輸出加在電機(jī)上,根本無(wú)法控制電機(jī)隨動(dòng)。
這就是為什么在前面說(shuō)緩沖對(duì)提高實(shí)時(shí)性效果最顯著,他彌補(bǔ)上位機(jī)非實(shí)時(shí)的弱點(diǎn),從而增加了系統(tǒng)的實(shí)時(shí)性。
(2) 對(duì)速度的跟蹤
為了更直觀地顯示系統(tǒng)響應(yīng)的快慢,可以讓電機(jī)來(lái)跟蹤位移傳感器的速度信號(hào)。位移傳感器不動(dòng)時(shí)電機(jī)不轉(zhuǎn),正向動(dòng)正轉(zhuǎn),反向動(dòng)反轉(zhuǎn)。
如圖9所示,為了保護(hù)電機(jī),輸出值是輸入的1/5。可以看到,輸出對(duì)不同頻率變化的輸入都很好地隨動(dòng)。說(shuō)明系統(tǒng)回路具備了較好的實(shí)時(shí)性。
圖7 位置隨動(dòng)
圖8 無(wú)緩沖區(qū)時(shí)的位置隨動(dòng)
4 結(jié) 語(yǔ)
通過(guò)對(duì)上下位機(jī)模式控制系統(tǒng)的深入分析,發(fā)現(xiàn),在控制回路中,對(duì)上位機(jī)的要求不是精確定時(shí),而是及時(shí)響應(yīng),這恰使得在Windows平臺(tái)下開(kāi)發(fā)上位機(jī)控制軟件成為可能。由此,本文提出一種“DSP定時(shí)PC從動(dòng)”實(shí)時(shí)控制方式,并引入了緩沖機(jī)制等提高實(shí)時(shí)性的關(guān)鍵技術(shù),保證實(shí)際應(yīng)用中控制系統(tǒng)具有較穩(wěn)健的實(shí)時(shí)性能。
本文所設(shè)計(jì)實(shí)驗(yàn),已經(jīng)考慮較苛刻的時(shí)間及環(huán)境因素,能說(shuō)明整個(gè)系統(tǒng)具有良好的實(shí)時(shí)性。該實(shí)時(shí)控制方案的可行,有效降低了雙臂單腿跳躍機(jī)器人控制系統(tǒng)的開(kāi)發(fā)難度和成本,是關(guān)鍵的階段性成果。
圖9 速度跟隨
參 考 文 獻(xiàn)
[1]GuangPing He,XiaoLan Tan,XiangHui Zhang,et al.Modeling,Motion Planning,and Control of Onelegged Hopping Robot Actuated by Two Arms.Mech.Mach.Theory,2007,doi:10.1016/j.Mechmach Theory,2007.
[2]楊文綱.單腿跳躍機(jī)器人的動(dòng)力學(xué)分析與運(yùn)動(dòng)規(guī)劃研究[D].北京:北京航空航天大學(xué),2006.
[3]呂鵬,周丹.基于Windows的實(shí)時(shí)測(cè)試軟件系統(tǒng)的實(shí)現(xiàn)[J].北京生物醫(yī)學(xué)工程,2005,24(4):258260.
[4]談世哲,尚緒強(qiáng),趙萬(wàn)生.基于RTX的工業(yè)機(jī)器人全軟件關(guān)節(jié)位置伺服控制器的研究[J].自動(dòng)化技術(shù)與應(yīng)用,2004,23(5):3437.
[5]李進(jìn),李睿,徐紅,等.基于Windows的VxD技術(shù)實(shí)時(shí)控制系統(tǒng)設(shè)計(jì)與研究[J].西安建筑科技大學(xué)學(xué)報(bào):自然科學(xué)版,2003,35(3):272276.
[6]杜浩藩,從爽,秦志強(qiáng).Simulink 環(huán)境下二級(jí)倒立擺的實(shí)時(shí)控制[J].計(jì)算技術(shù)與自動(dòng)化,2003,22(2):7982,85.
[7]Jessica K Hodins,Marc H Raibert.Adjusting Step Length for Rough Terrain Locomotion[J].IEEETrans.Robot.Automat.,1991,7(3):289298.
[8]李湘江,曾艷.基于Windows應(yīng)用程序的精確定時(shí)技術(shù)[J].機(jī)械與電子,2001(3):5659.
[9]陳春艷.基于CAN的某實(shí)時(shí)系統(tǒng)的控制與通信技術(shù)研究[D].綿陽(yáng):中國(guó)工程物理研究院,2006.
[10]Matrix
作者簡(jiǎn)介 顧 顥 男,1982年出生,浙江寧波人,碩士生。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文