趙科毅,張黎明,任書楠,徐善軍,杜婧
(1.北京國電富通科技發展有限責任公司,北京 100070;2.國網電力科學研究院有限公司,南京 211106;3.國網天津市電力公司,天津 300010)
近年來,為了提升作業效率降低作業風險,電力作業機器人逐漸替代電力工人,完成各種電力作業任務[1~5]。在作業過程中,機器人需要準確檢測環境中的作業目標。為此,機器人需要配備相應的傳感器用于感知作業環境,例如單目相機[6],RGB-D相機[7]以及三維激光雷達[8,9]等。相較于視覺傳感器,三維激光雷達能夠大范圍、高精度地獲取周圍環境的深度信息,且對光照變化較為魯棒,在黑暗環境以及強日照下也能夠完成正常作業,因此成為電力作業機器人的主要傳感器。相較單線與多線機械旋轉式激光雷達,固態激光雷達具有更高的點云密度與視場覆蓋率,更適合電力作業機器人對作業環境以及作業目標的檢測。
在電力系統的作業環境中,電力設備種類豐富,其中絕緣子是一項重要的檢測目標,在配電、變電、輸電場景中均有涉及。針對絕緣子的檢測,已有多位國內外的學者進行了研究。文獻[10]使用點云分割方法分割變電站3D點云,并利用點云主成分分析(PCA)與目標電力設備特征比對,成功從3D點云中提取出電線桿,變壓器,絕緣子等物體。文獻[11]首先利用點云的主方向分割環境點云,而后通過先驗的絕緣子幾何特征匹配點云片段,完成變電站內的絕緣子檢測。此兩項研究中的3D點云數據為使用激光雷達在不同位置對環境進行多次掃描后的合成點云,其中絕緣子以及其他電力設備的點云較為完整,可以直觀地反映出其結構特征。文獻[12]和文獻[13]提出了利用深度學習的方法,通過RCNN神經網絡識別巡檢圖像中的絕緣子。基于圖像的絕緣子識別方法常應用于電力巡檢任務,無法有效的提取處絕緣子在空間中的位姿信息。
在電力作業機器人對絕緣子目標進行作業的過程中,機器人的移動受到作業環境的限制,只能從單一的視角獲取點云,只可以采集到絕緣子的部分邊緣,且受位置與光照條件的影響,每個絕緣子被掃描到的表面點云都有所不同。針對此種點云數據的特點,基于完整形狀特征提取的3D點云匹配方法并不適用。因此本文在點云中僅包含部分絕緣子特征的條件上,提出了一種基于特征提取在點云中檢測定位絕緣子的方法。首先使用聚類方法提取出每一片絕緣子的表面點云,再通過計算其幾何特征值并與待檢測絕緣子參數進行比對篩選出有效結果。經過實驗驗證,該方法可以準確的從激光雷達點云中定位待作業絕緣子位姿。
經過對點云數據的觀察分析,提出一系列處理方法在激光雷達點云中進行絕緣子檢測定位,如圖1所示,主要分為以下四個步驟:點云預處理、絕緣子片聚類、絕緣子片特征計算、絕緣子片篩選。點云預處理步驟主要作用為提取興趣區(ROI)并去除掃描過程中產生的噪點,絕緣子片聚類步驟的主要作用為在絕緣子串點云中分離出各個絕緣子片的點云,絕緣子片特征計算步驟計算出每一組絕緣子片點云的幾何特征,最后依據絕緣子的結構特點篩選出符合條件的絕緣子點云并得到其在激光雷達坐標系下的位姿。

圖1 絕緣子檢測定位步驟
依據機器人的工作區域進行ROI提取可以裁剪掉大量遠距離無效點云,大大減少后續的點云處理計算量。由于固態激光雷達的工作原理,為了達到理想的掃描覆蓋率,需要對掃描幀進行長時間的積分,因此最終的點云中尤其是掃描中心區域會有大量的重復點。使用PCL庫中的體素過濾的方法處理點云,去除實體物體上的重復點。再通過歐式聚類以及外點去除的方法,去除絕緣子串邊緣的噪點。如圖2(a)所示,展示了固態激光雷達掃描積分后得到的原始點云,圖2(b)為經過點云預處理后的點云可視化結果,可見點云預處理步驟可以將絕大部分掃描噪點去除,僅保留待檢測的絕緣子串部分點云。

