王 輝,徐 楠,于繼明,宋佳寧,孫葉新,劉兆
(1.金陵科技學院 智能科學與控制工程學院,江蘇 南京 211169;2.金陵科技學院 機電工程學院,江蘇 南京 211169)
目前,國內(nèi)外智慧礦山建設聚焦于智能開采,實現(xiàn)少人、無人的智能化采礦是當前國際采礦界研究的熱點。由設備生產(chǎn)廠商主導,一些智能化采礦系統(tǒng)已經(jīng)投入實際應用。中國傳統(tǒng)采礦業(yè)正在面臨新一代信息技術(shù)的挑戰(zhàn)和洗禮。目前國內(nèi)工業(yè)散料的抓取主要依靠人工對機器的操作,物料抓取的多少需要工人自己判斷,同時還很有可能混有很多的雜質(zhì),容易造成物料的浪費,增加了很多的人工與材料成本。
為了解決上述問題,以及實現(xiàn)少人或無人的機器操作與散料抓取,本文研究激光雷達點云數(shù)據(jù)處理,使機器能夠通過對散料進行三維掃描確定散料的體積與分布情況,并通過程序根據(jù)要求實現(xiàn)無人操作抓斗行車[1-2],實現(xiàn)高精度的散料抓取[3],同時減少抓取散料中雜質(zhì)的占比。這樣將大大減少人工與材料的成本,提高效率。
目前國外的激光雷達產(chǎn)業(yè)起步較早,競爭日益激烈,其中Velodyne 在機械式雷達方面具有顯著優(yōu)勢,占有較大份額;但國內(nèi)固態(tài)激光雷達領域還沒有公認的成熟解決方案,所有企業(yè)基本是齊頭并進地競爭,所以這個領域的國產(chǎn)廠商有望超車。在微電子技術(shù)方面,國外片上系統(tǒng)和芯片級組件等技術(shù)極大提高了天線的集成度;微加工技術(shù)可實現(xiàn)系統(tǒng)級封裝,可以在一個或幾個晶片上實現(xiàn)一部高頻段有源相控陣天線。行業(yè)內(nèi)對更小體積、更低成本、更高性能的追求使得微系統(tǒng)與雷達的結(jié)合成為必然趨勢[4]。激光雷達包含發(fā)射單元、接收單元、掃描單元以及數(shù)據(jù)處理單元。三維掃描激光雷達能夠主動獲取目標的三維信息,其高速數(shù)據(jù)采集與傳輸是目前國內(nèi)三維實時成像的技術(shù)瓶頸之一[5]。從產(chǎn)業(yè)鏈的角度看,我國激光雷達產(chǎn)業(yè)鏈完備,各環(huán)節(jié)都有參與者跟隨國際領先廠商發(fā)展。國外廠商在上游光源、探測器和光束操縱等領域具有優(yōu)勢。綜合來看,激光雷達領域國外廠商布局較早,已經(jīng)掌握了比較成熟的技術(shù);國內(nèi)廠商緊追不舍,產(chǎn)品的精度和價格占據(jù)優(yōu)勢,且仍有初創(chuàng)公司不斷加入,未來國內(nèi)市場的競爭將會更加激烈。全球知名市場研究與戰(zhàn)略咨詢公司Yole Intelligence 近期發(fā)布的《2022 年汽車與工業(yè)領域激光雷達報告》指出,中國已經(jīng)發(fā)展出一個重要的激光雷達生態(tài)系統(tǒng),并在物流發(fā)展、智能基礎設施建設、機器人駕駛和配送方面產(chǎn)生對激光雷達的強大且多樣化的需求[6]。
目前激光雷達可使用ToF(Time of Flight)法、FMCW(Frequency Modulated Continuous Wave)法及三角測距法等進行測距,ToF 和FMCW 測距法能夠在室外陽光下實現(xiàn)較遠的測程(100 ~250 m),是車載激光雷達的優(yōu)選方案。ToF 法是目前市場車載長距激光雷達的主流方案,適用場景廣,無論被攝物體有無特征點,環(huán)境光較強或較弱,都可獲得有效的景深信息;較遠距離時精度也較高,可以達到厘米級的水平[7]。
在智慧礦山中,為了實現(xiàn)對干散料的精準抓取,嘗試用雷達采集數(shù)據(jù),進行三維建模;設計合理的抓取算法,對干散料進行最優(yōu)抓取。其中,點云數(shù)據(jù)處理的研究與應用以激光雷達為基礎,采用激光雷達掃描采集工業(yè)散料的分布情況,通過Visual Studio 2022 和MATLAB 軟件進行三維建模,將采集的信號處理為圖像,顯示并發(fā)送給系統(tǒng)。激光雷達包含發(fā)射單元、接收單元、掃描單元以及數(shù)據(jù)處理單元。本文采用飛行時間測量法(ToF),在激光雷達發(fā)出激光脈沖時開始計時(t1);當激光遇到目標物體光返回,接收端停止計時(t2),距離=光速×(t2-t1)/2。系統(tǒng)總體設計如圖1 所示。
圖1 智慧礦山中激光雷達點云處理系統(tǒng)總體設計
目前由于計算機技術(shù)有限,不能將大規(guī)模的點云數(shù)據(jù)一次性導入內(nèi)存,需要對點云數(shù)據(jù)進行重新組織。在可視化過程中,對點云數(shù)據(jù)進行實時調(diào)度,不斷地在內(nèi)存和外存之間實現(xiàn)數(shù)據(jù)切換。隨著用戶的交互、視點位置的改變,將落入可見區(qū)域的數(shù)據(jù)讀入內(nèi)存,同時釋放不在顯示區(qū)的數(shù)據(jù),其中數(shù)據(jù)的組織是可視化的前提。對于點云數(shù)據(jù)處理技術(shù),PCL(Point Cloud Library)是一項獨立的、大型的處理二維/三維圖像和點云數(shù)據(jù)的開源工程,后來漸漸發(fā)展為一個獨立的函數(shù)庫。PCL 庫可以實現(xiàn)大規(guī)模點云的顯示、縮放、漫游。PCL 包含了許多先進算法,比如濾波、特征估計、表面重建、模型擬合和分割等,由于它是一個模塊化的現(xiàn)代C++模板庫,文中采用Visual Studio 2022 的C++編程庫對點云數(shù)據(jù)進行解析處理。Visual Studio 2022 界面如圖2 所示。
圖2 Visual Studio 2022 軟件界面
文中激光雷達裝有16 對激光發(fā)射接收模組,電機以5 Hz(或者10 Hz、20 Hz)轉(zhuǎn)速驅(qū)動進行360°掃描,其測距方式采用脈沖式,測量范圍為70 ~200 m,測距精度為±3 cm。采用飛行時間測量法(ToF),在激光雷達發(fā)出激光脈沖時開始計時(t1),當激光遇到目標物體時返回,接收端停止計時(t2)。距離計算公式:距離=光速×(t2-t1)/2。
文中使用的16 線激光雷達如圖3 所示。圖4 展示了2°(左)和1.33°(右)激光雷達示意圖。圖5 顯示了激光雷達坐標系和掃描方向。
圖3 C16 激光雷達
圖4 2°(左)和1.33°(右)激光雷達示意圖
圖5 激光雷達坐標系和掃描方向
EC20 Mini PCIe 采用標準封裝,同時支持LTE,最大的上行速率為50 Mb/s。它支持接收分集技術(shù),通過多輸入多輸出技術(shù)(MIMO)降低誤碼率,改善通信質(zhì)量。
首先,我們將雷達與上位機連接并配置雷達,用Windows 軟件顯示點云。通過上位機軟件設置雷達IP 地址為192.168.1.101,設備端口號為2369,數(shù)據(jù)包端口號為2368。設置電腦IPv4 地址為192.168.1.102,連接雷達后電腦使用Wireshark 軟件抓取設備ARP 包進行分析,以便于查看雷達的以太網(wǎng)配置信息。本系統(tǒng)中雷達采用UDP/IP 的通信協(xié)議。
圖6 為雷達和電腦的連接示意圖,圖7 是雷達IP 地址、數(shù)據(jù)包端口號及設備端口號設置情況。圖8 展示了雷達掃描后點云在上位機中的顯示情況。
圖6 雷達和電腦連接
圖7 設置IP 和端口
圖8 上位機軟件顯示點云
雷達支持單播、廣播和組播通信。雷達數(shù)據(jù)輸出和配置使用UDP/IP 通信協(xié)議,UDP 包長均為1 248 B。數(shù)據(jù)包的數(shù)據(jù)采用小端模式。數(shù)據(jù)包輸出點云的角度值、距離值、強度值、時間戳等測量數(shù)據(jù)。數(shù)據(jù)包包括42 B 以太網(wǎng)包頭和1 206 B 的有效載荷,有效載荷由1 200 B 點云數(shù)據(jù)channel data(12 個100 B 的數(shù)據(jù)塊block)和6 B 的附加信息(4 B的Timestamp 和2 B 的actory)組成。
16 線小型化雷達有兩種不同的垂直角度分布,其每個通道數(shù)據(jù)對應固定的垂直角度(以2°的垂直角度相隔,達到-15°~15°的30°垂直視場角),采用笛卡爾坐標表示,通過獲取雷達的垂直角度、水平角度和距離參數(shù),可將極坐標下的角度和距離信息轉(zhuǎn)化到右手笛卡爾坐標系下的X、Y、Z坐標,轉(zhuǎn)換關系表達式為:
式中:r為距離;α為垂直角度;θ為水平旋轉(zhuǎn)角度(計算時需要考慮水平修正角度);X、Y、Z為極坐標投影到x、y、z坐標。
解析點云數(shù)據(jù):(1)解析數(shù)據(jù)包,獲得每一線的相對水平角度、測距信息、強度數(shù)據(jù)和微秒時間戳信息;(2)讀取設備包,獲取水平修正角度值、UTC 時間(GPS 或NTP 授時)和設備當前狀態(tài)配置等信息;(3)依據(jù)雷達光束分布得到每一線的垂直角度;(4)根據(jù)點云數(shù)據(jù)的測距值、垂直角度以及計算后的水平角度,得到XYZ坐標值;(5)如果需要,通過UTC 時間、微秒時間戳、雷達每一線發(fā)光時刻和單雙回波模式,計算點云數(shù)據(jù)的精確時間。
單回波模式時,一次單點激光發(fā)射測量一次回波數(shù)據(jù)。一個點云數(shù)據(jù)包包含12 個數(shù)據(jù)塊,每個數(shù)據(jù)塊包含2 組按照打包順序測量的16 個通道點云數(shù)據(jù),每個數(shù)據(jù)塊只返回一個方位角,每個方位角輸出2 組數(shù)據(jù),如圖9所示。
圖9 16 線單回波數(shù)據(jù)格式
為得到每個點云的XYZ空間坐標、角度、所屬通道、距離的信息,定義一個通道i(從0 至15)為整數(shù)類型,對應{-15,1,-13,3,-11,5,-9,7,-7,9,-5,11,-3,13,-1,15}共16 個通道,在存放激光雷達采集的原始數(shù)據(jù)中得到點云的角度lidar_angle和距離lidar_dist,設為float類型。隨后采用笛卡爾的轉(zhuǎn)換關系,得到XYZ空間坐標,具體實現(xiàn)算法如圖10 所示。
圖10 點云空間坐標解析
在利用三維激光雷達掃描儀掃描目標時,會受到掃描設備、周圍環(huán)境、人為擾動、目標特性等因素的影響,使得點云數(shù)據(jù)無法避免地存在一些噪點[8],導致數(shù)據(jù)無法正確表達掃描對象的空間位置,為此設計一種高效的點云小尺度噪聲濾波算法。利用PCL 庫通過C++實現(xiàn)點云濾波。目前數(shù)據(jù)平滑濾波主要采取的是中通濾波、高斯濾波、均值濾波以及中值濾波。這里采用簡單高效的直通濾波技術(shù)。首先,指定一個維度以及該維度下的值域;其次,遍歷點云中的每個點,判斷該點在指定維度上的取值是否在值域內(nèi),刪除取值不在值域內(nèi)的點;最后,遍歷結(jié)束,留下的點即構(gòu)成濾波后的點云[9]。直通濾波實現(xiàn)代碼如圖11 所示。
圖11 直通濾波
C++將處理后的點云坐標數(shù)據(jù)(點云的XYZ空間坐標、角度、所屬通道、距離)寫入txt 文件中,保存格式如圖12所示。
圖12 點云數(shù)據(jù)格式
對于處理完的點云數(shù)據(jù)集,需要進行繪圖,而與其他的計算機高級語言相比,選擇MATLAB 有著許多非常明顯的優(yōu)勢。MATLAB 允許用戶以數(shù)學形式語言編寫程序,用戶在命令窗口中輸入命令即可直接得到結(jié)果;并且用MATLAB畫圖,數(shù)值計算高效快速,還能夠?qū)Ψ栠M行計算;對于繁雜的數(shù)據(jù)處理也非常高效,省去用戶通過復雜手段處理數(shù)據(jù)的步驟。MATLAB 能夠?qū)⑻幚斫Y(jié)果以圖形方式展現(xiàn)出來,將結(jié)果可視化,方便用戶更好地對數(shù)據(jù)進行分析。由于它是用C 語言開發(fā)的,所以它的流程控制語句與C 語言中的相應語句幾乎一致。MATLAB 軟件能夠?qū)υ囼灚@取的點云進行預處理,降低無關因素對圖像的影響,為后續(xù)三維重建奠定基礎[10]。
采用load(‘Test1.txt’)讀取txt 文件的方法,繪制點云圖像。對采集的點云數(shù)據(jù)進行處理后,繪制圖像結(jié)果如圖13所示。
圖13 MATLAB 繪制點云數(shù)據(jù)圖像
本文開展了智慧礦山中激光雷達點云處理的研究與應用,采用激光雷達,掃描獲取礦山工業(yè)現(xiàn)場的散料三維空間分布情況,運用PCL 庫通過C++語言實現(xiàn)點云數(shù)據(jù)的濾波與處理;采用MATLAB 軟件進行三維建模,將采集的信號圖像化后發(fā)送給系統(tǒng),根據(jù)三維特征分布進行精準抓取,實現(xiàn)工業(yè)散料自動抓取的功能?;诩す饫走_的三維采集,實現(xiàn)少人或無人的機器操作與散料抓取,既能減少抓取散料中雜質(zhì)的占比,提高效率,也能使相關從業(yè)人員的安全得到保障。