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