摘 要: 采用模塊化的設(shè)計(jì)思想,設(shè)計(jì)了一個(gè)可靠的低價(jià)格雙足機(jī)器人平臺(tái)。首先簡(jiǎn)化機(jī)器人的空間運(yùn)動(dòng)和受力,通過分析和求解,得到與機(jī)器人平衡相關(guān)的各個(gè)關(guān)節(jié)的位移、角度等變量的關(guān)系;用C語(yǔ)言在CodeVsionAVR編譯器下開發(fā)程序,選用1片ATmega128單片機(jī)來(lái)實(shí)時(shí)控制20個(gè)伺服舵機(jī),并達(dá)到微秒級(jí)的控制精度。最終實(shí)現(xiàn)了兩足仿人機(jī)器人的各個(gè)關(guān)節(jié)的協(xié)調(diào)平穩(wěn)運(yùn)動(dòng)。
關(guān)鍵詞: 兩足仿人機(jī)器人;模塊化;單片機(jī);控制精度
0 引言
機(jī)器人是一種典型的機(jī)電一體化產(chǎn)品,隨著科學(xué)技術(shù)的進(jìn)步,機(jī)器人的應(yīng)用領(lǐng)域不斷拓寬[1]。雙足仿人機(jī)器人具有仿人的外形和步行方式,行走系統(tǒng)占地面積小,活動(dòng)范圍大[2],移動(dòng)“盲區(qū)”小,對(duì)步行環(huán)境要求低且具有一定的逾越障礙的能力,這些特點(diǎn)受到了各方的廣泛關(guān)注,成為機(jī)器人研究領(lǐng)域的熱點(diǎn)。兩足仿人機(jī)器人運(yùn)動(dòng)過程中的行走和對(duì)機(jī)器人的控制是研究的重點(diǎn)和難點(diǎn)。雙足步行是生物界難度最大的步行動(dòng)作,但其步行性能卻是其他步行結(jié)構(gòu)所無(wú)法比擬的,因此雙足步行是雙足仿人機(jī)器人研究的關(guān)鍵技術(shù)之一。穩(wěn)定的步行是雙足仿人機(jī)器人區(qū)別于其他機(jī)器人的主要標(biāo)志。本文研制了一種雙足仿人機(jī)器人,通過對(duì)機(jī)器人進(jìn)行步態(tài)規(guī)劃,使其能夠在平地上實(shí)現(xiàn)穩(wěn)定行走。
1 整體設(shè)計(jì)思想
雙足機(jī)器人在行走過程中,其運(yùn)動(dòng)的平穩(wěn)性受重力、運(yùn)動(dòng)機(jī)構(gòu)的慣性、軟硬件設(shè)計(jì)等綜合因素的影響。為提高其穩(wěn)定性,簡(jiǎn)化設(shè)計(jì)思路,雙足機(jī)器人的設(shè)計(jì)采用了模塊化的設(shè)計(jì)方法[3]。雙足機(jī)器人的設(shè)計(jì)主要分為3個(gè)模塊:結(jié)構(gòu)運(yùn)動(dòng)模塊、硬件電路模塊、軟件程序設(shè)計(jì)模塊。整體設(shè)計(jì)思路如圖1所示。
2 雙足機(jī)器人結(jié)構(gòu)設(shè)計(jì)
雙足機(jī)器人的運(yùn)動(dòng)與人類的運(yùn)動(dòng)方式類似,是通過腳與地面接觸來(lái)推動(dòng)機(jī)體移動(dòng)。一個(gè)步行周期基本上可以分為4個(gè)狀態(tài),如圖2所示。
(1)兩腳著地,機(jī)器人的重量平分在兩條腿上。
(2)兩腳著地,機(jī)器人的重心往一條腿上偏移,重量集中在一條腿上。
?。?)單腳著地,機(jī)器人的一條腿空起,準(zhǔn)備跨步。
(4)雙腳落地,機(jī)器人的重心從一條腿偏移到兩條腿中間,兩條腿受力均勻。
式(1)和式(2)中,m1、m2、m3分別為L(zhǎng)1、L2、L3的質(zhì)量,L1、L2、L3、L4為已知條件,需要求出的關(guān)系。由于機(jī)器人運(yùn)動(dòng)過程中存在慣性,使計(jì)算復(fù)雜,需要依據(jù)以上理論關(guān)系結(jié)合實(shí)驗(yàn),用軟件進(jìn)行調(diào)試。
左腿把重心前移的情況如圖4所示。
LsinC1+2LcosB1=H(3)
A1=B1(4)
S1=2LsinA1(5)
其中,H和L已知,S1為重心前移的距離,由式(3)、式(4)、式(5)可以求出:
B1=A1(6)
C1=arccos(H-2LcosB1)×180°/π(7)
機(jī)器人右腿運(yùn)動(dòng)情況與左腿運(yùn)動(dòng)類似。
3 硬件電路設(shè)計(jì)
機(jī)器人采用ATmega128單片機(jī)[4]作為主控制芯片。ATmega128有64個(gè)引腳,53個(gè)可編程I/O口,具有處理速度快、功能齊全的特點(diǎn)。各執(zhí)行部件采用伺服舵機(jī)實(shí)現(xiàn),具有體積緊湊、輸出力矩大、穩(wěn)定性好等特點(diǎn)。其控制原理圖如圖5所示。
4 軟件設(shè)計(jì)
在機(jī)器人動(dòng)作的過程中,最為關(guān)鍵的是保持重心的位置。為保持機(jī)器人運(yùn)動(dòng)時(shí)的平衡,采用HENG1[60]、HENG2[100]、HENG3[60]、HENG4[60]、HENG5[20]、HENG6[20] 6個(gè)一維數(shù)組調(diào)整機(jī)器人在運(yùn)動(dòng)過程中的重心位置,控制程序的流程圖如圖6所示。
伺服舵機(jī)I/O控制口為PA口、PD口和PC口的低四位口,程序設(shè)計(jì)如下:
Void robot_duoji(unsigned char label,unsigned char anglex)
{switch(label)
{case 11:angle11=anglex;break;
case 12:angle12=anglex;break;
case 13:angle13=anglex;break;
…
}
}
通過ATmega128單片機(jī)的定時(shí)器1實(shí)時(shí)精確產(chǎn)生20個(gè)伺服舵機(jī)的10 s PWM波,單片機(jī)每10 s中斷一次,每中斷一次angle自加1,加到255后又從0開始自加1,如此循環(huán)。angle完成一次自加的周期是2.55 ms。用angle與angle(x)比較,如果angle<angle(x),則對(duì)應(yīng)端口輸出高電平,否則輸出低電平。程序設(shè)計(jì)如下:
interrupt[TIM1_OVF]void timer1(void)
{
TCNT1H=0xff;
TCNT1L=0xec;
angle++;
if(angle<angle11)
PORTA|=0x01;
else
PORTA&=0xfe;
…
}
5 結(jié)束語(yǔ)
通過機(jī)構(gòu)運(yùn)動(dòng)分析與電路的仿真設(shè)計(jì),完成了雙足機(jī)器人的設(shè)計(jì)。采用模塊化的設(shè)計(jì)方法,以及合理的程序結(jié)構(gòu)和機(jī)械部件,使系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,且具有較好的穩(wěn)定性、可靠性,較好地實(shí)現(xiàn)了雙足機(jī)器人的直線行走動(dòng)作。
參考文獻(xiàn)
[1] 周伯英.工業(yè)機(jī)器人設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,1995.
[2] 毛勇,王家廞,莊新彥,等.基于氣動(dòng)人工肌肉的雙足機(jī)器人關(guān)節(jié)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2006,32(3):78-80.
[3] 董存輝,擺玉龍,柴乾隆.基于模糊控制的自主尋跡機(jī)器人設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2012,38(5):139-141.
[4] 劉蘭香,張秋生.ATmega128單片機(jī)應(yīng)用與開發(fā)實(shí)例[M].北京:機(jī)械工業(yè)出版社,2006.