王雅雪,吳志鑫,林瑞金,周燕茹
(1.廈門理工學(xué)院 電氣工程與自動化學(xué)院,福建 廈門 361024;2.龍巖市廈龍工程技術(shù)研究院,福建 龍巖 364000)
隨著人工智能技術(shù)的飛速發(fā)展,移動機器人研究進入了嶄新階段,按其在地面運動方式的不同主要可分為3類:履帶式機器人、輪式機器人以及足式機器人。因移動機器人能代替人進入危險區(qū)域并帶回重要信息的特性,已在探測、救援等領(lǐng)域大放異彩。特別是足式移動機器人具有多肢體、多自由度的結(jié)構(gòu)特點,可進行豐富的步態(tài)設(shè)計,適用于各種非結(jié)構(gòu)化地形以及礦產(chǎn)采掘、考古探測、搶險救災(zāi)等多種危險場所,應(yīng)用前景廣泛。
六足機器人是足式機器人的一個典型代表,除具有一般足式機器人的特點外,還結(jié)構(gòu)靈活、步態(tài)豐富、行走穩(wěn)定且自由度多,在背負(fù)載荷、越障能力、魯棒性、可靠性和抗損性方面表現(xiàn)出了明顯的優(yōu)勢[1]。目前,國內(nèi)外均已對六足機器人進行了深入研究,并取得了一定的研究成果,如北京理工大學(xué)運用高速攝像機和數(shù)字?jǐn)z影分析技術(shù)對日本弓背蟻進行了步行試驗研究,提出應(yīng)用于六足機器人運動規(guī)劃的五項結(jié)論[2],上海交通大學(xué)研發(fā)了“六爪章魚”救援機器人[3],美國麻省理工學(xué)院研制了用于地外行星探測的六足機器人Genghi[4],西班牙工業(yè)自動化研究所設(shè)計了用于排雷的六足機器人SILO-6[5]等。這些工作實現(xiàn)了機器人的行走,然而,這些機器人仍存在行走過于機械、難以靈活完成復(fù)雜仿生運動等問題,且雖部分樣機初步應(yīng)用于排險、軍事等領(lǐng)域,但總體上仍多處于實驗研究階段[6]?;诖?,本文擬設(shè)計一款以Raspberry Pi為控制核心的六足行走機器人,結(jié)合多種元器件,使其具備多自由度、遠(yuǎn)程控制、實時監(jiān)控和自動避障等功能,實現(xiàn)對六足機器人的進一步研究。
該六足行走機器人整體設(shè)計方案如圖1所示。以Raspberry Pi為主控板,用兩個鋰電池組作為電源模塊,分2路降壓分別給Raspberry Pi、STM32核心板和24路舵機控制板供電。通過設(shè)置樹莓派專用夜視攝像頭,由無線網(wǎng)可將采集的圖像由樹莓派傳遞到手機網(wǎng)頁顯示。此外,STM32連接無線通信模塊登錄百度智能云服務(wù)器與手機APP進行通信,根據(jù)APP發(fā)布的動作命令,STM32進行響應(yīng)并向Raspberry Pi發(fā)送信號,以使機器人進入不同工作模式并通過舵機控制板控制舵機實現(xiàn)相應(yīng)動作。該機器人具備自動和手動2種工作模式,在手動模式下,根據(jù)手機APP發(fā)布的動作命令,可分別實現(xiàn)機器人前進、后退、左轉(zhuǎn)、右轉(zhuǎn)動作;在自動模式下,結(jié)合超聲波傳感器,機器人往前行走并自動避障。
圖1 整體設(shè)計方案
該六足機器人的整體結(jié)構(gòu)如圖2所示,主要由機身和六條腿組成。通過觀察可知多足昆蟲軀體結(jié)構(gòu)多為長橢圓形的對稱結(jié)構(gòu),這種結(jié)構(gòu)可保證相鄰?fù)乳g的運動空間達(dá)到最大,避免相鄰?fù)乳g互相干涉。據(jù)此,將機身設(shè)計為長橢圓形內(nèi)接的六邊形,6個六邊形的頂部分別接6條腿,對稱分布在機身兩側(cè)。這個設(shè)計的特點是在合理利用空間的基礎(chǔ)上,實現(xiàn)了腿部運動范圍最大化,提高機器人的穩(wěn)定性和靈活性。
按照合理利用空間、排列緊湊的原則,結(jié)合各功能模塊需求,該六足機器人的機身采用雙層結(jié)構(gòu),中間依靠六足機器人的腰關(guān)節(jié)進行連接,具體如圖3所示。
為滿足支撐整個機體并推動機器人移動的需求,腿部結(jié)構(gòu)的設(shè)計方案具體如下:
⑴ 對應(yīng)螞蟻腿部的基關(guān)節(jié)、基—股關(guān)節(jié)和股—脛關(guān)節(jié),腿部結(jié)構(gòu)設(shè)計為3個自由度,分別為腰關(guān)節(jié)、髖關(guān)節(jié)和膝關(guān)節(jié)。其中腰關(guān)節(jié)控制腿部的前后擺動,髖關(guān)節(jié)控制運動時腿部的抬起和放下動作,膝關(guān)節(jié)用于實現(xiàn)踢腿動作。
⑵ 小腿末端采用倒三角柱狀,使得腿部與地面的接觸可近似認(rèn)為是線面接觸,同時加寬末端柱狀結(jié)構(gòu)連接2個小腿連接件,以達(dá)到加固2個膝關(guān)節(jié)連接件的目的。此外,在接觸面設(shè)計了凸起,以增大摩擦,防止運動過程中產(chǎn)生打滑現(xiàn)象。
腿部結(jié)構(gòu)的三視圖如下所示。
圖4 六足機器人腿部結(jié)構(gòu)模型
為實現(xiàn)六足機器人在水平平坦路面上行走時,動作穩(wěn)定柔順并保持較快速度,本設(shè)計選擇三角步態(tài)作為該機器人的常規(guī)步態(tài),具體如圖5和6所示,其中黑色表示支撐相,白色表示擺動相,s表示半個步長。三角步態(tài)是占空比β=時的波形步態(tài),任意時刻僅有支撐相或擺動相,沒有同時存在的時間段;另外,運動時六腿呈兩組三角形交替支撐邁步前進,其行走軌跡并非是直線,而是呈“之”字形的曲線前進[7]。
圖5 三角步態(tài)行走示意圖
圖6 三角步態(tài)支撐相與擺動相周期示意圖
機器人運行時,只要質(zhì)心投影在支撐足構(gòu)成的三角形區(qū)域內(nèi),其就是穩(wěn)定的,一旦超出范圍,其就會失穩(wěn),可能造成嚴(yán)重?fù)p壞。質(zhì)心投影在地面的點距離支撐足構(gòu)成的三角區(qū)域的邊的最短距離稱為穩(wěn)定裕度。顯然,穩(wěn)定裕度越大,機器人越穩(wěn)定。
如圖7所示,A1、A2、A3三點為某一時刻六足機器人的三個支撐足在地面上的支撐點,y方向為六足機器人的前進方向。忽略擺動腿對質(zhì)心以及慣性力對穩(wěn)定性的影響,假設(shè)質(zhì)心為六足機器人的幾何中心即原點O, d1、d2、d3為機器人質(zhì)心投影到支撐三角形各邊的垂直距離,可計算穩(wěn)定裕度,以判斷機器人的穩(wěn)定性。
圖7 三角步態(tài)穩(wěn)定裕度計算圖
() 支撐三角形各邊所在直線的一般公式是根據(jù)相鄰兩條腿的足端軌跡離散點計算的,以A1(x1,y1),A2(x2,y2)兩點為例,可得式⑴。
(y2-y1)x-(x2-x1)y +(x2-x1)y1-(y2-y1)x1=0 ⑴再根據(jù)點到直線的距離公式可得出質(zhì)心投影到直線的距離公式⑵。在整個承載階段,從質(zhì)心投影到各邊緣計算最小距離,然后取最小值作為步態(tài)規(guī)劃的穩(wěn)定裕度,即S=min{d1,d2,d3…}。因此,只要機器人在行走過程中的質(zhì)心垂直投影始終被其交替變化的立足點所組成的多邊形所包圍,就可以說它是靜態(tài)穩(wěn)定的[8]。
表1 六足行走機器人的主要硬件模塊清單
圖8 系統(tǒng)硬件的連接圖
主程序流程如圖9所示。該六足機器人設(shè)計了2種控制模式,一種是自動控制模式,一種是手動控制模式。在自動模式下,六足機器人默認(rèn)前進過程中通過超聲波傳感器實時監(jiān)測與前方障礙物的距離,當(dāng)檢測到與障礙物距離小于25 cm時,進行避障。在手動模式下,通過手機APP終端指令控制機器人前進、后退、左轉(zhuǎn)、右轉(zhuǎn)。
圖9 主程序流程圖
本設(shè)計的數(shù)據(jù)無線傳輸流程具體如圖10所示。通過串口向無線通信模塊ESP8266-01S發(fā)送相應(yīng)的AT指令,實現(xiàn)連接WIFI和百度智能云服務(wù)器等功能。百度智能云服務(wù)器為用戶提供了登錄MQTT服務(wù)器、MQTT訂閱/取消訂閱數(shù)據(jù)和MQTT發(fā)布數(shù)據(jù)的打包函數(shù),這些函數(shù)配置了MQTT協(xié)議的控制報文格式,包括連接、發(fā)布和訂閱的報文。用戶調(diào)用上述函數(shù)時只需填寫相應(yīng)的入口參數(shù),例如IP地址、端口號、主題、標(biāo)識名、用戶名、密碼和消息等,然后打包函數(shù)會按照MQTT協(xié)議的控制報文格式對入口參數(shù)進行連接,并轉(zhuǎn)化為16進制的數(shù)據(jù)發(fā)送給代理服務(wù)器,完成登錄MQTT服務(wù)器、發(fā)布和訂閱消息等功能。
圖10 數(shù)據(jù)無線傳輸模塊連接流程圖
實現(xiàn)六足機器人的步態(tài)動作實質(zhì)就是改變關(guān)節(jié)舵機的角度,因此步態(tài)規(guī)劃實際就是設(shè)計舵機轉(zhuǎn)動控制程序,具體流程如圖11所示。
圖11 舵機轉(zhuǎn)動控制流程圖
首先,需利用舵機控制板的上位機設(shè)置好動作組。根據(jù)六足機器人每條腿分別有3個自由度設(shè)計如圖12的上位機控制面板。
圖12 六足機器人舵機控制板上位機控制面板
舵機滑塊如圖13所示,舵機的實際位置=舵機當(dāng)前位置+舵機偏差。調(diào)整對應(yīng)舵機的滑桿,設(shè)置脈沖寬度,可實現(xiàn)對舵機轉(zhuǎn)動角度的設(shè)置。該六足機器人需設(shè)置的動作組包括:前進、后退、左轉(zhuǎn)、右轉(zhuǎn)。另外設(shè)置了一個轉(zhuǎn)頭動作,適用于避障模式,可在程序當(dāng)中直接調(diào)用單個舵機的控制函數(shù)進行設(shè)置,不借助上位機控制面板。
圖13 舵機滑塊
以左轉(zhuǎn)為例來說明動作組設(shè)置方法。左轉(zhuǎn)動作數(shù)據(jù)如表2所示,其中“#”表示舵機編號,“P”表示舵機的位置,Time表示執(zhí)行該動作舵機運行的時間。左轉(zhuǎn)一個步長需要經(jīng)過6個動作變換:1號動作為初始姿態(tài),所有腿都處于落地支撐狀態(tài);2號動作2、4、6腿作為支撐組,抬起1、3、5腿;3號動作1、3、5腿逆時針擺動,即5腿向前,1、3腿向后,同時2、4、6腿順時針運動,即2腿向前,4、6腿向后,以此推動機器人左轉(zhuǎn);4號動作1、3、5腿放下作為支撐組;5號動作2、4、6腿抬起變?yōu)閿[動組,同時1、3、5腿的腰關(guān)節(jié)順時針回正,帶動機身進行左轉(zhuǎn)動作;6號動作2、4、6腿逆時針擺動,同時1、3、5腿繼續(xù)順時針運動,繼續(xù)推動左轉(zhuǎn)動作,使左轉(zhuǎn)動作更為連貫。通過設(shè)置這6個動作循環(huán)變換,使1、3、5腿和2、4、6腿交替支撐、擺動,就完成左轉(zhuǎn)動作。依次設(shè)置好4個動作組,按順序下載保存到舵機控制板中。
表2 左轉(zhuǎn)動作組
在前述工作基礎(chǔ)上,接著樹莓派通過串口通信協(xié)議,發(fā)送正確的控制指令給舵機控制板以調(diào)用保存在其中的動作組。最后,舵機控制板控制舵機響應(yīng)相應(yīng)的動作命令。
超聲波模塊測距的工作原理是通過時間間隔來計算距離,其程序設(shè)計流程如圖14所示。首先,通過trig端口發(fā)送一個大于10 μs的高電平脈沖觸發(fā)信號。然后,根據(jù)系統(tǒng)前后時間差計算echo端口持續(xù)高電平的時間,最后根據(jù)公式計算出與障礙物的距離并進行均值濾波處理。
圖14 超聲波測距流程圖
本設(shè)計所得六足機器人的3D圖和實物圖具體如圖15、圖16。
圖15 六足機器人3D圖
圖16 六足機器人實物圖
對該六足機器人的功能進行展示。首先開機自啟動監(jiān)控,可通過手機網(wǎng)頁實時監(jiān)測。
再通過手機APP控制界面(圖17)對機器人的運行模式進行選擇。
圖17 手機APP控制界面
在手動控制模式下,根據(jù)手機APP發(fā)布的動作命令,機器人實現(xiàn)前進、后退、左轉(zhuǎn)、右轉(zhuǎn)動作。
在自動控制模式下,機器人默認(rèn)前進。當(dāng)檢測到障礙物時,手機APP界面顯示“dangerous”(圖18),機器人進行后退和右轉(zhuǎn)的避障動作組。
圖18 檢測到障礙物時的手機APP界面
本文采用Raspberry Pi、攝像頭、超聲波傳感器、舵機控制板、ESP8266等功能模塊,并通過App制作和3D打印組裝,設(shè)計了一款新型六足行走機器人。經(jīng)測試,該機器人具備遠(yuǎn)程控制、多自由度、實時監(jiān)控和自動避障功能。整體系統(tǒng)較為完善,滿足在非結(jié)構(gòu)化地形中穩(wěn)定行走并實時高效采集信息的要求,可移植性強、智能化程度較高,具有實際應(yīng)用價值。后續(xù)工作中可進一步豐富步態(tài),或引入算法來實現(xiàn)反應(yīng)步態(tài)規(guī)劃,使六足機器人的環(huán)境適應(yīng)性進一步提高。