蔣玉林, 楊 炯, 梁 杰, 趙建國
(鄭州大學機械與動力工程學院, 鄭州 450001)
近年來,眾多學者們對計算機視覺領域不斷深入研究,基于激光測量技術的測繪方法和三維重建方法成了各行各業的熱門研究方向。隧道測量是其中一個重要的應用場景,為了提高測量效率和精度,一般利用車載激光雷達對隧道斷面進行多次掃描,建立整個隧道的三維立體模型,再對比分析實際數據與測量的誤差,從而獲得隧道的形變信息[1]。在三維重建領域,如何快速、準確地獲取目標物體的三維數字化模型是該領域的重要研究任務,學者們做了大量的研究,提出了多種重建方法,這些方法中使用的傳感器主要有兩種基于視覺傳感器[2]和激光雷達傳感器[3]。視覺傳感器主要獲取目標物體三維深度信息,但數據量大、處理復雜且精度低。激光雷達傳感器測量精度高,采集速度快,但是三維激光雷達價格昂貴,因此大量研究人員多以二維激光雷達為基礎,額外增加機械結構,以實現三維雷達的掃描功能。
Liu等[4]提出了利用移動設備上的RGB-D傳感器和慣性測量單元(inertial measurement unit,IMU)對動態場景進行掃描的方法,將輸入的深度圖像分割成靜態或動態,并將深度圖像集成到基于體素的表示中,實驗結果表明該方法動態場景重建效果好。陳穎等[5]以雙目相機和電動云臺搭建立體視覺系統,通過雙目相機獲取場景的點云信息,然后通過特征匹配和點云配準融合實現對室內全景的重建。由于視覺方法受環境影響較大,動態性低,而且容易產生累計誤差,所以精度較低。鄭道嶺[6]提出了一種基于多傳感器融合的重建方法,利用激光雷達獲取場景深度信息值,視覺進行運動估計和三維建圖,將兩者信息進行融合極大地提升了建圖性能,但是傳感器的標定和數據的融合變得十分困難。段清明等[7]使用2D激光雷達和數碼舵機配合搭建旋轉云臺作為三維數據采集裝置,該方法可以實現對掃描范圍和精度的控制,但是掃描范圍有限且全局坐標標定變得困難。
現主要針對廊道、隧道測量等工業應用,在前人的研究基礎之上,對現有方法進行改進,提出了一種基于單線激光雷達的數字重構系統。該系統以移動機器人為移動平臺,搭載單線激光雷達傳感器,實現三維雷達掃描功能,可以完成廊道環境的自動化數據采集和實時場景重構。為了保證數據采集精度,首先要解決移動機器人運動偏離的問題,本系統采用一種模糊PID閉環控制,對移動機器人實現精確控制。針對2D點云到3D點云轉換問題,提出了一種里程計數據和激光雷達傳感器數據融合的方法。最后通過MATLAB中的點云可視化模塊實現三維點云的可視化,完成廊道環境的數字重構。以廊道和管道為實驗場景進行自動化數據采集和數字重構,并與實驗場景進行對比。
本文中設計的數字重構系統硬件構成示意圖如圖1所示。系統可分為3個主要模塊:①雷達掃描模塊;②移動機器人控制模塊;③控制與數據采集單元模塊。雷達掃描模塊主要由一個單線激光雷達構成。移動機器人控制模塊是以Arduino mega單片機為主要核心的控制系統組成。控制與數據采集模塊通過串口將運動指令發送給單片機系統,單片機系統接收數據并運用下文中的運動學模型算法式(1)解算出各個輪子的轉速和方向,然后把解算數據以脈沖寬度調制(pulse width modulation,PWM)信號的形式發送給電機驅動器,控制電機轉速。電機、電機驅動器以及編碼器形成了一個閉環控制系統,其閉環控制的反饋量來自于4個編碼器測得的電機轉速。控制與數據采集單元模塊由一個小型筆記本電腦構成,搭載在移動機器人上。單片機和控制與數據采集單元模塊之間通過串口實現數據交流。主要任務包括:

