四足機器人及其步態(tài)規(guī)劃方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種四足機器人及其步態(tài)規(guī)劃方法。
【背景技術(shù)】
[0002] 現(xiàn)有四足機器人還有很多的缺陷,比如均存在行走不穩(wěn)定,功能較為單一的特點, 大部分都只能在平坦地面行走,沒有應(yīng)對外界干擾的和躲避障礙物的能力,具有視覺的四 足機器人更少。并且具有負(fù)載能力的四足機器人體型一般都較大、能耗高,在設(shè)計和調(diào)試中 會有很多麻煩,不利于算法驗證和參數(shù)調(diào)整,所以設(shè)計一個小型四足機器人,方便在實驗室 里進(jìn)行算法驗證,這對四足機器人的研宄提供了一種高效的方式。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的就是為了解決上述問題,提供一種四足機器人及其步態(tài)規(guī)劃方法, 它具有通過建立D-H坐標(biāo)系、設(shè)計運動學(xué)方程和求解逆運動學(xué)方程,利用ARM單片機作為主 控制器,實現(xiàn)機器人步態(tài)規(guī)劃,并通過多傳感器實現(xiàn)了機器人的穩(wěn)定性、自動避障和視覺傳 輸能力,在Android平臺上設(shè)計的上位機可以有地控制機器人的優(yōu)點。
[0004] 為了實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0005] -種四足機器人,包括:機器人的軀干,所述機器人的軀干前端的上方通過機器人 頸部連接機器人頭部,所述機器人軀干的下方連接四條腿:第一、第二、第三和第四條腿; 其中第一、第二條腿安裝在機器人軀干的前端,第三、第四條腿安裝在機器人軀干的后端; 每條腿均包括從下而上依次連接的小腿、大腿、垂直桿和水平桿四個部分;所述小腿與大 腿、大腿與垂直桿、垂直桿與水平桿之間均設(shè)有舵機;所述軀干上設(shè)有控制裝置,控制裝置 通過控制舵機來控制機器人的平穩(wěn)行走。
[0006] 第一條腿中,小腿與大腿之間通過第一舵機連接,大腿和垂直桿之間通過第二舵 機連接,垂直桿與水平桿之間通過第三舵機連接;
[0007] 第二條腿中,小腿與大腿之間通過第四舵機連接,大腿和垂直桿之間通過第五舵 機連接,垂直桿與水平桿之間通過第六舵機連接;
[0008] 第三條腿中,小腿與大腿之間通過第七舵機連接,大腿和垂直桿之間通過第八舵 機連接,垂直桿與水平桿之間通過第九舵機連接;
[0009] 第四條腿中,小腿與大腿之間通過第十舵機連接,大腿和垂直桿之間通過第十一 舵機連接,垂直桿與水平桿之間通過第十二舵機連接;
[0010] 所述機器人頸部設(shè)有第十三舵機;所述機器人頭部設(shè)有第十四舵機。
[0011] 所述第三舵機,也稱水平髖關(guān)節(jié),仿照哺乳動物髖部關(guān)節(jié)的外擺內(nèi)收功能,負(fù)責(zé)機 器人平行于身體方向的垂直方向運動,是機器人的轉(zhuǎn)向運動時的驅(qū)動源,其旋轉(zhuǎn)量用0 0表 不O
[0012] 所述第二舵機,也稱垂直髖關(guān)節(jié),仿照哺乳動物的髖關(guān)節(jié)的前后收腿功能,負(fù)責(zé)機 器人的平行于身體方向的運動,是整個機器人的承重關(guān)節(jié),其旋轉(zhuǎn)量用0i表示。
[0013] 所述第一舵機,也稱膝關(guān)節(jié),所述膝關(guān)節(jié)仿照哺乳動物的膝關(guān)節(jié)的前后運動關(guān)節(jié), 負(fù)責(zé)驅(qū)動機器人腿部與地面接觸,是機器人的步態(tài)軌跡的最終呈現(xiàn)關(guān)節(jié),其旋轉(zhuǎn)量用0 2表 不O
[0014] 所述控制裝置包括:單片機STM32,所述單片機STM32分別與上述十四個舵機、加 速度計傳感器和超聲波傳感器連接,所述單片機STM32還通過藍(lán)牙模塊與上位機連接,所 述單片機STM32還通過單片機MT7620與網(wǎng)絡(luò)攝像頭連接,所述單片機STM32還通過穩(wěn)壓電 路與電源連接,所述單片機STM32還通過單片機MEGA644與OLED液晶顯示屏連接。
[0015] 所述單片機STM32作為主控芯片是機器人控制的核心,通過定時器模塊產(chǎn)生20ms 定時中斷作為機器人的運動周期,通過輸出PWM波控制舵機轉(zhuǎn)角完成機器人的步態(tài),同時 stm32通過采集加速度計反饋的值得到機器人的姿態(tài),控制機器人的平衡,控制超聲波模塊 的定時工作來采集機器人周圍的障礙物情況,同時通過串口和藍(lán)牙、mt7620連接來進(jìn)行通 f目;
[0016] 所述電源,用于給單片機供電;
[0017] 所述穩(wěn)壓電路,用于提供5v、3. 3v、6v不同的電壓分別給傳感器、arm芯片和舵機 供電;
[0018] 所述舵機,用于驅(qū)動機器人進(jìn)行步態(tài)行走和頭部搖動;
[0019] 所述網(wǎng)絡(luò)攝像頭,用于遠(yuǎn)程監(jiān)控,傳送機器人周圍的環(huán)境信息;
[0020] 所述單片機MT7620,用于掛載OpenWRT系統(tǒng)以此將攝像頭的圖像通過wifi發(fā)送 出;
[0021] 所述加速度計傳感器,安裝在機器人的機體中心位置用于采集機器人實時的姿 態(tài);
[0022] 所述超聲波傳感器,安裝在機器人頭部正上方用于檢測機器人周圍是否有障礙 物;
[0023] 所述單片機MEGA644,用于和stm32通信得到控制信息并解碼后通過液晶顯示;
[0024] 所述OLED液晶顯示屏,用于顯示機器人當(dāng)前信息;
[0025] 所述藍(lán)牙模塊,用于和andorid上位機間通信,傳輸指令和數(shù)據(jù);
[0026] 所述上位機,用于發(fā)送指令和接收機器人反饋的數(shù)據(jù);
[0027] 一種四足機器人的步態(tài)規(guī)劃方法,包括如下步驟:
[0028] 步驟(1):機器人初始化;
[0029] 步驟(2):機器人接收上位機指令;將指令解碼,通過OLED液晶顯示屏顯示; [0030] 步驟(3):機器人對上位機指令進(jìn)行判斷并執(zhí)行指令,判斷是舵機調(diào)試指令、步態(tài) 變換指令、方向改變指令還是其他功能指令,所述其他功能指令包括自適應(yīng)穩(wěn)定性、拍照指 令和自動避障指令。
[0031] 所述步驟(3)中,
[0032] 如果是舵機調(diào)試指令,則開始單個舵機調(diào)試,判斷是否收到調(diào)試值,如果收到就開 始步態(tài)實現(xiàn),步態(tài)實現(xiàn)后返回步驟(2);如果沒收到就結(jié)束;
[0033] 如果是步態(tài)變換指令,則開始步態(tài)實現(xiàn),步態(tài)實現(xiàn)后返回步驟(2);
[0034]如果是方向改變指令,則調(diào)整運動學(xué)方程,開始步態(tài)實現(xiàn),步態(tài)實現(xiàn)后返回步驟 (2);
[0035] 如果是其他功能指令,則根據(jù)指令完成穩(wěn)定性調(diào)整、拍照和自動避障功能,返回步 驟⑵。
[0036] 所述步驟⑶中,
[0037] 如果收到其他功能指令,首先判斷是自適應(yīng)穩(wěn)定性指令、拍照指令還是自動避障 指令;
[0038] 如果是自適應(yīng)穩(wěn)定性指令,則加速度計傳感器采集當(dāng)前機器人軀體的傾角并和穩(wěn) 態(tài)時比較;計算偏差;步態(tài)實現(xiàn);
[0039] 如果是拍照指令,則網(wǎng)絡(luò)攝像頭拍照,將照片通過單片機MT7620內(nèi)嵌的OpenWRT, 上傳給單片機STM32,最終通過藍(lán)牙模塊上傳給上位機;
[0040] 如果是自動避障指令,則進(jìn)入如下步驟:
[0041] 步驟(3-1):超聲波傳感器啟動,判斷是否在設(shè)定安全距離內(nèi),如果是就開始步態(tài) 實現(xiàn),返回步驟(3-1);如果否則機器人頭部的第十四舵機通過轉(zhuǎn)動再次檢測;判斷是否找 到無障礙方向,如果是就改變方向,開始步態(tài)實現(xiàn),返回步驟(3-1),如果否就結(jié)束。
[0042] 所述步態(tài)實現(xiàn)的具體步驟如下:
[0043] 步驟(4-1):建立DH坐標(biāo)系,設(shè)定初始坐標(biāo)點;
[0044] 步驟(4-2):建立運動學(xué)方程;求解逆運動學(xué)方程;
[0045] 步驟(4-3):設(shè)計運動軌跡;
[0046] 步驟(4-4):舵機關(guān)節(jié)映射;
[0047] 步驟(4-5) :PWM輸出控制舵機實現(xiàn)步態(tài)。
[0048] 所述步驟(4-1)的步驟為:
[0049] 首先,利用D-H(Dnavit-Harbenberg)方法對機器人建立坐標(biāo)系,以此來表示各關(guān) 節(jié)變量;第一關(guān)節(jié)的坐標(biāo)系為》1,¥1,21),第二關(guān)節(jié)的坐標(biāo)系為》2,¥2,22),第三關(guān)節(jié)的 坐標(biāo)系為(乂3,¥3,23),機器人軀干的中心位置的坐標(biāo)系為(乂0,¥0,20)
[0050] 根據(jù)建立的D-H坐標(biāo)系建立機器人D-H坐標(biāo)參數(shù)表。
[0051] 表1機器人D-H坐標(biāo)參數(shù)表
[0052]
[0053] a:表示每條公垂線的長度(連桿長度);a:兩個相鄰兩坐標(biāo)系z軸間的角度;
[0054] 0 :繞當(dāng)前關(guān)節(jié)坐標(biāo)系z軸旋轉(zhuǎn)的角度;d:在當(dāng)前關(guān)節(jié)坐標(biāo)系z軸上兩條相鄰的 公垂線之間的距離(稱關(guān)節(jié)偏移);關(guān)節(jié)1表示橫向髖關(guān)節(jié);關(guān)節(jié)2表示縱向髖關(guān)節(jié);關(guān)節(jié) 3表不膝關(guān)節(jié);a〇表不橫向髓關(guān)節(jié)和縱向髓關(guān)節(jié)之間的連桿長度;al表不縱向髓關(guān)節(jié)和 膝關(guān)節(jié)之間的連桿長度;a2表示膝關(guān)節(jié)關(guān)節(jié)和腿末端節(jié)之間的連桿長度;k的取值范圍是 0~2 ;dik的參數(shù)含義是k和k-1坐標(biāo)系中z軸上兩條相鄰的公垂線之間的距離;0ik的 參數(shù)含義是Z軸從k-1坐標(biāo)系旋轉(zhuǎn)到k坐標(biāo)系的角度;0iO的參數(shù)含義是需要求解的橫向 髖關(guān)節(jié)轉(zhuǎn)動角度;