圖2 點云預處理
由于在電力作業過程中,激光雷達僅能從單一視角掃描絕緣子串,因此點云中無法包含絕緣子片的完整形狀。且絕緣子邊緣部分由于反射原因會有部分噪點影響從點云中分離出各個絕緣子片點云。使用法向量過濾的方法,保留面向激光雷達的絕緣子片平面點云,并在此點云的基礎上使用歐式聚類的方法提取出絕緣子片表面點云聚類。具體步驟為,計算預處理后點云P1的所有點的法向量N1=i=1,2...s},由于絕緣子串位于激光雷達前方,所以面向雷達的表面點云法向量的x分量小于0,篩選后得到點云P1x。通過歐式聚類分離出絕緣子片點云聚類Q1。

絕緣子片點云特征不僅可以用來判斷該點云是否為絕緣子片,也可以得出其在激光雷達坐標系下的位姿。根據串式絕緣子單片為盤型的結構特點,選取點云特征值為邊界擬合圓半徑qr、圓心qc、邊界所在平面法向量→qn,其中擬合圓半徑與平面法向量的計算需要提取出絕緣子的邊緣點云。
1.3.1 絕緣子邊緣點云提取
由于激光雷達位于絕緣子串上方,且受到掃描角度的限制,僅能掃描到部分絕緣子片邊緣表面點云,因此僅有點云的上邊界屬于真實絕緣子的邊緣。因此幾何特征的計算依賴于提取出絕緣子的邊緣,具體提取步驟為:提取絕緣子點云qi的邊界點云Pqb并投影至YZ平面,以最高點pzmax為種子分別沿Y+和Y-方向生長得到YZ平面上的上邊界點云P'qbu,再從原點云Pqb中提取對應的點得到上邊界點云Pqbu,如圖3所示。

圖3 絕緣子表面點云與上邊界點云
1.3.2 絕緣子點云特征計算
使用隨機采樣一致性(Random Sample Consensus,RANSAC)算法擬合絕緣子邊緣點云Pqbu所在平面,空間平面方程可表示為:

其中(a,b,c)即為該平面的法向量→qn,滿足關系式:

將Pqbu變換至YZ平面,再以最小二乘法擬合絕緣子邊緣的半徑qr以及圓心qc',最后將qc'變換回邊緣點云所在平面得到絕緣子片點云圓心位置qc。


絕緣子片點云篩選一方面要依據計算出的特征參數篩選出有效的絕緣子片點云,另一方面,根據絕緣子串兩片為一組的結構特點,如圖4所示,提取出距離合適的兩片絕緣子片合并為一組絕緣子。

圖4 目標絕緣子
依據單片絕緣子為盤型的結構特點,以及點云為正面表面的數據特征,擬定具體的絕緣子片點云篩選條件為:
1)絕緣子點云邊緣半徑qr∈[0.8R,R],R為絕緣子片實際半徑,
2)以絕緣子圓心qc為中心原點,絕緣子直徑2R為長和寬,絕緣子厚度D為深,絕緣子平面法向量為方向建立范圍框,絕緣子點云qi中的點應有90%在該范圍框內,如圖5a所示。
完成篩選后,按照絕緣子圓心qc的X由近及遠的順序進行排序,得到絕緣子片點云簇Q2,并計算所有絕緣子片的中心位姿Hi,該位姿以從激光雷達坐標系到絕緣子中心坐標系變換的齊次矩陣表示,位姿變換的齊次矩陣表示為:

其中位移部分為絕緣子的圓心坐標qc,旋轉矩陣Ri可以表示為:


遍歷經過篩選的絕緣子片點云簇Q2,若相鄰的兩個絕緣子片點云圓心歐式距離小于閾值,則認定該兩片絕緣子為一組絕緣子,并將較近的絕緣子片圓心位姿記為該組絕緣子的位姿,絕緣子片點云合并效果如圖5b所示。

