《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 雙臂單腿跳躍機(jī)器人的實時控制技術(shù)研究
雙臂單腿跳躍機(jī)器人的實時控制技術(shù)研究
摘要: 與倒立擺相似,單腿跳躍機(jī)器人是自然不穩(wěn)定系統(tǒng),在實際的規(guī)劃與控制中,需要保證控制的實時性。
Abstract:
Key words :
     與倒立擺相似,單腿跳躍機(jī)器人是自然不穩(wěn)定系統(tǒng),在實際的規(guī)劃與控制中,需要保證控制的實時性。這使得實時控制的研究顯得至關(guān)重要。

     Windows系統(tǒng)本身不是實時操作系統(tǒng),但是,對于采用上/下位機(jī)模式(如PC+DSP)的控制系統(tǒng),因為下位機(jī)的定時精度高且響應(yīng)快,通過合理的設(shè)計,同樣可以保證整個控制系統(tǒng)的實時性。

     針對單腿跳躍機(jī)器人控制的要求,重點(diǎn)研究了實時控制技術(shù),并給出具體控制方案。在聯(lián)機(jī)調(diào)試之前,先設(shè)計實驗驗證該控制方案的可行。實驗結(jié)果說明控制系統(tǒng)的實時性能滿足設(shè)計要求。

1 機(jī)器人控制系統(tǒng)的搭建

    本文所研究的是一種新型彈性單腿機(jī)器人,該機(jī)器人采用雙臂驅(qū)動,彈性伸縮腿中不安裝驅(qū)動部件,系統(tǒng)依靠內(nèi)部動力學(xué)耦合實現(xiàn)動態(tài)站立平衡、起跳和穩(wěn)定連續(xù)跳躍。其機(jī)械本體如圖1所示。

     兩個直流伺服電機(jī)安裝在機(jī)器人的臂端,電機(jī)的輸出經(jīng)由鋼絲傳到機(jī)器人肩部,從而實現(xiàn)臂的擺動。電機(jī)自帶編碼器,測臂的擺角;機(jī)器人肩部裝有陀螺儀,測身體的傾角;腿部有一直線位移傳感器,用以測腿的伸縮長度。

    考慮到本雙臂單腿跳躍機(jī)器人主要為研究先進(jìn)控制理論和方法提供實驗平臺,其控制系統(tǒng)采用上/下位機(jī)的模式,主要由PC機(jī)、DSP(Digital Signal Processor)及機(jī)器人本體上的各傳感器組成,系統(tǒng)的結(jié)構(gòu)框圖如圖2所示。

     PC與DSP之間通過CAN總線來通信。CAN適配卡采用周立功公司的PCI9810。PC作為上位機(jī)可充分利用其現(xiàn)有的軟件工具和開發(fā)環(huán)境,方便實現(xiàn)多任務(wù)管理;DSP(TI公司的TMS320F2812)作為下位機(jī)則利用其高速運(yùn)算和精確定時。

2 Windows下的實時控制

    這里希望在目前使用最廣的Windows平臺上開發(fā)實時控制軟件,以充分發(fā)揮其圖形功能和豐富的軟硬件支持,減少開發(fā)難度,提高軟件的通用性。所以在上位機(jī)采用的操作系統(tǒng)仍然是Windows系統(tǒng)。

    但是,Windows并非一種實時操作系統(tǒng),或者僅能稱為“弱實時”。他是基于消息驅(qū)動機(jī)制的操作系統(tǒng),一旦計算機(jī)的CPU被某個進(jìn)程占用,或系統(tǒng)資源緊張時,任何其他消息或進(jìn)程都將被暫時掛起而無法實時處理。

    所謂實時,就是要在特定的時間間隔內(nèi)完成特定的任務(wù)。參考二級倒立擺控制周期(6~10 ms)和Raibert的SLIP跳躍機(jī)器人控制周期(6 ms),把控制周期定為5 ms。

2.1 控制方案

    精確定時是實時控制中的關(guān)鍵指標(biāo),若不對操作系統(tǒng)進(jìn)行擴(kuò)展,Windows能達(dá)到的定時精度最高僅為1 ms,受其他任務(wù)干擾時精度會更低。如果僅用PC控制機(jī)器人,是無法保證實時性的。

   然而,對于上/下位機(jī)模式的控制系統(tǒng),定時精度可以由下位機(jī)來保證,上位機(jī)只需在某個時間范圍內(nèi)完成任務(wù)并響應(yīng)即可。從某種意義上說,實時性其實是一個靠近下位的概念,生物具有高超的協(xié)調(diào)能力并不總需處于最上位的大腦的時刻關(guān)注。

   大腦也是個多任務(wù)系統(tǒng),他總會被其他的事情干擾,但要進(jìn)行某一控制時,他須具備2點(diǎn):

