李榮和,關凱元,繆顧鑫,李振康
(黑龍江科技大學 電氣與控制工程學院,黑龍江 哈爾濱 150028)
我國是一個產煤和耗煤的大國。煤炭產業是我國經濟發展的重要產業之一。煤礦井下的安全和設備完好性,是制約我國煤炭行業發展的主要問題。煤礦井下的工作環境惡劣危險,有許多巷道,可能突發危險情況,而且在大多數救援過程中,礦井還可能發生瓦斯爆炸、坍塌、礦井下迷失等危險問題,會延誤救援人員的救援工作[1]。
為此,本文研究一款智能井下巡檢機器人。總體作為一個礦井探測救援系統,可以幫助人員深入礦井,能夠完成具有一定危險性的救援探索任務,救出被困的礦井工人,減少救援時間,從而降低傷亡人數。
日常巡檢時,智能巡檢機器人可有效拍攝出巡檢環境內各種設備的高清圖像,并利用網絡將采集到的圖像信息實時傳輸到后臺主控制系統,方便工作人員能夠通過接收到的視頻、圖像對巡檢設備的運行狀態做出有效判斷并制定操作計劃。當井下發生異常警報時,可以通過機器人發送的信息發現井下的異常情況,救援人員可根據機器人傳出的視頻和環境建圖來排查井下情況。
基于分層控制的設計理念,本文對巡檢救助機器人系統各個功能模塊進行分層設計,分為監控層、通信層以及控制層。其中,控制層又分為上位機控制系統和下位機控制系統。各層次功能明確,如圖1 所示。

圖1 機器人各層各級分布圖
監控層可以通過計算機遠程操作或采用電腦連接機器人后部的顯示屏進行代碼修改或控制,接受工作人員發出的指令進行工作,在正常狀態下可以進行區域自主導航,檢查井下設備的工作狀態以及巡檢地區是否發生異常。監控層可以載入對人或設備的訓練模型,然后用卷積層替換整個連接層,并對其進行端到端的訓練(一種深度神經網絡訓練),以便進行目標檢測。YOLO 培訓分類器使用224×224 張照片,然后使用448×448 張圖片進行目標檢測;通過巡檢設備(激光雷達和深度相機)利用即時定位與地圖構建(Simultaneous Localization and Mapping,SLAM)完成建圖后,地圖信息會被保存為文件。
工作人員可以在可視化工具內加載掃描的點云地圖文件,查看地圖具體信息,以實現機器人的自主巡航、定點導航的功能;監控層還能夠人為地對地圖上的區域進行劃分,并且選擇劃分的區域設計為機器人所代表的無障礙點,將記錄的好的點在可視化工具中設置為坐標,并對點進行賦值命名從而實現定點導航。
考慮到礦井的特殊性,通信層在實際應用中分為三部分。
第一部分是地面控制中心(數據管理中心)。通過設置在地面的數據管理主機,能夠對巡檢機器人進行遠程操控,遠程監控煤礦井下的運行設備狀態、溫度以及傳輸,實現機器人的大數據管理和數據、圖像、視頻的傳輸與處理,機器人運動軌跡遠程控制等功能。
第二部分是數據傳輸。數據傳輸部分主要依托工業級的網絡平臺如以太網或總線設置。通過RJ-45 通信端口(一種常用的布線系統中信息插座連接器)就近接入交換機、以太網或總線站等。在機器人的調試過程中,由于不具備真實的礦井情況和以太網等工業級的網絡平臺,在測試中可用兩個通信模塊代替。
第三部分是數據終端,用來實現信號覆蓋和通信,本部分主要用于與巡檢機器人和電腦終端的聯系。
巡檢救助機器人的控制層分為上位機控制系統和下位機控制系統兩大部分。兩個部分相互獨立運行并實現各自的基本功能,通過數據總線的方式進行上下位機數據的交互;Jetson nano 主控作為上位機,類似于人體的大腦結構,需要對采集到的數據量和下位機運行的數據進行數據處理,對處理過后的數據進行實時的定位和建圖,并對機器人的運動做出決策[2];最后將控制命令發送給下位機,完成控制運動平臺的動作。
STM32 作為下位機控制器起到兩個至關重要的作用,即對機器人運動的控制和收集傳感器獲得的原始數據,將原始數據進行簡單的處理后發送給上位機,根據上位機對數據處理后發送的指令,從而控制機器人的運動。激光雷達和深度相機安裝在機器人的前端和上端,根據機器人的移動得到距離信息和位移記錄。
井下救助機器人搭載了RPLIDAR A3 激光測距傳感器、深度相機、Jetson nano 主控等設備。操作系統采用基于Linux 系統的機器人軟件控制平臺(Robot Operating System,ROS)。ROS 系統可以提供一系列程序庫和工具以幫助軟件開發者創建機器人應用軟件,有硬件抽象、設備驅動、函數庫、可視化工具等諸多功能。本文采用ROS 系統的原因是ROS 的通信框架資源生態豐富易于操作使用,并且支持對機器人采用分層設計的控制方式[3]。
2.1.1 激光雷達與深度相機融合建圖
機器人要完成自主避障和導航,最主要的是解決SLAM 建圖的問題。最基本的方法是,借助多源傳感器,使機器人擁有一定的感知周圍環境深度信息的能力。本文通過激光雷達和深度相機來實現這種能力,因此本文的硬件部分只對激光雷達和深度相機進行介紹。
通過激光雷達可實現對周圍環境的360 度全方位掃描測距檢測,從而獲得周圍環境的輪廓圖,使機器人可以在更加曠闊的環境中進行地圖構建和自主定位。
深度相機用于視覺的圖像采集,可提高機器人建圖的質量,能夠采集場景的三維信息并配合激光雷達的點云識別實現對環境的感知。采用深度相機配合雷達的方法,能夠加快對環境的構建和視覺的調試效果。效果如圖2 所示。

