廖海龍,馬 濤,馮淑湘,楊茜媛
(北京信息科技大學 信息與通信工程學院,北京 100101)
地質災害或不可預知的人為災害時有發生,往往因為地形復雜無法將被困人員及時救出,而救援人員在搜救過程中也會因為不能準確了解災害狀況而發生危險,進而導致大量的人員傷亡。因此需要一款小型救援設備率先勘測災害現場,救援人員通過實時觀測了解現場狀況來降低行動風險,為實現在最短時間內安全救出傷員提供必要的技術手段。
另外,有很多危險場景是救援人員無法進入的,譬如礦山、燃氣、電力、化工等領域的搶險過程中,就需要一種救援設備代替救援人員進入現場實施救援,救援機器人正是一種能夠在很大程度上保證人員安全的重要救援形式。
本項目主要針對野外惡劣環境下的搜救及勘探作業而設計。無人勘探救援車在不同環境中可做出不同的反應,除利用履帶行走外,還兼具超聲波、攝像頭等傳感器環境檢測和機械臂清障的功能。多樣的功能增加了其對環境的適應能力,為科學研究提供穩定可靠性。
本系統主要由三部分組成,分別為硬件設備端、物聯網平臺和客戶端。系統結構如圖1所示。

圖1 無人勘探救援車系統結構
本系統的硬件端由樹莓派3B+和Arduino MEGA2560作為核心處理器,通過LTE Dongle接入因特網,同時安裝機械臂、超聲波傳感器、電機、水彈波箱、麥克風、攝像頭、GPS等設備,實時獲取附近環境信息;通過MQTT協議將信息上報云端,同時接收并執行物聯網平臺下發的命令。
物聯網(The Internet of Things, 簡稱IoT)可實現用戶、物理對象之間不受時空限制地互聯互通。通過互聯網進行信息交換和通信,可以實現物與物、物與人的泛在連接,從而能夠智能化感知、識別和管理物體和連接過程。目前,IoT在智能家居、智能交通、公共安全、智能停車場等領域得到廣泛應用。
阿里云物聯網平臺為設備提供安全可靠的連接通信能力,向下連接海量設備,支撐設備數據采集上云;向上提供云端API,服務端通過調用云端API將指令下發至硬件設備端,實現遠程控制。同時提供MQTT、CoAP、HTTP/S等多種協議的設備端SDK,既滿足長連接的實時性需求,也滿足短連接的低功耗需求。物聯網平臺也提供了功能豐富的設備管理服務,包括生命周期、設備分組、設備影子、物模型、數據解析、數據存儲、在線調試、OTA升級、遠程配置、實時監控等。
本系統采用PC作為客戶端,通過MQTT協議的發布/訂閱(publish/subscribe)為連接遠程設備提供實時可靠的消息服務。利用阿里云IoT Studio的前端界面,可將傳感器采集到的數據統一由設備端經過物聯網平臺的規則引擎發送到PC端,實現數據實時可視化顯示。通過IoT Studio實現實時指令發送,從而控制機械臂、可控射擊等設備功能。通過瀏覽器輸出插件結合視覺識別算法,在PC端還可實現遠程視頻通信、目標檢測、障礙物識別的圖像觀測。
為實現更穩定、更精確的遠程動作控制,采用飛行器模型的無線電遙控裝置,其主要利用了2.4 GHz短距離無線傳輸技術。2.4 GHz ISM(Industry Science Medicine)是全世界公開通用的無線頻段,在該頻段下工作具有較強的抗干擾能力以及較遠的控制距離,一般可達1 km,實現了在家用和商用領域的廣泛運用。
整個控制系統由Arduino核心控制板、發射機、接收機、電機驅動板、電源等部分構成。控制過程由發射機發送動作指令,接收機將接收到的指令傳給Arduino核心控制板,核心控制器由內部程序觸發電機驅動板,從而控制電機執行相關動作,通過不斷調試占空比實現電機的靈敏控制。
發射機選用的四通道比例遙控裝置如圖2所示。發射機控制面板上包括兩根分別控制一、二通道和三、四通道動作指令的粗調操縱桿以及四個通道的微調裝置,用于控制探測車的行進方向。在發射機底部,設置有4個舵機換向開關,分別用于變換舵機搖臂的偏轉方向。