圖1 系統硬件構成示意圖Fig.1 System hardware structure diagram
(1)接收控制與數據采集模塊發送的控制命令,如啟動、停止、速度反饋調節等等,單片機系統向控制與數據采集模塊實時發送由編碼器采集的機器人里程,發送頻率為100 ms/次,大于雷達掃描模塊轉動一圈的時間125 ms。
(2)控制與數據采集模塊采用多線程并行的方式,一個線程負責通過串口接收雷達采集到的角度距離值,另一線程不斷接收單片機系統發送的機器人里程計,將兩份數據同時存儲起來,這樣就得到每一幀激光雷達數據和該時刻對應的機器人位姿信息[8],最后使用坐標變換公式[式(2)]計算出所有激光點在三維空間中的坐標信息。
如圖2所示為數字重構系統處理過程流程圖,單片機系統接收編碼器獲取到的數據,并對其進行計算處理,得到4輪角速度信息,通過串口將數據上傳到控制與數據采集單元模塊進行運動解算,得出該時刻移動機器人的里程信息。上位機以多線程并存的方式運行,一個線程讀取單線激光雷達采集到的角度距離信息,另一線程接收單片機系統上傳的機器人里程計。控制與數據采集單元模塊接收激光雷達采集到的環境角度距離信息并以幀為最小單位存儲,里程計按照時間順序存儲容器中。將每一幀原始點云和與之對應的里程計值進行數據融合,并運用線性插值方法求解該幀點云中的所有數據點對應的里程計值,也就是將每一幀所有激光點轉換到里程計坐標系下,再把里程計坐標系下的所有激光點轉換到世界坐標系下,完成所有2D點云到3D點云的坐標轉換,最后進行場景合成實現廊道環境的數字重構。
2.1.1 機器人控制模塊運動學模型[9-10]分析

(1)
式(1)中:ω1、ω2、ω3、ω4為移動機器人4輪角速度;r為麥克納姆輪半徑;a為兩前輪輪心距離的1/2;b為前輪與后輪輪心距離的1/2;vx、vy分別為移動機器人在平面x、y方向上行駛的速度;ωz為移動機器人繞z軸的轉動角速度。
2.1.2 模糊PID控制器設計
移動機器人控制模塊采用基于參數分配器的模糊PID控制[11]對整個控制模塊形成雙閉環控制,其結構簡圖如圖3所示。

圖3 移動機器人控制模塊系統結構簡圖Fig.3 System structure diagram of mobile robot control module
首先控制與數據采集單元模塊以報文的形式將機器人的運動控制參數發送給單片機系統,單片機系統經過分析處理得到相應的控制參數vx、vy、ωz,然后使用式(1)計算得出機器人四輪轉動的角速度,傳送至PID控制器,PID控制器輸出規定的PWM控制信號,通過參數分配器將各輪轉速分配給與其對應的電機驅動器,進行PID調節控制,使各輪的轉速與預期速度保持一致。在電機轉動的同時,其尾部安裝的編碼器可以實時測得各輪轉速反饋到PID模糊控制器,通過模糊控制器對PID控制參數kp、ki、kd形成不斷的動態修正,對機器人控制模塊進行PID控制,整個控制過程形成了可以進行實時反饋的雙閉環控制系統,保證了機器人在數據采集過程中保持直線運動狀態,提高了數據采集的準確性。
因為單線激光雷達采集到的數據是極坐標[12]形式,所以就要把這些數據點轉換為直角坐標形式,設空間中點云坐標形式為(d,α,ρ),其中d為里程計傳感器獲得的當前激光點在水平方向的里程值,α為單線激光雷達當前的測量角度,ρ為當前激光點到雷達中心的距離,于是當前激光點的三維空間坐標為(x,y,z)。

