雙臂單腿跳躍機器人的實(shí)時(shí)控制技術(shù)研究
Windows系統本身不是實(shí)時(shí)操作系統,但是,對于采用上/下位機模式(如PC+DSP)的控制系統,因為下位機的定時(shí)精度高且響應快,通過(guò)合理的設計,同樣可以保證整個(gè)控制系統的實(shí)時(shí)性。
本文引用地址:http://dyxdggzs.com/article/163553.htm針對單腿跳躍機器人控制的要求,重點(diǎn)研究了實(shí)時(shí)控制技術(shù),并給出具體控制方案。在聯(lián)機調試之前,先設計實(shí)驗驗證該控制方案的可行。實(shí)驗結果說(shuō)明控制系統的實(shí)時(shí)性能滿(mǎn)足設計要求。
1 機器人控制系統的搭建
本文所研究的是一種新型彈性單腿機器人,該機器人采用雙臂驅動(dòng),彈性伸縮腿中不安裝驅動(dòng)部件,系統依靠?jì)炔縿?dòng)力學(xué)耦合實(shí)現動(dòng)態(tài)站立平衡、起跳和穩定連續跳躍。其機械本體如圖1所示。
![]() |
兩個(gè)直流伺服電機安裝在機器人的臂端,電機的輸出經(jīng)由鋼絲傳到機器人肩部,從而實(shí)現臂的擺動(dòng)。電機自帶編碼器,測臂的擺角;機器人肩部裝有陀螺儀,測身體的傾角;腿部有一直線(xiàn)位移傳感器,用以測腿的伸縮長(cháng)度。
考慮到本雙臂單腿跳躍機器人主要為研究先進(jìn)控制理論和方法提供實(shí)驗平臺,其控制系統采用上/下位機的模式,主要由PC機、DSP(Digital Signal Processor)及機器人本體上的各傳感器組成,系統的結構框圖如圖2所示。
![]() |
PC與DSP之間通過(guò)CAN總線(xiàn)來(lái)通信。CAN適配卡采用周立功公司的PCI9810。PC作為上位機可充分利用其現有的軟件工具和開(kāi)發(fā)環(huán)境,方便實(shí)現多任務(wù)管理;DSP(TI公司的TMS320F2812)作為下位機則利用其高速運算和精確定時(shí)。
2 Windows下的實(shí)時(shí)控制
這里希望在目前使用最廣的Windows平臺上開(kāi)發(fā)實(shí)時(shí)控制軟件,以充分發(fā)揮其圖形功能和豐富的軟硬件支持,減少開(kāi)發(fā)難度,提高軟件的通用性。所以在上位機采用的操作系統仍然是Windows系統。
但是,Windows并非一種實(shí)時(shí)操作系統,或者僅能稱(chēng)為“弱實(shí)時(shí)”。他是基于消息驅動(dòng)機制的操作系統,一旦計算機的CPU被某個(gè)進(jìn)程占用,或系統資源緊張時(shí),任何其他消息或進(jìn)程都將被暫時(shí)掛起而無(wú)法實(shí)時(shí)處理。
所謂實(shí)時(shí),就是要在特定的時(shí)間間隔內完成特定的任務(wù)。參考二級倒立擺控制周期(6~10 ms)和Raibert的SLIP跳躍機器人控制周期(6 ms),把控制周期定為5 ms。
2.1 控制方案
精確定時(shí)是實(shí)時(shí)控制中的關(guān)鍵指標,若不對操作系統進(jìn)行擴展,Windows能達到的定時(shí)精度最高僅為1 ms,受其他任務(wù)干擾時(shí)精度會(huì )更低。如果僅用PC控制機器人,是無(wú)法保證實(shí)時(shí)性的。
然而,對于上/下位機模式的控制系統,定時(shí)精度可以由下位機來(lái)保證,上位機只需在某個(gè)時(shí)間范圍內完成任務(wù)并響應即可。從某種意義上說(shuō),實(shí)時(shí)性其實(shí)是一個(gè)靠近下位的概念,生物具有高超的協(xié)調能力并不總需處于最上位的大腦的時(shí)刻關(guān)注。
大腦也是個(gè)多任務(wù)系統,他總會(huì )被其他的事情干擾,但要進(jìn)行某一控制時(shí),他須具備2點(diǎn):
(1)及時(shí)響應;
(2)一次給下位足夠的信息和權限以便委任之。
這里要注意(1)中“及時(shí)”這個(gè)概念,他指上位可在某個(gè)時(shí)間范圍內作出響應,而不是在某個(gè)精確的時(shí)間點(diǎn)。而且,當(2)成立時(shí),上位機甚至可以在若干個(gè)控制周期里不響應,控制仍能正常進(jìn)行。
基于以上控制思路,現有配置的Windows平臺下PC機完全可以勝任上位機工作。
具體控制方案為:
下位機(DSP) 精確定時(shí),決定控制系統的控制周期,進(jìn)行底層的伺服控制。
上位機(PC) 不主動(dòng)動(dòng)作,只在接收到狀態(tài)量時(shí)才運算并發(fā)送控制量。通過(guò)狀態(tài)預估,一次發(fā)送幾個(gè)控制量,包含了對未來(lái)狀態(tài)的控制。使用多線(xiàn)程技術(shù),并使用Windows下最高精度的定時(shí)器來(lái)專(zhuān)門(mén)負責發(fā)送,保證上位響應的及時(shí)。
上/下位機協(xié)同工作過(guò)程的示意如圖3,其中T代表控制周期。
![]() |
2.2 提高實(shí)時(shí)性的關(guān)鍵技術(shù)
在實(shí)際的機器人控制軟件設計中,采用幾項提高軟件實(shí)時(shí)性的關(guān)鍵技術(shù),他們的引入,可以最大限度地發(fā)揮Windows的實(shí)時(shí)潛能,讓上位機更好地按照上節給出的控制方案運行。
(1)進(jìn)程及線(xiàn)程技術(shù)
進(jìn)程是程序在計算機上的一次執行活動(dòng)。當運行控制軟件,其進(jìn)程就被啟動(dòng)。
Windows雖然不是實(shí)時(shí)操作系統,但他的進(jìn)程管理還是有優(yōu)先級之分的。高優(yōu)先級進(jìn)程優(yōu)先運行,只有當高優(yōu)先級進(jìn)程不運行時(shí),才調度低優(yōu)先級進(jìn)程運行。
Windows下進(jìn)程優(yōu)先級有:實(shí)時(shí)、高、高于標準、標準、低于標準、低6個(gè)等級,一般程序的默認優(yōu)先級為“標準”。
這里可以API函數SetPriorityClass()將控制軟件進(jìn)程設置成“實(shí)時(shí)級”。實(shí)時(shí)級進(jìn)程能占用更多的CPU資源,這意味著(zhù)減少Windows下其他任務(wù)對機器人控制的影響。
Windows下,一個(gè)進(jìn)程可以包含若干個(gè)線(xiàn)程,這就是多線(xiàn)程技術(shù),他讓控制軟件可以同時(shí)做幾件事。
由圖3可見(jiàn),軟件中主要有3個(gè)線(xiàn)程:線(xiàn)程1完成控制量的發(fā)送;線(xiàn)程2完成數據的接收與控制量運算;線(xiàn)程3負責人機交互。
(2)多媒體時(shí)鐘
多媒體時(shí)鐘是Windows下精度最高的定時(shí)器。在控制軟件中,他負責發(fā)送控制,線(xiàn)程1就是由多媒體時(shí)鐘建立的,他使上位完成運算任務(wù)后,能把已得的控制量及時(shí)發(fā)送給下位。
(3)緩沖技術(shù)
這是對提高實(shí)時(shí)性效果最顯著(zhù)的技術(shù),他包含預估工作,因為一次發(fā)送的多個(gè)控制量里有未來(lái)量。狀態(tài)的微分值(一階、二階),是估計未來(lái)、預先給出控制量的基礎。
緩沖區設在下位,只要上位一次給下位的控制量足夠充足,即使上位有若干周期不發(fā)送控制量給下位也不會(huì )影響整體的控制效果。這為上位機爭取了更多的時(shí)間用于復雜控制算法的解算,也提高了抗干擾的能力。
以緩沖區大小等于4為例,緩沖機制的過(guò)程如圖4所示,其中T代表控制周期??梢钥吹郊词筆C有4個(gè)周期不發(fā)控制量,DSP依然能夠讀到所需的控制量(緩沖區中默認的無(wú)控制量狀態(tài)是零)。
評論