一種基于Kinect的移動機器人避障方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及移動機器人技術(shù)領(lǐng)域,更具體地,涉及一種基于Kinect的移動機器人 避障方法。
【背景技術(shù)】
[0002] 智能移動機器人技術(shù)是機器人學(xué)中的一個重要分支,是一項有著廣闊應(yīng)用前景的 高新技術(shù),它在工業(yè)自動化、軍事、農(nóng)業(yè)、建筑、醫(yī)療、家居等諸多領(lǐng)域均有廣泛的應(yīng)用。在智 能車的眾多功能中,避障是最基礎(chǔ)、最低層次的功能,只有機器人能夠在環(huán)境中自主行走, 其他高級功能才能夠被安全的加入系統(tǒng)。在移動機器人避障中,室內(nèi)環(huán)境中的障礙物規(guī)避 是其中一個重要課題。移動機器人在室內(nèi)行走時,可能遇到的障礙物場景很多,如桌子、椅 子、門口、墻壁、樓梯、走廊、吊燈、柜子等等,目前,對于適用于多個場景的未知環(huán)境機器人 自主導(dǎo)航還沒有有效的解決方案。
[0003] 識別出障礙物特征后必須選擇合適的避障策略使得移動機器人能夠?qū)崟r有效的 避開障礙物。在眾多局部路徑規(guī)劃算法中,人工勢場法由于其實現(xiàn)簡單、實時性好、不需要 預(yù)先知道障礙物信息、避障路徑比較平滑等優(yōu)點而得到廣泛應(yīng)用。人工勢場法的基本原理 是把移動機器人在環(huán)境中的運動視為一種在抽象的人造受力場中的運動,目標(biāo)點對移動機 器人有"吸引力",引力大小隨二者間距離減小而減小,一定范圍內(nèi)的障礙物對移動機器人 有"排斥力",斥力大小隨二者間距離減小而增大,最后通過合力來控制移動機器人的運動, 其目標(biāo)是使移動機器人能夠遠(yuǎn)離障礙到達目標(biāo)點。人工勢場法的主要缺陷在于復(fù)雜場景中 或某些特殊場景下容易出現(xiàn)局部最小點、振蕩等問題,導(dǎo)致避障失敗。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明為克服上述現(xiàn)有技術(shù)所述的至少一種缺陷,提供一種基于Kinect的移動機 器人避障方法。為未知室內(nèi)環(huán)境中智能移動機器人的實時避障提供了一種適應(yīng)性強、實時 性好、路徑較為平滑的解決方案。
[0005] 為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案如下:
[0006] -種基于Kinect的移動機器人避障方法,所述方法包括以下步驟:
[0007] S1:假設(shè)地面大致平坦,在開始避障前,采用Kinect傳感器的深度攝像頭獲取無障 礙物的深度圖,提取地面平面方程;
[0008] S2:采用Kinect傳感器的深度攝像頭獲取機器人前方的深度圖;
[0009] S3:根據(jù)獲取的機器人前方的深度圖,估計障礙物的尺寸并識別障礙物的類型; [001 0] S4:根據(jù)不同障礙物場景確定對應(yīng)的避障策略。
[0011] 在一種優(yōu)選的方案中,步驟S1中,提取地面平面方程具體包括以下步驟:
[0012] SI. 1 :Kinect傳感器的深度攝像頭讀取清除障礙物的深度圖作為地面幀;
[0013] S1.2:使用Kinect深度攝像頭標(biāo)定后的內(nèi)參,將深度圖轉(zhuǎn)化為以Kinect攝像頭中 心點為原點的攝像頭坐標(biāo)系中的點云,對點云使用RANSAC算法提取出擬合平面,即得到地 面平面方程。
[0014] 在一種優(yōu)選的方案中,步驟S1中,所述RANSAC算法的基本步驟是:隨機選擇深度圖 中的3個點平面ax+by+cz+d = 0,檢查剩余的點到平面的距離是否小于預(yù)設(shè)的閾值A(chǔ),這里設(shè) A為0.005m,若小于閾值A(chǔ)則認(rèn)為該點在平面上,計算符合平面方程的點的個數(shù);重復(fù)上一步 驟,直到符合平面方程的點的個數(shù)大于預(yù)設(shè)的閾值B,即得到平面方程a X+by+cz+d = 0。
[0015] 在一種優(yōu)選的方案中,步驟S3中,根據(jù)障礙物的特點,障礙物分為以下幾類:
[0016] 第1類:高于機器人的障礙物;如吊燈、桌子的桌面部分等,該類障礙物不影響機器 人運動,需要被去除;
[0017] 第2類:下陷障礙物,如下行的樓梯;
[0018]第3類:無法繞過去的障礙物,如正對的墻壁、轉(zhuǎn)角等;
[0019] 第4類:左右對立的障礙物,如去除較高部分的門口、桌子;
[0020] 第5類:走廊,即一側(cè)是墻壁的情形;
[0021] 第6類:過近的障礙物,如機器人剛開始運動或由于轉(zhuǎn)向或動態(tài)障礙物而導(dǎo)致突然 出現(xiàn)的過近障礙物;
[0022 ]第7類:其他普通障礙物,如椅子、垃圾桶、柜子等。
[0023]在一種優(yōu)選的方案中,步驟S3中,識別障礙物類型的具體方法包括以下步驟:
[0024] S3.1 :識別第6類障礙物:計算有效點占比τ3 =有效點個數(shù)/(640*480),若τ3<某一 常數(shù)a,即點云中有效點過少,這可能是機器人剛開始運動或轉(zhuǎn)向時突然遇到過近的障礙 物,導(dǎo)致不在機器人可視范圍內(nèi)的點過多,即判斷為第6類障礙物,此時機器人應(yīng)停止運動;
[0025] S3.2:識別第1類、第2類障礙物:在機器人開始運動后,每次獲取深度圖后,轉(zhuǎn)化為 點云并計算各點到地面平面間距離hi,去除hl<0.08m的點即地面點,機器人高度約為 0.42m,則去除hi >0.5m的障礙物即第1類障礙物,對于第2類障礙物,hi >0.08m,可直接當(dāng) 作普通障礙物處理;
[0026] S3.3 :識別第5類障礙物:對剩余點云使用RANSAC算法提取平面,計算內(nèi)點占比^ =平面內(nèi)點個數(shù)/點云總個數(shù),若某一常數(shù)b,且獲得的平面法向量與地面平面法向量 大致正交(夾角與90°相差小于一定范圍),則認(rèn)為當(dāng)前障礙物為一面墻壁,即判斷為第5類 障礙物;
[0027] S3.4聚類分割并識別第3類、第4類障礙物:聚類分割的基本原理是通過體積生長 過程,對剩余點云進行分組,將與相鄰集群之間距離小于預(yù)設(shè)的閾值C的點組成一類,使得 同一類中不能分出更多個小的聚類,且兩個不同聚類之間的最小距離大于該閾值;該過程 的主要目的是保證同一物體不會被分為多個聚類,同時相距較近的物體合為一個聚類,從 而減少障礙物的個數(shù),簡化計算,更重要的是,之后計算避障速度時不需要考慮兩障礙物之 間的距離是否能夠通過,從而解決了左右對立的障礙物情形下人工勢場法出現(xiàn)問題的情 況。對于每個聚類,計算出其最左邊、最右邊和最近的點來代表該聚類;
[0028] 當(dāng)聚類個數(shù)為1時,根據(jù)障礙物的左右邊界計算障礙物橫向?qū)挾?,判斷是否為? 類障礙物,若是,則判斷聚類中具有最小深度的點在機器人的左邊還是右邊,使機器人向最 小深度更大的方向轉(zhuǎn)向;
[0029] 當(dāng)聚類個數(shù)為2時,判斷是否左邊障礙物的最右邊界點在機器人的左邊且右邊障 礙物的最左邊界點在機器人的右邊,若是,則認(rèn)為是第4類障礙物;以以上兩個邊界點作為 障礙物點,二者的中點作為目標(biāo)點,使用人工勢場法計算機器人避障速度;
[0030] S3.5 :識別第7類障礙物:若聚類分割后判斷不屬于第3類或第4類障礙物,則屬于 第7類障礙物,使用人工勢場法計算避障速度,之后將機器人的水平速度vx、縱向速度vz和 自旋速度vr依次使用串口通信傳輸給機器人,然后進入下一次計算。
[0031 ]在一種優(yōu)選的方案中,步驟S3.3中,識別到第5類障礙物時,計算墻壁法向量與攝 像頭坐標(biāo)系中X軸的夾角a,a e [0°,90° ],設(shè)置機器人的自旋速度Vr = 土 k*sina,其中k為一 個常數(shù),當(dāng)墻壁在機器人右側(cè)時取負(fù)號;