兩足步行是步行方式中自動化程度最高、最為復雜的動態(tài)系統(tǒng)。兩足步行系統(tǒng)具有非常豐富的動力學特性,對步行的環(huán)境要求很低,既能在平地上行走,也能在非結(jié)構(gòu)性的復雜地面上行走,對環(huán)境有很好的適應性。與其它足式機器人相比,雙足機器人具有支撐面積小,支撐面的形狀隨時間變化較大,質(zhì)心的相對位置高的特點。是其中最復雜,控制難度最大的動態(tài)系統(tǒng)。但由于雙足機器人比其它足式機器人具有更高的靈活性,因此具有自身獨特的優(yōu)勢,更適合在人類的生活或工作環(huán)境中與人類協(xié)同工作,而不需要專門為其對這些環(huán)境進行大規(guī)模改造。例如代替危險作業(yè)環(huán)境中(如核電站內(nèi))的工作人員,在不平整地面上搬運貨物等等。此外將來社會環(huán)境的變化使得雙足機器人在護理老人、康復醫(yī)學以及一般家務處理等方面也有很大的潛力。
雙足步行機器人自由度的確定
兩足步行機器人的機構(gòu)是所有部件的載體,也是設計兩足步行機器人最基本的和首要的工作[1]。它必須能夠?qū)崿F(xiàn)機器人的前后左右以及爬斜坡和上樓梯等的基本功能,因此自由度的配置必須合理:首先分析一下步行機器人的運動過程(前向)和行走步驟:重心右移(先右腿支撐)、左腿抬起、左腿放下、重心移到雙腿中間、重心左移、右腿抬起、右腿放下、重心移到雙腿間,共分8個階段。從機器人步行過程可以看出:機器人向前邁步時,髓關(guān)節(jié)與踝關(guān)節(jié)必須各自配置有一個俯仰自由度以配合實現(xiàn)支撐腿和上軀體的移動;要實現(xiàn)重心轉(zhuǎn)移,髖關(guān)節(jié)和踝關(guān)節(jié)的偏轉(zhuǎn)自由度是必不可少的;機器人要達到目標位置,有時必須進行轉(zhuǎn)彎,所以需要有髖關(guān)節(jié)上的轉(zhuǎn)體自由度。另外膝關(guān)節(jié)處配置一個俯仰自由度能夠調(diào)整擺動腿的著地高度,使上下臺階成為可能,還能實現(xiàn)不同的步態(tài)。這樣最終決定髖關(guān)節(jié)配置3個自由度,包括轉(zhuǎn)體(roll)、俯仰(pitch)和偏轉(zhuǎn)(yaw)自由度,膝關(guān)節(jié)配置一個俯仰自由度,踝關(guān)節(jié)配置有俯仰和偏轉(zhuǎn)兩個自由度。這樣,每條腿配置6個自由度,兩條腿共12個自由度。髖關(guān)節(jié)、膝關(guān)節(jié)和踝關(guān)節(jié)的俯仰自由度共同協(xié)調(diào)動作可完成機器人的在縱向平面(前進方向)內(nèi)的直線行走功能;髖關(guān)節(jié)的轉(zhuǎn)體自由度可實現(xiàn)機器人的轉(zhuǎn)彎功能;髖關(guān)節(jié)和踝關(guān)節(jié)的偏轉(zhuǎn)自由度協(xié)調(diào)動作可實現(xiàn)在橫向平面內(nèi)的重心轉(zhuǎn)移功能。
機器人的轉(zhuǎn)體(roll)、俯仰(pitch)和偏轉(zhuǎn)(yaw)定義如圖1所示[2]。
[align=center]

圖1 步行機器人方向示意圖[/align]
其中,定義y軸方向為前進方向,z軸方向為機器人的身高方向。
機器人的自由度總體配置如圖2所示。
[align=center]

圖2 自由度總體配置圖[/align]
動力源的選擇
目前市場上,有很多種電動機向機器人提供能源:直流電機、交流電機、步進電機、伺服電動機。由于雙足步行機器人要求的精度要求比較高,而交直流電機通電就轉(zhuǎn),斷電就停,比較難進行機器人的位置控制;步進電機雖能按一定的精度工作,但它本身是一個開環(huán)系統(tǒng),精度達不到要求。因此,本文選擇使用伺服電動機。
在本文中使用的是價格比較便宜的伺服電動機—舵機。舵機最早出現(xiàn)在航模運動中。在航空模型中,飛行機的飛行姿態(tài)是通過調(diào)節(jié)發(fā)動機和各個控制舵面來實現(xiàn)的。電動舵機的工作原理如圖3所示。其中,舵機控制器一般采用pid控制,以滿足舵機動靜態(tài)指標要求;伺服功率放大器一般由脈沖寬度調(diào)制器(pwm)和開關(guān)控制電路組成;直流伺服電機是電動舵機的執(zhí)行元件,可采用有刷或無刷直流電機;減速機構(gòu)一般采用蝸輪蝸桿或絲缸減速機構(gòu)。
由于本研究制作的機器人是桌上型的重量很輕的作實驗用的小型雙足步行機器人。因此機器人的各關(guān)節(jié)是選擇使用舵機驅(qū)動。
[align=center]

