(湖北大學 物理與電子科學學院,武漢 430062)
近年來,用機器人替代人類進入條件惡劣或者高度危險的區域工作已經成為一種趨勢。例如機器人進行水下作業、無人機進行偵查勘測、機器人在廢墟中探測生命跡象等。然而許多在路面作業的輪式或履帶式機器人在遇到復雜地形時,因地形原因將無法正常工作。其次大多數的機械臂無法像人手一般靈活,在特殊環境下增加了控制者的操作難度為解決以上問題,本項目基于SOC-FPGA平臺設計實現了一種可在復雜地形行動,機械臂可跟隨人手實時作業,可運用VR眼鏡實時觀察行徑中的全景圖像的六足仿生機器人。
系統框圖如圖1所示,主要由視頻成像設備、仿生機器人主體、遠程控制設備三部分構成。其中視頻成像設備是戴在操作者頭部的VR眼鏡,遠程控制設備是穿戴在操作者手上的數據采集手套。

圖1 系統整體框架
1.1.1 外部結構設計
機器人主體實物如圖2所示,由六足底座、DE1-SOC開發板、仿生手臂、USB攝像頭、無線路由器及兩個藍牙模塊組成。DE1-SoC開發平臺作為機器人的信息處理中心,是基于臺灣友晶公司設計生產的Intel SoC FPGA硬件設計平臺,具備強大的雙核Cortex-A9處理器和行業領先的可編程邏輯器件[1]。高清USB攝像頭作為機器人的視頻輸入設備,同時配備兩個舵機控制其拍攝角度。無線路由器用于構建局域網,實現機器人到視頻成像設備的視頻實時傳輸。藍牙A、藍牙B兩個藍牙傳輸模塊,分別用于操作者頭部運動信息和遠程控制設備信息的接收。
如圖3所示,機器人的運動部件為對稱的六腳蜘蛛結構的底座,六足支撐狀態站立時,底座尺寸為長:48 cm;寬:43.5 cm;凈高:9 cm;包含開發平臺及攝像頭主體高度:48.7 cm。

圖2 機器人主體實物圖 圖3 六足底座模型
機器人單足尺寸為:寬5.5 cm;伸直狀態下,足長:23 cm。且第一關節長:14 cm;第二關節長:9 cm;第三關節長:5 cm。每只腳均裝配有三個舵機,如圖4所示,實現了三個自由度運動的控制。1號舵機控制“足”在XY平面的旋轉;2、3號舵機控制“足”的兩個不同關節在垂直于XY平面方向的伸縮。舵機主要參數如表1所示。

圖4 足部舵機分布圖

舵機型號重量尺寸LD-201560g40?20?40.5mm速度堵轉扭矩工作電壓0.16sec/60°15-17kg/cm6-7.4V
如圖5所示,仿生手臂及手指采用3D打印制作,手臂截面直徑最大為10.5 cm,手掌張開手臂全長為42.5 cm,內部安裝有5個MG995型號舵機,具體參數如表2所示。用5條高強度編織繩將其與手指連接。通過舵機來牽扯編織繩,實現對手指彎曲程度的控制。


圖5 仿生手臂內部結構
1.1.2 控制邏輯設計
控制邏輯分為三個部分,分別是陀螺儀的數據收集與

表2 手臂內部舵機參數
處理;彎曲傳感器信號接收與處理;方向控制指令的接收與處理。
陀螺儀數據收集與處理模塊,細分為如下子模塊:藍牙連接指令存儲模塊,串口數據發送模塊,串口數據接收模塊,數據處理模塊,算法模塊,舵機控制模塊。藍牙信號傳輸工作波特率數值設置為1 200。其工作邏輯為,串口數據發送模塊發送連接指令,連接成功后串口接收模塊接收數據。數據經數據處理模塊提取出有效數據,如陀螺儀的滾轉角、俯仰角、偏航角。有效數據輸出至算法模塊,轉換為攝像頭舵機的控制信號。最后將控制信息發送至舵機控制模塊,實現對攝像頭拍攝角度的控制。
在彎曲傳感器信號接收與處理模塊中,其藍牙信號傳輸部分波特率數值設置為9 600,原理與陀螺儀信號接收相同。在數據接收后傳入數據處理模塊進行解碼操作,輸出預置的控制信號給舵機控制模塊,實現對機械臂的控制。
方向控制指令的接收與處理模塊包含指令接收,指令發送以及解碼模塊。藍牙傳輸波特率數值設置為115 200,經指令發送模塊發送握手信號,連接成功后,接收模塊接收藍牙數據。經解碼模塊將其與預置數據進行比對。得出相應的控制信號,將其發送至舵機控制模塊,從而驅動底座運動。
遠程控制設備為一個自制的數據手套,如圖6所示,由六片應變傳感器、方向控制板以及藍牙模塊組成。應變傳感器獲取操作者五個手指和手臂的彎曲程度[2],轉換成數據信號后連同控制板輸出的方向信號一起通過藍牙模塊發送至仿生機器人主體,實現對六足底座和仿生手臂的控制。

