自平衡人形機器人的多關(guān)節(jié)協(xié)調(diào)控制一直是機器人學(xué)研究的難點和熱點,目前采用的最多的是在大的反饋控制環(huán)路中對機器人進(jìn)行關(guān)節(jié)空間的控制,這種控制方式結(jié)構(gòu)緊湊,實時性強,但在以控制器為核心的輻射式控制鏈路上,所有信息的交換都集中在機器人主控制器上,當(dāng)機器人處于復(fù)雜的環(huán)境中時,可能會有過多的信息需要處理,這種復(fù)雜程度往往是不可預(yù)知的,因此機器人的穩(wěn)定性也不能保證。
機器人主控制器是機器人的核心處理器,是提高人形機器人的信息處理能力的主要部件。其主要任務(wù)是控制機器人在空間的運動位置、姿態(tài)、軌跡、操作順序和操作時間,因此必須保證主控制器能夠為解決復(fù)雜信息處理而穩(wěn)定可靠地工作。機器人動作控制器是為解決機器人動作控制而設(shè)計的,它將主處理器發(fā)出任務(wù)處理命令分配到3個16位超低功耗單片機(MSP430F149)上去執(zhí)行,實現(xiàn)多層次的控制管理。該人形機器人具有多關(guān)節(jié),多自由度,自平衡的控制需求,需要動作控制器在機器人系統(tǒng)控制中起到關(guān)鍵性的作用。
1 動作控制器的設(shè)計
1.1 體系結(jié)構(gòu)
自平衡人形機器人需要獲取不可預(yù)知的環(huán)境信息以及自身姿態(tài)信息進(jìn)行綜合運算并及時進(jìn)行自身姿態(tài)的調(diào)整。機器人的這種行為特點決定了機器人的整體控制結(jié)構(gòu)要采用反饋控制。如圖1所示,描述了這種反饋控制結(jié)構(gòu)的硬件實現(xiàn)。
同時,在圖1中可見從機器人主控制器到執(zhí)行元件(舵機)之間,有一層動作控制器的結(jié)構(gòu)。這一層結(jié)構(gòu)的任務(wù)是實現(xiàn)控制命令到舵機控制信號之間的功能轉(zhuǎn)換,這種體系結(jié)構(gòu)的設(shè)計,就是借鑒計算機系統(tǒng)結(jié)構(gòu)中的分層結(jié)構(gòu)體系思想。采用這種分層的結(jié)構(gòu),實現(xiàn)了軟件和硬件、命令和動作的相對隔離。其突出的優(yōu)點體現(xiàn)在能夠使主控制器專注于數(shù)據(jù)的處理,而對下行設(shè)備只負(fù)責(zé)發(fā)送指令,對于硬件的復(fù)雜的操作時序,由動作控制器負(fù)責(zé)產(chǎn)生。
1.2 實現(xiàn)過程
1.2.1 硬件實現(xiàn)
為滿足機器人整體控制體系結(jié)構(gòu)中指令到執(zhí)行的層次性要求,動作控制器需要完成命令解析,信號驅(qū)動等任務(wù)。如圖2描述了動作控制器內(nèi)部的結(jié)構(gòu),其主要由串行總線、3個可并行工作的16位單片機、信號驅(qū)動部分構(gòu)成。這種結(jié)構(gòu)能夠從總線接收命令,單片機進(jìn)行指令解析并輸出控制電信號,外部電路對控制信號驅(qū)動放大,從而分別實現(xiàn)對執(zhí)行舵機的控制。圖3為動作控制器中一個單片機工作模塊的硬件原理圖。
動作控制器主要由3個MSP430F149并行工作,每個MSP430F149控制8個舵機,總共實現(xiàn)對24個舵機的控制。每個MSP430F149有定時器TA和定時器TB兩個模塊,其中定時器TA通過比較模式輸出2路PWM波控制2個舵機,定時器TB通過比較模式輸出6路PWM波控制6個舵機。而且定時器工作在比較模式下時,能在一次設(shè)置完成后,不需要CPU干預(yù)的情況下持續(xù)進(jìn)行PWM輸出,同時保證各路信號之間沒有干擾,因此一路比較輸出即可獨立控制一個舵機,動作控制器可實現(xiàn)對多達(dá)24個舵機的控制,對多關(guān)節(jié)人形機器人提供足夠的控制通道。
采用比較輸出PWM波形的方法相比較采用中斷方式的控制方法,具有簡單,輸出PWM波形穩(wěn)定,整個控制系統(tǒng)的魯棒性高等特點。該課題也曾采用過中斷控制方式,但用示波器觀察輸出的PWM波形,波形極不穩(wěn)定。而且中斷嵌套過多之后,單片機程序很容易跑飛,完全不能滿足控制系統(tǒng)的穩(wěn)定性要求。而采用文中所述動作控制器的設(shè)計方法后,比較輸出的PWM波波形穩(wěn)定,而且單片機也沒出現(xiàn)死機或跑飛的現(xiàn)象。
MSP430F149輸出為3.3 V TTL電平,而舵機控制信號要5 V TTL電平,在實際電路設(shè)計中要進(jìn)行電平轉(zhuǎn)換??紤]到舵機的控制信號對功率沒有要求,必要加專用驅(qū)動芯片,而采用CMOS工藝的CD4081四2輸入與門進(jìn)行電平轉(zhuǎn)換,利用其門電路輸入電壓門限寬的特點即可解決電平轉(zhuǎn)換的問題。
舵機動態(tài)工作時,需要脈沖式的電流,通過普通的電源供電,實驗表明:由于舵機瞬時供電不足,致使舵機力矩不夠,運動不能達(dá)到預(yù)先的姿態(tài)效果,在反復(fù)探索后,決定采用電容的快速放電特性來提供瞬時大電流,由于舵機數(shù)量大,設(shè)計時在舵機電源處并接大容量電容,總?cè)萘?.22F×6。正常小電流工作時,電容被充電處于飽和,當(dāng)需要瞬時大電流時,電容能快速放電,從而保證舵機正常穩(wěn)定的工作。
3個MSP430F149分別控制部分關(guān)節(jié)上的舵機,這要求3個MSP430F149充分協(xié)調(diào)一致的工作。因此采用總線通信方式,將3個MSP430F149掛接到串行通信總線上,并留出總線接口,以接收主控制器的命令。
1.2.2 軟件實現(xiàn)
動作控制器的軟件設(shè)計,是以硬件為基礎(chǔ),接收主控制器的命令,對命令進(jìn)行解析,并控制產(chǎn)生具體的PWM波形對舵機進(jìn)行動作控制。圖4描述了動作控制器中軟件的實現(xiàn)流程。
機器人的動作方式,方向,幅度等全部是由主控制器通過對外部信息的獲取而產(chǎn)生的輸出,這種輸出是基于命令格式的,而機器人最終的一切行為都是一系列舵機的配合運轉(zhuǎn),從命令到執(zhí)行,這其中就是動作控制器起到了關(guān)鍵作用。
基于上述要求,動作控制器的首要任務(wù)就是接收命令。雖然在硬件上采用了多機通信的模式,但并不采用傳統(tǒng)的通信協(xié)議(每個從機都具有一個獨立的地址),而是對動作控制器上的3個MSP430F149定義完全相同的地址,這樣就會使其接收到完全相同的命令。這樣進(jìn)行設(shè)計,原因在于要保證舵機響應(yīng)的同時性,即是機器人動作的協(xié)調(diào)性提出的要求。如表1示例了主控制器與動作控制器的命令傳輸格式。來自主控制器的命令是一個數(shù)組序列,動作控制器上的每個MSP430F149都能完全接收到全部序列,而每個MSP430F149根據(jù)預(yù)先定義只使用這個序列中特定的子序列,這個子序列就是對應(yīng)于這個MSP430F149所控制的舵機的命令,這樣就可以保證同時性。
動作控制器的最終目的是產(chǎn)生PWM波,而這是通過寫MSP430F149片內(nèi)TA、TB模塊的寄存器實現(xiàn)的。在解析函數(shù)進(jìn)行一系列的解析運算后,產(chǎn)生出各舵機所需的PWM波形的脈沖寬度值,將這些值寫入到相應(yīng)的寄存器中,就可以產(chǎn)生需要的PWM波。
2 實驗及結(jié)論
根據(jù)文中提出的動作控制器的設(shè)計思想與方法,制作出機器人動作控制器。按照設(shè)計的基本思想對動作控制器進(jìn)行測試,測試中采用一個MSP430F425作為機器人主控制器,下行控制一個十二個關(guān)節(jié)的簡易人形機器人。在MSP430F425中規(guī)劃好機器人的步態(tài),同時根據(jù)規(guī)劃好的步態(tài)參數(shù)發(fā)送舵機動作命令。
實驗中,首先實測舵機的精度,通過向特定定時器通道預(yù)裝不同值,測量舵機響應(yīng)角度,并以此數(shù)據(jù)擬合出舵機響應(yīng)角度方程。實驗中由于采用的MSP430F425資源有限,方程僅進(jìn)行了線性擬合。
表2為測試機器人上一處關(guān)節(jié)的舵機測定數(shù)據(jù),根據(jù)此數(shù)據(jù)擬合出以下方程:
舵機實際角度α=(X-3 000)/20+75.5運用擬合出的方程進(jìn)行命令到舵機角度的解析,得到表3所示數(shù)據(jù)
從表中數(shù)據(jù)可以看出,在舵機的性能范圍內(nèi)(舵機的精度為0.5°~1°),控制是精確的。
同時,在舵機響應(yīng)的及時性方面,也得到了保證。從主控制器發(fā)送命令到舵機響應(yīng)開始運動共經(jīng)歷了命令傳輸、命令解析兩大時間段。
命令傳輸在特定的速率下傳輸完所有命令數(shù)據(jù)用時4.5 ms,而命令解析即單片機內(nèi)程序執(zhí)行,其用時遠(yuǎn)小于1 ms。相比較,舵機的機械響應(yīng)時間在百ms級,因此動作控制器保證了響應(yīng)的及時性。
實驗證明,在設(shè)計思想指導(dǎo)下的硬件和軟件實現(xiàn),充分符合既定的目標(biāo),體現(xiàn)在機器人的多關(guān)節(jié)能夠協(xié)調(diào)動作,預(yù)先規(guī)劃的步態(tài)能夠很好的表現(xiàn)出來。
在機器人的實際控制系統(tǒng)中,動作控制器作為主控制器(ARM 9)的下級從屬設(shè)備,完成其特定的管理范圍內(nèi)工作。在這種分層控制的體系結(jié)構(gòu)下,自平衡的檢測與控制達(dá)到了理想的效果。
3 結(jié)束語
由于自平衡人形機器人具有內(nèi)在不穩(wěn)定性和結(jié)構(gòu)的復(fù)雜性,國內(nèi)外機器人愛好者對其控制策略進(jìn)行了多方面的探索,但通常都是采用反饋控制環(huán)路或者是分層體系結(jié)構(gòu)的方法。采用這些傳統(tǒng)的方式大體都是中央處理器(ARM、DSP等)接收收集到的信息,進(jìn)行處理,再根據(jù)獲取的信息運用一定的算法控制執(zhí)行元件(舵機、直流電機等)。這類體系結(jié)構(gòu)一般以惟一的處理器為核心,與外界直接進(jìn)行信息交換,但其處理器的工作量大,在大量的處理中實時性難以保證。
而本設(shè)計對應(yīng)的雙足自平衡人形機器人采用了這兩種經(jīng)典結(jié)構(gòu)的復(fù)合,其中執(zhí)行控制器、主控制器和執(zhí)行電機之間體現(xiàn)出了明顯的層次結(jié)構(gòu),這種設(shè)計減輕了各層次的任務(wù)難度,明顯提高了設(shè)備調(diào)試或故障排查效率,充分體現(xiàn)出這種體系結(jié)構(gòu)的優(yōu)越性。