文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190413
中文引用格式: 段清明,王凡,,徐琳琳,,等. 3D激光掃描儀設(shè)計(jì)及數(shù)據(jù)處理[J].電子技術(shù)應(yīng)用,2019,,45(10):66-70.
英文引用格式: Duan Qingming,,Wang Fan,Xu Linlin,,et al. 3D laser scanner design and data processing[J]. Application of Electronic Technique,,2019,45(10):66-70.
0 引言
近年來(lái),,隨著計(jì)算機(jī)圖形和計(jì)算機(jī)視覺(jué)學(xué)的發(fā)展,,三維掃描重建技術(shù)在多個(gè)領(lǐng)域(如工業(yè)測(cè)量、地形地貌的測(cè)繪,、自動(dòng)導(dǎo)航,、無(wú)人機(jī)航拍、采空區(qū)調(diào)查等)逐漸展現(xiàn)其優(yōu)勢(shì)[1-2],。
傳統(tǒng)的三維場(chǎng)景重建方式包括主動(dòng)建模和被動(dòng)建模,。主動(dòng)建模是通過(guò)設(shè)備一次采集場(chǎng)景信息,進(jìn)行點(diǎn)云成像,。被動(dòng)建模是根據(jù)單張或多張圖像,,直接利用圖像進(jìn)行三維建模[3]。后者相對(duì)于前者不需要進(jìn)行全局坐標(biāo)的標(biāo)定,,避免了真實(shí)場(chǎng)景下的幾何復(fù)雜性,,但計(jì)算復(fù)雜度高,同時(shí)在還原幾何準(zhǔn)確性及獲得三維信息的完整性方面存在著較大的缺陷[4],。因此,,為彌補(bǔ)被動(dòng)建模的缺陷,在激光雷達(dá)掃描技術(shù)的迅速發(fā)展下,,主動(dòng)建模的應(yīng)用越來(lái)越多,。激光雷達(dá)具有測(cè)量速度快、精度高,、非接觸測(cè)量的特點(diǎn),,且應(yīng)用成本大幅度降低,通過(guò)激光雷達(dá)進(jìn)行主動(dòng)建模的使用越來(lái)越廣泛[5],。
激光雷達(dá)是通過(guò)舵機(jī)的轉(zhuǎn)動(dòng)配合紅外激光器的單點(diǎn)測(cè)距,,實(shí)現(xiàn)單個(gè)平面的測(cè)量,其通信接口返回的數(shù)據(jù)同時(shí)包含測(cè)量距離和測(cè)量方位,,運(yùn)行狀態(tài)下受外界環(huán)境影響程度較小,。但是單個(gè)二維激光雷達(dá)僅能獲得一個(gè)截面的信息,為了獲取三維的數(shù)據(jù)進(jìn)行建模,,采用同等精度和測(cè)量范圍的三維激光雷達(dá)時(shí),,成本將高出二維激光雷達(dá)十幾倍,因此限制了在一般場(chǎng)景下的應(yīng)用,。
為節(jié)約經(jīng)濟(jì)成本,,大量研究人員著手研究改造二維激光雷達(dá)或采用在二維激光雷達(dá)的基礎(chǔ)上增加機(jī)械結(jié)構(gòu),,以進(jìn)行3D掃描。但多數(shù)的機(jī)械結(jié)構(gòu)復(fù)雜,,導(dǎo)致全局坐標(biāo)的標(biāo)定變得困難,,或測(cè)量范圍有限,同時(shí)缺少針對(duì)三維激光掃描系統(tǒng)的整體設(shè)計(jì)方案,。這些問(wèn)題的存在,,也為后來(lái)設(shè)計(jì)利用二維激光雷達(dá)實(shí)現(xiàn)三維重建的研究指明了方向。
本文依據(jù)二維激光雷達(dá),,搭配一維的旋轉(zhuǎn)云臺(tái),,設(shè)計(jì)三維激光掃描儀作為采集裝置。同時(shí)設(shè)計(jì)上位機(jī)的機(jī)械控制和數(shù)據(jù)處理系統(tǒng),,最終實(shí)現(xiàn)掃描場(chǎng)景的三維重建,。
1 坐標(biāo)采集系統(tǒng)設(shè)計(jì)
1.1 掃描方案
由于2D激光雷達(dá)采用點(diǎn)狀激光進(jìn)行掃描,因此在掃描一周的情況下,,僅能采集獲得單個(gè)截面內(nèi)的極坐標(biāo)下的距離信息,。如果需要擴(kuò)展為三維掃描儀,一般有兩種方式:(1)“變點(diǎn)為線(xiàn)”,,將點(diǎn)狀激光改為線(xiàn)性激光,,一次性獲得一個(gè)角度下截面的距離信息[6];(2)增加額外的機(jī)械結(jié)構(gòu)(如旋轉(zhuǎn)裝置)作為擴(kuò)展軸來(lái)獲得第三個(gè)維度的信息,。
應(yīng)用第一種方式,,不影響掃描的速率,但激光的亮度隨著距離的增加,,衰減速度加快,,測(cè)量距離有限,并且對(duì)原本的激光雷達(dá)的結(jié)構(gòu)改造較大,,對(duì)攝像頭的使用要求較高,,工作量增多且復(fù)雜。應(yīng)用第二種方式,,需要控制額外自由度的轉(zhuǎn)軸,,掃描速度降低,但測(cè)量距離遠(yuǎn),,額外機(jī)械機(jī)構(gòu)造成的誤差可通過(guò)數(shù)學(xué)補(bǔ)償,,對(duì)原本的雷達(dá)的改造減少,只需要設(shè)計(jì)旋轉(zhuǎn)裝置即可,。因此實(shí)驗(yàn)中選用增加轉(zhuǎn)軸的方式設(shè)計(jì)3D掃描儀,。
通過(guò)使用HLS-LFCD2型號(hào)2D激光雷達(dá)和RDS3115數(shù)碼舵機(jī),搭建3D激光掃描儀,。設(shè)計(jì)機(jī)械結(jié)構(gòu)如圖1所示,。
舵機(jī)帶動(dòng)機(jī)械關(guān)節(jié)的轉(zhuǎn)動(dòng),,其中2D雷達(dá)固定在關(guān)節(jié)處,雷達(dá)的幾何中心與轉(zhuǎn)軸的中心的連線(xiàn)垂直于雷達(dá)底部所在平面,。掃描時(shí),,激光雷達(dá)不間斷掃描激光器所在平面。以上述舵機(jī)轉(zhuǎn)軸幾何中心的O點(diǎn)為原點(diǎn),,建立空間直角坐標(biāo)系,,如圖2所示。
圖2中,,O′為雷達(dá)幾何中心,,平面O′QP為雷達(dá)掃描平面,,XOY平面與參考水準(zhǔn)面平行,。根據(jù)2D激光雷達(dá)的當(dāng)前測(cè)量角度α、機(jī)械關(guān)節(jié)的偏轉(zhuǎn)角θ和被測(cè)量點(diǎn)P到雷達(dá)中心的距離ρ可知,,測(cè)量點(diǎn)P的全局坐標(biāo)(x,,y,z)可通過(guò)下式計(jì)算得出:
其中,,方位角α和距離ρ通過(guò)激光雷達(dá)串口輸出的數(shù)據(jù)進(jìn)行解碼獲得,,偏轉(zhuǎn)角θ根據(jù)控制器輸出的PWM和舵機(jī)物理偏轉(zhuǎn)量之間關(guān)系得到。
1.2 機(jī)械控制
如圖1所示,,機(jī)械控制部分主要是對(duì)舵機(jī)的操作,,舵機(jī)的精度決定了偏轉(zhuǎn)角θ的精度。通過(guò)ARM公司的STM32ZET6作為控制器,,輸出PWM波進(jìn)行控制RDS3115數(shù)碼舵機(jī),,舵機(jī)主要控制特性如表1所示。
利用控制器產(chǎn)生一個(gè)20 ms的時(shí)基脈沖,,該脈沖的高電平部分為0.5~2.5 ms范圍,,最大間隔為2 ms。根據(jù)表1和舵機(jī)的數(shù)據(jù)手冊(cè),,在該范圍內(nèi),,輸出的角度值與高電平的寬度成線(xiàn)性關(guān)系,舵機(jī)輸出角度值θ值計(jì)算方式如下:
其中,,θ的單位為度,;Nset通過(guò)控制器進(jìn)行設(shè)置,范圍在500~2 500之間,,從而實(shí)現(xiàn)舵機(jī)角度在0~180°范圍內(nèi)偏轉(zhuǎn),。
由于舵機(jī)控制時(shí)存在死區(qū),死區(qū)時(shí)間在3 μs,,控制最小精度可達(dá)1 μs,,小于死區(qū)時(shí)間,,因此,在控制過(guò)程中,,相鄰兩次偏轉(zhuǎn)角θ的最小間隔Δθ為:
因此,,在控制過(guò)程中,設(shè)定的步進(jìn)間距均為0.27°的整數(shù)倍,,舵機(jī)的死區(qū)一定程度決定了掃描的精度,。
2 控制系統(tǒng)及數(shù)據(jù)采集
上位機(jī)控制系統(tǒng)是基于PC的Windows 10開(kāi)發(fā)平臺(tái)下,以Visual Studio 2015中的MFC為開(kāi)發(fā)環(huán)境,,通過(guò)編寫(xiě)主界面控件的消息響應(yīng)函數(shù),,來(lái)實(shí)現(xiàn)掃描儀控制和采集數(shù)據(jù)存儲(chǔ)。MFC中包含大量Windows句柄封裝類(lèi),,以及多種Windows的內(nèi)建控件和組件的封裝類(lèi)[6],,豐富的內(nèi)建控件為設(shè)計(jì)可視化界面提供便利。
系統(tǒng)設(shè)計(jì)框圖如圖3所示,。
上位機(jī)PC的任務(wù)包括同2D激光雷達(dá)的通信以及通過(guò)下位機(jī)控制器STM32對(duì)舵機(jī)的操作,。激光雷達(dá)的數(shù)據(jù)傳輸接口為UART格式,在上位機(jī)和雷達(dá)處采用藍(lán)牙模塊進(jìn)行通信,,以避免傳輸線(xiàn)對(duì)掃描進(jìn)程中的干擾,。通信內(nèi)容包括雷達(dá)的啟動(dòng)和關(guān)閉,以及獲取雷達(dá)掃描平面內(nèi)的ρ和θ,。針對(duì)雷達(dá)發(fā)送的每一幀數(shù)據(jù)進(jìn)行解碼,,保留每幀數(shù)據(jù)中的角度和距離信息[7]。
在上位機(jī)界面,,通過(guò)對(duì)相對(duì)坐標(biāo)系下的起始掃描位置,、掃描間隔和終止掃描位置進(jìn)行選擇,進(jìn)行掃描路程設(shè)定,。在控制關(guān)節(jié)旋轉(zhuǎn)的同時(shí),,采用詢(xún)問(wèn)-應(yīng)答的形式,以便保證在舵機(jī)完成轉(zhuǎn)動(dòng)任務(wù)后再進(jìn)行掃描,。在上位機(jī)界面通過(guò)進(jìn)度條的形式顯示整體掃描進(jìn)度,,方便用戶(hù)進(jìn)行監(jiān)測(cè)。
上位機(jī)控制系統(tǒng)流程如圖4所示,。
根據(jù)項(xiàng)目要求,,在MFC設(shè)計(jì)中采用多線(xiàn)程的方式,其中主線(xiàn)程用于響應(yīng)用戶(hù)的操作,,將用戶(hù)需求指令(如打開(kāi)串口,、打開(kāi)文件、保存文件等)轉(zhuǎn)換為程序指令進(jìn)行執(zhí)行、判斷,,并反饋執(zhí)行結(jié)果,。
MFC界面如圖5所示。界面中接收框和發(fā)送框均是對(duì)舵機(jī)進(jìn)行操作,,發(fā)送框顯示已設(shè)置命令或進(jìn)行手動(dòng)編輯命令,,接收框顯示下位機(jī)的回復(fù)情況。
掃描同時(shí),,上位機(jī)通過(guò)串口線(xiàn)與STM32通信,,控制舵機(jī)實(shí)現(xiàn)關(guān)節(jié)的轉(zhuǎn)動(dòng)。STM32控制器功能主要是與上位機(jī)進(jìn)行通信,,接收命令數(shù)據(jù)以便設(shè)置舵機(jī)的起始角度,、步進(jìn)間隔和終止角度,根據(jù)上位機(jī)的驅(qū)動(dòng)命令步進(jìn)舵機(jī)并回復(fù)執(zhí)行結(jié)果,。系統(tǒng)將從雷達(dá)處將接收到的數(shù)據(jù)經(jīng)解碼后得到方位角α,、距離ρ和舵機(jī)的偏轉(zhuǎn)角θ,按照(θ,,α,,ρ)的格式存儲(chǔ)到用戶(hù)設(shè)置的txt文件中,,作為后續(xù)數(shù)據(jù)處理系統(tǒng)的原始文件,。
3 數(shù)據(jù)處理
為了提高數(shù)據(jù)處理的速度,簡(jiǎn)化點(diǎn)云處理的計(jì)算過(guò)程,,以及進(jìn)行離散的點(diǎn)云數(shù)據(jù)的可視化,,基于MATLAB的GUI平臺(tái),建立專(zhuān)用的集坐標(biāo)轉(zhuǎn)換,、點(diǎn)云數(shù)據(jù)處理以及數(shù)據(jù)成像的數(shù)據(jù)處理系統(tǒng),。點(diǎn)云處理系統(tǒng)組成如圖6所示。
數(shù)據(jù)處理過(guò)程,,導(dǎo)入上一階段以(α,,θ,ρ)形式存儲(chǔ)的txt文本文件,,按照式(1)進(jìn)行運(yùn)算,,轉(zhuǎn)換為三維數(shù)據(jù)坐標(biāo)(x,y,,z)的形式,,并以pcd的形式輸出保存。此時(shí)pcd存儲(chǔ)的即為原始的標(biāo)準(zhǔn)點(diǎn)云數(shù)據(jù),。
3.1 點(diǎn)云數(shù)據(jù)濾波
通過(guò)掃描儀得到的點(diǎn)云數(shù)量極其龐大,,測(cè)量數(shù)據(jù)將達(dá)到數(shù)萬(wàn)個(gè)甚至數(shù)十萬(wàn)個(gè)點(diǎn),龐大的數(shù)據(jù)量中包含有無(wú)法預(yù)料到噪聲點(diǎn)。噪聲點(diǎn)的來(lái)源主要是激光掃描硬件本身造成的誤差,,此外還與采集實(shí)際情況有關(guān),,如掃描區(qū)域中存在煙霧、顆粒,、棱角等,,這些對(duì)于點(diǎn)云匹配等后期的工作顯然是不利的,因此,,需要對(duì)數(shù)據(jù)點(diǎn)進(jìn)行一系列的數(shù)據(jù)去噪,,篩除噪聲點(diǎn)[8]。
為了去除數(shù)據(jù)中存在的噪聲點(diǎn),,針對(duì)每個(gè)點(diǎn)的鄰域進(jìn)行了統(tǒng)計(jì)分析,。針對(duì)點(diǎn)云中的每一個(gè)點(diǎn),認(rèn)為該點(diǎn)與其附近k個(gè)鄰近點(diǎn)之間的距離分布符合高斯分布規(guī)律,,根據(jù)極限誤差和置信概率來(lái)決定該點(diǎn)是否為離群點(diǎn)[9],。
3.2 點(diǎn)云平滑及重建
在消除原始數(shù)據(jù)中的不規(guī)則點(diǎn)時(shí),為了建立光滑完整的模型必須對(duì)物體表面進(jìn)行平滑處理和漏洞修復(fù),。因此,,針對(duì)濾波后的點(diǎn)云,建立KD-tree加快逐個(gè)點(diǎn)云數(shù)據(jù)的鄰近數(shù)據(jù)搜尋,,進(jìn)而通過(guò)MLS(移動(dòng)最小二乘法)進(jìn)行重采樣,,進(jìn)行光滑處理。
利用貪婪算法,,動(dòng)態(tài)設(shè)置三角網(wǎng)格的最大半徑,,進(jìn)行三角網(wǎng)格重建點(diǎn)云輪廓。為了使用戶(hù)能夠進(jìn)一步全面地觀察最終成像,,在該界面加入了3個(gè)滑塊,。當(dāng)移動(dòng)滑塊時(shí),獲得當(dāng)前滑塊的位置,,并轉(zhuǎn)換成角度值,,根據(jù)旋轉(zhuǎn)軸和角度值創(chuàng)建4×4的轉(zhuǎn)移矩陣,同時(shí)獲取當(dāng)前的點(diǎn)云位置,,調(diào)用MATLAB函數(shù)pctransform()得到旋轉(zhuǎn)后的新的點(diǎn)云數(shù)據(jù),,從而實(shí)現(xiàn)點(diǎn)云數(shù)據(jù)在X、Y,、Z方向旋轉(zhuǎn)并刷新顯示,。
系統(tǒng)主界面如圖7所示,“文件處理”按鈕的回調(diào)函數(shù)實(shí)現(xiàn)轉(zhuǎn)換數(shù)據(jù)格式并按pcd格式文件存儲(chǔ),,“數(shù)據(jù)處理”中包含了主要的處理算法,,“濾波”針對(duì)標(biāo)準(zhǔn)格式的點(diǎn)云進(jìn)行濾波,并保存濾波結(jié)果。下拉欄可以對(duì)左側(cè)圖像區(qū)域進(jìn)行操作,,包含“清除”,、“顯示原始三維點(diǎn)圖”等,對(duì)右側(cè)圖像區(qū)域進(jìn)行“顯示點(diǎn)云包絡(luò)圖”,。包絡(luò)圖是最終渲染成像的結(jié)果,,因此單獨(dú)在右側(cè)欄進(jìn)行顯示,與其他成像圖進(jìn)行直觀對(duì)比,。
4 實(shí)驗(yàn)結(jié)果
在一個(gè)固定的50 cm×45 cm×28 cm的長(zhǎng)方體中進(jìn)行測(cè)試,,先是對(duì)固定偏轉(zhuǎn)角α為90°進(jìn)行2D激光雷達(dá)測(cè)試,掃描截面為50 cm×45 cm,。獲得三維點(diǎn)數(shù)據(jù)成像結(jié)果如圖8所示,。
計(jì)算求得的長(zhǎng)度為L(zhǎng)y=495.88 mm,Lx=457.19 mm,。根據(jù)實(shí)驗(yàn)結(jié)果可知,,2D激光雷達(dá)的測(cè)量準(zhǔn)確度較高,雷達(dá)的采樣率高達(dá)5 000次/s,,測(cè)量速度快,,有效測(cè)量半徑為0.15~8 m。雷達(dá)的良好性能確保了后續(xù)的三維建模,。
設(shè)計(jì)3D激光掃描儀實(shí)物圖如圖9所示,,云臺(tái)頂端搭載2D激光雷達(dá),云臺(tái)后半部分為基于STM32的控制器,,包括無(wú)線(xiàn)傳輸設(shè)備,、舵機(jī)控制部分,;上位機(jī)在PC端上實(shí)現(xiàn)對(duì)掃描儀的控制,,并進(jìn)行數(shù)據(jù)處理。
針對(duì)一中空的長(zhǎng)方體作為掃描實(shí)例進(jìn)行驗(yàn)證,。設(shè)置掃描范圍為x>0部分,,掃描示意圖如圖10所示。
原始掃描點(diǎn)云數(shù)據(jù)如圖10所示,,掃描物體外圍存在一圈噪聲點(diǎn),。經(jīng)統(tǒng)計(jì)濾波器濾波之后,距離較遠(yuǎn)的離散數(shù)據(jù)點(diǎn)被濾除,,實(shí)際掃描物體被較為完整地保存,,如圖11所示。濾波結(jié)果顯示,,點(diǎn)云數(shù)據(jù)從34 113個(gè)減少到33 900個(gè),。圖12為濾波數(shù)據(jù)通過(guò)移動(dòng)最小二乘法進(jìn)行光滑之后,采用貪婪三角網(wǎng)格算法進(jìn)行重建的示意圖。比較圖12的重建結(jié)果和圖9的實(shí)物圖,,可知掃描物體重建效果良好,。
上述實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)的三維掃描儀能夠?qū)σ话愕娜S場(chǎng)景選定范圍進(jìn)行重建分析;數(shù)據(jù)處理系統(tǒng)可以針對(duì)采集到的數(shù)據(jù)進(jìn)行一系列的離散濾波,、平滑處理,,最終實(shí)現(xiàn)對(duì)掃描場(chǎng)景的重建。
5 結(jié)論
本文基于2D激光雷達(dá)和云臺(tái)裝置,,設(shè)計(jì)了一種三維掃描儀,。結(jié)合基于MFC設(shè)計(jì)的控制系統(tǒng),實(shí)現(xiàn)對(duì)指定區(qū)域內(nèi)的數(shù)據(jù)采集,,通過(guò)推導(dǎo)的坐標(biāo)變換關(guān)系,,將坐標(biāo)轉(zhuǎn)換到全局坐標(biāo)系下,實(shí)現(xiàn)對(duì)三維數(shù)據(jù)的采集和存儲(chǔ),。同時(shí),,基于MATLAB軟件中的GUI工具設(shè)計(jì)的數(shù)據(jù)處理系統(tǒng)對(duì)采集到的原始數(shù)據(jù)進(jìn)行了預(yù)處理,利用濾波器剔除點(diǎn)云中的離群點(diǎn)來(lái)實(shí)現(xiàn)降噪,,針對(duì)掃描中的漏洞采用最小二乘法進(jìn)行擬合平滑處理,,利用貪婪網(wǎng)格法進(jìn)行三角網(wǎng)格重建,繪制點(diǎn)云輪廓,,根據(jù)預(yù)處理后的數(shù)據(jù)進(jìn)行了三維重建,,最終顯示在數(shù)據(jù)處較低的環(huán)境,能夠較好地進(jìn)行三維重建,。
參考文獻(xiàn)
[1] 王曾蘭.基于二維激光雷達(dá)數(shù)據(jù)的三維重建研究[D].沈陽(yáng):東北大學(xué),,2013.
[2] 何銳斌,李子揚(yáng),,賀文靜,,等.激光點(diǎn)云解算的軟硬件協(xié)同設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2019,,45(3):100-103.
[3] 項(xiàng)志宇,,李斌.基于2D激光雷達(dá)的快速3D測(cè)距系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].傳感技術(shù)學(xué)報(bào),2006(6):2638-2642.
[4] 謝理想,,萬(wàn)剛,,曹雪峰,等.無(wú)人機(jī)序列圖像快速三維重建系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2017,,43(6):134-137,142.
[5] 肖琪.基于激光掃描數(shù)據(jù)點(diǎn)集的三維重建算法研究[D].北京:華北電力大學(xué),,2011.
[6] 詹坤烽,,陳文建,,李武森,等.線(xiàn)激光三維場(chǎng)景重建系統(tǒng)及誤差分析[J].中國(guó)激光,,2018,,45(12):173-182.
[7] 牛京玉,胡堅(jiān),,孟凡榮,,等.基于多核DSP的激光點(diǎn)云解算算法并行設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2017,,43(2):54-57.
[8] 史皓良.三維點(diǎn)云數(shù)據(jù)的去噪和特征提取算法研究[D].南昌:南昌大學(xué),,2017.
[9] 張育鋒.三維數(shù)據(jù)點(diǎn)云的去噪及其檢測(cè)[D].南京:南京信息工程大學(xué),2014.
作者信息:
段清明,,王 凡,,徐琳琳,全文俊
(吉林大學(xué) 儀器科學(xué)與電氣工程學(xué)院,,吉林 長(zhǎng)春130012)