(西北工業大學動力與能源學院航海學院,陜西 西安 710129)
近幾年,仿生機器人的研制與發展十分迅速,在利用機器人進行災后廢墟搜救方面,由于地形不規則為這些環境共同特點,傳統輪式機器人與履帶機器人的應用受到限制,而新研制的各式仿生機器人面臨的最大問題為體積限制與制作成本,而未來搜救機的發展要求其活動自主性、運動能力,對外部的感知能力與通信能力在其體積減小、成本減少的條件下能得到提高。
蜘蛛步足3對,分基節、轉節、腿節、膝節、脛節、后跗節、跗節和跗端節(上具爪),共48個自由度。這保證了蜘蛛擁有很高的靈活度,這正是小型6足救援機器人所需要的。當然48個自由度實現自動控制幾乎是不可能完成的任務,所以簡化了一下設計,共18個自由度,同樣可以實現相對靈活的行動,適應復雜地形。關節處有舵機驅動,攝像頭位于機器人前方,機身兩層夾板之間放置電池。機身尺寸為半徑20 cm的圓弧,整體高度24 cm,整體設計圖如圖1所示。

圖1 6足救援機器人機械結構圖
基于多傳感器的6足救援機器人采用3個主要電路板,分別為舵機控制板、主控板(搭載傳感器)和樹莓派,其中樹莓派采用已有商業化產品,其他部分自行設計如下。
舵機控制板的主控芯片采用STM32F103RBT6芯片作為主控芯片,采用5個定時器產生20路PWM波對舵機進行相應的控制接口。采用7.4V電源進行給舵機進行供電,芯片的供電則通過穩壓芯片產生3.3 V和5 V的電壓進行供電。可以看出整個電路以STM32單片機作為控制核心,通過W25Q64儲存相應的數據包,通過PWM波對舵機進行相應的控制。
2.2.1 主控板基本電路設計
STM32F103C8T6作為主控芯片,STM32F103C8T6擁有128 K字節的系統內可編程Flash,高達20 K字節的內部SRAM,工作主頻最高為72 MHz。芯片具有足夠多的I/O口能夠滿足傳感器相應的需求。包括超聲波模塊,熱釋紅外傳感器模塊,以及GPS模塊。
2.2.2 熱釋紅外傳感器模塊
熱釋紅外傳感器是基于紅外線技術的能夠感應人體的自動控制模塊。本文采用HC-SR501型號的傳感器,其采用德國原裝進口LHI778探頭設計,靈敏度高、可靠性強、超低電壓工作模式。
此外,還應用了菲涅爾光學系統,它不僅要檢測空間輻射的紅外光線聚焦到傳感器上的量,還要能敏銳地體現這些紅外線能量的變化。菲涅爾光學系統通過對光滑的光學鏡面作棱狀或柱狀處理,將檢測空間割裂為一系列交替的狹小紅外“感應區”和“空白區”,人在其間移動,就會使有些“感應區”內的紅外線時有時無,傳感器接受到的是相應變化的光脈沖,從而提高接受靈敏度,使探測距離提高到10~20 m。
2.2.3 超聲波模塊
在超聲波模塊中,開始給trig一個大于10 μs的脈沖,使模塊開始工作,同時開啟定時器開始計時,將外部中斷接到echo引腳上,當模塊檢測到回波時echo被置高電平,這時外部中斷被觸發,進入中斷程序,因此我們可以在中斷程序中將時間讀出來,有了時間就可以根據distance=v×t/2,計算出距離,距離值就可以用于進一步的工作。
2.2.4 GPS模塊
GPS模塊我們采用NEO-6M UBLOX芯片模塊來實現。具有靈敏度高、低功耗、小型化的特點,其極高精度靈敏度大大擴大了其定位的覆蓋面,在普通GPS接受模塊不能定位的地方,都能夠進行高精度定位。模塊的靈敏度高、小靜態飄逸、低功耗以及輕巧的體積,非常適用于機器人使用。
使用:NEO-6M UBLOX模塊使用串口協議進行通信。可向用戶傳回GSV、RMC、GSA、GGA、GLL、VTG等數據,但不會用到所有的數據,因為接受所有的數據可能對其造成麻煩。我們只需要使用串口協議,通過16字節的指令包以特定的波特率進行訪問,就可以得到相應的數據,然后得出機器人位置。
在通信息量方面我們使用自己設計的通信協議,主要分為以下2個部分。
在舵機控制板通信協議部分,我們通過將機器人的每一個動作都進行相應的打包,以及相應的儲存。通過其主控板的串口通信來得到相應的控制。舵機控制板的基本協議格式為:0×55 0×55 0×06 0×aa 0×bb 0×00。其中0×aa為相應的動作組,我們將機器人的每一個動作封裝成一個相應的動作組數據,數據中包括機器人動作的速度,角度以及相應的時間。0×bb為動作執行次數。每一個動作組文件中的基本數據為0×FF 0×FF 0×01 0×aa 0×bb 0×cc 0×02 0×aa 0×bb 0×cc 0×03 0×aa 0×bb 0×cc…其中0×aa 0×bb為角度數據,分別為高位和低位,將舵機角度分為1 500分。0×cc為舵機運動速度,即舵機運行到該位置的時間。如此,我們能夠將機器人的動作一個個封裝起來。
當主控板發送動作控制包,舵機控制板即可以識別相應的數據包來識別。在數據包中,難免有壞包。我們通過每一位進行相應的flag位定位來進行對于動作包的識別。
對于樹莓派和主控板的協議主要是GPS數據和樹莓派發送停止指令包。其中GPS數據主要為經緯度,其包頭為0×ff 0×ff,后面通過2個16進制表示經度,而后面的2個16進制表示維度,最后的為校驗和。校驗和的計算公式為CheckSum=~(0×aa 0×bb 0×cc 0×dd)即為四位數據和取反。
而停止指令包,即為舵機控制板的數據停止包。為0×55 0×55 0×07 0×00來進行相應的控制,主控板指令包識別方法同舵機控制板一樣,判斷完成后,即進行相應停止包的發送。使機器人停止運動,并且返回GPS數據包。
本基于多傳感器的6足救援機器人軟件設計主要分為動作庫搭建和受害者識別兩部分。
動作庫搭建是運用一系列的運動公式(機器人運動方程),寫出用PWM波控制舵機的底層代碼,然后將這些代碼以函數的形式封裝起來,在控制機器人運動的時候只需要給函數相應的參數就可以控制其運動。利用C#編寫動作調試上位機,通過不斷的實際測試,得出相應的動作參數,將這些參數儲存,封裝起來。程序中只留出動作控制接口,主控板只需要發送相應的指令,調用對應的函數即可。
本項目在樹莓派下進行圖像處理,在對于樹莓派的圖像識別中,我們給樹莓派配置相應的python庫以及OpenCV安裝包,在vim下,我們使用python交互式編程。更改樹莓派的config.int文件來使用我們的串口,設置其波特率為115 200來配合主控板進行相應的通信功能和識別功能。
圖像識別部分,我們用樹莓派做上位機進行相應的數據識別,在視覺編程中,首先,我們調用事先訓練好的識別模型,然后進行相應的人臉識別。人臉識別通過直方圖均衡化也就是調整圖像的灰階分布,使得其在0~255灰階上的分布更加均衡,提高了圖像的對比度,達到改善圖像主觀視覺效果的目的,對于對比度較低的圖像更適合用其來增強圖像細節。