趙 迪,徐 臻,戴志鵬,于麗平
(湖北工業大學機械工程學院,湖北 武漢 430000)
隨著探測機器人技術的發展,逐漸代替了人類參與高危的救援,軍事,外層空間探測等任務[1,2]。在災后救援時的環境十分多樣復雜,單靠探測機器人的自主智能,很難在多障礙物、地形非結構化的情況下找出最優的運動方案,因而需要遙操作來進行危險情況的探測機器人控制。而目前的探測機器人的遠程操作方式主要是根據傳回來的視頻影像來進行操控,但相比于二維圖像信息,虛擬現實技術提供的三維信息更符合人類的感官直覺,視角更加廣,信息量也更大[2]。加強了操作人員臨場感,極大的降低遙操作因為視角受限而產生失誤的可能性[3-5]。
對于地形三維立體測圖,我國于2017年發射的第一顆自主的民用高分辨率立體測繪衛星資源三號衛星,其采集的DEM數據精度為2.1m。而對于非結構化環境下探測機器人運行要求,DEM地形精度還是過于粗糙,顯然不能完成局部的遙操作控制。因此需要根據探測機器人實時傳回的準確地形數據對環境重構。災后情況常采用軌道衛星通訊方式,這種大延時低帶寬情況下遙操作信號傳輸條件苛刻,使用傳統的SLAM激光雷達進行地形重建其數據量過大。這些情況都給機器人探測帶來了很大的挑戰[6-10]。
針對這些問題,本文將采用在物理引擎Unity3D中顯示深度相機采集提取的地形障礙增強信息,完成對非結構化環境遙操作的仿真環境搭建;并設計了基于地形通行性的遙操作場景仿真[11],在保證遙操作場景仿真準確性的同時減小了地形重構的數據量大小。
遙操作場景仿真包括地形環境與探測機器人本體的仿真。由于探測機器人的模型為已知,只需通過傳感器輸出機器人的位置位姿進行信息反饋,在仿真場景中實時的更新探測機器人的狀態。在Unity3D中其仿真實現較為簡單,文中實驗中包含探測機器人仿真但不做詳細描述。
地形環境的三維構建,在遙操作場景仿真中決定著遙操作人員的臨場感與仿真結果的正確性。在該仿真系統中,首先將DEM數據直接導入到物理引擎地形組件中,然后要結合深度相機實時獲取的真實環境的地形障礙信息,與DEM底層地形數據相融合,完成對遙操作場景的增強信息顯示與需要準確顯示的地形障礙三維重建。
為了充分滿足這些要求,首先設計系統結構。系統結構如圖1所示,系統主要分為三個部分,探測機器人、數據庫與通訊、Unity3D場景搭建,實現將探測機器人遙測信息進行數據的保存與通訊,最后進行探測場景的實時構建的功能。

圖1 系統結構圖
系統設計的主要目的是通過對未知地形的探測,識別,關鍵信息傳輸,數據儲存讀取與三維重建,實現具有強臨場感,運動真實的遙操作場景仿真。
在該探測機器人遙操作場景仿真系統中,地形障礙根據通行性使用不同的顯示方法。本文中將通行性分為三種情況,不可通行、有障礙可通行、無障礙通行。
探測機器人不可通行情況,如不可翻越的坑與坡地形、較大的石頭障礙、落石區等,并對這類地形信息進行信息增強顯示如圖2所示,便于遙操作人員避開障礙的操作;有障礙可通行,如較小坡度的地形,探測機器人可以進行翻越,不需要增強信息提示,但需要對地形建模,以便實現探測機器人進行小坡度翻越的仿真;對于遠小于輪式探測機器人車輪的坑洞、坡地與石子不做任何的顯示。

圖2 地形障礙分類圖
3.1.1 地形障礙描述
為了判斷地形的通行性,先需要定義地形障礙的地形障礙的數據結構,將其量化出來。
首先使用Kinect相機將地形的點云數據采集出來,然后采用的三維點云的聚類識別方法,將地形障礙將以包絡體的方式表示出來。圖3中所示為一個坑洞的包絡體。

