本發明涉及智能檢測領域,特別是涉及一種障礙物檢測方法及系統。
背景技術:
現代機器人技術及無人駕駛技術發展迅速,隨著技術的不斷成熟,可自主導航及路徑規劃的機器人出現在人們的生活中。在享受機器人技術及無人駕駛技術帶來的便利、提高生產效率的同時,機器人與機器人之間、機器人與人之間、機器人與建筑物之間等碰撞事故時有發生,如何避免機器人的碰撞事故成為了人們重點關注的問題。因此,如何在機器人自主行動過程中去對所處環境中的各類障礙物進行檢測,成為解決碰撞事故的關鍵。常用障礙物檢測系統是基于單/雙目攝像頭、毫米波雷達等傳感器。
其中單目攝像頭檢測,是先通過圖像匹配進行目標識別(各種障礙等),再通過目標在圖像中的大小去估算目標距離,需要建立并不斷維護一個龐大的樣本特征數據庫,保證這個數據庫包含待識別目標的全部特征數據。而雙目攝像頭檢測,是通過對兩幅圖像視差的計算,直接對前方景物進行距離測量。無論單/雙目攝像頭都受環境影響較大,如環境的光暗狀況、陰影、溫濕度等的干擾,圖像會存在不同程度的失真,另外計算量大,對計算單元的性能及算法要求較高。相比于單/雙目攝像頭,毫米波雷達具有更高的精度及分辨率,探測范圍也更加廣泛,但其探測距離受到頻段損耗的直接制約,也無法感知行人,并且對周邊所有障礙物無法進行精準的建模。目前也存在一些多傳感器融合的檢測系統,但其同樣面臨著計算量大、受環境制約等問題。
技術實現要素:
本發明的目的是提供一種障礙物檢測方法及系統,以解決傳統檢測方法及系統中計算量大且受環境影響大的問題。
為實現上述目的,本發明提供了如下方案:
一種障礙物檢測方法,所述方法包括:
獲取n線激光雷達掃描得到的點云數據,所述點云數據豎直方向坐標不同、水平面上的投影為n條平行直線;
將所述點云數據劃分為q個區域,所述q個區域包括第1區域、第2區域至第q區域;
依次對所述第1區域的點云數據、所述第2區域的點云數據至所述第q區域的點云數據進行平面擬合,對應得到第1平面、第2平面至第q平面;
依次獲取所述第1區域的點云數據、所述第2區域的點云數據至所述第q區域的點云數據中的障礙物的坐標;
對所述障礙物的坐標數據進行體素化處理,得到動態障礙物的坐標集合和靜態障礙物的坐標集合。
可選的,所述將所述點云數據劃分為q個區域,具體包括:
將所述水平面上投影的n條直線中每連續m條直線對應的點云數據劃分為同一區域,依次得到第1區域、第2區域至第q區域;所述第1區域的點云數據包括所述n條直線中第1至m條直線對應的點云數據,所述第2區域的點云數據包括所述n條直線中第m至2m-1條直線對應的點云數據,所述第q區域的點云數據包括所述n條直線中第1+(q-1)(m-1)至1+q(m-1)條直線對應的點云數據。
可選的,所述依次對所述第1區域的點云數據、所述第2區域的點云數據至所述第q區域的點云數據進行平面擬合,對應得到第1平面、第2平面至第q平面,具體包括:
利用四分位差法構造門函數壓縮數據,確定第i區域點云數據的門上限和門下限;其中i=1,2,……,q;
根據所述第i區域點云數據的門上限和所述門下限確定所述第i區域點云數據更新后的區域,所述第i區域點云數據更新后的區域為所述上門限和所述下門限之間的點云數據區域;
根據所述第i區域點云數據更新后的區域,利用隨機抽樣一致性算法進行平面擬合,得到第i區域的初始平面;
當i=1時,將所述第i區域的初始平面確定為第i平面;
當i>1時,判斷第i區域的初始平面是否有效,得到第一判斷結果;
當所述第一判斷結果表示是時,確定所述第i區域的初始平面為第i平面;
當所述第一判斷結果表示否時,判斷第i+1區域的初始平面是否有效,得到第二判斷結果;
當所述第二判斷結果表示是時,確定所述第i+1區域的初始平面為第i平面。
可選的,所述利用四分位差法構造門函數壓縮數據,確定第i區域點云數據的門上限和門下限,具體包括:
確定所述第i區域點云數據的四分位差iqr=q75%-q25%;其中iqr表示所述第i區域中豎直方向坐標小于z75%且大于z25%的點云數據區域,其中豎直方向坐標z75%=z1+δz×75%,z25%=z1+δz×25%,z1為所述第i區域中點云數據中豎直方向坐標最小值,δz為所述第i區域中點云數據中數值方向坐標最大值與最小值的差值;
確定所述第i區域點云數據的門上限為qmax=q75%;
確定所述第i區域點云數據的門下限為qmin=q25%-0.5×(iqr)。
可選的,所述根據所述第i區域點云數據更新后的區域,利用隨機抽樣一致性算法進行平面擬合,得到第i區域的初始平面,具體包括:
在所述第i區域點云數據更新后的區域,利用三點的隨機抽樣一致性算法進行平面擬合,得到初始擬合后的平面;
判斷所述初始擬合后的平面內點數量是否大于設定閾值,得到第三判斷結果;
當所述第三判斷結果表示是時,將所述初始擬合后的平面確定為第i區域的初始平面;
當所述第三判斷結果表示否時,返回利用三點的隨機抽樣一致性算法進行平面擬合的步驟。
可選的,所述當i>1時,判斷第i區域的初始平面是否有效,得到第一判斷結果,具體包括:
利用公式
計算所述第i區域的初始平面與第i-1區域的初始平面之間的高度差δzi;
判斷是否角度差δψi小于角度設定閾值且高度差δzi小于高度設定閾值,得到第四判斷結果;
當所述第四判斷結果表示是時,確定所述第i區域的初始平面有效;
當所述第四判斷結果表示否時,確定所述第i區域的初始平面無效。
可選的,所述依次獲取所述第1區域點云數據、所述第2區域點云數據至所述第q區域點云數據中的障礙物的坐標,具體包括:
利用公式
判斷所述距離d是否大于距離設定閾值,得到第五判斷結果;
當所述第五判斷結果表示是時,確定所述點p是障礙物點;
獲取所述點p的坐標;
當所述第五判斷結果表示否時,確定所述點p不是障礙物點。
可選的,所述對所述障礙物的坐標數據進行體素化處理,得到動態障礙物的坐標集合和靜態障礙物的坐標集合,具體包括:
對第一時刻所述n線激光雷達掃描后得到的障礙物點,利用公式
對第二時刻所述n線激光雷達掃描后得到的障礙物點,利用公式
在所述第一體素化處理得到的體素和所述第二體素化處理得到的體素范圍內,判斷以所述
當所述第六判斷結果表示是時,確定所述障礙物點p2為動態障礙物;
當所述第六判斷結果表示否時,確定所述障礙物點p2為靜態障礙物;
獲得動態障礙物的坐標集合和靜態障礙物的坐標集合。
一種障礙物檢測系統,所述系統包括:
點云數據獲取模塊,用于獲取n線激光雷達掃描得到的點云數據,所述點云數據豎直方向坐標不同、水平面上的投影為n條平行直線;
區域劃分模塊,用于將所述點云數據劃分為q個區域,所述q個區域包括第1區域、第2區域至第q區域;
平面擬合模塊,用于依次對所述第1區域的點云數據、所述第2區域的點云數據至所述第q區域的點云數據進行平面擬合,對應得到第1平面、第2平面至第q平面;
障礙物坐標獲取模塊,用于依次獲取所述第1區域的點云數據、所述第2區域的點云數據至所述第q區域的點云數據中的障礙物的坐標;
體素化處理模塊,用于對所述障礙物的坐標數據進行體素化處理,得到動態障礙物的坐標集合和靜態障礙物的坐標集合。
可選的,所述體素化處理模塊具體包括:
第一體素化處理單元,用于對第一時刻所述n線激光雷達掃描后得到的障礙物點,利用公式
第二體素化處理單元,用于對第二時刻所述n線激光雷達掃描后得到的障礙物點,利用公式
占用值判斷單元,用于在所述第一體素化處理得到的體素和所述第二體素化處理得到的體素范圍內,判斷以所述
動態障礙物確定單元,用于當所述第六判斷結果表示是時,確定所述障礙物點p2為動態障礙物;
靜態障礙物確定單元,用于當所述第六判斷結果表示否時,確定所述障礙物點p2為靜態障礙物;
坐標集合獲得單元,用于獲得動態障礙物的坐標集合和靜態障礙物的坐標集合。
根據本發明提供的具體實施例,本發明公開了以下技術效果:以三維激光雷達為傳感器,通過分段平面擬合、路面分離、點云體素化幾個步驟,實現了三維點云數據的大規模壓縮,大大降低了數據處理量,并且不受環境限制;不僅可以檢測出環境中的障礙物,還進一步把環境劃分為三部分:路面區域(可行區域)、靜態障礙物區域、動態障礙物區域,為機器人的有效行為決策提供了更好的環境信息。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明障礙物檢測方法流程圖;
圖2為本發明障礙物檢測系統結構圖;
圖3為本發明障礙物檢測方法中激光雷達掃描示意圖;
圖4為本發明障礙物檢測方法中擬合平面示意圖;
圖5為本發明障礙物檢測方法中k時刻障礙物體素化處理后示意圖;
圖6為本發明障礙物檢測方法中k+1時刻障礙物體素化處理后示意圖;
圖7為本發明障礙物檢測方法中k+1時刻障礙物體素化處理后與k時刻結合后的示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發明作進一步詳細的說明。
圖1為本發明障礙物檢測方法流程圖。如圖1所示,所述方法包括:
步驟101:獲取點云數據。獲取n線激光雷達掃描得到的點云數據,所述點云數據豎直方向坐標不同、水平面上的投影為n條平行直線。具體可以采用十六線激光雷達,也可以用三十二線激光雷達,激光雷達掃描示意圖具體參見圖3。
步驟102:劃分點云數據。將所述點云數據劃分為q個區域,所述q個區域包括第1區域、第2區域至第q區域。具體的,將所述水平面上投影的n條直線中每連續m條直線對應的點云數據劃分為同一區域,依次得到第1區域、第2區域至第q區域;所述第1區域的點云數據包括所述n條直線中第1至m條直線對應的點云數據,所述第2區域的點云數據包括所述n條直線中第m至2m-1條直線對應的點云數據,所述第q區域的點云數據包括所述n條直線中第1+(q-1)(m-1)至1+q(m-1)條直線對應的點云數據。例如,采用十六線激光雷達掃描得到的點云數據,則獲得16條掃描線點云數據,可以將每3條掃描線的點云數據劃為一個區域,1-4條線的點云數據為參考區域,4-6條線的點云數據為第一區域,6-8條線的點云數據為第二區域,8-10條線的點云數據為第三區域……依次構成7個區域。
步驟103:進行平面擬合。依次對所述第1區域的點云數據、所述第2區域的點云數據至所述第q區域的點云數據進行平面擬合,對應得到第1平面、第2平面至第q平面。對于每一區域的點云數據進行平面擬合具體步驟為:
(1)使用四分位差法構造門函數壓縮數據并更新區域;
確定所述第i區域點云數據的四分位差iqr=q75%-q25%;其中iqr表示所述第i區域中豎直方向坐標小于z75%且大于z25%的點云數據區域,其中豎直方向坐標z75%=z1+δz×75%,z25%=z1+δz×25%,z1為所述第i區域中點云數據中豎直方向坐標最小值,δz為所述第i區域中點云數據中數值方向坐標最大值與最小值的差值;
確定所述第i區域點云數據的門上限為qmax=q75%;
確定所述第i區域點云數據的門下限為qmin=q25%-0.5×(iqr);
保留z∈(qmin,qmax)的點為更新后的區域。
(2)針對更新后的區域使用隨機抽樣一致算法從區域內隨機抽取三個點構造初始平面,當初始平面內點數量足夠多的時候(即初始平面內點數量大于設定閾值時),初始平面擬合成功并表示為:
aix+biy+ciz+di=0。
(3)依次構造所有區域內的平面,并驗證其有效性。
驗證構造的初始平面是否有效的方法為:計算相鄰平面的角度差及高度差,即利用公式
利用公式δzi=|zi-zi-1|計算第i區域的初始平面與第i-1區域的初始平面之間的高度差δzi;其中
當兩者均滿足閾值要求,則該平面有效;否則該平面無效,將其舍棄。例如將第2區域的初始平面舍棄后,第3區域擬合的初始平面的相鄰平面則為第1區域的初始平面。通過平面擬合獲得每個區域的代表平面,作為參考路面。
步驟104:獲得障礙物坐標。依次獲取所述第1區域的點云數據、所述第2區域的點云數據至所述第q區域的點云數據中的障礙物的坐標。采用計算各區域中平面外的點到平面的距離,將遠離平面的點確定為障礙物點,將接近平面的點確定為路面點。具體的,利用公式
步驟105:對障礙物坐標進行體素化處理。將所有非路面點即障礙物點進行體素化并根據每個體素內包含點的個數計算各自的占用值,將這一時刻數據作為模板儲存在數據存儲模塊內。使用同樣的方法處理下一時刻數據,得到若干個體素及占用值,將其映射到上一時刻得到的模板數據中進行對比處理。由于在任何時刻,同一障礙在體素內呈現相同的占用值,結合兩組數據遍歷每一個體素進行判斷,若在該體素的相鄰體素中具有與其相等的占用值,則該體素代表動態障礙物;若在該體素的相鄰體素中沒有與其相等的占用值,則該體素代表靜態障礙物。具體體素化示意圖參見圖5。體素化處理主要作用于非路面點即障礙物點,使其以體素的形式表現出來,計算體素內所含點的個數,記作體素的占用值。對比相鄰體素之間的占用值變化,從而檢測動、靜態障礙物得到動態障礙物的坐標集合和靜態障礙物的坐標集合。具體流程如下:
對第一時刻所述n線激光雷達掃描后得到的障礙物點,利用公式
對第二時刻所述n線激光雷達掃描后得到的障礙物點,利用公式
在所述第一體素化處理得到的體素和所述第二體素化處理得到的體素范圍內,判斷以體素
如果是,確定所述障礙物點p2為動態障礙物;
如果否,確定所述障礙物點p2為靜態障礙物。
步驟106:得到動態障礙物坐標集合和靜態障礙物坐標集合。根據步驟105確定的動態障礙物和靜態障礙物,依次獲得相應的坐標,構成動態障礙物坐標集合和靜態障礙物坐標集合,并結合步驟103獲得的平面,指示機器人合理規劃路線,避免碰撞。
圖2為本發明障礙物檢測系統結構圖。如圖2所示,所述系統包括:
點云數據獲取模塊201,用于獲取n線激光雷達掃描得到的點云數據,所述點云數據豎直方向坐標不同、水平面上的投影為n條平行直線;
區域劃分模塊202,用于將所述點云數據劃分為q個區域,所述q個區域包括第1區域、第2區域至第q區域;
平面擬合模塊203,用于依次對所述第1區域的點云數據、所述第2區域的點云數據至所述第q區域的點云數據進行平面擬合,對應得到第1平面、第2平面至第q平面;
障礙物坐標獲取模塊204,用于依次獲取所述第1區域的點云數據、所述第2區域的點云數據至所述第q區域的點云數據中的障礙物的坐標;
體素化處理模塊205,用于對所述障礙物的坐標數據進行體素化處理,得到動態障礙物的坐標集合和靜態障礙物的坐標集合。
所述系統的各模塊具體工作過程參見圖1中相應各步驟的說明。
圖3為本發明障礙物檢測方法中激光雷達掃描示意圖。以十六線激光雷達為例,將十六線激光雷達與處理計算機連接,各子系統經過初始化開始正常運行,十六線激光雷達通過dp83848網絡模塊以udp為傳輸協議,向處理計算機傳輸掃描得到的稠密點云數據。
如圖3所示,十六線三維激光雷達,共有十六個掃描平面,每兩個平面掃描之間的夾角δα為2°,在0到λ0的范圍內,雷達數據密集且精確度高,該區域作為參考區域。雷達被固定在距離地面高h處,有:
α0=arctan(λ0/h)
掃描區域被分割成λk-1個,每個區域的長度λk由下式給出:
λk=h·tan(α0+k·η·δα),(k:1,2,......,n),{k:1,…,n}
其中,
圖4為本發明障礙物檢測方法中擬合平面示意圖。如圖4所示,利用四分位差法構造門函數壓縮數據,方法為:
四分位差iqr=q75%-q25%;其中iqr為第i區域中豎直方向坐標小于z75%且大于z25%的點云數據區域,其中豎直方向坐標z75%=z1+δz×75%,z25%=z1+δz×25%,z1為所述第i區域中點云數據中豎直方向坐標最小值,δz為所述第i區域中點云數據中數值方向坐標最大值與最小值的差值;
確定第i區域點云數據的門上限為qmax=q75%;
確定第i區域點云數據的門下限為qmin=q25%-0.5×(iqr)
根據所述第i區域點云數據的門上限和所述門下限,保留z∈(qmin,qmax)的點為第i區域點云數據更新后的區域;
根據所述第i區域點云數據更新后的區域,利用三點的隨機抽樣一致性算法進行平面擬合,得到第i區域的初始平面aix+biy+ciz+di=0;
為驗證構造的初始平面是否有效,計算相鄰平面的角度差及高度差,即利用公式
利用公式δzi=|zi-zi-1|計算第i區域的初始平面與第i-1區域的初始平面之間的高度差δzi,
當兩者均滿足閾值要求,則該平面有效;否則該平面無效,將其舍棄。
圖5為本發明障礙物檢測方法中k時刻體素化處理示意圖。如圖5所示,在動、靜態障礙物檢測的過程中,認為隨著時間的改變及數據的積累,動態障礙會占據不同的體素并具有相同的占用值,靜態障礙物占據相同的體素。因此構造模板匹配機制。
對第k時刻激光雷達掃描后得到的障礙物點,利用公式
圖6為本發明障礙物檢測方法中k+1時刻障礙物體素化處理后示意圖。如圖6所示,對第k+1時刻激光雷達掃描后得到的障礙物點,利用公式
圖7為本發明障礙物檢測方法中k+1時刻障礙物體素化處理后與k時刻結合后的示意圖。將k+1時刻體素化后數據與k時刻數據結合,假設o1發生了運動,到達了o1’所在體素但其占用值不變,o2、o3未發生運動,還占據著相同的體素,如圖7所示。在第k時刻中,分別以o1’、o2、o3為中心體素,與其相鄰體素(設定閾值范圍內的體素)占用值作對比,若具有相同的占用值則該障礙為動態障礙并從模板中剔除,所有對比完成后更新模板,依次往下迭代。即:在第k時刻,與o1’相鄰并具有占用值的體素為o1及o3,o1’與o1具有相同的占用值,與o3相比具有不同的占用值,故o1為運動障礙物,將其從模板中剔除。更新后的模板即為圖6。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的系統而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用范圍上均會有改變之處。綜上所述,本說明書內容不應理解為對本發明的限制。