圖6 遠程控制設備實物圖
視頻成像端實物如圖7所示,主體為一個VR頭盔,內部放置一部安卓手機,陀螺儀,鋰電池以及藍牙模塊。陀螺儀采集操作者頭部運動信息,通過藍牙模塊發送至仿生機器人主體,信號經處理后用于控制機器人攝像頭的拍攝角度,將眼鏡盒中的智能手機連入由路由器所構建的局域網中。打開我們自行編寫的APP,即可將機器人傳輸過來的圖像實時顯示在屏幕上,調焦旋鈕用于調整手機到VR目鏡的距離。

圖7 遠程控制端實物圖
機器人六足步態設計分為前進后退步態設計與旋轉步態設計。其中步態設計分為六足整體行進步態和單足擺動步態設計。并在仿生機器人行進過程中采用PID控制器以調整行走幅度[3]。
2.1.1 前后行走步態設計
六足的編號以及分布位置如圖8所示,為使機器人可以克服復雜地形并平穩行走,參考蜘蛛的行走方式,規劃出仿生機器人行走的步態。根據步態規劃得出一個機器人前進過程中六足分時擺動的動作順序圖,如圖9所示。為保證仿生機器人在運動過程中重心不會出現大幅度晃動,在機器人的行進步態中加入兩個六足支撐階段以穩定重心。從圖中可以看出運動的一個周期中含有足擺動階段和六足支撐階段。第一階段與第五階段六足均不運動,六足全部觸地調整重心。在其他階段中足的運動順序為:6號足、4號足、2號足、5號足、3號足、1號足。此動作順序可有效避免機器人在前進的過程中重心后搖或者主體大幅度擺動[4]。該過程稱為一個運動周期,如此反復以實現仿生機器人的前進行駛。

圖8 六足編號與分布
控制單個足擺動的步驟分為垂直上升階段、向前擺動階段、垂直下降階段[5]。設置垂直上升階段和垂直下降階段的目的是為了避免足在運動的多個階段中多次碰到障礙物而影響步態節奏以及減小足在運動過程中的行進阻力,加快行進速度。設定上升階段與下降階段的高度均為25 cm,以克服常見的不平整路面。在水平擺動階段中,主要工作的設備是每只足的一號舵機,假設在一次水平擺動的過程中,足沒有觸碰任何障礙物,則足在XY平面水平轉動15°。如果有障礙物阻擋足的水平擺動,且此時舵機旋轉角度為θ1。足會順勢下落重新執行垂直上升階段,二次水平旋轉的角度由第一次旋轉角度的大小決定。二次水平旋轉的角度θ2=15°-θ1,以彌補一次旋轉過程中所缺省的行進路程。

圖9 前進步態
對六足輸入PWM控制方波的過程中,如圖10所示采用PID控制器來對關節角度進行調整。以現態的關節輸出量作為系統反饋信號與期望的關節角度進行積分運算,輸入PID控制單元,將調整后的控制量再次輸入關節,形成一個閉環控制系統。一旦控制量進入飽和區,將削弱積分項的運算,從而減小次態中對關節的輸入量,起到飽和抑制的作用。

圖10 關節角度控制原理
機器人的后退過程與前進過程原理相同,后退步態順序變化為:2號足、4號足、6號足、1號足、3號足、5號足。單足擺動時,在XY平面的旋轉方向與前進過程相反,其余步驟無需修正。
2.1.2 旋轉步態設計
本設計中將旋轉步態設定為原地旋轉,即不改變仿生機器人的空間位置,其目的是改變仿生手臂的方向以及機器人前進方向。如圖11所示,旋轉過程中仿生機器人的步態設計中同樣分為六足支撐階段和單足擺動階段。其中第一階段與第五階段為六足支撐階段,用于平衡仿生機器人重心。單足擺動階段,采用相鄰足連續工作的方式,即1、2足協調運動,3、4足協調運動,5、6足協調運動。運動順序依次為:1號足、2號足、3號足、4號足、5號足、6號足。在單足擺動過程中,運動分為垂直上升階段、水平擺動階段、垂直下降階段。設置每足單次抬起高度為15 cm,單次旋轉角度為15°,1號足至6號足依次執行步態完畢一個旋轉周期結束。

