基于深度攝像頭的機器人臨時避障方法
【專利摘要】本發(fā)明公開了一種基于深度攝像頭的機器人臨時避障方法,機器人在沿既定的全局導航路徑行進的過程中如果檢測到障礙物,則采用安裝在機器人上的深度攝像頭偏轉左、右兩個角度拍攝得到深度圖,處理得到局部環(huán)境地圖,在局部環(huán)境地圖中檢測障礙物左、右兩側的行進空間,選擇寬度較大的一側作為繞行行進空間,繪制繞行移動范圍矩形,在繞行移動范圍矩形內(nèi)生成繞行可行點,從中選擇繞行點,生成繞行路徑,再將繞行路徑映射到全局地圖中,將映射后繞行路徑的末點與原始全局導航路徑上的下一個行進節(jié)點連接,完成臨時避障。本發(fā)明可以高效、準確地完成機器人臨時避障,并在繞行避障后返回原始全局導航路徑,提高機器人的智能性。
【專利說明】
基于深度攝像頭的機器人臨時避障方法
技術領域
[0001 ]本發(fā)明屬于機器人與計算機視覺技術領域,更為具體地講,涉及一種基于深度攝 像頭的機器人臨時避障方法。
【背景技術】
[0002] 移動機器人是機器人領域一個重要分支,智能導航與臨時避障是移動機器人最核 心的技術之一。機器人導航是指機器人在已知或者未知環(huán)境下自主的規(guī)劃出一條從起點到 目標地點的移動路徑,讓機器人沿著這條路徑能順利的到達終點;機器人臨時避障是指機 器人在移動過程中根據(jù)采集到的實時的環(huán)境信息,發(fā)現(xiàn)環(huán)境中新的障礙物,按照一定的方 法有效的避開障礙物,使導航能順利進行。傳統(tǒng)的機器人避障方法主要有可視圖法、柵格 法、拓撲法、人工勢場法,另外還有基于神經(jīng)網(wǎng)絡、遺傳等算法的避障方法。
[0003] 對于已有的機器人避障方法,主要缺陷如下:
[0004] 1)可視圖法缺乏靈活性,在障礙物較多的時候搜索時間長,并且要求障礙物形狀 不能接近圓形,限制了其實際應用。
[0005] 2)柵格法是目前研究較多的避障方法,但是其中柵格的大小影響環(huán)境信息的存儲 量和計算時間,柵格越大,分辨率越低,在復雜環(huán)境下避障效果越差,柵格越小,避障效果越 好,但計算量增加。
[0006] 3)拓撲法的主要問題在于構建拓撲網(wǎng)絡的過程相當復雜,特別是在增加障礙物的 時候如何有效的修改拓撲關系還有待解決。
[0007] 4)人工勢場法把移動機器人在環(huán)境中的運動視為在一種抽象的人造受力場中的 運動,目標點對機器人有吸引力,障礙物對機器人有排斥力,最終通過合力來控制機器人的 運動,其缺點是忽略了障礙物的結構外形信息,模型的建立容易產(chǎn)生誤差并且陷入到局部 最小值。
[0008] 5)對于利用神經(jīng)網(wǎng)絡、遺傳等算法進行避障,其主要缺陷在于算法過于復雜,對機 器人計算能力的要求非常高,推廣性較弱。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明的目的在于克服現(xiàn)有技術的不足,提供一種基于深度攝像頭的機器人臨時 避障方法,采用深度攝像頭獲取局部環(huán)境地圖生成繞行路徑,然后映射到全局地圖中,高 效、準確地完成機器人臨時避障,并在繞行避障后返回原始全局導航路徑,提高機器人的智 能性。
[0010] 為實現(xiàn)上述發(fā)明目的,本發(fā)明基于深度攝像頭的機器人臨時避障方法,其步驟包 括:
[0011] S1:機器人在沿既定的全局導航路徑行進的過程中,對行進方向上的障礙物進行 檢測,一旦檢測到障礙物,進入步驟S2;
[0012] S2:在檢測到障礙物后,機器人上所安裝的深度攝像頭分別向左、右偏轉一定角 度,拍攝得到兩幅深度圖,將兩幅深度圖轉換為3D點云圖,分層壓縮得到2D局部點云地圖, 將兩幅2D局部點云地圖進行旋轉拼接,得到局部環(huán)境地圖;
[0013] S3:在步驟S2得到的局部環(huán)境地圖中,以機器人當前位置為坐標原點、正前方為X 軸、左邊為Y軸建立坐標系,然后檢測得到障礙物點云的上、下、左、右邊界,并且檢測得到障 礙物左、右兩側的行進空間;
[0014] S4:判斷是否有左、右兩側任意一側行進空間寬度大于機器人直徑D,如果是,進入 步驟S5,否則機器人停止前進;
[0015] S5:選擇障礙物左、右兩側行進空間寬度較大的一側作為繞行行進空間,在局部環(huán) 境地圖中沿機器人在全局導航路徑的行進方向上繪制一個標識繞行移動范圍的矩形,該矩 形包含機器人、障礙物和繞行行進空間,且在機器人后方和障礙物前方根據(jù)預設尺寸預留 空余范圍;
[0016] S6:在繞行移動范圍矩形內(nèi),采用繞行可行點搜索算法生成繞行可行點;
[0017] S7:在步驟S6得到的繞行可行點中選擇繞行點,生成繞行路徑;
[0018] S8:根據(jù)機器人當前位置在全局地圖中的坐標,將步驟S7中得到的繞行路徑所經(jīng) 過的繞行點坐標映射到全局地圖中,將映射后繞行路徑的末點與原始全局導航路徑上的下 一個行進節(jié)點連接,機器人根據(jù)繞行路徑行進。
[0019] 本發(fā)明基于深度攝像頭的機器人臨時避障方法,機器人在沿既定的全局導航路徑 行進的過程中如果檢測到障礙物,則采用安裝在機器人上的深度攝像頭偏轉左、右兩個角 度拍攝得到深度圖,處理得到局部環(huán)境地圖,在局部環(huán)境地圖中檢測障礙物左、右兩側的行 進空間,選擇寬度較大的一側作為繞行行進空間,繪制繞行移動范圍矩形,在在繞行移動范 圍矩形內(nèi)生成繞行可行點,從中選擇繞行點,生成繞行路徑,再將繞行路徑映射到全局地圖 中,將映射后繞行路徑的末點與原始全局導航路徑上的下一個行進節(jié)點連接,完成臨時避 障。
[0020] 本發(fā)明具有以下技術效果:
[0021] 1)將避障與導航融合到一起,避障結束之后機器人并不會丟失掉自己原始的導航 路徑,而是在避障繞行后回到原始全局導航路徑,因此任何新出現(xiàn)的障礙物都不會影響機 器人對整個環(huán)境的理解,提高機器人的智能性;
[0022] 2)避障方法簡單易行,計算量小,并且所需配置的深度攝像機在機器人上也易于 安裝和擴展,有利于工程應用推廣。
【附圖說明】
[0023] 圖1是本發(fā)明基于深度攝像頭的機器人臨時避障方法流程圖;
[0024] 圖2是本實施例中機器人的全局導航路徑示意圖;
[0025]圖3是本實施例中障礙物示例圖;
[0026] 圖4是基于作圓法的繞行可行點搜索算法;
[0027] 圖5是繞行可行點搜索示例圖;
[0028] 圖6是本實施例中所獲取的繞行可行點示意圖;
[0029] 圖7是本實施例中繞行路徑生成方法的流程圖;
[0030] 圖8是本實施例中繞行路徑映射至全局地圖的繞行路徑圖。
【具體實施方式】
[0031] 下面結合附圖對本發(fā)明的【具體實施方式】進行描述,以便本領域的技術人員更好地 理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當已知功能和設計的詳細描述也許 會淡化本發(fā)明的主要內(nèi)容時,這些描述在這里將被忽略。
[0032] 實施例
[0033] 圖1是本發(fā)明基于深度攝像頭的機器人臨時避障方法流程圖。如圖1所示,本發(fā)明 基于深度攝像頭的機器人臨時避障方法包括以下步驟:
[0034] S101:障礙物檢測:
[0035] 機器人在沿既定的全局導航路徑行進的過程中,對行進方向上的障礙物進行檢 測,一旦檢測到障礙物,進入步驟S102。
[0036] 障礙物檢測所使用的具體設備和算法可以根據(jù)實際需要來選擇。本發(fā)明中由于機 器人配置了深度攝像頭,因此本實施例中采用深度攝像頭和超聲波傳感器結合進行障礙物 檢測,其具體方法為:
[0037] 在機器人行進過程中,超聲波傳感器采用超聲波檢測機器行進方向上的障礙物, 超聲波檢測器的檢測范圍可以根據(jù)實際需要來設置,當檢測到存在障礙物時,機器人后退 若干米,直到障礙物進行深度攝像對的可視范圍,然后由深度攝像頭拍攝機器人正前方的 深度圖,將深度圖轉化為3D點云,對于每一幀3D點云圖,將其分層壓縮成2D局部點云地圖, 在2D局部點云地圖上建立以機器人當前位置為坐標原點、正前方為X軸、左邊為Y軸的坐標 系,判斷在{(x,y) |xG (-a,a),yG (〇,b)}范圍內(nèi)是否有點云,如果在該范圍內(nèi)有點云,貝1J判 斷存在障礙物,否則判斷不存在障礙物。其中a、b根據(jù)實際情況設置,用于標識機器人的通 過路徑。
[0038] 圖2是本實施例中機器人的全局導航路徑示意圖。如圖2所示,白色實線條為本實 施例中機器人的全局導航路徑,是室內(nèi)路徑。
[0039] 圖3是本實施例中障礙物示例圖。如圖3所示,圖中灰色實線包圍部分為障礙物。根 據(jù)圖3標示可知,在{(1,7)|1£(- &,&),7^(〇,13)}存在代表障礙物的點云,從而檢測得到障 礙物。
[0040] S102:獲取局部環(huán)境地圖:
[0041 ]在檢測到障礙物后,機器人上所安裝的深度攝像頭分別向左、右偏轉一定角度,拍 攝得到兩幅深度圖,將兩幅深度圖轉換為3D點云圖,分層壓縮得到2D局部點云地圖,將兩幅 2D局部點云地圖進行旋轉拼接,得到局部環(huán)境地圖。
[0042]本實施例中深度攝像頭安裝在機器人的頭部,向下傾斜30度,在左、右偏轉時,偏 轉角度為30度。旋轉拼接是圖像處理領域的常用技術手段,在本實施例中旋轉拼接的過程 如下:
[0043]設點a(x,y)為相機繞Y軸正方向旋轉30度得到一個點,此時相機坐標系相對于原 始相機位置坐標系的旋轉矩陣為:
[0045]
1將點a(x,y)旋轉到原始坐標系下,其對應坐標alx'O為:
[0046] (x*,y*) = (x,y)XM
[0047] 對于相機繞Y軸負方向旋轉30所得到的點云, ,同樣按照上述公式計算即 可。將兩幀2D點云轉換到統(tǒng)一坐標系下并進行點云疊加,即可得到包含完整局部信息的局 部環(huán)境地圖。
[0048] S103:障礙物邊界和行進空間檢測:
[0049] 為了對當前障礙物的結構信息有一個更為清晰的認識,需要在步驟S2得到的局部 環(huán)境地圖中,以機器人當前位置為坐標原點、正前方為X軸、左邊為Y軸建立坐標系,然后檢 測得到障礙物點云的上、下、左、右邊界,并且檢測得到障礙物左、右兩側的行進空間。本實 施例中采用的邊界和行進空間檢測的具體方法為:
[0050] 在步驟S102得到的局部環(huán)境地圖中,以機器人當前位置為坐標原點、正前方為X 軸、左邊為Y軸建立坐標系,任意選取障礙物點云中一個點記為H,分別向左、向右按列遍歷 局部環(huán)境地圖,當某一列整列都沒有點云時,則將其作為該方向的障礙物邊界,將該邊界作 為行進空間邊界,然后繼續(xù)遍歷,當某一列存在點云時,則將該列作為行進空間的另一側邊 界,獲取行進空間的寬度。在左、右邊界內(nèi),以點H開始,分別向上、向下按行遍歷局部環(huán)境地 圖,如果某一行整列都沒有點云時,則將其作為訪方向的障礙物邊界。
[0051]以圖3所示的障礙物為例,A、B、C、D為障礙物點云的端點,xdPx2分別表示障礙物的 左、右邊界。
[0052] S104:判斷是否有左、右兩側任意一側行進空間寬度大于機器人直徑D,如果是,說 明當前行進空間可以使機器人通過,進入步驟S105,否則進入機器人停止前進,此時機器人 無法繞行,可以根據(jù)預設的策略來進行處理,例如將相關消息發(fā)送給服務器,然后由服務器 重新規(guī)劃全局導航路徑等等。
[0053] S105:確定繞行移動范圍:
[0054]選擇障礙物左、右兩側行進空間寬度較大的一側作為繞行行進空間,在局部環(huán)境 地圖中沿機器人在全局導航路徑的行進方向上繪制一個標識繞行移動范圍的矩形,該矩形 包含機器人、障礙物和繞行行進空間,且在機器人后方和障礙物前方根據(jù)預設尺寸預留空 余范圍??沼喾秶拇笮】梢愿鶕?jù)實際需要進行確定,主要是為了讓機器人有一定的路線 調(diào)整空間。
[0055] S106:生成繞行可行點:
[0056] 在繞行移動范圍矩形內(nèi),采用繞行可行點搜索算法生成繞行可行點。本實施例中 采用基于作圓法的繞行可行點搜索算法來生成繞行可行點。圖4是基于作圓法的繞行可行 點搜索算法。如圖4所示,基于作圓法的繞行可行點搜索算法的具體步驟為:
[0057] S401:初始化:
[0058] 以機器人當前位置作為圓點、大于機器人半徑的預設半徑r為半徑作圓,機器人半 徑是指機器人的最大半徑,并將圓進行K等分,對等分點進行編號,將位于繞行移動范圍內(nèi) 的等分點作為第1代候選可行點。本實施例中K=16。令可行點代數(shù)i = l,初始化繞行可行點 集合S = 0。:
[0059] S402:搜索第i代繞行可行點:
[0060] 從第i代候選可行點中,依次計算每個候選可行點到最近障礙物點的距離h,如果r <h<Ar,其中A>1,則將該候選可行點作為本代的繞行可行點,放入第i代繞行可行點集合 Sl和繞行可行點集合S,否則不作為繞行可行點。A用于保證繞行可行點與障礙物不至于相 隔太遠,以免繞行太遠,降低機器人行進效率。根據(jù)實驗統(tǒng)計可知,A的取值范圍為 時可以達到較好的效果。
[0061] S403:判斷是否81為空集,即第i代繞行可行點數(shù)量為零,如果是,則說明已經(jīng)無法 搜索到新的繞行可行點,搜索結束,否則進入步驟S404。
[0062] S404:獲取第i+1代候選可行點:
[0063] 從第i代繞行可行點集合Sl中取出1個繞行可行點,以該繞行可行點為圓心、該繞 行可行點到最近障礙物點的距離h為半徑作圓,并將圓進行K等分,篩選位于繞行移動范圍 內(nèi)、之前所繪制的所有歷史圓的覆蓋范圍以外的等分點作為候選可行點,將繞行可行點集 合S中位于該繞行可行點所繪制圓以內(nèi)的繞行可行點刪除,并將該繞行可行點和位于該繞 行可行點所繪制圓以內(nèi)的繞行可行點從第i代繞行可行點集合 Sl中刪除,然后從第i代繞行 可行點集合Sl中重新取出1個繞行可行點搜索第i + 1代候選可行點,直到第i代繞行可行點 集合Si為空。
[0064] 也就是說,在選擇候選可行點的時候,還會對之前產(chǎn)生的繞行可行點進行再次篩 選,從而減少冗余點,提高算法效率。
[0065] S405:令 i = i+l,返回步驟 S402。
[0066] 圖5是繞行可行點搜索示例圖。如圖5所示,方塊點表示最近障礙物點,灰色圓點表 示繞行可行點和候選可行點,黑色圓點表示被排除的點。其中(a)表示以機器人當前位置為 圓心的第1個圓,此時假定所有的等分點都在繞行移動范圍內(nèi),那么所有等分點均作為第1 代候選可行點。在圖5中(b)中,該點至最近障礙物點的距離滿足要求,因此將該點作為繞行 可行點。然后以該繞行可行點作圓,該圓的等分點中位于第1個圓內(nèi)的點不作為候選可行 點,而原來第1個圓中位于該繞行可行點所繪制圓內(nèi)部的可行點也被排除了。在圖5中(c) 中,新繪制圓所對應的點至最近障礙物點的距離不滿足要求,不能作為繞行可行點。在圖5 中(d)中,新繪制圓所對應的點至最近障礙物點的距離滿足要求,因此以該繞行可行點作 圓,該圓的等分點中位于第1個圓和第2個圓內(nèi)的點不作為候選可行點,而原來第1個圓和第 2個圓內(nèi)中位于該繞行可行點所繪制圓內(nèi)部的可行點也被排除了。
[0067] 圖6是本實施例中所獲取的繞行可行點示意圖。如圖6所示,本實施例中,共計得到 了 10個繞行可行點。
[0068] S107:生成繞行路徑:
[0069] 在獲取繞行移動范圍內(nèi)的繞行可行點之后,需要在繞行可行點中選擇繞行點,生 成繞行路徑。
[0070] 圖7是本實施例中繞行路徑生成方法的流程圖。如圖7所示,本實施例中所采用的 繞行路徑生成方法具體步驟為:
[0071] S701:生成繞行點集合:
[0072]分別求取步驟S109得到的每個繞行可行點與機器人當前位置的距離,根據(jù)距離從 小到大對繞行可行點進行排序,即距離越大,編號越靠后,得到排序后的繞行可行點的集合 Po
[0073] S702:初始化參數(shù):
[0074]令繞行點序號k = l,第0個繞行點為機器人當前位置。
[0075] S703:選擇第k個繞行點:
[0076]按照順序依次連接第k_l個繞行點與繞行可行點集合P中序號大于第k_l個繞行點 的繞行可行點,將連接線段按照機器人半徑劃分為小段,計算每個分段點與其最近障礙物 點的距離,如果所有分段點與最近障礙點的距離都大于機器人半徑,則將該繞行可行點放 入集合Z,否則不作任何操作。在集合Z中選擇編號最大的繞行可行點作為第k個繞行點。 [0077] S704:判斷第k個繞行點是否存在,如果存在,進入步驟S705,否則進入步驟S706。
[0078] S705:令 k = k+l,返回步驟 S702。
[0079] S706:得到繞行路徑:
[0080] 將得到的繞行點按照其序號連接,得到機器人的繞行路徑。
[0081] 以圖6所示的10個繞行可行點為例,按照與機器人當前位置的距離進行排序,得到 PfPn),假設當前位置所能到達的最遠點為P?,那么第1個繞行點即為P?。然后再從P?開始, 判斷P 8、P9和P1Q,從P?開始所有到達的距離機器人當前位置最遠的點為P8,即第2個繞行點即 為P 8。那么再從P8開始,判斷P9和P1Q,從P8開始所能到達的距離機器人當前位置最遠的點為 P 1〇,第3個繞行點即為P1Q。那么繞行路徑即為機器人從當前位置出發(fā),先直線行進至P7,然后 行進至P 8,最后行進至P1(),從而繞開障礙物。
[0082] S108:繞行路徑映射:
[0083]根據(jù)機器人當前位置在全局地圖中的坐標,將步驟S110中得到的繞行路徑所經(jīng)過 的繞行點坐標映射到全局地圖中,將映射后繞行路徑的末點與原始全局導航路徑上的下一 個行進節(jié)點連接,機器人根據(jù)繞行路徑行進。根據(jù)繞行路徑,可以指引機器人回到原始全局 導航路徑上,完成障礙物繞行。
[0084] 根據(jù)本發(fā)明中局部環(huán)境地圖的坐標系建立方式可知,在局部環(huán)境地圖中機器人當 前位置的坐標為(〇,〇),假設機器人當前位置在全局地圖中的坐標是(X,Y),那么繞行點在 兩個坐標系下的是簡單的(X,Y)的平移關系。
[0085] 圖8是本實施例中繞行路徑映射至全局地圖的繞行路徑圖。由于在全局地圖中障 礙物是不可見的,因此圖8中沒有需要繞行的障礙物點云。如圖8所示,原始全局導航路徑為 直線,但是由于中間出現(xiàn)了障礙物,需要進行臨時避障,采用本發(fā)明得到的繞行路徑為右側 所示折線??梢姡景l(fā)明可以有效實現(xiàn)機器人在行進過程中的臨時避障,且能在避障繞行后 回到原始全局導航路徑,提高機器人的智能性。
[0086] 盡管上面對本發(fā)明說明性的【具體實施方式】進行了描述,以便于本技術領域的技術 人員理解本發(fā)明,但應該清楚,本發(fā)明不限于【具體實施方式】的范圍,對本技術領域的普通技 術人員來講,只要各種變化在所附的權利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些 變化是顯而易見的,一切利用本發(fā)明構思的發(fā)明創(chuàng)造均在保護之列。
【主權項】
1. 一種基于深度攝像頭的機器人臨時避障方法,其特征在于,包括以下步驟: S1:機器人在沿既定的全局導航路徑行進的過程中,對行進方向上的障礙物進行檢測, 一旦檢測到障礙物,進入步驟S2; S2:在檢測到障礙物后,機器人上所安裝的深度攝像頭分別向左、右偏轉一定角度,拍 攝得到兩幅深度圖,將兩幅深度圖轉換為3D點云圖,分層壓縮得到2D局部點云地圖,將兩幅 2D局部點云地圖進行旋轉拼接,得到局部環(huán)境地圖; S3:在步驟S2得到的局部環(huán)境地圖中,以機器人當前位置為坐標原點、正前方為X軸、左 邊為Y軸建立坐標系,然后檢測得到障礙物點云的上、下、左、右邊界,并且檢測得到障礙物 左、右兩側的行進空間; S4:判斷是否有左、右兩側任意一側行進空間寬度大于機器人直徑D,如果是,進入步驟 S5,否則進機器人停止前進; S5:選擇障礙物左、右兩側行進空間寬度較大的一側作為繞行行進空間,在局部環(huán)境地 圖中沿機器人在全局導航路徑的行進方向上繪制一個標識繞行移動范圍的矩形,該矩形包 含機器人、障礙物和繞行行進空間,且在機器人后方和障礙物前方根據(jù)預設尺寸預留空余 范圍; S6:在繞行移動范圍矩形內(nèi),采用繞行可行點搜索算法生成繞行可行點; S7:在步驟S6得到的繞行可行點中選擇繞行點,生成繞行路徑; S8:根據(jù)機器人當前位置在全局地圖中的坐標,將步驟S7中得到的繞行路徑所經(jīng)過的 繞行點坐標映射到全局地圖中,將映射后繞行路徑的末點與原始全局導航路徑上的下一個 行進節(jié)點連接,機器人根據(jù)繞行路徑行進。2. 根據(jù)權利要求1所述的機器人臨時避障方法,其特征在于,所述步驟S1中障礙物檢測 采用基于深度圖像的障礙物檢測算法,具體方法為:超聲波傳感器采用超聲波檢測機器行 進方向上的障礙物,當檢測到存在障礙物時,機器人后退若干米,直到障礙物進入深度攝像 頭的可視范圍,然后由深度攝像頭拍攝機器人正前方的深度圖,將深度圖轉化為3D點云,對 于每一幀3D點云圖,將其分層壓縮成2D局部點云地圖,在2D局部點云地圖上建立以機器人 當前位置為坐標原點、正前方為X軸、左邊為Y軸的坐標系,判斷在{( X,y)|XG(-a,a),yG (0,b)}范圍內(nèi)是否有點云,如果在該范圍內(nèi)有點云,則判斷存在障礙物,否則判斷不存在障 礙物。3. 根據(jù)權利要求1所述的機器人避障方法,其特征在于,所述步驟S6中繞行可行點搜索 算法為基于作圓法的繞行可行點搜索算法,其具體步驟為: S6.1:以機器人當前位置作為圓點、大于機器人半徑的預設半徑r為半徑作圓,并將圓 進行K等分,對等分點進行編號,將位于繞行移動范圍內(nèi)的等分點作為第1代候選可行點;令 可行點代數(shù)i = 1,初始化繞行可行點集合$ = 0 ; S6.2:從第i代候選可行點中,依次計算每個候選可行點到最近障礙物點的距離h,如果 r<h<Ar,其中A>1,則將該候選可行點作為本代的繞行可行點,放入第i代繞行可行點集 合^和繞行可行點集合S,否則不作為繞行可行點; S6.3:如果第i代繞行可行點數(shù)量為零,搜索結束,否則進入步驟S6.4; S6.4:從第i代繞行可行點集合Sl中取出1個繞行可行點,以該繞行可行點為圓心、該繞 行可行點到最近障礙物點的距離h為半徑作圓,并將圓進行K等分,篩選位于繞行移動范圍 內(nèi)、之前所繪制的所有歷史圓的覆蓋范圍以外的等分點作為候選可行點,將繞行可行點集 合S中位于該繞行可行點所繪制圓以內(nèi)的繞行可行點刪除,并將該繞行可行點和位于該繞 行可行點所繪制圓以內(nèi)的繞行可行點從第i代繞行可行點集合 Sl中刪除,然后從第i代繞行 可行點集合Sl中重新取出1個繞行可行點搜索第i+1代候選可行點,直到第i代繞行可行點 集合Si為空; 36.5:令1 = 1+1,返回步驟56.2。4. 根據(jù)權利要求3所述的機器人臨時避障方法,其特征在于,所述步驟S6.2中A的取值 范圍為2<A<5。5. 根據(jù)權利要求1所述的機器人臨時避障方法,其特征在于,所述步驟S7中繞行路徑生 成方法的具體步驟包括: S7.1:分別求取步驟S6得到的每個繞行可行點與機器人當前位置的距離,根據(jù)距離從 小到大對繞行可行點進行排序,得到排序后的繞行可行點的集合P; S7.2:令繞行點序號k= 1,第0個繞行點為機器人當前位置; S7.3:按照順序依次連接第k-1個繞行點與繞行可行點集合P中序號大于第k-1個繞行 點的繞行可行點,將連接線段按照機器人半徑劃分為小段,計算每個分段點與其最近障礙 物點的距離,如果所有分段點與最近障礙點的距離都大于機器人半徑,則將該繞行可行點 放入集合Z,否則不作任何操作;在集合Z中選擇編號最大的繞行可行點作為第k個繞行點; S7.4:如果第k個繞行點是否存在,進入步驟S7.5,否則令令k = k+l,返回步驟S7.2; S7.5:將得到的繞行點按照其序號連接,得到機機器人的繞行路徑。
【文檔編號】G05D1/02GK106054900SQ201610643767
【公開日】2016年10月26日
【申請日】2016年8月8日 公開號201610643767.5, CN 106054900 A, CN 106054900A, CN 201610643767, CN-A-106054900, CN106054900 A, CN106054900A, CN201610643767, CN201610643767.5
【發(fā)明人】程洪, 王富奎, 鄭亞莉, 陳詩南, 駱佩佩
【申請人】電子科技大學