基于TMS32OF2812 DSP的雙足機器人樣機設(shè)計
0 引言
雙足機器人樣機是研究雙足行走的實驗對象,為了研究的順利進行,必須對機器人的自由度、驅(qū)動方式、重量、高度等進行合適的配置;這就需要自由度的分配簡單合理、驅(qū)動方案可靠易用以及機械結(jié)構(gòu)輕便結(jié)實。為了得到可靠高效的控制系統(tǒng),首先要選擇合適的主控芯片,然后針對實時控制中所需要的各種姿態(tài)信息,選擇可靠性高且方便和主控芯片連接的傳感器。
雙足步行機器人是一個多自由度、非線性、具有復雜動力學特性的多體系統(tǒng),本田公司、索尼公司以及北京理工大學等相繼推出了各自研制的雙足機器人樣機,其中以本田公司的ASIM0制作水平最高。本文在參考國內(nèi)外相關(guān)研究的基礎(chǔ)上,從便于實現(xiàn)的角度出發(fā),設(shè)計研制了樣機,以TI公司的DSP TMS320F2812為核心設(shè)計了機器人驅(qū)動、控制電路,分別采用了觸力傳感器FSSl500NST、微機械陀螺儀ADXRSl50來檢測足底接觸力信息和軀干角速度,并成功實現(xiàn)了機器人的穩(wěn)定行走。
1 機械設(shè)計
為了實現(xiàn)機器人前后行走、上下臺階及爬斜坡等功能,機器人每條腿至少應(yīng)有三個俯仰自由度;要實現(xiàn)質(zhì)心在左右腳之間轉(zhuǎn)移的功能,每條腿至少應(yīng)有一個滾轉(zhuǎn)自由度?;趯崿F(xiàn)預期功能而又盡量降低成本,精簡機構(gòu)的原則,我們設(shè)計的雙足機器人共有十個自由度,每條腿各有五個自由度,其中髖關(guān)節(jié)兩個(俯仰和滾轉(zhuǎn)),膝關(guān)節(jié)一個(俯仰),踝關(guān)節(jié)兩個(俯仰和滾轉(zhuǎn))。這個十自由度的雙足機器人可以實現(xiàn)左右方向和前后方向上的多種運動。
考慮到驅(qū)動負載以及穩(wěn)定性等因素,在設(shè)計時將腿長取為28cm,其中大腿有效長度(髖部俯仰方向舵機輸出軸到膝蓋舵機輸出軸的距離)為15cm,小腿有效長度(膝蓋舵機輸出軸到踝部俯仰方向舵機輸出軸的距離)13cm,每個腳底板寬8cm,長12cm,材料為2mm厚的電路板,上面安裝了四個觸力傳感器,每個角上一個,用于檢測機器人行走時支撐腳和地面之間的壓力;電路板上還有四個傳感器的信號調(diào)理電路。大腿和小腿都由輕質(zhì)鋁合金板加工而成;兩條腿最上面的舵機通過u型件連在一根角鋁上,用螺栓螺母擰緊后,就構(gòu)成了機器人的骨盆,在骨盆中央豎直方向上固定一根硬鋁板條,作為機器人的脊柱;電路板和為整個系統(tǒng)供電的鋰電池可以放在一個特制的盒子里,將盒子固連在豎直板條上,就構(gòu)成了機器人的胸腹。
2 驅(qū)動方案與控制系統(tǒng)設(shè)計
基于處理能力等多方面的考慮,我們選用TI公司的高性能數(shù)字信號處理器TMS320F2812為機器人控制系統(tǒng)的核心,來完成信號采集、處理、控制和驅(qū)動等功能。
F2812是一種低功耗的32位定點數(shù)字信號處理器,在數(shù)字控制領(lǐng)域應(yīng)用廣泛,采用哈佛總線結(jié)構(gòu),具有強大的計算能力、迅速的中斷響應(yīng)和處理以及統(tǒng)一的寄存器編程模式。
2.1 驅(qū)動方案
考慮到驅(qū)動力大小以及可控性能,本機器人的關(guān)節(jié)采用漢庫HGl4舵機進行驅(qū)動,該舵機采用閉環(huán)反饋位置控制,其部分技術(shù)指標如表1所示:
減速齒輪組由馬達驅(qū)動,其終端(輸出端)帶動一個線性的比例電位器進行位置檢測,該電位器把轉(zhuǎn)角坐標轉(zhuǎn)換為一比例電壓反饋給控制單元,控制單元將其與輸入的控制脈沖信號比較,產(chǎn)生糾正脈沖,并驅(qū)動馬達正向或反向地轉(zhuǎn)動,使齒輪組的輸出位置與期望值相符,從而達到舵機精確定位的目的。
舵機的控制信號是脈沖位置調(diào)制(PPM)信號,是一種寬度可調(diào)的周期性方波脈沖信號,周期一般為20ms,當方波的脈沖寬度改變時,舵機轉(zhuǎn)軸的角度發(fā)生變化,角度變化與脈沖寬度的變化成正比。一般舵機的輸出軸轉(zhuǎn)角與輸入信號的脈沖寬度之間的關(guān)系可用圖1表示。
由于制作工藝等多方面的原因,舵機的輸出軸轉(zhuǎn)角并不是準確地遵循與控制信號的脈沖寬度對應(yīng)的關(guān)系,但一般和控制信號脈沖寬度成比例關(guān)系。為了減小誤差,我們事先測出在額定脈寬下舵機的實際轉(zhuǎn)角,然后計算出和額定轉(zhuǎn)角的比例系數(shù),在軟件中對控制信號脈寬予以調(diào)整,這樣可以將轉(zhuǎn)角誤差減小到0.5°以內(nèi)。
2.2 控制系統(tǒng)設(shè)計
TMS320F2812具有較高的處理速度,可以滿足雙足機器人步態(tài)規(guī)劃以及控制的算法的實現(xiàn),另外還有著集成豐富的外設(shè),可滿足多個傳感器的信號采集的需要。為了避免每次改寫程序都重新對片內(nèi)FLASH進行燒寫,我們采用如下方案:由DSP通過JZ864微功率無線數(shù)據(jù)傳輸模塊將由傳感器得到的機器人姿態(tài)信息送到上位機,然后上位機根據(jù)這些信息和動作時序計算相應(yīng)的控制指令,通過無線數(shù)傳模塊將指令發(fā)送回DSP,再由DSP的定時器生成相應(yīng)的信號來控制舵機(如圖2所示)。這樣調(diào)試時只要在上位機里改寫程序即可,動作調(diào)試好以后再將相應(yīng)的程序燒寫到DSP芯片的FLASH中。[!--empirenews.page--]
十個舵機的控制信號由F2812的通用I/0引腳A0到A9產(chǎn)生,這個過程由通用定時器l和通用定時器2的中斷服務(wù)程序來完成。
雙足機器人的實時控制系統(tǒng)需要實時測量機器人的一些信息,為此我們在每個足底安裝了四個霍尼韋爾觸力傳感器FSSl500NST,用于實時檢測雙足機器人腳面觸地情況,計算雙足機器人腳面壓力中心位置。這種觸力傳感器具使用專門設(shè)計的精制壓敏電阻硅傳感元件。硅壓阻元件在受到外力而發(fā)生彎曲變形的時候,電阻會相應(yīng)增大。觸力傳感器通過不銹鋼柱塞,將所受外力直接傳遞到硅感應(yīng)元件上,元件阻值就隨著所受外力同比例增加。這種電阻值的變化將最終通過電橋電路以mv級電平輸出,靈敏度為0.12mY/g,直接接入DSP的模數(shù)轉(zhuǎn)換電路會導致測量精度不高,需要設(shè)計如圖3所示的信號調(diào)理電路。
在經(jīng)過調(diào)理電路放大以后,傳感器的電平輸出被放大到0—3V之間,可直接連到F2812的A/D轉(zhuǎn)換電路。
軀干的角速度包括滾轉(zhuǎn)、俯仰和偏航三個方向的分量,一般需要關(guān)注的是滾轉(zhuǎn)和俯仰方向的分量,即機器人是否會朝前后或左右方向摔倒。我們選擇ADI公司的微機械陀螺儀ADXRSl50,其參數(shù)如表3所示。
陀螺儀ADXRSl50具有Z一軸響應(yīng)、工作頻帶寬、小而輕等特點,能夠滿足機器人雙足行走過程中檢測軀干實時角速度的要求。
為了方便地控制機器人動作,我們選用了紅外線遙控方式。選用集紅外線接收和放大于一體的HS0038芯片作為紅外線接收器,其中載波頻率為38kHz;電路中將HS0038芯片的輸出信號接到F2812事件管理器EVB的捕獲引腳上,通過捕獲中斷服務(wù)子程序來對遙控器的信號進行接收和解碼,然后查表來確定相應(yīng)的按鍵,執(zhí)行相應(yīng)的動作。
[!--empirenews.page--]
3 行走試驗
通過在主控芯片中的步態(tài)規(guī)劃,雙足機器人在行走過程中的重心投影一直在支撐區(qū)域以內(nèi),試驗在平整地面上進行,用7.4V的鋰電池給雙足機器人提供動力,機器人獨立于上位機,用紅外遙控器控制他的行為。在行走實驗中,機器人收到指令后執(zhí)行的一系列動作如下:
(1)雙腿彎曲,降低重心到一定高度;
(2)身體左傾,重心投影移到左腳,抬右腿;
(3)右腿前伸,沿設(shè)定軌跡著地;
(4)身體右傾,將重心投影轉(zhuǎn)移到右腳;
(5)檢測最近收到的指令,若為停止命令,則以右腿為支撐腿,收左腿,回到直立狀態(tài),否則執(zhí)行下一個的動作;
(6)左腿前伸,沿設(shè)定軌跡著地;
(7)身體左傾,將重心投影轉(zhuǎn)移到左腳上;
(8)檢測最近收到的指令,若為停止命令,則以左腿為支撐腿,收右腿,回到立正狀態(tài),否則執(zhí)行第3個的動作。
行走時各桿件運動的速度和加速度不能太大,運動速度會比較慢。經(jīng)過多次試驗和研究發(fā)現(xiàn),如果擺動腿移動得太慢,會增加單腿支撐的時間,若擺動腿移動得過快,會增加對身體的作用力,使機器人穩(wěn)定性變差,比較容易摔倒;在雙腿支撐期,質(zhì)心投影由一只腳上轉(zhuǎn)移到另一只腳上,為了不讓兩腳相對地面滑動,必須較好地保持兩腳的相對位置和相對姿態(tài)不變,因此在這一過程中各個關(guān)節(jié)也不能轉(zhuǎn)得太快,而且擺動腳著地時會受到地面的沖擊力,使機器人的身體有些晃動,雙腿支撐期稍微長一些能起到緩沖作用。經(jīng)過多次調(diào)整和試驗,發(fā)現(xiàn)在取雙腿支撐期2.5s、單腿支撐期1.5s時,可以得到比較穩(wěn)定的前向行走。
4 結(jié)束語
本文根據(jù)研究雙足機器人行走的需要,選擇大扭矩舵機作為各關(guān)節(jié)的驅(qū)動電機,設(shè)計實現(xiàn)了十自由度的小型雙足機器人:以TI公司TMS320F2812 DSP作為主控芯片,為方便程序的調(diào)試,采用了JZ864微功率無線數(shù)據(jù)傳輸模塊來傳遞上位機與機器人之間的信息。選擇觸力傳感器FSSl500NST、微機械陀螺儀ADXRSl50來分別測量腳底板和地面接觸信息以及軀干的角速度,采用了紅外遙控的方式來控制機器人的行為,最后設(shè)計出機器人的整體控制系統(tǒng)并實現(xiàn)了穩(wěn)定行走。