圖2 激光雷達與深度相機融合建圖
2.1.2 機械臂
巡檢救助機器人的機械臂采用的是四自由度機械臂并配置了柔性二指爪,使用數字信號來進行控制。控制信號進入下位機控制器,可獲得直流偏置電壓,將直流偏置電壓與電位器的電壓比較,獲得電壓差之后輸出。電壓差的正負輸出到舵機,決定舵機的正反轉。并且,利用機械臂動力學模型并進行了線性化處理,以降低算法復雜度、保證實時性。
2.2.1 濾波算法
要完成機器人的自主導航和避障,首先要解決SLAM 建圖的問題。本文前部分已經簡述了硬件原理部分。SLAM 是一個龐大的理論體系,這里只對其中應用到的一種重要的濾波算法進行簡單的敘述,便于讀者理解。
機器人采用了一種RBPF 粒子濾波算法,使機器人按照先進行定位之后再進行建圖的順序工作。這樣做的目的是將定位和建圖過程分離。在實時接收激光雷達的建圖數據后,與最初始的模型圖進行匹配。其中一個雷達在匹配到位姿之后,會將當前幀的激光插入圖中,當圖中的位姿沒有變化或變化不大時就會將其除去。后端部分采用界定法,對地圖搜索后進行加速,這樣會構成一個回環檢測,可以更好地檢測出深度相機是否重復經過一個地方,來消除匹配誤差[4]。
2.2.2 自主路徑規劃的實現
路徑規劃是機器人導航最基本的環節。在有障礙物的工作環境中,機器人需要找到一條從起點到終點的適當的運動路徑,使機器人在運動過程中能安全、無接觸地繞過所有障礙物。根據對環境信息的掌握程度不同,機器人路徑規劃可分為全局路徑規劃和局部路徑規劃兩種。
全局路徑規劃是通過計算出機器人到目標位姿的路線,來利用全局代價地圖進行全局的路徑規劃[5]。本設計采用A*算法最短路徑的算法來實現,通過引入啟發函數,使整體性能相比于Dijkstra(迪杰斯特拉算法)有了較大改善。
Dijkstra 算法的實質是廣度優先搜索,是一種發散式的搜索,所以空間復雜度和時間復雜度都比較高,計算量非常大。對路徑上的當前點,A*算法不但記錄其到源點的代價,還計算當前點到目標點的期望代價,是一種啟發式算法。相比之下,A*算法消耗時間較少,可以使機器人在導航過程中保持連續運動。其數字描述可表現為:

式中:f(n)為從初始節點n到目標節點所消耗的代價值,g(n)為初始節點到任意節點n耗費的真實的代價值,h(n)為機器人從節點n移動到目標節點所消耗的代價值的啟發函數[6]。
預估移動代價h(n)采用曼哈頓距離表示為:

式中:xd和xn分別為目標點和節點n的橫坐標,yd和yn分別為目標點和節點n的縱坐標。
通過全局路徑規劃得到一條大致可行的路線,還要使機器人獲得目的地信息,此時要調用局部路徑規劃,利用路線信息及costmap 的信息來規劃出具體行動策略。每當move_base(機器人路徑規劃的中心樞紐)在處于規劃狀態,就調用DWA 算法在上位機主控中發出一條最佳的速度指令,發送給機器人下位機執行并驅動。局部規劃的路徑會靠近全局規劃的路徑,并結合實際情況,對局部路徑進行調整。
巡檢過程中,機器人一般會遇到兩種情況。
一種是靜態障礙物(如圖3 上兩個圖、圖4 左圖的情況)。當遇到靜態障礙物時,開始規劃出路徑。機器人合理避讓并有效的避開了第一個障礙物,路徑符合時間最優,最終到達的目標點的姿態也吻合發布的目標點。

圖3 機器人定點規劃
另一種是動態障礙物(如圖3 下兩個圖、圖4右圖的情況)。當機器人所處環境對比之前建圖的圖像發生了變化或有障礙物突然出現在所規劃的路線前方時,通過深度相機識別障礙物的距離信息,及時地更新形成新的建圖模型圖層。機器人將根據新的模型圖層重新規劃局部路線來繞開障礙物并繼續向著目標點運動,這樣就實現了自主避障的功能。

圖4 環境模擬
本文通過對深度相機和激光雷達等硬件設備的搭建以及對算法的優化,得到機器人實時定位與建圖;利用ROS 操作系統對機器人進行編程控制最終進行調試,使得機器人實現同時定位與建圖以及自主導航的功能。
實驗結果表明,采用本思路設計的巡檢機器人可以規劃出一條最優路徑,同時配合激光雷達和深度相機以及路徑規劃的算法,能夠完成對障礙物的躲避任務即自主避障功能,從而達到自主導航到達設置的目的位置完成井下自主巡航的工作任務。