圖5 絕緣子片點云篩選
固態激光雷達為機器人配備的LivoxMid-70,圓形視 場(FOV)為70.4°。實驗環境包含室內場景與室外場景,兩種場景環境結構大致相同,待檢測絕緣子位于機器人前方,如圖6所示,但光照條件差異較大。所有實驗均在統一的計算平臺下進行,CPU型號為i5-8250U,主頻為1.6GHz,內存8GB,操作系統為Ubuntu16.04。為了達到最理想的點云密度與視場覆蓋率,掃描積分時間為3s。室內與室外環境下分別采集測試點云20幀。

圖6 作業場景示意圖
2.2.1 算法對比
為了驗證本文檢測方法的有效性,將其與兩種傳統的在3D點云中進行物體檢測的算法進行對比。其中,對比算法包括基于對應分組的絕緣子檢測ID-CG(Insulator Detection based on Correspondence Grouping)[14]和基于正態分布配準的絕緣子檢測ID-NDT(Insulator Detection based on Normal-Distributions Transform Registration)[15]。兩種檢測算法均以模板匹配為基礎,ID-CG使用3D描述符進行點對點匹配得到當前場景中存在的模型實例及其6D位姿,ID-NDT則基于模板點云與目標點云整體正態分布優化匹配結果。由于實際掃描點云中得到的絕緣子局部點云形態各異,無法使用絕緣子模型作為模板,因此兩種物體檢測算法所參考的模板為從測試點云中人工選取的絕緣子外形較為完整的點云。同時掃描點云中存在多個絕緣子且距離較近,為了達到最優的模板匹配效果,目標點云為步驟2.2聚類后的各個絕緣子片點云。
對比結果如表1所示,基于模板匹配的物體檢測算法的表現均不夠理想。ID-CG算法在匹配時依賴模板與目標點云的3D描述因子,當目標點云與模板點云形狀、密度差異較大時,無法完成匹配,因此召回率較低(圖7a)。而IDNDT算法同樣也存在模板點云與目標點云形態差異過大時會導致的匹配誤差較大(圖7b),同時由于目標點云的尺寸較小,所以在誤差較大的情況下依然達到了NDT的收斂條件,并且該算法在此次實驗的計算平臺運行十分緩慢。本文提出的絕緣子特征計算方法則在準確率(圖7c)與運行速度上更加適宜應用環境,可以滿足機器人作業所需的實時性需求。

表1 絕緣子檢測算法比對

圖7 算法比對結果
2.2.2 室內外檢測實驗
在室內與室外的實驗結果如表2所示,絕緣子檢測的算法運行較為穩定(圖8)。受室內外光照條件以及絕緣子與機器人相對位置關系的影響,隨著距離的增加,絕緣子點云的密度越來越低,且會有更多的絕緣子表面收到遮擋,因此距離稍遠處的絕緣子點云召回率較低。在實際應用中,由于遠處絕緣子距離超出機器人作業范圍,因此影響不大。對機器人作業更為關鍵的距離較近的絕緣子,檢測比較穩定。由于在實際作業中,準確率會比召回率的優先級更高,因此在進行算法實踐的時候犧牲了一部分召回率以保證高準確率。

圖8 絕緣子檢測實驗

表2 絕緣子檢測實驗結果
針對電力機器人作業中面臨的在單一視角激光雷達點云中檢測定位絕緣子的問題,本文提出了一種基于特征提取在點云中檢測定位絕緣子的方法。首先使用聚類的方法提取出每一片絕緣子的表面點云,再通過計算其幾何特征值并與待檢測絕緣子參數進行比對篩選出有效結果。經過室內與室外環境的實驗驗證,本文提出的方法可在算力相對較低的平臺上完成檢測,并滿足電力作業需求的有效性與實時性,相較于傳統的模板匹配算法更具有實用性。在未來的研究中,隨著作業數據的不斷積累,可考慮在電力機器人算力前提下,融入機器學習的手段來增強識別算法的魯棒性。