前言:本站為你精心整理了ROS機器人相機與激光雷達融合技術探究范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
摘要:為提高智能移動機器人的感知能力,針對智能機器人相機與激光雷達融合提出一種基于直線與平面擬合算法,并將其應用于ros智能移動機器人系統(tǒng)。基于PPB方法對相機圖像進行畸變校正獲得角點的二維坐標,采用點云反射強度(PCI)的方法獲得角點的三維坐標。通過解決N點透視位姿求解問題(PNP問題)的方法來獲得三維坐標與二維坐標之間的變換,變換后完成相機與激光雷達的點云融合。將激光雷達與深度相機安裝與機器人頂部并通過比較選擇ORB算法作為機器人的SLAM方式,實驗結果表明融合后機器人能夠更有效地識別小體積障礙物,具有一定的應用前景。
關鍵詞:ROS系統(tǒng);深度相機;激光雷達;融合
0引言
隨著科學技術的發(fā)展,機器人技術已廣泛應用于各個行業(yè)。相較于用于傳統(tǒng)工業(yè)的機器人,機器人領域的研究重點已經(jīng)轉移到了智能移動機器人上,智能移動機器人的應用變得愈加廣泛,并能完成一部分人類的工作[1]。本文使用ROS系統(tǒng),ROS設計的主要目的是提高機器人研發(fā)中的代碼重用度,是一個分層架構。盡管ROS系統(tǒng)仍然存在一些缺點,但是對其系統(tǒng)體系結構的研究將對機器人的整體開發(fā)和設計帶來很大的幫助[2]。在智能移動機器人系統(tǒng)中,如何使用傳感器對獲得的數(shù)據(jù)進行更精確的映射,定位,感知和導航變得十分重要。自主移動機器人的傳感器技術是指通過攝像頭,激光雷達,毫米波雷達,超聲波雷達等傳感器與外界環(huán)境交互[3]。一種傳感器必定存在其自身的缺點,必須采取有效措施來杜絕其缺點,以便于機器人更好地完成環(huán)境感知的任務。
1系統(tǒng)方案及部分模塊選型
移動機器人可以自主導航也可以接受上位機控制移動,并在未知環(huán)境中實時構建地圖,移動機器人機箱中攜帶的微計算機和5G模塊,機器人使用5G信號從本地計算機接收控制命令,進而通過決策層微控制器配備的Ubuntu操作系統(tǒng)攜帶的ROS框架,以計算每種算法并規(guī)劃路徑,并控制中間層(MCU),控制板卡將PWM擴展到驅動電機以使其旋轉,完成機器人的移動并在測試場景中前進、后退、轉彎等。通過激光雷達和深度相機傳感器獲取未知的環(huán)境信息和數(shù)據(jù),最后由決策層的軟件系統(tǒng)獲取的環(huán)境數(shù)據(jù)進行處理,進一步進行路線軌跡,自主導航,地圖構建和地圖更新避障等操作。該移動機器人的硬件系統(tǒng)由三部分組成。第一部分是底層,主要由電源、電機和各種傳感器組成。第二部分是中間層,中間層以MCU為主要控制器控制下層單元,并與上層交互。第三部分是上層,NVIDIAJESTONNANO嵌入式智能開發(fā)板,可以接收下面的數(shù)據(jù)并發(fā)送控制命令,并實現(xiàn)人機交互。系統(tǒng)結構示意圖如圖1所示。上層部分主控模塊選用英偉達JETSONNANO嵌入式智能開發(fā)板,激光雷達選擇RPLIDARA3激光雷達掃描測距儀,深度相機選擇英特爾IntelRealSense雙目深度攝像頭。
2相機與激光雷達數(shù)據(jù)融合
當前,多源傳感器的融合[4]是無人駕駛環(huán)境傳感的研究重點,必要將激光雷達和攝像頭融合起來,利用它們各自的優(yōu)勢互相促進以改善系統(tǒng)環(huán)境感知的能力。相機數(shù)據(jù)和激光雷達數(shù)據(jù)的提取和矯正是進一步融合兩個傳感器的重要前提。
2.1相機圖像角點提取
采取多邊形平面板的方法,簡稱為PPB方法[5]來提取角點,在提取角度點的過程中,拍攝圖像并校正失真后,手動調整像素位置以直接選擇拐角點,對于角點標記的位置,程序會準確讀取角點坐標。
2.2激光雷達點云數(shù)據(jù)的提取
采用測量點云反射強度的方法來解決激光雷達點云數(shù)據(jù)的角點提取問題,激光雷達角點提取示意圖如圖2所示。為了確定獲得的邊緣點之間互相的位置關系,可以使用點云數(shù)據(jù)精確地讀取每個點,并且可以使用該點的3D坐標值計算其所屬的激光束的俯仰角,從而可以計算該點所屬的激光線的條數(shù)。假設所獲得的3D點云數(shù)據(jù)中的一個點P=(x,y,z),計算線束n的方法如下:式中:Angle——激光線束的一個俯仰角且是由點的三維坐標所求得;gene——比例因子且為一固定的數(shù)值;n−所要求取的點P所位于的激光線束的條數(shù)??梢郧蟪雒織l激光線點云上與標定平面的交點或者距離平面幾何距離最小的點,并且可以獲得這些點的擬合直線,以獲得每個邊緣三維空間中的通用表達式。最后分別處理四個邊緣,并獲得3D空間中兩條相鄰線的交點,即校準板和相機的對應四個角,傳統(tǒng)的方程組方法不一定能夠求得所需要的角點坐標,且由于調整后的直線不一定是空間中的共面直線因此需要使用別的方法來計算出所需的角點坐標。
2.3直線與平面擬合算法
為了能夠求出激光雷達數(shù)據(jù)的角點坐標,提出了一種直線與平面擬合的算法,具體方法如下:p1=(x1,y1,z1)p2=(x2,y2,z2)L1p3=(x3,y3,z3)p4=(x4,y4,z4)L2知道空間直線的一般方程的情況下,設點和點為直線上的兩點,點和點為直線上的兩點,則兩直線對應的方向向量分別表示為:a=p2−p1,b=p4−p3(3)此時可以求得同時垂直于直線L1和L2的法向量:c=a×b(4)L1P1L1根據(jù)空間解析幾何的原理可知,一條直線與直線外一點可以確定一個平面,所以借助直線上一個任意的點與直線的法向量c可以構造一個同時過直線和向量c的平面,記作:A1(x−x1)+B1(y−y1)+C1(z−z1)+D1=0(5)L2Q1Q1=(X1,Y1,Z1)L2L2p3L2通過式(5)所確定的平面與聯(lián)立一個線性方程組,可以求得一點,記作,該點則為平面與的交點。同樣的思想可以由直線上的一點與法向量c可以構造一個同時過直線和向量c的平面,記作:A2(x−x3)+B2(y−y3)+C3(z−z3)+D2=0(6)L1Q2Q2=(X2,Y2,Z2)L1L1L2Q1Q2通過式(6)所確定的平面與聯(lián)立一個線性方程組,可以求得一點,記作,則該點為平面與的交點。由于與為兩條互相異面的直線,則通過擬合所得到的直線交點估算為上面所求得的與的坐標平均值。
2.43D與2D投影的求解方法
在知道角點的3D與2D坐標之后,可以使用求解PNP問題的方法來求取它們之間的變換。在軟件OpenCV3.4中,用solvePNP迭代法求解32[X0,Y0,Z0,1]T[x,y,1]T維到維的轉換中,設空間中的點為,二維圖像上的對應點為,則三維點變換到二維點的求解原理為公式為:f1、f2、u0、v0X0,Y0,Z0,x,y其中,是可以從相機參數(shù)中讀到的固定系數(shù),那么才這個變換中就有R11、R12、R13、R21、R22、R23、R31、R32、R33、T1、T2、T3共12個未知數(shù),角點的2D和3D結構提供了由確定的兩個方程。從數(shù)學方程式基本求解性質上可以得知6個未知數(shù)需要6個方程式聯(lián)立求解,具體算法流程圖如圖3所示。
2.5路徑規(guī)劃
本文在楊博等人[6]為了保障機器人安全的研究基礎上采用A*算法將機器人SLAM構建出的地圖簡化成柵格地圖,地圖中的每一個柵格用0或1表示其特定的信息。若柵格的數(shù)值為1,則代表該區(qū)域可以通過;若柵格的數(shù)值為0,則代表該區(qū)域存在障礙物,機器人無法通過該單元格。在地圖中設置起點和終點,則機器人會找出從起點柵格到終點柵格將要經(jīng)過的所有可以通過的柵格,這些柵格就是機器人起點到終點的行駛路徑。在A*算法中,搜索移動機器人當前位置所在位置的周圍節(jié)點,計算從起始點至當前位置周圍節(jié)點的實際值與該節(jié)點至目標位置和的最小值節(jié)點,將該節(jié)點作為機器人下一步運行方向。繼續(xù)重復進行上述過程,直到移動機器人到達目標位置,從而獲得從起始位置到目標位置的最終路徑[7]。
3實驗結果與分析
實驗使用基于ROS平臺的移動機器人。將激光雷達與深度相機安裝于機器人的頂端并且通過USB接口與決策層連接,采集到的數(shù)據(jù)直接由英偉達JETSONNANO嵌入式智能開發(fā)板的主處理器進行處理,使得機器人可以獨立進行環(huán)境感知。
3.1SLAM方法選擇
Gmapping在本文中,構建了包含小障礙物的精確地圖,以提高檢測小障礙物的能力。使用Gmapping算法通過融合傳感器數(shù)據(jù)來構建地圖,該方法是一種有效的Rao-Blackwellized粒子濾波算法,并且網(wǎng)格地圖是由傳感器使用該算法從周圍環(huán)境中獲取的數(shù)據(jù)構建而來。在SLAM中使用此粒子過濾時,每個粒子點代表一個單獨的環(huán)境圖[8]。找到什么樣的方法來減少粒子的數(shù)量成為了問題的關鍵,為了減少粒子數(shù)量,有算法的研究人員提出了幾種算法包括ORB算法、SURF算法以及SIFT算法[9],通過對比算法平均匹配運行時間選出平均匹配時間最短的方法來進行接下來的數(shù)據(jù)融合實驗,實驗結果如表1所示。通過表1可以看出本實驗中ORB算法所用的運行總時間以及平均匹配時間均少于另外兩種算法且精度也能達到要求,因此將使用ORB算法進行slam地圖構建。
3.2數(shù)據(jù)融合實驗
單線激光雷達無法掃描障礙物,此外還會嚴重影響移動機器人的地圖構建和導航避障,因此將融合單線激光和深度攝像頭的信息來構建地圖,該軟件平臺為ROS。首先,使用ROS中的PCL庫將深度相機的3D點云數(shù)據(jù)轉換為2D點云數(shù)據(jù),并將單線激光雷達中的Laserscan數(shù)據(jù)類型轉換為2D點云,然后使用修改過的IRA工具包源代碼的Laser部分,使用它來合并深度相機和激光雷達數(shù)據(jù),生成虛擬傳感器,然后轉換虛擬傳感器坐標,最后將融合到的數(shù)據(jù)流放入Gmapping包中。如圖4所示的實驗場景及其前后的結果,在融合之前無法用單線激光雷達在實驗場景中檢測到障礙物,融合后可以準確地檢測出低障礙物。
4結束語
Rao-Blackwellized為了使智能移動機器人能夠更好的進行環(huán)境識別,結合PNP問題求解方法,提出了一種基于直線與平面擬合的算法,完成了相機與激光雷達的融合。在實驗過程中采用Gmapping算法來構建網(wǎng)格地圖,大大地減少了粒子濾波的粒子數(shù)量,通過實驗選擇了Gmapping方法中運行時間較短且算法精度較高的ORB算法進行slam,數(shù)據(jù)融合后成功地識別了較小障礙物,更好地完成了機器人的環(huán)境識別任務,具有一定的應用前景。
作者:張青春 何孝慈 姚勝 郭振久 單位:淮陰工學院自動化學院