葉宏慶,薛錦茹,冀鵬哲
(華北理工大學(xué),河北 唐山 063210)
隨著機器人技術(shù)的發(fā)展,越來越多的機器人已經(jīng)實現(xiàn)自主運動,但可靠性和制作成本依然制約著機器人的普及。通過使用相較3D激光雷達傳感器成本更低的2D激光雷達和視覺傳感器進行點云數(shù)據(jù)融合,實現(xiàn)平臺搭建,優(yōu)化機器人的SLAM技術(shù),解決當(dāng)前2D激光雷達存在的感知單一平面點云數(shù)據(jù)不足、視覺傳感器數(shù)據(jù)計算量大等問題,提升地圖精度,減少SLAM應(yīng)用過程中的不確定性。
研究基于ROS構(gòu)建由2D激光雷達和深度相機點云融合的SLAM平臺,通過NVIDIA Jetson TX2運算平臺和STM32微控制器通信傳送數(shù)據(jù),實現(xiàn)機器人自主運動。實驗平臺包括點云數(shù)據(jù)識別部分和運動部分,整體結(jié)構(gòu)如圖1所示。
圖1 實驗平臺整體結(jié)構(gòu)
云數(shù)據(jù)識別部分包括激光雷達獲取平面點云數(shù)據(jù)和雙目相機深度點云計算。運行時激光雷達獲取2D平面內(nèi)障礙物點云信息,雙目相機獲取機器人正面范圍的影像,通過Stereo Matching計算可視范圍內(nèi)的深度點云數(shù)據(jù),并對其進行范圍剔除和距離篩選;最后將雙目相機獲得的點云與激光雷達點云序列進行比較更新,融合點云數(shù)據(jù)后根據(jù)占據(jù)柵格地圖算法構(gòu)建地圖。點云數(shù)據(jù)融合過程如圖1所示。
運動部分通過單片機STM32F4從NUC獲取運動速度向量或從遙控中獲取控制信息,經(jīng)PID解算將電流或電壓值發(fā)送給底盤電機,電機連接聯(lián)軸器帶動麥克納姆輪轉(zhuǎn)動,從而實現(xiàn)全方向移動。機器人整體設(shè)計如圖1所示。
圍繞ROS節(jié)點話題進行研究和測試。雙目相機點云生成節(jié)點(cameraNode),將相機點云(/camera_cloud)傳送給點云數(shù)據(jù)處理節(jié)點(/transNode)處理,得到深度數(shù)據(jù)(/depth);激光雷達點云生成節(jié)點,得到點云數(shù)據(jù)(/laser),二者由點云合成節(jié)點(/mergeNode)融合得到點云數(shù)據(jù)(/scan),再將其輸出到HectorMapping的節(jié)點。點云融合建圖部分ROS節(jié)點與話題如圖2所示。
圖2 點云融合建圖部分ROS節(jié)點與話題
使用金乾象工業(yè)相機中的兩個自制雙目深度相機,需要保證左右畫面的同步和亮度,否則會導(dǎo)致深度圖的計算結(jié)果不佳。因此,在相機點云生成(/camera_cloud)之前,需要對左右相機讀取的原圖像進行雙目校正和像素匹配。
雙目校正根據(jù)攝像頭標(biāo)定后獲得的單目內(nèi)參(焦距、成像原點、畸變系數(shù))和雙目相對位置關(guān)系(旋轉(zhuǎn)矩陣和平移向量),分別對左右視圖進行消除畸變和行對準(zhǔn),使得左右視圖的成像原點坐標(biāo)一致、攝像頭光軸與對極線行對齊。原圖像與校正后圖像對比情況如圖3所示。
圖3 原圖像與校正后圖像的對比
像素匹配通過匹配代價計算、代價聚合、視差計算和視差優(yōu)化等步驟,對左右視圖上對應(yīng)的像素點進行匹配得到視差圖。依靠視差圖,結(jié)合雙目相機的內(nèi)參,計算得到正交空間下的點云數(shù)據(jù)。
由于雙目相機參數(shù)的差異,幀速率不能完全同步,獲取的點云數(shù)據(jù)存在一定誤差,需要先通過點云數(shù)據(jù)處理節(jié)點(/transNode)變換和剔除數(shù)據(jù),再通過點云合成節(jié)點(/mergeNode)融合同種格式的數(shù)據(jù)。
正交空間下的點云通過透視除法的逆變換得到相機空間下的點云數(shù)據(jù),獲得相對于相機實際位置的坐標(biāo)。坐標(biāo)變換與效果如圖4所示。
圖4 坐標(biāo)變換與效果
數(shù)據(jù)轉(zhuǎn)換部分將點云投影到二維平面,并轉(zhuǎn)換為激光雷達點云格式的數(shù)據(jù),即角度和對應(yīng)方向的深度值。轉(zhuǎn)換時,通過反正切函數(shù),根據(jù)點云位置的水平偏移與深度值計算出角度和距離值,篩選取得各個角度上距離最近的點云,效果如圖5所示。在融合點云之前,應(yīng)當(dāng)剔除視錐內(nèi)不需要的部分,效果如圖5中截取點云后的投影圖所示;否則地面和天花板將對投影后的點云造成影響,效果如圖5中的原點云投影圖所示??紤]到雙目左右圖像的邊緣缺少完整的匹配信息,點云可能出現(xiàn)極不穩(wěn)定的深度值,效果如圖5中未進行邊緣剔除的投影圖所示。因此,在能夠反映完整深度值的情況下,剔除部分邊緣深度值,效果如圖5中邊緣剔除后的投影圖所示。
圖5 點云處理效果
點云合成節(jié)點將深度數(shù)據(jù)和激光雷達點云數(shù)據(jù)融合,并篩選出各個角度距離最近的點云輸出到HectorMapping的節(jié)點。
經(jīng)過測試,增加雙目相機后的建圖能夠獲取單線雷達掃描平面外的細節(jié),自身位姿估計和建圖結(jié)果更加精確,測試對比結(jié)果如圖6所示。但與工業(yè)級產(chǎn)品相比穩(wěn)定性差,建圖過程中會有微小偏差。
圖6 測試對比
本文通過激光雷達提供大范圍點云信息,視覺傳感器提供機器人正面區(qū)域補充激光雷達缺失的點云,較單線雷達大范圍稀疏點云提高了計算準(zhǔn)確度,使用Hector SLAM算法融合點云數(shù)據(jù),更好地實現(xiàn)機器人點云獲取和建圖。