圖3 電動舵機工作原理方框圖[/align]
附表 rc伺服電機的參數(shù)
此類電機的特點就是體積小、重量輕且控制簡單,另外價格也較便宜。 附表示出了電機的參數(shù)。
步行機器人每條腿的自由度為6。各關(guān)節(jié)的驅(qū)動使用的是北京漢庫科技有限公司的hg14-m的大力矩舵機。
機構(gòu)的設計
根據(jù)本課題的要求,本文設計了機器人的機構(gòu),其主要特點有以下幾點:
布置對稱性
步行運動中普遍存在結(jié)構(gòu)對稱性。goldberg[3]等人研究了步行運動中的對稱性,發(fā)現(xiàn)機身運動的對稱性和腿機構(gòu)的對稱性之間存在相互關(guān)系。在單足支撐階段如圖4,對稱性的機身運動要求腿部機構(gòu)也是對稱的;在雙足支撐階段如圖5,機身對稱性運動未必需要腿部機構(gòu)的對稱性,除非有額外的約束條件。根據(jù)這點,筆者在結(jié)構(gòu)設計時也采用對稱性布置[4]。
框架的設計有效的利用了rc伺服電機的尺寸大小,并使電機的活動范圍能盡量符合各關(guān)節(jié)的活動范圍。
采用多關(guān)節(jié)型結(jié)構(gòu)。行走機構(gòu)能實現(xiàn)平地前后行、平地側(cè)行、轉(zhuǎn)彎、上下臺階、爬斜坡等功能。
整個結(jié)構(gòu)采用1mm的鋁合金(ly12)鈑金材料,這種材料重量輕、硬度高、強度雖不如鋼,但卻大大高于普通鋁合金。且這種材料具有彈性模量、密度比高的特點。
由于機器人的各關(guān)節(jié)是用rc伺服電機驅(qū)動,為了減小機器人的體積、減輕重量,機器人的結(jié)構(gòu)做成是框架型的??蚣艿脑O計有效的利用了rc伺服電機的尺寸大小,并使電機的活動范圍能盡量符合各關(guān)節(jié)的活動范圍。
控制系統(tǒng)
方案構(gòu)思
由于本機器人機構(gòu)采用了12個舵機,本控制系統(tǒng)就是要實現(xiàn)能同時驅(qū)動這12個舵機的功能。由前面的敘述知道,舵機的控制信號為周期是20ms的脈寬調(diào)制(pwm)信號,其中脈沖寬度從0.5ms-2.5ms,相對應舵盤的位置為0~180°,呈線性變化[5]。也就是說,給它提供一定的脈寬,它的輸出軸就會保持在一個相對應的角度上,無論外界轉(zhuǎn)矩怎樣改變,直到給它提供一個另外寬度的脈沖信號,它才會改變輸出角度到新的對應的位置上。
[align=center]

圖4 單腿模型圖[/align]
[align=center]

圖5 兩足步行機器人雙腿模型圖[/align]
傳統(tǒng)產(chǎn)生pwm波的方法是通過大量的分立元件來實現(xiàn)的,所產(chǎn)生的脈沖頻率和寬度往往不是很準確,很難做到對舵機的精確控制。目前,產(chǎn)生pwm波的方法有很多種:最直接的方法就是用單片機本身所帶的pwm口產(chǎn)生波形,但該方法受mcu內(nèi)部資源的限制,僅能實現(xiàn)2~4路pwm波的輸出,對于需要多路舵機的場合顯然是不夠的。另一種方法就是利用分時復用的思想利用單片機一個中斷產(chǎn)生7路控制futaba舵機用pwm波的方法。該方法雖然實現(xiàn)了7路舵機的控制,但也僅能實現(xiàn)7路舵機的控制,并且僅針對特定舵機的控制,控制精度也不高,在一些重要場合的應用受到了限制;還有一種方法就是利用單片機純軟件的循環(huán)計數(shù)的方法或者,利用硬件定時,軟件計數(shù)相結(jié)合的方法,在不增加任何硬件接口的前提下,實現(xiàn)了多路pwm波的輸出[6],然而此方法大量占用mcu運算時間,基本不能再處理其它的事務,并且精度不高。
另外,目前一些數(shù)字信號處理芯片片內(nèi)就集成了pwm波形產(chǎn)生的功能,只需要進行寄存器參數(shù)的設置就可得到pwm的輸出。但在一些只需要簡單電機控制的場合,從成本考慮不需要較為昂貴的數(shù)字信號處理芯片。
本文采用一片51的單片機和一片復雜可編程邏輯器件(cpld)實現(xiàn)了pwm的產(chǎn)生。由于cpld具有他特有的并行處理能力和大量的io接口,可以同時控制幾十甚至上百個舵機同時工作,可以為后續(xù)的工作留出一定的空間,但由于cpld不具備事務處理能力,實際應用中還需要mcu協(xié)同工作,本文使用51系列的單片機和cpld協(xié)同控制舵機,另外,使用了單片機,還可以為后續(xù)的傳感器反饋處理留出空間。
[align=center]

