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