段航博 胡亮 顧頌文 馬千里 李澤森
中國民航大學,中國·天津 300000
對于四足機器人的設計與研究早在20世紀70年代,就已經開始了,最早的對于四足機器人的記載是美國GE公司對于四足機器狗的研究,而研究目的就是為了能夠代替人類去做一些危險環境下的工作,隨后全世界各個國家對于機器狗的研究便展開了帷幕。國際上著名的有BigDog和斯坦福兩個代表。而中國國內今年來有四足機器人萊卡狗、浙江大學所研制的赤兔機器狗等。現如今,由于科技的逐漸成熟,機器人的各項性能也在快速的進步,研究開發的進度也在加快。
機器人技術作為當今科技發展的前沿領域之一,它是將編程技術,傳感技術等多種技術融為一體的新興技術。21世紀以來,隨著人們對于未知領域的持續探索,人工智能技術得以興起,機器人技術更是獲得了蓬勃發展的條件。四足機器人的優勢在于,比兩足機器人的運行更加穩定,比六足機器人的結構更加簡單,這也就意味著在搶險救災、軍事領域以及生活領域上都有著相當不錯的發展前景。
2.2.1 國際上四足機器人研究現狀
在其他國家,最早的有Rygg所設計制造的“機械馬”算是國際上最早的對于足式機器人的初期探索。而人類對于足式機器人的相關研究的開端則是1899年Muybridge使用連續拍攝的方法來研究動物的行走步態。
Walking-Truck的問世是第一臺液壓四足機器人研究成功的標志。Walking-Truck由美國通用電氣公司(General Electric Company,GE)的Mosher和Liston聯合研制,其在人工操作下實現了抬腿、邁步、跨越和躲避障礙等運動,這標志著液壓四足機器人研究的進步[1]。在20世紀60年代時,人們對于機器人的研究開始進入了主要以機械控制與液壓傳動實現運動的發展階段。在這一階段里,最具有代表性的就是1968年美國的Mosher所設計的四足車。在21世紀后,得益于計算機、傳感器等技術的發展,仿生四足機器人領域百花齊放。2003年電氣通信大學以木村浩為首的研究團隊成功研制出輕質仿生移動機器人Tekken,這款機器人一共有16個自由度(DOF),總質量3.1kg,每條腿0.4kg,每條腿包含一個偏轉自由度和三個俯仰自由度,并且在仿生機器人身上還安裝有陀螺儀、傾角傳感器和觸覺傳感器等[2]。2004年,Boston Dynamics發布了仿生機器狗Little Dog,這款四足機器狗在結構設計上的一大亮點就是四條腿的架構是相同的,在前后兩只腿上所運用到了對稱的結構,并且在每條腿上都有4個自由度以及3個舵機,所以這款四足機器狗具有較大的運動空間,并且具有良好的靈活性。
繼Little Dog 之后,Boston Dynamics發布了Big Dog,Big Dog在結構設計、運動性能和運動控制上均為當前四足機器人研究領域的較高水平,Big Dog長10.7m,自重109kg。它也具有每條腿的4個自由度,它相比Little Dog而言,具有了更大的步幅和運動空間,因此它相比其他機器人具有更快的運動速度,并且可以適應各種復雜地形。
2.2.2 中國國內仿生機器人及步態規劃研究現狀
與國際上的四足機器狗的發展相比,中國最早提出這一理念的就是中國古代的“木牛流馬”,但是相比其他國家,中國對于四足機器人的研究卻起步較晚,由于中國的相關政策的實施以及國家政府的重視,中國的機器人技術也在快速地發展著,越來越多的仿生四足機器狗登上了中國的舞臺,最令人欣慰的就是在今年的牛年春節聯歡晚會上,許許多多的四足機器人登上了春晚的舞臺。這也顯示著中國在機器人領域也在緊緊地追趕著。在中國對于四足機器人的研究中最為代表的就是以北京理工大學所研制的一款液壓型四足機器人,整個機器人共有16個自由度,并且每個腿有4個自由度,總質量為65kg。還有哈爾濱工業大學所設計的四足機器人,它的每條腿上只有3個自由度,并且它的最大創新亮點就是用輪子來代替四肢足端。這樣保證了足端與地面的更加平穩地接觸。并且在運動的時候,可以任意選擇足式機器人模式和輪式機器人模式兩種模式。
近年來,華中科技大學針對足式機器人技術的開展了積極研究,并在多足步行機器人技術的發展上也取得了較大的成果。華中科技大學研制了“4+2”多足步行機器人。而所謂“4+2”是指步行機器人在復雜步行區域最多可利用6條腿來實現穩健的步行運動,而在工作區域可作為具有兩條上臂的四足機器人。因此,該機器人不僅具有步行移動的基本功能而且可借助相應的末端執行上具,如機械手臂來完成指定的作業任務,體現機器人的多功能性[3]。
2.2.3 研究現狀總結
從所整理的中國和國際上對于四足機器人的研究現狀中,我們可以知道中國國內對于四足機器狗的研究上起步較晚,大約從20個世紀90年代開始研究,并且以飛快的速度追趕著國外的發展。因此,筆者也想嘗試著為中國國內四足機器人的發展作出貢獻。
對比生物狗的身體結構,腹部是起到一個放著電源電路、各種控制器還有連接腿部的作用,我們將其設計為了盒裝的空間。腿部才是設計機器狗的重點,生物狗的前腿有肩關節、肘關節、腕關節,相應后腿有髖關節、膝關節和踝關節,作為對應我們給機器狗的腿部也設計了3個關節,即肩關節、大腿關節、小腿關節。在連接上,肩關節和大腿關節是處于同一條直線上的,目的就是為了降低機器狗的重心位置,提高機器狗的穩定性,并且能夠用比較便捷的方式控制機器狗的橫向運動。為了重心的穩定,我們改變了生物狗站立時前腿直立的狀態,取而代之的是前后腿處于一樣的小腿關節向后彎曲的狀態,見圖1~圖3。