圖3 地形點云包絡體
根據點云處理后的包絡體的數據,可以將任何的地形障礙以obj(x,y,z;VL,VW,VH;P1,P2,P3,P4)的數據結構表示出來,如表1所示。

表1 地形障礙數據結構定義表
3.1.2 地形通行性識別與顯示
探測機器人深度相機所獲得的障礙物信息不能全部都顯示在Unity3D的場景中,否則會消耗計算機很大的計算量,也不利于遙操作人員對環境的觀察。在獲取到地形障礙的基本數據之后,在數據庫中需要對地形的通行性進行判斷。然后在Unity3D的場景中以不同方法顯示出來。
1)坑洞通行性,以坑洞的長寬VL,VW為判斷依據,若是小于輪式探測機器人的越坑寬度d,則可以跨越,屬于有障礙可以通行類型。若是遠小于d則為無障礙通行類型。
2)坡地通行性,首先判斷坡地的高度,若是小于越障高度h,則可以跨越。若是大于越障高度則接著判斷坡地的坡度P3是否小于可運行坡度,計算公式如下

(1)
3)石頭障礙通行性,以判斷障礙的體積大小參數P2來選擇顯示方式。對于石頭障礙可通過在Unity3D中準備好其預制體,根據識別到石頭時根據位置及大小在場景中調用相應的預制體。
3.1.3 使用Unity3D地形重構流程
當探測機器人在運動到指定點時,進行周圍的地形障礙的識別,通過Socket網絡通訊將地形數據按規定數據結構發送,在數據庫中對所有地形障礙的通行性進行判斷,根據仿真系統中探測機器人的位置,在數據庫中搜索附近需要顯示的地形障礙,并在Unity3D中依據本文中的顯示策略顯示出來。具體流程如圖4所示。

圖4 地形數據讀取流程
Untiy3D中地形保存在一個高度矩陣中,地形高度矩陣的值可以由C#腳本編程來控制,對于新創建的全局地形矩陣默認大小為H1000×1000,動態改變地形的形狀即是改變矩陣對應位置中的地形高度。通過Unity3D腳本控制的方法,當探測到新地形障礙時調用 Unity3DTerrain地形組件中的SetHeights函數對地形進行動態的更新。其仿真運行效果如圖5所示。

圖5 仿真運行效果
對于不可通行地形障礙的重構,其主要目的是為了遙操作人員具有更好的視覺操作體驗,并能夠避免這些障礙地形。對于坑洞與凸包地形障礙,只需要重構簡易的形狀特征,并添加醒目的增強信息。
3.2.1 坐標轉化
已知地形障礙在探測機器人的相對位置,可以在仿真場景中顯示出來。但是為了進行地形數據的分析與處理,還需要求出地形障礙的世界坐標。當探測機器人移動時,地形障礙可由世界坐標位置確定。
將障礙信息記錄存儲到數據庫后,則可以通過服務器在數據庫中讀取地形及障礙物的位置數據,并在Unity3D中實時的顯示地形障礙。
圖6中畫出了地形障礙在探測機器人坐標與世界坐標系的相對位置關系,根據其相對關系可得出地形障礙的世界坐標轉換矩陣式(2)。

圖6 坐標轉換
其中(x1,y1)是探測機器人在世界坐標系中的位置,(x2,y2)是地形障礙與機器人的相對位置,(x0,y0)則為求取的地形障礙絕對位置坐標。θ為移動機器人偏轉角。
3.2.2 曲面重構
自然中常見的坑洞與凸包都近似于中心軸對稱體,因此對于坑洞的簡化地形曲面擬合可以視為障礙物邊緣點與最低點兩點的擬合曲線圍繞坑洞中心Z軸方向旋轉所形成的曲面。
因此可以使用拉格朗日插值式(3)求取曲線擬合得式(4),然后將(xn-x0)2換為(xn-x0)2+(yn-y0)2再代入曲面上每點坐標(xn,yn),得出曲面高度方程(5)

(3)

(4)

(5)