圖11 旋轉步態
如圖12所示,遠程控制設備系統包括控制仿生手臂運動的數據采集手套、捆綁于操作者手臂上的單片機、藍牙模塊以及方向控制板面。單片機對來自數據采集手套和來自控制面板的這兩類信號進行采集、編碼等操作,并通過藍牙模塊將處理結果發送至仿生機器人主體,以實現遠程遙控。

圖12 遠程控制設備系統框圖
手部動作采集手套上對應手指的部分有五條應變式彎曲傳感器,手肘位置也貼有一條彎曲傳感器。由公式R=ρL/S可知金屬阻值與材料、長度以及橫截面積有關,取其微分形式可得dR=ρ/SdL+L/Sdρ-ρL/S^2dS。故彎曲傳感器在手指運動作用下產生的機械形變會導致其電阻阻值的變化,從而間接地影響流過金屬的電流大小。應變式彎曲傳感器實物如圖13所示。

圖13 應變傳感器實物圖
當測得彎曲傳感器電阻值變化量為ΔR時,經過測量電路獲取電壓變化值ΔV,將ΔV的值與預先設置的參考值進行比對,來判斷手指的彎曲程度。ΔV經AD轉換后傳入單片機進行編碼,最后通過藍牙模塊將編碼信息發送至DE1-SoC部分的藍牙接收端。
系統實時VR成像的實現框圖如圖14所示[6],USB攝像頭獲取圖像信息傳輸至DE1-SOC開發平臺的HPS部分,存入DDR內存。FPGA部分通過AXI bridge訪問DDR內存,調用圖像數據進行VR成像處理,并將處理結果寫回DDR內存,ARM再從內存中讀取處理完后得數據,發送到同一局域網內的安卓手機。為加快圖像處理的速度,編寫OpenCL加速邏輯進行圖像處理操作。VR頭套內部安裝有陀螺儀用于探測操作者頭部的動作變化,頭部的當前狀態信息通過藍牙模塊傳輸至DE1-SoC開發平臺,用于控制攝像頭的轉動。

圖14 實時VR成像系統圖
2.3.1 視頻數據采集及處理
加速系統的軟件設計主要是為加速內核填充圖像數據,并進行雙目化處理。通過對ARM的Linux系統內核重新編譯,加入USB攝像頭的驅動,然后編寫應用程序,調用USB攝像頭,獲取實時圖像,每幀圖像的分辨率為640*480,將此圖像通過AXI bridge傳輸給FPGA,在FPGA中運行OpenCL加速子系統,對圖像進行處理。
在OpenCL加速子系統中,OpenCL編譯器將圖像雙目化處理內核算法編譯為OpenCL加速邏輯連接到OpenCL接口上,并記錄在二進制OpenCL內核文件中[7-8]。在加速處理圖像數據時,調用OpenCL二進制文件更新FPGA邏輯。處理之后的圖像通過AXI bridge存入ARM端的DDR內存指定區間。ARM處理器再從此內存區間內讀取出圖像數據,圖像處理結果如圖15所示。

圖15 原圖與處理后圖像對比
2.3.2 VR頭套設計
本設計利用I2C總線協議驅動的MPU-6050陀螺儀可以通過測量加速度或者角速度來測量x、y、z軸三個方向的旋轉角度。如圖16所示,以x軸正方向作為人眼的觀察方向,三個旋轉角度分別為繞x軸旋轉的滾轉角Roll、繞y軸旋轉的俯仰角Pitch以及繞z軸旋轉的偏航角Yaw[9]。
測量Roll角、Pitch角、Yaw角時,首先從相應寄存器地址讀取出繞三個方向旋轉角速度GYT_X 、GYT_Y、GYR_Z,均以“度/秒”作為單位。以初始位置作為基準,分別對時間進行積分,從而求出在三個方向上與前一位置的相對旋轉角度。陀螺儀滾轉角、俯仰角、偏航角計算方法如下:
Roll=((RollH<<8)|RollL)/32768*180°
(1)
Pitch=((PitchH<<8)|PitchL)/32768*180°
(2)
Yaw=((YawH<<8)|YawL)/32768*180°(3)
式中,RollH,RollL,PitchH,PitchL,YawH,YawL均可從相應寄存器讀取。