(1)及時響應(yīng);

(2)一次給下位足夠的信息和權(quán)限以便委任之。

    這里要注意(1)中“及時”這個概念,他指上位可在某個時間范圍內(nèi)作出響應(yīng),而不是在某個精確的時間點(diǎn)。而且,當(dāng)(2)成立時,上位機(jī)甚至可以在若干個控制周期里不響應(yīng),控制仍能正常進(jìn)行。

   基于以上控制思路,現(xiàn)有配置的Windows平臺下PC機(jī)完全可以勝任上位機(jī)工作。

具體控制方案為:

  下位機(jī)(DSP) 精確定時,決定控制系統(tǒng)的控制周期,進(jìn)行底層的伺服控制。

   上位機(jī)(PC) 不主動動作,只在接收到狀態(tài)量時才運(yùn)算并發(fā)送控制量。通過狀態(tài)預(yù)估,一次發(fā)送幾個控制量,包含了對未來狀態(tài)的控制。使用多線程技術(shù),并使用Windows下最高精度的定時器來專門負(fù)責(zé)發(fā)送,保證上位響應(yīng)的及時。

   上/下位機(jī)協(xié)同工作過程的示意如圖3,其中T代表控制周期。

2.2 提高實時性的關(guān)鍵技術(shù)

    在實際的機(jī)器人控制軟件設(shè)計中,采用幾項提高軟件實時性的關(guān)鍵技術(shù),他們的引入,可以最大限度地發(fā)揮Windows的實時潛能,讓上位機(jī)更好地按照上節(jié)給出的控制方案運(yùn)行。

(1)進(jìn)程及線程技術(shù)

   進(jìn)程是程序在計算機(jī)上的一次執(zhí)行活動。當(dāng)運(yùn)行控制軟件,其進(jìn)程就被啟動。

   Windows雖然不是實時操作系統(tǒng),但他的進(jìn)程管理還是有優(yōu)先級之分的。高優(yōu)先級進(jìn)程優(yōu)先運(yùn)行,只有當(dāng)高優(yōu)先級進(jìn)程不運(yùn)行時,才調(diào)度低優(yōu)先級進(jìn)程運(yùn)行。

   Windows下進(jìn)程優(yōu)先級有:實時、高、高于標(biāo)準(zhǔn)、標(biāo)準(zhǔn)、低于標(biāo)準(zhǔn)、低6個等級,一般程序的默認(rèn)優(yōu)先級為“標(biāo)準(zhǔn)”。

   這里可以API函數(shù)SetPriorityClass()將控制軟件進(jìn)程設(shè)置成“實時級”。實時級進(jìn)程能占用更多的CPU資源,這意味著減少Windows下其他任務(wù)對機(jī)器人控制的影響。

   Windows下,一個進(jìn)程可以包含若干個線程,這就是多線程技術(shù),他讓控制軟件可以同時做幾件事。

   由圖3可見,軟件中主要有3個線程:線程1完成控制量的發(fā)送;線程2完成數(shù)據(jù)的接收與控制量運(yùn)算;線程3負(fù)責(zé)人機(jī)交互。

(2)多媒體時鐘

   多媒體時鐘是Windows下精度最高的定時器。在控制軟件中,他負(fù)責(zé)發(fā)送控制,線程1就是由多媒體時鐘建立的,他使上位完成運(yùn)算任務(wù)后,能把已得的控制量及時發(fā)送給下位。

(3)緩沖技術(shù)

   這是對提高實時性效果最顯著的技術(shù),他包含預(yù)估工作,因為一次發(fā)送的多個控制量里有未來量。狀態(tài)的微分值(一階、二階),是估計未來、預(yù)先給出控制量的基礎(chǔ)。

  緩沖區(qū)設(shè)在下位,只要上位一次給下位的控制量足夠充足,即使上位有若干周期不發(fā)送控制量給下位也不會影響整體的控制效果。這為上位機(jī)爭取了更多的時間用于復(fù)雜控制算法的解算,也提高了抗干擾的能力。

  以緩沖區(qū)大小等于4為例,緩沖機(jī)制的過程如圖4所示,其中T代表控制周期??梢钥吹郊词筆C有4個周期不發(fā)控制量,DSP依然能夠讀到所需的控制量(緩沖區(qū)中默認(rèn)的無控制量狀態(tài)是零)。

 

3 實驗驗證

   在雙臂單腿跳躍起機(jī)器人研究的前期,因為理論和技術(shù)水平的限制,尚不能馬上進(jìn)入聯(lián)機(jī)調(diào)試階段。但可以設(shè)計實驗先對控制系統(tǒng)的實時性能作出驗證。

