段航博 胡亮 顧頌文 馬千里 李澤森
中國民航大學(xué),中國·天津 300000
對于四足機(jī)器人的設(shè)計與研究早在20世紀(jì)70年代,就已經(jīng)開始了,最早的對于四足機(jī)器人的記載是美國GE公司對于四足機(jī)器狗的研究,而研究目的就是為了能夠代替人類去做一些危險環(huán)境下的工作,隨后全世界各個國家對于機(jī)器狗的研究便展開了帷幕。國際上著名的有BigDog和斯坦福兩個代表。而中國國內(nèi)今年來有四足機(jī)器人萊卡狗、浙江大學(xué)所研制的赤兔機(jī)器狗等?,F(xiàn)如今,由于科技的逐漸成熟,機(jī)器人的各項性能也在快速的進(jìn)步,研究開發(fā)的進(jìn)度也在加快。
機(jī)器人技術(shù)作為當(dāng)今科技發(fā)展的前沿領(lǐng)域之一,它是將編程技術(shù),傳感技術(shù)等多種技術(shù)融為一體的新興技術(shù)。21世紀(jì)以來,隨著人們對于未知領(lǐng)域的持續(xù)探索,人工智能技術(shù)得以興起,機(jī)器人技術(shù)更是獲得了蓬勃發(fā)展的條件。四足機(jī)器人的優(yōu)勢在于,比兩足機(jī)器人的運行更加穩(wěn)定,比六足機(jī)器人的結(jié)構(gòu)更加簡單,這也就意味著在搶險救災(zāi)、軍事領(lǐng)域以及生活領(lǐng)域上都有著相當(dāng)不錯的發(fā)展前景。
2.2.1 國際上四足機(jī)器人研究現(xiàn)狀
在其他國家,最早的有Rygg所設(shè)計制造的“機(jī)械馬”算是國際上最早的對于足式機(jī)器人的初期探索。而人類對于足式機(jī)器人的相關(guān)研究的開端則是1899年Muybridge使用連續(xù)拍攝的方法來研究動物的行走步態(tài)。
Walking-Truck的問世是第一臺液壓四足機(jī)器人研究成功的標(biāo)志。Walking-Truck由美國通用電氣公司(General Electric Company,GE)的Mosher和Liston聯(lián)合研制,其在人工操作下實現(xiàn)了抬腿、邁步、跨越和躲避障礙等運動,這標(biāo)志著液壓四足機(jī)器人研究的進(jìn)步[1]。在20世紀(jì)60年代時,人們對于機(jī)器人的研究開始進(jìn)入了主要以機(jī)械控制與液壓傳動實現(xiàn)運動的發(fā)展階段。在這一階段里,最具有代表性的就是1968年美國的Mosher所設(shè)計的四足車。在21世紀(jì)后,得益于計算機(jī)、傳感器等技術(shù)的發(fā)展,仿生四足機(jī)器人領(lǐng)域百花齊放。2003年電氣通信大學(xué)以木村浩為首的研究團(tuán)隊成功研制出輕質(zhì)仿生移動機(jī)器人Tekken,這款機(jī)器人一共有16個自由度(DOF),總質(zhì)量3.1kg,每條腿0.4kg,每條腿包含一個偏轉(zhuǎn)自由度和三個俯仰自由度,并且在仿生機(jī)器人身上還安裝有陀螺儀、傾角傳感器和觸覺傳感器等[2]。2004年,Boston Dynamics發(fā)布了仿生機(jī)器狗Little Dog,這款四足機(jī)器狗在結(jié)構(gòu)設(shè)計上的一大亮點就是四條腿的架構(gòu)是相同的,在前后兩只腿上所運用到了對稱的結(jié)構(gòu),并且在每條腿上都有4個自由度以及3個舵機(jī),所以這款四足機(jī)器狗具有較大的運動空間,并且具有良好的靈活性。
繼Little Dog 之后,Boston Dynamics發(fā)布了Big Dog,Big Dog在結(jié)構(gòu)設(shè)計、運動性能和運動控制上均為當(dāng)前四足機(jī)器人研究領(lǐng)域的較高水平,Big Dog長10.7m,自重109kg。它也具有每條腿的4個自由度,它相比Little Dog而言,具有了更大的步幅和運動空間,因此它相比其他機(jī)器人具有更快的運動速度,并且可以適應(yīng)各種復(fù)雜地形。
2.2.2 中國國內(nèi)仿生機(jī)器人及步態(tài)規(guī)劃研究現(xiàn)狀
與國際上的四足機(jī)器狗的發(fā)展相比,中國最早提出這一理念的就是中國古代的“木牛流馬”,但是相比其他國家,中國對于四足機(jī)器人的研究卻起步較晚,由于中國的相關(guān)政策的實施以及國家政府的重視,中國的機(jī)器人技術(shù)也在快速地發(fā)展著,越來越多的仿生四足機(jī)器狗登上了中國的舞臺,最令人欣慰的就是在今年的牛年春節(jié)聯(lián)歡晚會上,許許多多的四足機(jī)器人登上了春晚的舞臺。這也顯示著中國在機(jī)器人領(lǐng)域也在緊緊地追趕著。在中國對于四足機(jī)器人的研究中最為代表的就是以北京理工大學(xué)所研制的一款液壓型四足機(jī)器人,整個機(jī)器人共有16個自由度,并且每個腿有4個自由度,總質(zhì)量為65kg。還有哈爾濱工業(yè)大學(xué)所設(shè)計的四足機(jī)器人,它的每條腿上只有3個自由度,并且它的最大創(chuàng)新亮點就是用輪子來代替四肢足端。這樣保證了足端與地面的更加平穩(wěn)地接觸。并且在運動的時候,可以任意選擇足式機(jī)器人模式和輪式機(jī)器人模式兩種模式。
近年來,華中科技大學(xué)針對足式機(jī)器人技術(shù)的開展了積極研究,并在多足步行機(jī)器人技術(shù)的發(fā)展上也取得了較大的成果。華中科技大學(xué)研制了“4+2”多足步行機(jī)器人。而所謂“4+2”是指步行機(jī)器人在復(fù)雜步行區(qū)域最多可利用6條腿來實現(xiàn)穩(wěn)健的步行運動,而在工作區(qū)域可作為具有兩條上臂的四足機(jī)器人。因此,該機(jī)器人不僅具有步行移動的基本功能而且可借助相應(yīng)的末端執(zhí)行上具,如機(jī)械手臂來完成指定的作業(yè)任務(wù),體現(xiàn)機(jī)器人的多功能性[3]。
2.2.3 研究現(xiàn)狀總結(jié)
從所整理的中國和國際上對于四足機(jī)器人的研究現(xiàn)狀中,我們可以知道中國國內(nèi)對于四足機(jī)器狗的研究上起步較晚,大約從20個世紀(jì)90年代開始研究,并且以飛快的速度追趕著國外的發(fā)展。因此,筆者也想嘗試著為中國國內(nèi)四足機(jī)器人的發(fā)展作出貢獻(xiàn)。
對比生物狗的身體結(jié)構(gòu),腹部是起到一個放著電源電路、各種控制器還有連接腿部的作用,我們將其設(shè)計為了盒裝的空間。腿部才是設(shè)計機(jī)器狗的重點,生物狗的前腿有肩關(guān)節(jié)、肘關(guān)節(jié)、腕關(guān)節(jié),相應(yīng)后腿有髖關(guān)節(jié)、膝關(guān)節(jié)和踝關(guān)節(jié),作為對應(yīng)我們給機(jī)器狗的腿部也設(shè)計了3個關(guān)節(jié),即肩關(guān)節(jié)、大腿關(guān)節(jié)、小腿關(guān)節(jié)。在連接上,肩關(guān)節(jié)和大腿關(guān)節(jié)是處于同一條直線上的,目的就是為了降低機(jī)器狗的重心位置,提高機(jī)器狗的穩(wěn)定性,并且能夠用比較便捷的方式控制機(jī)器狗的橫向運動。為了重心的穩(wěn)定,我們改變了生物狗站立時前腿直立的狀態(tài),取而代之的是前后腿處于一樣的小腿關(guān)節(jié)向后彎曲的狀態(tài),見圖1~圖3。
圖1 生物狗的身體結(jié)構(gòu)(1)
圖2 生物狗的身體結(jié)構(gòu)(2)
圖3 生物狗的身體結(jié)構(gòu)(3)
對于頭部,生物狗的頭部是為了接收、發(fā)射和處理信息,當(dāng)然也有進(jìn)食和打斗的作用,機(jī)器狗不用進(jìn)食,但是嘴部也可以安裝作為搶險救災(zāi)時的方便工具,機(jī)器狗的信息處理的“大腦”會放置在大空間的腹部。這樣做的目的有二:一是為了重心的穩(wěn)定;二是能夠更好地連接腿部,也節(jié)約了線路。我們將機(jī)器狗的頭部放置在了與腹部平行的水平面內(nèi),沒有過多前伸,在頭部安裝了“探測器”來保護(hù)機(jī)器狗。
機(jī)器狗身體的制造我們用了速美印3D打印機(jī)、FlashPrint3D打印機(jī)和PLA耗材打印出來各個模塊,并根據(jù)需要對模塊進(jìn)行打磨修改,方便后期對狗裝配。3D打印機(jī)填充程度的不同還有填充形狀的不同都會對模塊的強(qiáng)度產(chǎn)生影響。對比了多種填充的組合,我們最終采用了三角形填充形狀和55%的填充密度。這種方案保證了后期打磨修改的易實現(xiàn)性、狗身制造的經(jīng)濟(jì)性,也保證了模塊以及結(jié)構(gòu)的強(qiáng)度。為了解決由于打印機(jī)打印的誤差和要更換模塊時要重新修配的問題,我們對模塊的數(shù)據(jù)三維模型進(jìn)行了標(biāo)準(zhǔn)化,從而保證了各個組件之間的協(xié)調(diào)性和互換性,大大降低了由機(jī)器狗制造而浪費的時間,提高了效率。
機(jī)器狗的動力需求85%是來自腿部的動作,剩余15%是其他模塊的電力需求。于此,我們選擇7.4v的可充電池組進(jìn)行供電,用MG996R舵機(jī)帶動腿部轉(zhuǎn)動,它能提供的扭力是13kg/cm,工作電壓4.8~7.2v,工作電流100mA,旋轉(zhuǎn)角度是180°,反應(yīng)轉(zhuǎn)速是53~62r/m,對于這只小體型的機(jī)器狗,它提供的扭力足夠支持機(jī)器狗的站立蹲下以及行走這些簡單的動作。但是,要做需要爬坡越障等有難度的動作時,舵機(jī)動力稍顯不足,甚至?xí)霈F(xiàn)向后傾倒的現(xiàn)象。由于尺寸限制以及模塊改動的難度太大且耗時,我們用DG995舵機(jī)取代了MG996R舵機(jī)。DG995舵機(jī)提供扭力25kg/cm,工作電壓4.8~7.4v,旋轉(zhuǎn)角度300°。大扭力舵機(jī)使得機(jī)器狗的穩(wěn)定性提高,也可以適當(dāng)?shù)奶岣咧匦奈恢玫母叨?,方便機(jī)器狗可以越過更多的障礙物,而不是用耗時耗力的避障繞行。
由于供電電池組工作電壓是7.4v,而舵機(jī)控制板工作電壓是在5v,中間采用lm2596DC-DC舵機(jī)控制板,LM2596屬于DC-DC開關(guān)電源的BUCK類電壓反饋式的降壓型電源管理集成電路,能夠輸出5V/3A的驅(qū)動電流,開關(guān)頻率150KHz。如圖4所示,本電路中應(yīng)用了其固定的工作模式,輸入電壓Vin=7.4V,輸出電壓Vout=5V。
圖4 機(jī)器狗部分電路
如圖5所示,再用舵機(jī)控制板控制舵機(jī),進(jìn)一步帶動腿部和整體的運動。
圖5 機(jī)器狗主要控制系統(tǒng)框圖
用Arduino開發(fā)板進(jìn)行程序的編寫與對舵機(jī)的控制。利用Arduino可以更方便加裝其他功能模塊,如超聲波模塊、聲音識別控制模塊、無線接收模塊、液晶顯示等。
Arduino編程:Arduino使用C/C++編寫程序,C語言是一種面向過程的編程語言,C++是一種面向?qū)ο蟮木幊陶Z言。早期的Arduino核心庫使用C語言編寫,后來引進(jìn)了面向?qū)ο蟮乃枷耄壳白钚碌腁rduino核心庫采用C與C++混合編寫而成。我們使用的Arduino語言,是Arduino核心庫文件提供的各種應(yīng)用程序編程接口(Application Programming Interface,簡稱API)的集合。這些API是對更底層的單片機(jī)支持庫進(jìn)行二次封裝所形成的。這些封裝好的API,使得程序中的語句更容易被理解,我們不用理會單片機(jī)中繁雜的寄存器配置,就能直觀地控制Arduino,增強(qiáng)程序的可讀性的同時,也提高了開發(fā)效率,這也是Arduino與單片機(jī)的最大區(qū)別,使用更簡單,效率更高。
超聲波傳感器的發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。根據(jù)計時器記錄的時間t,聲波在空氣中的傳播速度為340m/s,就可以計算出發(fā)射點距障礙物的距離s,即s=340m/s×t/2。
超聲波傳感器是將超聲波信號轉(zhuǎn)換成其他能量信號(通常是電信號)的傳感器。HC-SR04是比較常用的超聲波傳感器模塊,廣泛應(yīng)用于機(jī)器人測距、小車避障等場合,見圖6。
圖6 超聲波模塊
超聲波傳感器模塊的VCC、GND分別連接到開發(fā)板的5V、GND。傳感器的Trig引腳、Echo引腳分別連接到開發(fā)板的數(shù)字引腳6、7,見圖7。
圖7 電路連接圖
編程方面,我們將超聲波測距功能定義在一個函數(shù)中,以便在需要的時候調(diào)用,見圖8。
圖8 測距函數(shù)源代碼
根據(jù)圖9、圖10以及表1可見,LD3320語音識別模塊是emakefun基于非特定人語音識別LD3320SI-ASR芯片開發(fā)的一款語音識別模塊。LD3320芯片上集成了高精度的 A/D和 D/A 接口,不再需要外接輔助的 Flash 和RAM,即可以實現(xiàn)語音識別、聲控、人機(jī)對話功能。此外,還提供了真正的單芯片語音識別解決方案。該模塊有如下特點:
圖9 語音控制模塊
圖10 語音模塊初始化源代碼
表1 語音模塊電路連接對照表
第一,非特定人語音識別技術(shù)。用戶不需要進(jìn)行錄音訓(xùn)練即可動態(tài)編輯的識別關(guān)鍵詞語列表,只需要把識別的關(guān)鍵詞語以字符串的形式傳送進(jìn)芯片,即可以在下次識別中立即生效。
第二,支持用戶自由編輯50條關(guān)鍵詞語條。在同一時刻,最多在50條關(guān)鍵詞語中進(jìn)行識別,終端用戶可以根據(jù)場景需要,隨時編輯和更新關(guān)鍵詞語的內(nèi)容,每條詞條字?jǐn)?shù)不超過79個。
第三,采用MCU+LD3320設(shè)計。大大簡化了用戶接線和編程難度。
LD3320語音模塊初始化源代碼如下:
關(guān)于舵機(jī),舵機(jī)是一種位置(角度)伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。舵機(jī)實際上是一種位置伺服的驅(qū)動器,主要是由外殼、電路板、無核心馬達(dá)、齒輪與位置檢測器所構(gòu)成。
舵機(jī)內(nèi)部有一個基準(zhǔn)電路,產(chǎn)生周期為20ms、寬度為1.5ms的基準(zhǔn)信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。經(jīng)過電路板IC方向判斷,再驅(qū)動無核心馬達(dá)開始轉(zhuǎn)動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經(jīng)到位。舵機(jī)轉(zhuǎn)動的角度是通過調(diào)節(jié)PWM(脈沖寬度調(diào)制)信號的占空比來實現(xiàn)的。標(biāo)準(zhǔn)的PWM信號的周期固定為20ms,理論上脈寬分布應(yīng)該在1ms到2ms之間,實際上可由0.5ms到2.5ms之間,脈寬與轉(zhuǎn)角0~180°相對應(yīng)。
脈寬調(diào)制(PWM,Pulse Width Modulation)技術(shù)是利用微處理器的數(shù)字輸出來對模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測量、通信到功率控制與變換的許多領(lǐng)域中 。
由于Arduino的驅(qū)動能力有限,當(dāng)需要控制多個舵機(jī)時,需要外接電源以及使用專用的舵機(jī)驅(qū)動板。
舵機(jī)驅(qū)動板:PCA9685模塊是16路12位PWM信號發(fā)生器,可用于控制舵機(jī)、LED、電機(jī)等設(shè)備,采用I2C通信協(xié)議。主機(jī)只需要使用I2C接口即可實現(xiàn)16路舵機(jī)控制。I2C總線一般由兩根數(shù)據(jù)傳輸線構(gòu)成:一根時鐘線(SCL)、一根數(shù)據(jù)線(SDA),見圖11~圖13。
圖11 PCA9685實物圖
圖12 Arduino與PCA9685連線圖
圖13 代碼控制數(shù)據(jù)示例
PCA9685的代碼控制:首先安裝Adafruit PWM Servo Driver Library庫。
初始化完成后,調(diào)用“pwm.setPWM(servonum, 0,pulselen)”即可控制對應(yīng)舵機(jī)轉(zhuǎn)動角度。我們將機(jī)器狗的不同動作封裝在不同的函數(shù)中,發(fā)送對應(yīng)語音指令調(diào)用函數(shù)執(zhí)行,見圖14。
圖14 部分源代碼示例
站立和蹲下是最簡單的控制。先將舵機(jī)全部調(diào)至同一角度,設(shè)置在中值位,對應(yīng)各個位置在同一高度,此時就是對應(yīng)站立姿態(tài)。將中值位的角度看作坐標(biāo)軸的O點,再將除肩部以外的4個舵機(jī)的角度同時向坐標(biāo)軸左端移動或者說減小舵機(jī)的角度,達(dá)到同時減低各個部件的高度,即實現(xiàn)蹲下姿態(tài)。
將左前腿設(shè)為1,左后腿設(shè)為2,右前腿設(shè)為3,右后腿設(shè)為4,大腿關(guān)節(jié)設(shè)為A,小腿關(guān)節(jié)設(shè)為B,行走步態(tài)暫時不動肩部關(guān)節(jié),見圖15、圖16。
圖15 機(jī)器狗設(shè)置值
圖16 設(shè)置示意圖
對1、4,應(yīng)做到:①先將小腿關(guān)節(jié)B減小角度(即轉(zhuǎn)動舵機(jī)讓小腿靠近大腿),同時將大腿關(guān)節(jié)A增大角度(即轉(zhuǎn)動舵機(jī)遠(yuǎn)離水平線);②B增大角度使小腿的腳部達(dá)到地面;③A減小角度,同時另一組2、3做第①步,從而帶動機(jī)器狗向前走。三步驟經(jīng)歷的時間一定很短,要不然狗身容易倒,并且動作一定要連續(xù),不然會延長腿部滯空時間,進(jìn)而會增加機(jī)器狗倒下的幾率,見圖17。
圖17 機(jī)器狗內(nèi)部設(shè)計
上文提到狗的頭部是用來發(fā)射和接收信息的。在機(jī)器狗的頭部裝備兩個超聲波探測器,兩個探測器與豎直平面都有一個角度,這樣它發(fā)射的超聲波是向斜前方的,這樣不僅可以探測前方是否有障礙物從而進(jìn)行避障,而且可以測量是否可以通過狹窄通道,見圖18。
圖18 超聲波探測器
此款機(jī)器狗根據(jù)生物狗的身體結(jié)構(gòu)和運動步態(tài)進(jìn)行了制作,肩關(guān)節(jié)和大腿關(guān)節(jié)連在一起,更容易進(jìn)行仿生研究和對機(jī)器狗的控制。機(jī)器狗總體具有對稱結(jié)構(gòu),結(jié)構(gòu)簡單方便設(shè)計與制造。對步態(tài)的設(shè)計參照了生物狗簡單的小跑步態(tài),適合初次接觸者。小尺寸大扭力電機(jī)保證了完成各種動作的基本需求。此機(jī)器狗的設(shè)計了也是參考了很多前人的經(jīng)驗,由于自身經(jīng)驗,時間等原因沒能制作的足夠好。當(dāng)然,此狗還可以進(jìn)行更多的改造:增加定位系統(tǒng),可以通過衛(wèi)星進(jìn)行鏈接;換尺寸進(jìn)一步更換更大扭力的電機(jī),能提高對復(fù)雜地形的適應(yīng)能力;增加攝像頭,機(jī)械臂,對探測地形和取回樣本有很大作用;增加人狗交互系統(tǒng),使與狗的交流和控制更加方便。