圖1 生物狗的身體結構(1)

圖2 生物狗的身體結構(2)

圖3 生物狗的身體結構(3)
對于頭部,生物狗的頭部是為了接收、發射和處理信息,當然也有進食和打斗的作用,機器狗不用進食,但是嘴部也可以安裝作為搶險救災時的方便工具,機器狗的信息處理的“大腦”會放置在大空間的腹部。這樣做的目的有二:一是為了重心的穩定;二是能夠更好地連接腿部,也節約了線路。我們將機器狗的頭部放置在了與腹部平行的水平面內,沒有過多前伸,在頭部安裝了“探測器”來保護機器狗。
機器狗身體的制造我們用了速美印3D打印機、FlashPrint3D打印機和PLA耗材打印出來各個模塊,并根據需要對模塊進行打磨修改,方便后期對狗裝配。3D打印機填充程度的不同還有填充形狀的不同都會對模塊的強度產生影響。對比了多種填充的組合,我們最終采用了三角形填充形狀和55%的填充密度。這種方案保證了后期打磨修改的易實現性、狗身制造的經濟性,也保證了模塊以及結構的強度。為了解決由于打印機打印的誤差和要更換模塊時要重新修配的問題,我們對模塊的數據三維模型進行了標準化,從而保證了各個組件之間的協調性和互換性,大大降低了由機器狗制造而浪費的時間,提高了效率。
機器狗的動力需求85%是來自腿部的動作,剩余15%是其他模塊的電力需求。于此,我們選擇7.4v的可充電池組進行供電,用MG996R舵機帶動腿部轉動,它能提供的扭力是13kg/cm,工作電壓4.8~7.2v,工作電流100mA,旋轉角度是180°,反應轉速是53~62r/m,對于這只小體型的機器狗,它提供的扭力足夠支持機器狗的站立蹲下以及行走這些簡單的動作。但是,要做需要爬坡越障等有難度的動作時,舵機動力稍顯不足,甚至會出現向后傾倒的現象。由于尺寸限制以及模塊改動的難度太大且耗時,我們用DG995舵機取代了MG996R舵機。DG995舵機提供扭力25kg/cm,工作電壓4.8~7.4v,旋轉角度300°。大扭力舵機使得機器狗的穩定性提高,也可以適當的提高重心位置的高度,方便機器狗可以越過更多的障礙物,而不是用耗時耗力的避障繞行。
由于供電電池組工作電壓是7.4v,而舵機控制板工作電壓是在5v,中間采用lm2596DC-DC舵機控制板,LM2596屬于DC-DC開關電源的BUCK類電壓反饋式的降壓型電源管理集成電路,能夠輸出5V/3A的驅動電流,開關頻率150KHz。如圖4所示,本電路中應用了其固定的工作模式,輸入電壓Vin=7.4V,輸出電壓Vout=5V。

