基于Kinect傳感器深度圖機器人工作環境不確定性地圖構建法
【技術領域】 [0001] :本發明涉及一種基于Kinect傳感器深度圖的機器人工作環境不確定性 地圖構建方法。本發明實現了機器人通過對周圍環境的檢測并形成不確定性地圖,可以為 機器人完成避障、導航、路徑規劃等其他任務提供了前提和條件。
[0002]
【背景技術】:構建地圖是移動機器人學研究的核心內容之一,其目的是通過對地圖 的構建可以更好的表現周圍的環境信息,更有利于機器人識別環境信息以便于后續的工 作。目前對機器人建立環境地圖的方法有很多,基于激光傳感器的環境地圖構建方法存在 著傳感器價格過高,性價比低等缺點;基于超聲傳感器的環境地圖構建方法存在著獲取的 環境信息比較粗糙,精度低等缺點;基于視覺傳感器的環境地圖構建方法存在著計算復雜, 較難實現等缺點。本發明使用的傳感器是Kinect,它是微軟公司在2010年推出的一種新的 傳感器,它不但能獲取環境的光學圖像還能獲取光學圖像上物體的位置信息,其獲取的信 息量豐富,環境適應性好、結構簡單、實時性強并且價格低廉,因此可以成為機器人環境感 知的一種有利工具。Kinect傳感器通過彩色攝像頭和深度攝像頭來采集室內環境的3維信 息,通過輸出一個RGB圖像和紅外深度圖像來確定環境中每一個點的顏色信息和深度信息。 本發明所建立的地圖為柵格地圖。柵格地圖是將環境離散化為一系列的柵格,每個柵格都 有一種狀態。Kinect傳感器存在著隨著距離的增大所檢測到的深度距離誤差會變大的特 點,因此所檢測到柵格存在的障礙物也存在著不確定性。最后得到的地圖即為不確定性的 柵格地圖。
【發明內容】
:
[0003] 發明目的:本發明提供一種基于Kinect傳感器深度圖的機器人工作環境不確定性 地圖構建方法,其目的在于實現對周圍環境的檢測并構建出地圖以便于機器人的后續工 作。
[0004] 技術方案:本發明是通過以下技術方案實施的:
[0005] 1. -種基于Kinect傳感器深度圖的機器人工作環境不確定性地圖構建方法:其特 征在于:該方法包括有以下步驟:
[0006] 步驟(1):機器人使用Kinect傳感器采集深度數據;
[0007] 步驟(2):對采集的深度數據進行預處理,得到深度數據圖;
[0008] 步驟(3):采集地面深度數據并進行地面模型提取;
[0009] 步驟(4):對深度數據圖進行地面模型剪切處理得到障礙物深度圖,再對原深度數 據圖與障礙物深度圖進行剪切處理得到地面深度圖;
[0010] 步驟(5):對障礙物深度圖進行檢測并識別障礙區域,對地面深度圖進行檢測并識 別空閑區域,對障礙區和空閑區分析形成不確定性柵格地圖;
[0011] 步驟(6)對障礙區和空閑區分析形成機器人工作環境的不確定性柵格地圖。
[0012] 所述步驟(3)對于地面模型的提取采用的方法是在一個空曠無障礙物的環境下采 集深度圖,根據Kinect的成像原理,可以得知深度圖像具有以下性質:(1)與圖像的特征無 關,只與距離有關。(2)灰度值變化方向與Kinect深度相機所拍攝的視場方向z軸方向一致, 而且隨著距離的增加灰度值會變大。所以檢測到與Kinect距離相同的地面的深度信息是相 同的。設定Kinect傳感器與地面相對高度和俯仰角不變的條件下,在一個空曠無障礙物的 環境下采集深度圖,當距離超過一定閾值后Kinect已檢測不到前方的地面數據,所以只取 Kinect能檢測到的地面數據,其他地方都視為無效數據記為0;由于Kinect傳感器本身性能 的限制,其對于近處地面信息采集的比較好,遠處比較差,越近的地方采集到的數據越完 整,而遠處采集到的數據不完整且誤差較大,所以還要對其進行處理;深度圖像每一行記錄 了與Kinect相同距離下的地面深度信息,對其進行行掃描記錄每一行的深度信息,除去無 效數據的深度信息,對剩下的數據進行加權平均所得到的最后數據即為該處的地面深度信 息;處理好每一行的數據記錄下并生成一個地面模型模板;這樣就得到一個地面模型;將地 面模型中的數據保存在程序根目錄下。
[0013] 所述步驟(5)地圖的區域分為空閑區,障礙區和未知區。空閑區設為所檢測到的地 面區域,障礙區設為所檢測到有障礙物的區域,未知區域設為除了地面和障礙物的其他區 域。用結構體來記錄柵格信息。其中包括柵格的狀態標識,柵格的置信度,柵格的顏色。具體 操作包括如下步驟:
[0014] (1)空閑區域檢測算法:將Kinect采集到的深度數據和所得到的地面深度數據進 行比較,若地面深度數據和采集到的深度數據之差小于一定閾值則保存地面深度數據,否 則將數據置為0。所得到的為地面深度信息,將其映射到世界坐標系下并記錄所占用的柵格 信息。
[0015] (2)障礙區域檢測算法:將Kinect采集到的深度數據和所得到的地面深度數據進 行比較,若地面深度數據和采集到的深度數據之差小于一定閾值則將數據置為0,否則保留 采集到的深度數據。所得到的為障礙物深度信息,將其進行深度數據列掃描分析后映射到 世界坐標系下并記錄所占用的柵格信息。
[0016] 通過Kinect傳感器采集深度數據的特性以及障礙物置信度確定模型分析得出確 定障礙物置信度的公式。得到不確定性柵格地圖。
[0017] 優點及效果:
[0018] 本發明使用Kinect傳感器實現局部柵格地圖的構建工作,將環境分為三部分空閑 區,障礙區和未知區;機器人可以在空閑區運動,無法在障礙區運動,對應未知區需要重新 檢測。與視覺傳感器相比,本發明不但能獲取環境的顏色信息還能獲取距離信息,可以更好 的構建地圖;與超聲傳感器相比,本發明獲得的環境信息更加精細,精度更高;與激光傳感 器相比,本發明所檢測的范圍更大,并能獲得三維信息,同時性價比也更高。
[0019] 本發明對Kinect傳感器所采集到的深度圖進行地面模型剪切處理去除了地面對 障礙物檢測的影響,通過對障礙物深度圖的列掃描法,實現了對障礙物的快速檢測;根據 Kinect傳感器自身的局限,建立障礙物柵格置信度模型確定柵格障礙物置信度,實現了柵 格的不確定性建立,使得地圖的建立更加精確。最終本發明可以準確的檢測出周圍環境并 建立不確定性柵格地圖,為機器人完成避障、導航、路徑規劃等其他任務提供了前提和條 件。
【附圖說明】:
[0020] 圖1為原始地面深度圖;
[0021] 圖2為處理后的地面深度圖;
[0022] 圖3為原始深度圖;
[0023] 圖4為剪切完地面模型后的障礙物深度圖;
[0024] 圖5為剪切完障礙物后的地面深度圖 [0025]圖6為障礙物分布坐標系
[0026]圖7為不確定性柵格地圖
[0027]圖8為障礙物置信度確定模型
[0028]【具體實施方式】:下面結合附圖對本發明加以具體描述:
[0029]本發明一種基于Kinect傳感器深度圖的機器人工作環境不確定性地圖構建方法, 包括如下步驟:
[0030] 步驟一:機器人使用Kinect傳感器采集深度數據。該步驟使用Kinect傳感器,將采 集到的深度數據存在一維數組中用于接下來的處理。
[0031] 步驟二:對采集的深度數據進行預處理,得到深度數據圖。本發明首先需要將深度 信息映射到顏色信息以便于圖像顯示,經實驗測試得出Kinect所能檢測到有效距離為10米 之內,所以將〇到10米映射到〇到255之間,即將距離映射到顏色從而實現深度圖的顯示。得 到深度信息顏色圖。如圖3所示。
[0032]步驟三:采集地面深度數據并進行地面模型提取,由于Kinect采集的深度信息只 與距離有關,所以與Kinect距離相同的地面的深度信息應該是相同的。那么就可以提取地 面信息作為一個模板。
[0033] 在此步驟中,本發明采用的方法是在一個空曠無障礙物的環境下采集深度圖,根 據Kinect的成像原理,可以得知深度圖像具有以下性質:(1)與圖像的特征無關,只與距離 有關。(2)灰度值變化方向與Kinect深度相機所拍攝的視場方向z軸方向一致,而且隨著距 離的增加灰度值會變大。所以檢測到與Kinect距離相同的地面的深度信息是相同的。設定 Kinect傳感器與地面相對高度和俯仰角不變的條件下,在一個空曠無障礙物的環境下采集 深度圖,當距離超過一定閾值后Kinect已檢測不到前方的地面數據,所以只取Kinect能檢 測到的地面數據,其他地方都視為無效數據記為0。由于Kinect傳感器本身性能的限制,其 對于近處地面信息采集的比較好,遠處比較差,越近的地方采集到的數據越完整,而遠處采 集到的數據不完整且誤差較大,所以還要對其進行處理。深度圖像每一行記錄了與Kinect 相同距離下的地面深度信息,對其進行行掃描記錄每一行的深度信息,除去檢測到為0的深 度信息,對剩下的數據進行加權平均所得到的最后數據即為該處的地面深度信息。處理好 每一行的數據記錄下并生成一個地面模型模板,這樣就可以得到一個地面模型。地面模型 中的數據保存在程序根目錄下。原始地面深度圖如圖1所示,處理好的地面模型深度圖如圖 2所示。
[0034] 步驟四:對深度圖進行障礙物剪切得到地面深度圖,對障礙物深度圖進行檢測并 識別障礙區域,對地面深度圖進行檢測并識別空閑區域,對障礙區和空閑區分析形成不確 定性柵格地圖。
[0035]障礙區域檢測算法:
[0036]障礙物區域檢測算法具體的實現步驟如下:
[0037] (1)將Kinect采集到的深度數據與所得到的地面深度數據進行比較,若地面深度 數據和采集到的深度數據之差小于一定閾值則將數據置為〇,否則保留采集到的深度數據。 得到障礙物深度數據圖4所示。
[0038] (2)對得到的深度圖用掃描法進行列掃描,以第一列為例:當掃到第一個非0數字 時,記錄該數字為第一個障礙物的種子點,當掃到第二個非0數字時,和第一個比較,若兩者 之差小于一定的閾值則兩者合并為一個種子點,取兩者的平均值為新的種子點。若兩者之 差超過一定的閾值則記錄后者為新的種子點。直到掃描完一列為止。以結構體來記錄每一 列的障礙物信息,其中包括障礙物的個數,障礙物的距離,障礙物所包含的像素點的個數, 障礙物頂端坐標,障礙物底端坐標。
[0039] (3)不斷重復步驟2得到所有列的所有不同的障礙物的各項信息,對不同的障礙物 進行判斷,除去障礙物所包含的像素點的個數小于一定閾值的所有障礙物。
[0040] (4)根據步驟3可以得到一個橫坐標為圖像的像素點位置,縱坐標為實際距離的坐 標系。坐標系中每一個點代表障礙物。結果如圖6所;^。
[0041] (5)根據步驟4得到的坐標