實驗中:

  控制周期為5 ms;緩沖區(qū)大小為4(即一次發(fā)送四個控制量);實驗中所用到的一次矩陣運(yùn)算,指對某10維方陣的求逆并乘于另一方陣,系調(diào)用Matcom C++矩陣庫實現(xiàn)。一次運(yùn)算時間約0.1 ms。矩陣運(yùn)算的作用是模擬實際控制中進(jìn)行的運(yùn)算量。實驗數(shù)據(jù)的采樣頻率為200 Hz,數(shù)據(jù)值為信號電壓大小,單位為V。

3.1 實驗設(shè)計

  構(gòu)造一個由輸入控制輸出的系統(tǒng),即輸出跟隨輸人的動作,這類似于生物的反射回路,雖然算法簡單,但很能說明實時問題。實時性不好,輸出就不能很好隨動,對于生物就是反應(yīng)遲鈍。所以即使從直觀上,這個實驗也能反應(yīng)出系統(tǒng)的實時性好壞。

  上位機(jī)中插入上百次的矩陣運(yùn)算用以模擬實際中復(fù)雜算法的時耗,從而實驗中顯示的實時性性能同樣也可以說明實際可用的實時性。

實驗框圖如圖5所示。

 

控制軟件的運(yùn)行界面如圖6所示。

 

3.2 實驗結(jié)果

   實驗中,A/D采得的輸入信號經(jīng)CAN通信送給PC,PC由此來計算控制量(隨動控制中,輸入/輸出只是簡單的比例關(guān)系)再經(jīng)CAN發(fā)送給DSP,最后由DA輸出給電機(jī)。

  實驗最終要得到輸入與輸出曲線,看輸出能否很好地跟隨輸入。具體操作上,DSP在把控制量送給D/A的同時,也回送給PC,所以輸入和輸出數(shù)據(jù)都可由PC采集(即圖中數(shù)據(jù)存儲按鈕對應(yīng)的功能)。再借助Matlab的曲線繪制功能來對實驗結(jié)果進(jìn)行分析。

  為顯示系統(tǒng)在高負(fù)荷運(yùn)算下的實時性,以下實驗均在插入100次矩陣運(yùn)算(時耗約為10 ms)的情況下進(jìn)行。

(1)對位置的跟蹤

   輸出等于輸入,如圖7所示,可以看到他們幾乎重合。幾處不吻合的地方是因預(yù)估造成的,也說明那一刻PC并未順利將控制量發(fā)送給DSP(100次矩陣運(yùn)算造成的),DSP靠讀取其緩沖區(qū)中的估計控制量工作,但并不影響整體的控制效果。

如果不啟用緩沖,PC一次只發(fā)送1個控制量,將得到如圖8所示結(jié)果。

 

    因為DSP默認(rèn)的輸出是零,控制量的不及時到位,造成’DSP在大部分時間都輸出零。這個輸出加在電機(jī)上,根本無法控制電機(jī)隨動。

   這就是為仆么在前面說緩沖對提高實時性效果最顯著,他彌補(bǔ)上位機(jī)非實時的弱點(diǎn),從而增加了系統(tǒng)的實時性。

(2)對速度的跟蹤

   為了更直觀地顯示系統(tǒng)響應(yīng)的快慢,可以讓電機(jī)來跟蹤位移傳感器的速度信號。位移傳感器不動時電機(jī)不轉(zhuǎn),正向動正轉(zhuǎn),反向動反轉(zhuǎn)。

   如圖9所示,為了保護(hù)電機(jī),輸出值是輸入的1/5??梢钥吹剑敵鰧Σ煌l率變化的輸入都很好地隨動。說明系統(tǒng)回路具備了較好的實時性。

 

4 結(jié) 語

      通過對上下位機(jī)模式控制系統(tǒng)的深入分析,發(fā)現(xiàn),在控制同路中,對上位機(jī)的要求不是精確定時,而足及時響應(yīng),這恰使得在 Wndows平臺下開發(fā)上位機(jī)控制軟件成為可能。由此,本文提出一種“DSP定時PC從動”實時控制方式,并引入了緩沖機(jī)制等提高實時性的關(guān)鍵技術(shù),保證實際應(yīng)用中控制系統(tǒng)具有較穩(wěn)健的實時性能。

    本文所設(shè)計實驗,已經(jīng)考慮較苛刻的時間及環(huán)境閃素,能說明整個系統(tǒng)具有良好的實時性。該實時控制方案的可行,有效降低了雙臂單腿跳躍機(jī)器人控制系統(tǒng)的開發(fā)難度和成本,是關(guān)鍵的階段性成果。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。