圖2 四通道比例遙控設備發射機
接收機用來接收從發射機傳來的指令信號;經處理后,控制電機驅動板做出與發射機指令相對應的動作。電池組為接收機和電機驅動板提供工作電源。
為了更好地匹配接收機信號接收,有效精準地帶動大功率的強磁電機,選取雙通道直流有刷電機驅動器實現。雙通道直流有刷電機驅動器專為驅動低壓直流電機設計,每通道具有持續輸出12 A電流的能力,可驅動最高290 W電功率的直流電機。驅動器內器件時序高度優化,允許PWM輸入最小脈寬低至2 μs,充分保證PWM的動態調節范圍,提高對電機的控制品質。板載保護電路,降低驅動器在異常工作條件下受損的可能,保護狀態由指示燈實時輸出。全電氣隔離輸入增強了主控MCU電路的安全性,更可顯著提高系統電磁兼容性能。
物聯網平臺具有安全可靠的設備連接通信能力,支持設備數據采集上云、規則引擎流轉數據、云端數據下發設備端等功能,設備管理方便快捷,支持物模型定義、數據結構化存儲以及遠程實現調試、監控、運維等工作。圖3為物聯網平臺設備運維大盤。

圖3 物聯網平臺設備運維大盤
本項目基于樹莓派Linux平臺,采用阿里云Python SDK進行開發。通過在云端創建產品與設備,獲取ProductKey、DeviceName和DeviceSecret等設備證書信息。在設備端SDK中導入設備信息,為傳感器定義“物模型”,使設備端可以連接物聯網平臺。PC客戶端選擇訂閱消息類型,接收設備上下線狀態、過程數據等設備相關消息;通過調用物聯網平臺云端API,向設備下發指令,利用物聯網平臺的數據流轉功能實現各個設備的數據消息轉發,便于在其他阿里云產品中的存儲或處理。
阿里云平臺的IoT Studio提供了移動可視化開發、Web可視化開發、服務開發和設備開發等一系列便捷的物聯網開發工具。通過可視化拖拽的方式,將測距、定位等信息以折線圖的方式展示,折線圖如圖4所示。當折線上升時,代表車輛在逐漸遠離障礙物,反之則代表車輛在逐漸靠近障礙物;當折線變化密集時,代表車輛所處環境障礙物數目多,反之則代表車輛所處環境障礙物數目少,較為平坦寬廣。

圖4 超聲波測距折線圖
本項目的遠程視頻設計采用的是Linux系統下基于IP地址的視頻流服務器mjpeg-streame,對MJPEG(Motion Joint Photographic Experts Group)類視頻編碼格式的處理。通過Linux端攝像頭采集圖片,攝像頭驅動將數據流存儲到JPEG圖庫,最終通過瀏覽器輸出插件實現以HTTP視頻數據服務流顯示輸出,從而做到遠程視頻傳輸的效果。
在測試階段,當傳輸距離過小時,采用ngrok反向代理的解決方法。通過在公共的端點和本地運行的 Web 服務器之間建立一個安全通道,ngrok 可捕獲和分析所有通道上的流量,便于后期分析和重放。當終端運行mjpeg-streamer后,通過ngrok提供的授權碼運行命令獲取隨機分配的本地Web網站域名,即可實現本地Web端的遠程視頻通信。
測試后期,在室內、操場、公園等場景下,傳輸距離不受限制,可以正常地實現遠程視頻通信,效果如圖5所示。

圖5 遠程視頻效果
隨著人工智能技術的發展,語音識別已經成為了熱門應用之一。語音識別在一些特定的領域和特定的情景下,有著不可替代的作用。人們生產、生活的需要,特別是物聯網的發展,推動了嵌入式和語音識別的結合。
語音傳輸有以下兩種形式:
(1)設備端到客戶端的語音傳輸
在設備端由于樹莓派本身沒有聲卡無法實現錄音功能,因此增加免驅動的USB聲卡,使樹莓派通過PyAudio實現錄音及聲音保存功能。通過調用百度AI平臺提供的語音識別API接口將語音轉化為文字,物聯網平臺將信息發送至客戶端,從而實現設備端到客戶端的語音傳輸。
(2)客戶端到設備端的語音傳輸
客戶端通過麥克風錄音,調用API接口將語音轉化為文字,通過物聯網平臺將信息發送給設備端。設備端調用API接口將文字轉為語音并播放聲音,達到雙向對話的效果。
超聲波測試安全距離是一種常用的避障方式,其基本傳輸原理如下:

其中:表示傳輸速度;Δ表示超聲波回饋結束所用時間的差值;表示車輛與周圍物體之間的距離。在獲得這類數值之后,就能夠通過公式計算出安全距離。
本項目選用HC-SR04超聲波傳感器進行周圍障礙物檢測。將超聲波傳感器安裝在可旋轉云臺上,實現180°范圍檢測。當與障礙物距離低于安全距離時蜂鳴器就會報警。為了更直觀地觀察數據,使用Processing軟件搭建的界面作為上位機,Processing是Java語言的延伸,并支持許多現有的Java語言架構,使用戶直接專注于圖形和交互的程序。比如建立類的路徑和編譯參數,或者建立串口這樣輔助性的圖形環境,非常適合無太多編程經驗的設計師和藝術家使用。將檢測距離及傳感器旋轉角度通過物聯網平臺發送到客戶端,客戶端再通過Socket將參數信息發送到Processing上,實現距離和角度的實時動態顯示。當檢測到障礙物時掃描圖會變紅,反之則為綠色,形成如圖6所示的動態掃描圖。