得到地形的高度后,將每個點的值帶入如下的以hx0,y0為中心2r×2r的高度矩陣。然后代入到全局地形H1000×1000。
對于可通行的障礙地形,進行地形重構的要求不僅僅是將其可視化出來,同時需要對其進行精確的三維重構。只有滿足地形障礙的準確性,才能在進行探測機器人運動仿真時具有準確的仿真結果。
由于Unity3D中地形數據是以矩陣的方式描述,因此可以對障礙地形區域的深度圖像進行提取,將其轉化為Unity3D地形高度矩陣的格式。
1)障礙地形邊界提取
先識別出三維點云的盒狀包絡體。將包絡體xoy平面的邊界點坐標轉化成為世界坐標系絕對坐標,轉化方式如2.2.1里所示,可得出包絡盒對角點H[1,1],H[m,n]在世界坐標系中的位置(x1,y1),(xm,yn),其中m的值為xm-x1,n的值為yn-y1.。
2)點云轉深度圖像
將包絡體區域內的點云數據轉換為深度圖像mat后。由于Unity3D中地形高度矩陣的橫縱坐標的單位值為0.1m,即高度矩陣兩點之間的距離,但是深度圖像的矩陣大小是不確定的。需要根據邊界長度(單位0.1m),將深度圖像mat的縮放為m×n的矩陣。
此方法可以調用OpenCV中的圖像縮放函數resize即可完成,mat的行數可調用matlab函數size(mat,2)求出,則縮放比例為:

(6)
轉換式則可表示為:
Hm×n=resize(mat,K)
(7)
3)地形數據融合
根據矩形邊界位置,判斷在全局地形中的位置,將障礙地形高度矩陣代入到全局地形的高度矩陣中。
本實驗中假定遙操作場景具有較大時延,遙操作人員不能對探測機器人進行實時的遙操作。只能通過確定探測機器人需要經過的路徑點,發送運動指令讓探測機器人進行導航,最后走出障礙危區。
由于實驗場地的限制,沒有足夠大小的地形,所以將模擬地形數據以本文中所規定的數據結構,通過遙操作信息顯示窗口(如圖7)寫入數據庫中,再由Unity3D讀入,略過Kinect的地形采集部分。

圖7 遙測信息顯示窗口
在unity3D遙操作仿真界面圖8中,黃色箭頭為目的點,紅色旗幟為路徑點位置,運行過程中曲線圖顯示探測機器人所受摩擦力的大小以判斷運動的穩定性,GUI界面則包括探測機器人的基本的操作按鍵,與顯示系統響應消息的窗口。

圖8 繞過障礙仿真
探測機器人在經過每一個路徑點時對周圍的地形進行探測,發送數據給地形數據庫,然后由仿真軟件重構出來。遙操作人員在仿真端進行操作,當確定該操作探測機器人運動正常后,再將遙操作指令輸出發送給真實探測機器人。
在面臨通訊帶寬很小的情況下,為了保證通訊實時性,需要高效的傳輸信息。遙操作所需要的帶寬也是對于遙操作系統是否合格的重要因素。
如圖9所示,通過點云信息進行地形重構具有最好的顯示效果,但是一張點云圖的大小就有500多Kb,顯然不符合畫面即時通訊的要求。依靠地形障礙描述信息重構三維地形的方法由于只傳輸部分區域的高度矩陣與其它的障礙地形信息,因此具有最小的數據量,但是顯示效果明顯好于二維圖像信息。

圖9 傳輸數據量與顯示效果
接著為了驗證遙操作場景仿真的整體體驗效果,尋找了20位同學在該探測機器人場景仿真系統中進行虛擬現實的遙操作。分別對系統的臨場感,及時性,交互性與重構準確性進行評測。
實驗交流結果表明,該遙操作場景仿真在臨場感與交互設計上具有良好的表現,由于采用基于地形通行性的場景重構方案,地形信息的傳輸與地形重建及時性很高,但是由于視角受限點云信息不完整,在進行障礙物的重構時不夠準確。
在Unity3D中搭建完整的探測機器人與地形的模型,實現遙操作場景仿真具有可行性且仿真效果較為準確。通過深度相機采集實時地形障礙數據,采取基于地形通行性仿真環境顯示方法,有利于遙操作人員視覺觀察,能有效減少數據傳輸壓力,同時遙操作人員具有更好的臨場感。