(2)
數字重構系統在工作的狀態下,移動機器人控制模塊由車輪上的編碼器獲取里程計數據,雷達掃描模塊采集廊道環境豎直截面的角度距離信息,本文提出了一種里程計數據和激光雷達傳感器數據融合的方法[13]。假設知道激光雷達采集到的某一幀數據點的開始時刻和結束時刻分別為tm、tn,相鄰的兩束激光時間差值為Δt,單片機系統上傳的里程計數據根據時間的先后順序存儲到容器中,采集到的第一個里程計值的時間戳≤tm,最后一個里程計值的時間戳≥tn。數據融合的過程,就是將該幀的激光數據點中所有的激光點找到一個與之對應的里程計數值,也就是計算{tm,tm+Δt,…,tn}時刻系統對應的里程數值,按照里程計數據把采集到的所有數據點統一到世界坐標系下,最終實現了二維點云到三維點云的轉換,最后利用MATLAB中的點云可視化模塊[14]將坐標轉換后的三維點云顯示出來,實現環境的數字重構。
(1)計算tm、tn時間點機器人對應的里程計數值。如果里程計容器和雷達掃描模塊采集的數據剛好時間同步,設第i和第j個數據點對應的時刻分別為tm、tn,于是可以求出m、n時刻對應的里程計值,可計算得到
pm=DataContainer(i)
(3)
pn=DataContainer(j)
(4)
(2)里程計容器與雷達掃描模塊采集的數據不同步,可以設tm時刻里程計隊列中找不到與之對應的里程計值,那么我們就需要進行線性插值,假設在里程計容器中可以找到e、f時刻的里程值,且e pe=DataContainer(e) (5) pf=DataContainer(f) (6) (7) (8) (9) (4)已知pm、ps、pn,可以插值一條二次曲線,即 P(t)=At2+Bt+C,tm≤t≤tn (10) (5)接下來,用分段線性函數對二次曲線進行近似。如果分段數不低于3時,產生的誤差則可忽略。在tm、tn時間段內,共有K個位姿{pm,pm+1,…,pm+k-2,pn},每個數據點對應的里程值可以通過線性插值的方法計算。可以設在pm~pm+1范圍內共有N個里程數值,可以得到 (11) (6)每個激光數據對應的里程計值{p1,p2,…,pn}通過上述步驟插值得到,將所得到的數據代入式(2),計算出的數據點就是融合后的三維空間點云,最后重新封裝并發布出去。 數字重構系統的掃描頻率為8 Hz,即每秒重構出8個豎直的截面。雷達掃描模塊以2 000次/s的測距頻率工作,機器人的移動速度為3 m/s。 表1為實驗軟硬件詳細介紹。為了驗證本文設計搭建的數字重構系統的可靠性和穩定性,分別在兩種實驗環境中進行測試。 表1 實驗軟硬件詳細介紹 (1)實驗環境1為室外的管道,管道內壁的長寬高分別為2.38 m×0.72 m×0.72 m,其測試實驗場景如圖4(a)所示。 (2)實驗環境2為室內的走廊,廊道環境的長寬高分別為7 m×2.22 m×2.53 m,其測試實驗場景如圖4(c)所示。首先對數字重構系統進行啟動通電完成系統初始化,系統開始自動采集實驗環境的三維點云數據,再使用MATLAB軟件處理采集到數據點實現點云可視化,完成實驗場景的數字重構,最后與實際實驗場景進行對比。 數字重構系統在實驗環境1和實驗環境2下的重構結果分別如圖4(b)、圖4(d)所示。從圖中可以直觀地看出,實驗環境1的紋理信息重構清晰,實驗環境2中的門框、消防栓、燈等結構特征信息明顯,重構效果好。 圖4 實際實驗場景和數字重構結果Fig.4 Actual experimental scenario and digital reconstruction result 如圖表2所示,對比實驗場景原始數據和數字重構結果可以得出,本文設計的數字重構系統實現了兩種實驗場景的重構,數字重構的結果與實際數據進行比較,誤差在2~6 mm,重構特征明顯,精度高。 表2 實驗場景原始數據與重構結果對比 (1)基于單線激光雷達和移動機器人,設計了一個廊道環境的數字重構系統。系統以自行設計搭建的移動機器人為移動平臺,搭載單線激光雷達傳感器。介紹了系統軟硬件模塊,提出了一種里程計數據和激光雷達傳感器數據融合的方法,并詳細介紹了系統數字重構過程、移動機器人控制模塊、坐標轉換以及數據融合過程。 (2)通過實驗測試,結果表明,該系統可以實現對廊道環境的數字重構且能較為準確的重構出一般結構的幾何特征,重構特征明顯、重構精度高且穩定性強。




3 實驗結果
3.1 實驗條件

3.2 實驗結果分析


4 結 論