圖6 動態掃描圖
可控射擊:考慮到特殊環境下搶險作業可能面臨的小空間動作局限,設計了水彈槍可控射擊(模擬射擊)功能。通過Arduino及電機驅動板控制置于可旋轉云臺上的水彈槍,樹莓派與Arduino通過串口通信實現設備端聯網入云,客戶端通過IoT Studio進行射擊控制,從而達到遠程控制水彈槍射擊的效果。
GPS:設備端利用樹莓派開啟LTE Dongle自帶的GPS,當啟動定位時,GPS模塊開始接收信號。首先打開串口讀取GPS數據并判斷是否收到$GPGGA(GPS數據輸出格式語句),如果未收到,則繼續讀取GPS數據;如果收到,則讀取GGA字符串并截取位置信息。在串口中獲取到經緯度信息,并傳送至物聯網平臺,客戶端借助Google地圖中定位經緯度確認車輛位置。
目標檢測是深度學習的一個重要研究方向,可在一張圖像中檢測出某個既定目標,例如行人、車輛等。現階段的目標檢測方法大體分為兩個系列:two-stage和one-stage。其中two-stage系列的代表方法有R-CNN、Fast R-CNN、Faster R-CNN;one-stage系列的代表方法有YOLO、YOLOv2、YOLOv3。
本項目采用百度Easy DL平臺的目標檢測模型v1版本,該模型基于YOLOv3算法。YOLO系列的主要思路是將圖片劃分為×的網絡(一般為7×7),根據分類方法將圖片輸入CNN得到一個×分類數量的張量,對這個張量進行非極大值抑制。YOLOv3算法是目前速度和精度最均衡的目標檢測網絡,其是在YOLO和YOLOv2的基礎上通過吸收Faster R-CNN和RetinaNet的先進之處,引入了FPN架構(Feature Pyramid Networks)來實現多尺度的檢測。對比YOLOv2 Darknet-19分類網絡的30層基礎網絡模型,YOLOv3的 Darknet-53分類網絡已提升至106層基礎網絡,從而加強了YOLO算法對小目標檢測的精確度。圖7為在EasyDL平臺使用YOLOv3算法訓練模型后,上傳人物圖片得到的在線標注訓練結果,其中多個人臉被方框圈出,顯示“person”的結論。

圖7 訓練測試結果
隨著現代科技的發展,機械臂在現實生活中充當著重要角色,它主要應用在工業制造、航天制造、醫療器械等多個領域,為生產提供了不可忽略的動力。
機械臂作為工業領域最常用的機器之一,其工作狀態分為點到點和沿特定軌跡兩種工作方式,這兩種工作模式都要求關節及連桿的過渡要平滑,從而保證機械臂的平穩性。
本項目中使用的是四自由度機械臂(如圖8所示)。基于經典的D-H參數法建立了正向及逆向運動學模型,將旋轉和平移表示成增廣矩陣的形式,利用Python建立虛擬機械臂模型,調用math、numpy等庫實現機械臂參數計算仿真。

圖8 四自由度機械臂
實現關節位姿變換的增廣矩陣如式(2)所示,其中c代表 cos(++),s代表 sin(++),l代表對應的連桿長度,θ代表對應關節的旋轉角度。

將機械臂連接至樹莓派,基于Python語言設計機械臂移動、抓取動作程序,通過物聯網平臺實現遠程控制機械臂移動的效果。
本文所設計的無人勘探救援車成果如圖9所示,其除利用履帶行走外,還兼具超聲波、攝像頭等傳感器環境檢測和機械臂清障的功能。

圖9 無人勘探救援車
本項目基于阿里云物聯網平臺實現了無人勘探救援車的設計,主要針對野外惡劣環境下搜救和勘探的輔助工作,無人勘探救援車采用履帶式行進方式;利用阿里云物聯網平臺實時觀測環境傳感器獲取的超聲波測距、GPS定位等監測數據,根據不同應用場景可實現距離報警提示、機械臂移動障礙物、遠程視頻、遠程語音對話、可控射擊等功能。經過一系列調試發現,遠程視頻過程目前存在2~3 s的延遲,語音對話受環境噪聲影響存在識別誤差,因此在車輛相應的實現方法上仍有繼續提升的空間。
當前人工智能發展迅速,國內外智能救援機器人發展火熱,可以極大提高勘探、搜救人員的安全。本項目雖然在技術方面不盡成熟和完善,但綜合實踐結果來看,項目的實施方法均可具體實現;在小型機器人應用方面,具有一定的研究價值和社會意義。