圖6 控制系統(tǒng)結(jié)構(gòu)圖[/align]
控制系統(tǒng)所圖6所示,選用“上位機+串口+下位機”的控制系統(tǒng)解決方案。上位機控制軟件的主要功能是對預定的機器人動作進行規(guī)劃和位置插補,再按照一定時間間隔和次序進行發(fā)送給下位機,實現(xiàn)機器人關(guān)節(jié)位置和近似的速度控制;下位機主要功能是接收上位機發(fā)送的位置信號,根據(jù)信號要求產(chǎn)生pwm波,控制機器人各個關(guān)節(jié)舵機運動,使機器人按動作規(guī)劃完成溜冰動作。相應的,下位機主要由完成串口通信、數(shù)據(jù)的調(diào)度和12個舵機驅(qū)動模塊構(gòu)成[7]。
[align=center]

圖7 cpld的12路舵機驅(qū)動原理圖[/align]
圖7為cpld的12路舵機驅(qū)動原理圖,cpld通過一個簡單的接口與51單片機進行通信,把要驅(qū)動的12個舵機的pwm信號數(shù)據(jù)存入到數(shù)據(jù)存儲區(qū),從而通過數(shù)字pwm生成器驅(qū)動12個舵機轉(zhuǎn)到需要的角度,當需要轉(zhuǎn)換到下一個角度時,通過與51單片機的接口,從51單片機中傳送新的pwm信號數(shù)據(jù)到數(shù)據(jù)存儲區(qū)中進行更新,這樣數(shù)字pwm生成器就會驅(qū)動舵機轉(zhuǎn)過一個新的角度。
硬件設計
電源
為了避免舵機的供電電源產(chǎn)生的電壓波動對控制電路的干擾,控制電路與舵機的電源要進行隔離,即分開供電??刂齐娐冯娫词褂玫氖且粋€9v輸出的ac-dc變壓電源經(jīng)7805芯片后提供的5v電源,而舵機的電源提供了一個接口,外接一個6v的直流電源。
控制芯片
控制芯片模塊包括單片機、時鐘電路、復位電路、外部程序存儲芯片擴展以及大規(guī)模cpld芯片。單片機采用atmel公司的at89s52,它是8位的高性能嵌入式控制器,其內(nèi)部集成了8k的可在線編程的flash存儲器;256字節(jié)的ram,可尋址64字節(jié),具有32根i/o口、3個可編程定時器、8個中斷源、6個中斷矢量、1個看門狗定時器。時鐘電路給系統(tǒng)提供時間基準,設計時采用11.05296mhz晶振。同時,本設計還擴展了一片8k×8位的外部存儲芯片2864。cpld芯片采用的是altera公司的epm7128。
串行通信
串行通信模塊主要用于at89s52單片機與pc機之間的串行通信。由于pc機的com口符合rs-232標準, at89s52單片機上的串行接口是cmos電平,在rs-232與cmos電平通信時,需要電平轉(zhuǎn)換,因此,設計時利用max232芯片來作電平轉(zhuǎn)換。
舵機的驅(qū)動控制
12路舵機的控制信號來自cpld芯片的i/o口(引腳30、31、33、34、35、36、37、39、40、41、44、45)。為了防止干擾,13路舵機控制信號和驅(qū)動電路應經(jīng)過tlp-521光電隔離,通過隔離出來的控制信號,還必須接入lm324比較器,以消除毛刺,增加信號的穩(wěn)定性,提高信號的輸出電流,以便舵機能夠正確工作不至于產(chǎn)生不必要的抖動。
圖8所示為控制系統(tǒng)的硬件電路板線路設計圖。
[align=center]

圖8 機器人控制器線路圖[/align]
結(jié)語
在本文中,探討了舵機的安裝方法,框架的設計以及制作了能通過伺服電機控制運動的一種經(jīng)濟型的雙足步行機器人。另外,實現(xiàn)了用單片機與cpld控制12個rc伺服電機的設想。
今后,將研討運用逆運動學的原理,通過預先給定機器人各個部位的運動軌跡,通過運算確定好各關(guān)節(jié)的旋轉(zhuǎn)角度然后通過控制系統(tǒng)得控制算法,以實現(xiàn)機器人的實際行走過程。