圖16 俯仰角、滾轉角、偏航角分布圖
DE1-SoC的ARM部分通過有線網口連接到路由器,安卓手機則通過無線熱點連接路由器,使兩者同處一個局域網。ARM端獲取到安卓手機的IP后,將實時獲取到的經OpenCL加速系統處理之后的攝像頭數據發送至此IP。同時安卓手機端需安裝自行開發用于接收DE1-SoC數據的APP,此APP的功能即是將通過局域獲取的圖像信號通過安卓手機對其進行數字圖像處理,生成兩幅相同的圖像,并呈現在同一副畫面中。當人眼通過目鏡同時對兩幅圖片進行觀察時,會產生立體視差角,從而使人眼感受到立體的效果,實現VR圖像的成像。
機器人步態的穩定性測試內容分為前進步態測試和旋轉步態測試,在機器人六足底座表面固定一個玻璃燒杯,在其中加入250 mL自來水,前進步態測試中控制機器人在平地上行走10米距離,旋轉步態測試中控制機器人原地旋轉10圈。完成規定操作,記錄燒杯中液體的剩余量。液體剩余量越多,表征該步態穩定性越高。如表3、4所示,一共有六種前進步態,六種旋轉步態,每種步態進行10次測試取平均值,記錄測試結果如表5所示。

表3 前進步態方案

表5 機器人步態測試結果
測試結果可得出,前進步態的方案一與旋轉步態的方案一穩定性均相對其他步態穩定性有所提高。故在實際設計中前進與旋轉的步態均采用方案一,來對步態進行規劃。
為測試機械手臂的控制功能,操作者穿戴遠程控制手套,在10秒鐘內連續做出10個不同的表示數字的手勢。觀察機械手臂是否可以同步跟隨操作者的手勢。進行的10次測試結果如表6所示。

表6 機械臂控制測試結果
由測試數據可以得出,機械手臂跟隨操作者的成功比例高達95%,實現了對機械臂的基本控制與操作。
機器人視頻傳輸測試方案為,在測試房間的地板以及墻面上粘貼10個醒目的數字標識。操作者佩戴視頻數據采集頭套,站立于房間中心位置。操作者需從數字1開始依次尋找目標,當操作者通過視頻采集頭套觀察到標記時,取下頭套觀察實際情景是否與VR成像相同。若基本一致記錄成功,若兩者差距較大則視為失敗。記錄觀察結果后,開始尋找下一個數字標記。每10個數字標記為一輪測試,共進行10輪測試,測試結果如表7所示。
由測試結果可知,在視頻傳輸測試中VR成像的平均正確率高達96%,基本實現機器人的視頻傳輸功能。
為判定機器人在復雜地形中是否可以穩定行走并準確抓取物品,選取室內樓梯作為測試場地。樓梯標準為,踏步高度:150 mm,每級臺階寬度:250 mm,級數:10級。

表7 視頻傳輸測試結果
測試內容設置為,操作者佩戴VR頭套與遠程控制設備,從開始操縱六足仿生機器人開始計時。機器人從樓梯底部出發,攀爬過程中,需準確抓取置于樓梯中部的水瓶,并將其運送至樓梯頂部平穩放置,期間若水瓶滑落則視為測試失敗。進行50次重復試驗,并記錄完成時間。測試結果如圖17所示。

圖17 樓梯任務完成時間分布圖
從測試結果可得出,機器人50次完成任務的用時絕大多數分布在45~60 s區間,從45 s開始,時間越長所分布的次數越少。在第26次試驗過程中,因機器人重心不穩,導致主體大幅度晃動,致使水瓶摔落。故仍需優化機器人在攀爬高傾斜度地形時的步態設計。綜上所述,測試結果已滿足項目所設計的測試指標。機器人具備了在復雜地形中作業的能力與較高的操作穩定性。
本文充分利用FPGA與ARM各自的優勢,基于SoC FPGA平臺實現了一套集實時圖像傳輸、行進路線遙控、仿生手臂跟隨人手實時運動等多功能于一體的機器人。參考蜘蛛模型構造六足底座,并對其行駛過程中的步態進行仿生設計,能夠在大多數復雜地形中暢通行駛。同時,參照人類手臂與手掌構造機械手模型,可以靈活抓取物品。將方向控制面板與應變式傳感器進行結合,制作出一個可感知手部動作和發送行進指令的操作手套,實現了對機器人行徑路線的遠程控制和機械手臂的跟隨運動。OpenCL加速子系統的運用,使得VR顯示成為可能,讓操作者可以身臨其境般地操控機器人。總的來說,綜合運用各項技術,實現了六足仿生機器人的全部設計功能,但離真正應用于實際,尚有很多方面需要努力,我們后續將不斷完善。