關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 雙臂單腿跳躍機(jī)器人的實(shí)時(shí)控制技術(shù)研究

雙臂單腿跳躍機(jī)器人的實(shí)時(shí)控制技術(shù)研究

作者: 時(shí)間:2009-09-25 來(lái)源:網(wǎng)絡(luò) 收藏
與倒立擺相似,是自然不穩(wěn)定系統(tǒng),在實(shí)際的規(guī)劃與中,需要保證性。這使得顯得至關(guān)重要。

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

本文引用地址:http://m.butianyuan.cn/article/163553.htm

針對(duì)控制的要求,重點(diǎn)了實(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 控制系統(tǒng)的搭建

本文所的是一種新型彈性機(jī)器人,該機(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所示。

兩個(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所示。

PC與DSP之間通過(guò)總線來(lái)通信。適配卡采用周立功公司的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),或者僅能稱為“弱實(shí)時(shí)”。他是基于消息驅(qū)動(dòng)機(jī)制的操作系統(tǒng),一旦計(jì)算機(jī)的CPU被某個(gè)進(jìn)程占用,或系統(tǒng)資源緊張時(shí),任何其他消息或進(jìn)程都將被暫時(shí)掛起而無(wú)法實(shí)時(shí)處理。

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

2.1 控制方案

精確定時(shí)是實(shí)時(shí)控制中的關(guān)鍵指標(biāo),若不對(duì)操作系統(tǒng)進(jìn)行擴(kuò)展,Windows能達(dá)到的定時(shí)精度最高僅為1 ms,受其他任務(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)的控制。使用多線程,并使用Windows下最高精度的定時(shí)器來(lái)專門(mén)負(fù)責(zé)發(fā)送,保證上位響應(yīng)的及時(shí)。

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

2.2 提高實(shí)時(shí)性的關(guān)鍵

在實(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)是零)。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