圖4 機器狗部分電路
如圖5所示,再用舵機控制板控制舵機,進一步帶動腿部和整體的運動。

圖5 機器狗主要控制系統框圖
用Arduino開發板進行程序的編寫與對舵機的控制。利用Arduino可以更方便加裝其他功能模塊,如超聲波模塊、聲音識別控制模塊、無線接收模塊、液晶顯示等。
Arduino編程:Arduino使用C/C++編寫程序,C語言是一種面向過程的編程語言,C++是一種面向對象的編程語言。早期的Arduino核心庫使用C語言編寫,后來引進了面向對象的思想,目前最新的Arduino核心庫采用C與C++混合編寫而成。我們使用的Arduino語言,是Arduino核心庫文件提供的各種應用程序編程接口(Application Programming Interface,簡稱API)的集合。這些API是對更底層的單片機支持庫進行二次封裝所形成的。這些封裝好的API,使得程序中的語句更容易被理解,我們不用理會單片機中繁雜的寄存器配置,就能直觀地控制Arduino,增強程序的可讀性的同時,也提高了開發效率,這也是Arduino與單片機的最大區別,使用更簡單,效率更高。
超聲波傳感器的發射器向某一方向發射超聲波,在發射的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。根據計時器記錄的時間t,聲波在空氣中的傳播速度為340m/s,就可以計算出發射點距障礙物的距離s,即s=340m/s×t/2。
超聲波傳感器是將超聲波信號轉換成其他能量信號(通常是電信號)的傳感器。HC-SR04是比較常用的超聲波傳感器模塊,廣泛應用于機器人測距、小車避障等場合,見圖6。

圖6 超聲波模塊
超聲波傳感器模塊的VCC、GND分別連接到開發板的5V、GND。傳感器的Trig引腳、Echo引腳分別連接到開發板的數字引腳6、7,見圖7。

圖7 電路連接圖
編程方面,我們將超聲波測距功能定義在一個函數中,以便在需要的時候調用,見圖8。

圖8 測距函數源代碼
根據圖9、圖10以及表1可見,LD3320語音識別模塊是emakefun基于非特定人語音識別LD3320SI-ASR芯片開發的一款語音識別模塊。LD3320芯片上集成了高精度的 A/D和 D/A 接口,不再需要外接輔助的 Flash 和RAM,即可以實現語音識別、聲控、人機對話功能。此外,還提供了真正的單芯片語音識別解決方案。該模塊有如下特點:

圖9 語音控制模塊

圖10 語音模塊初始化源代碼

表1 語音模塊電路連接對照表
第一,非特定人語音識別技術。用戶不需要進行錄音訓練即可動態編輯的識別關鍵詞語列表,只需要把識別的關鍵詞語以字符串的形式傳送進芯片,即可以在下次識別中立即生效。
第二,支持用戶自由編輯50條關鍵詞語條。在同一時刻,最多在50條關鍵詞語中進行識別,終端用戶可以根據場景需要,隨時編輯和更新關鍵詞語的內容,每條詞條字數不超過79個。
第三,采用MCU+LD3320設計。大大簡化了用戶接線和編程難度。
LD3320語音模塊初始化源代碼如下:
關于舵機,舵機是一種位置(角度)伺服的驅動器,適用于那些需要角度不斷變化并可以保持的控制系統。舵機實際上是一種位置伺服的驅動器,主要是由外殼、電路板、無核心馬達、齒輪與位置檢測器所構成。
舵機內部有一個基準電路,產生周期為20ms、寬度為1.5ms的基準信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。經過電路板IC方向判斷,再驅動無核心馬達開始轉動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經到位。舵機轉動的角度是通過調節PWM(脈沖寬度調制)信號的占空比來實現的。標準的PWM信號的周期固定為20ms,理論上脈寬分布應該在1ms到2ms之間,實際上可由0.5ms到2.5ms之間,脈寬與轉角0~180°相對應。
脈寬調制(PWM,Pulse Width Modulation)技術是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術,廣泛應用在從測量、通信到功率控制與變換的許多領域中 。
由于Arduino的驅動能力有限,當需要控制多個舵機時,需要外接電源以及使用專用的舵機驅動板。
舵機驅動板:PCA9685模塊是16路12位PWM信號發生器,可用于控制舵機、LED、電機等設備,采用I2C通信協議。主機只需要使用I2C接口即可實現16路舵機控制。I2C總線一般由兩根數據傳輸線構成:一根時鐘線(SCL)、一根數據線(SDA),見圖11~圖13。

圖11 PCA9685實物圖

圖12 Arduino與PCA9685連線圖

圖13 代碼控制數據示例
PCA9685的代碼控制:首先安裝Adafruit PWM Servo Driver Library庫。
初始化完成后,調用“pwm.setPWM(servonum, 0,pulselen)”即可控制對應舵機轉動角度。我們將機器狗的不同動作封裝在不同的函數中,發送對應語音指令調用函數執行,見圖14。

圖14 部分源代碼示例
站立和蹲下是最簡單的控制。先將舵機全部調至同一角度,設置在中值位,對應各個位置在同一高度,此時就是對應站立姿態。將中值位的角度看作坐標軸的O點,再將除肩部以外的4個舵機的角度同時向坐標軸左端移動或者說減小舵機的角度,達到同時減低各個部件的高度,即實現蹲下姿態。
將左前腿設為1,左后腿設為2,右前腿設為3,右后腿設為4,大腿關節設為A,小腿關節設為B,行走步態暫時不動肩部關節,見圖15、圖16。

圖15 機器狗設置值

圖16 設置示意圖
對1、4,應做到:①先將小腿關節B減小角度(即轉動舵機讓小腿靠近大腿),同時將大腿關節A增大角度(即轉動舵機遠離水平線);②B增大角度使小腿的腳部達到地面;③A減小角度,同時另一組2、3做第①步,從而帶動機器狗向前走。三步驟經歷的時間一定很短,要不然狗身容易倒,并且動作一定要連續,不然會延長腿部滯空時間,進而會增加機器狗倒下的幾率,見圖17。

圖17 機器狗內部設計
上文提到狗的頭部是用來發射和接收信息的。在機器狗的頭部裝備兩個超聲波探測器,兩個探測器與豎直平面都有一個角度,這樣它發射的超聲波是向斜前方的,這樣不僅可以探測前方是否有障礙物從而進行避障,而且可以測量是否可以通過狹窄通道,見圖18。

圖18 超聲波探測器
此款機器狗根據生物狗的身體結構和運動步態進行了制作,肩關節和大腿關節連在一起,更容易進行仿生研究和對機器狗的控制。機器狗總體具有對稱結構,結構簡單方便設計與制造。對步態的設計參照了生物狗簡單的小跑步態,適合初次接觸者。小尺寸大扭力電機保證了完成各種動作的基本需求。此機器狗的設計了也是參考了很多前人的經驗,由于自身經驗,時間等原因沒能制作的足夠好。當然,此狗還可以進行更多的改造:增加定位系統,可以通過衛星進行鏈接;換尺寸進一步更換更大扭力的電機,能提高對復雜地形的適應能力;增加攝像頭,機械臂,對探測地形和取回樣本有很大作用;增加人狗交互系統,使與狗的交流和控制更加方便。