本發(fā)明涉及機(jī)器人技術(shù)領(lǐng)域,尤其涉及室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法、裝置和機(jī)器人。
背景技術(shù):
室內(nèi)移動(dòng)機(jī)器人的路徑規(guī)劃是指在有障礙物存在的室內(nèi)環(huán)境內(nèi),按照一定的評(píng)價(jià)標(biāo)準(zhǔn),尋找一條從起始狀態(tài)到目標(biāo)狀態(tài)的無碰撞路徑。而室內(nèi)動(dòng)態(tài)環(huán)境,所對(duì)應(yīng)的環(huán)境中的障礙物會(huì)發(fā)生變化,這種狀況對(duì)路徑規(guī)劃有了更高的要求。
機(jī)器人的室內(nèi)環(huán)境用地圖表示,一般有四種地圖:柵格地圖、特征地圖,拓?fù)涞貓D和直接表征法。柵格地圖把環(huán)境分成一系列柵格,其中每一個(gè)柵格給定一個(gè)可能值,表示該柵格被占據(jù)的概率;特征地圖用有關(guān)的幾何特征如點(diǎn)線或者面表示環(huán)境;拓?fù)涞貓D把室內(nèi)環(huán)境表示為帶結(jié)點(diǎn)和相關(guān)連接線的拓?fù)浣Y(jié)構(gòu)圖;直接表征法直接用傳感器讀取的數(shù)據(jù)來構(gòu)造機(jī)器人的位姿空間。每種地圖的表示方法都有自己的特點(diǎn),由于柵格地地圖建模方式,便于計(jì)算機(jī)存儲(chǔ)和批量處理,是最普遍使用的方式。
按照環(huán)境信息是否已知,路徑規(guī)劃可分為全局和局部路徑規(guī)劃。Di jkstra算法和A*算法是全局路徑規(guī)劃算法中求解最短路徑中最常用的搜索算法,但有時(shí)候它們獲取的環(huán)境信息不夠完善,無法適應(yīng)變化的環(huán)境。相對(duì)而言,局部路徑規(guī)劃具有實(shí)時(shí)性,但由于缺乏全局的信息,容易喪失目標(biāo)以及陷入死鎖。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)現(xiàn)有技術(shù)機(jī)器人采用的全局路徑規(guī)劃算法規(guī)劃路徑時(shí)由于獲取的環(huán)境信息不夠完善,無法適應(yīng)變化的環(huán)境;以及機(jī)器人的局部路徑規(guī)劃具有實(shí)時(shí)性,但由于缺乏全局的信息,容易喪失目標(biāo)以及陷入死鎖的技術(shù)問題,提供一種室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法、裝置和機(jī)器人,技術(shù)方案如下:
本發(fā)明實(shí)施例提供室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法,包括:
根據(jù)已知障礙物環(huán)境信息和障礙物膨脹信息,建立包含不同路徑代價(jià)值的點(diǎn)的全局代價(jià)地圖,其中,所述點(diǎn)的路徑代價(jià)值體現(xiàn)所述點(diǎn)被障礙物占據(jù)的概率、所述點(diǎn)與相鄰點(diǎn)路徑距離以及體現(xiàn)所述點(diǎn)與最近障礙物距離;
設(shè)置所述機(jī)器人在所述全局代價(jià)地圖中的起始點(diǎn)和目標(biāo)點(diǎn);
采用跳點(diǎn)搜索算法計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑代價(jià)值之和最小全局路徑;
控制機(jī)器人沿路徑代價(jià)值之和最小全局路徑移動(dòng)過程中,根據(jù)動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息建立動(dòng)態(tài)的局部代價(jià)地圖,生成局部路徑,拼接局部路徑與路徑代價(jià)值之和最小全局路徑,并且用局部路徑代替局部代價(jià)地圖所在的局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物。
可選地,所述方法還包括;
實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息,計(jì)算所述動(dòng)態(tài)障礙物膨脹信息,根據(jù)所述動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息重新生成局部路徑。
可選地,所述障礙物膨脹信息包括膨脹直徑,所述膨脹直徑根據(jù)所述機(jī)器人半徑設(shè)置。
可選地,所述點(diǎn)與最近障礙物距離代價(jià)值依據(jù)離最近障礙物越遠(yuǎn)值越小的規(guī)律且按指數(shù)規(guī)律遞減。
可選地,所述方法還包括:
根據(jù)所述路徑代價(jià)值之和最小全局路徑計(jì)算機(jī)器人行進(jìn)速度。
本發(fā)明實(shí)施例還提供室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃裝置,包括
全局代價(jià)地圖建立模塊,用于根據(jù)已知障礙物環(huán)境信息和障礙物膨脹信息,建立包含不同路徑代價(jià)值的點(diǎn)的全局代價(jià)地圖,其中,所述點(diǎn)的路徑代價(jià)值體現(xiàn)所述點(diǎn)被障礙物占據(jù)的概率、所述點(diǎn)與相鄰點(diǎn)路徑距離以及體現(xiàn)所述點(diǎn)與最近障礙物距離;
起終點(diǎn)設(shè)置模塊,用于設(shè)置所述機(jī)器人在所述全局代價(jià)地圖中的起始點(diǎn)和目標(biāo)點(diǎn);
路徑確定模塊,用于采用跳點(diǎn)搜索算法計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑代價(jià)值之和最小全局路徑;
局部避障控制模塊,用于控制機(jī)器人沿路徑代價(jià)值之和最小全局路徑移動(dòng)過程中,根據(jù)動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息建立動(dòng)態(tài)的局部代價(jià)地圖,生成局部路徑,拼接局部路徑與路徑代價(jià)值之和最小全局路徑,并且用局部路徑代替局部代價(jià)地圖所在的局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物。
可選地,所述局部避障控制模塊還用于:
實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息,計(jì)算所述動(dòng)態(tài)障礙物膨脹信息,根據(jù)所述動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息重新生成局部路徑。
可選地,所述障礙物膨脹信息包括膨脹直徑,所述膨脹直徑根據(jù)所述機(jī)器人半徑設(shè)置。
可選地,所述點(diǎn)與最近障礙物距離代價(jià)值依據(jù)離最近障礙物越遠(yuǎn)值越小的規(guī)律且按指數(shù)規(guī)律遞減。
可選地,所述裝置還包括:
速度計(jì)算模塊,用于根據(jù)所述路徑代價(jià)值之和最小全局路徑計(jì)算機(jī)器人行進(jìn)速度。
本發(fā)明實(shí)施例還提供機(jī)器人,包括:
機(jī)身;
處理器,所述處理器安裝在所述機(jī)身內(nèi),所述處理器用于:
根據(jù)已知障礙物環(huán)境信息和障礙物膨脹信息,建立包含不同路徑代價(jià)值的點(diǎn)的全局代價(jià)地圖,其中,所述點(diǎn)的路徑代價(jià)值體現(xiàn)所述點(diǎn)被障礙物占據(jù)的概率、所述點(diǎn)與相鄰點(diǎn)路徑距離以及體現(xiàn)所述點(diǎn)與最近障礙物距離;
設(shè)置所述機(jī)器人在所述全局代價(jià)地圖中的起始點(diǎn)和目標(biāo)點(diǎn);
采用跳點(diǎn)搜索算法計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑代價(jià)值之和最小全局路徑;
控制機(jī)器人沿路徑代價(jià)值之和最小全局路徑移動(dòng)過程中,根據(jù)動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息建立動(dòng)態(tài)的局部代價(jià)地圖,生成局部路徑,拼接局部路徑與路徑代價(jià)值之和最小全局路徑,并且用局部路徑代替局部代價(jià)地圖所在的局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物。
可選地,還包括固定在所述機(jī)身上并與處理器連接的測(cè)障傳感器,用于實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息;
所述處理器還用于計(jì)算所述動(dòng)態(tài)障礙物膨脹信息,根據(jù)所述動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息重新生成局部路徑。
本發(fā)明實(shí)施例的有益效果在于,本發(fā)明實(shí)施例提供的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法,全局路徑規(guī)劃中參考已知障礙物環(huán)境信息和障礙物膨脹信息,局部路徑規(guī)劃中根據(jù)動(dòng)態(tài)障礙物信息及其膨脹信息生成局部路徑,與路徑代價(jià)值之和最小全局路徑拼接,并且用局部路徑代替局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物。全局路徑規(guī)劃中獲取的障礙物環(huán)境信息較完善,路徑代價(jià)值之和最小全局路徑考慮了全局環(huán)境,局部路徑規(guī)劃中根據(jù)動(dòng)態(tài)障礙物信息及其膨脹信息生成局部路徑,并且用局部路徑代替局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物,可讓機(jī)器人在局部窗口運(yùn)行中適應(yīng)變化的環(huán)境,使機(jī)器人沿著最終規(guī)劃的目標(biāo)避障路徑行走。全局路徑規(guī)劃與局部路徑規(guī)劃結(jié)合,機(jī)器人在局部路徑中移動(dòng)不容易喪失目標(biāo)以及陷入死鎖。而且,全局代價(jià)地圖根據(jù)已知障礙物環(huán)境信息和障礙物膨脹信息建立,全局代價(jià)地圖包含不同路徑代價(jià)值的點(diǎn),所述點(diǎn)的路徑代價(jià)值體現(xiàn)所述點(diǎn)與相鄰點(diǎn)路徑距離以及體現(xiàn)所述點(diǎn)與最近障礙物距離;計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑為路徑代價(jià)值之和最小全局路徑,在全局路徑規(guī)劃中除了考慮起始點(diǎn)到所述目標(biāo)點(diǎn)的路徑距離,還考慮與最近障礙物距離,盡量避免靠近障礙物運(yùn)行,而傾向于在兩個(gè)障礙物的中間運(yùn)行,機(jī)器人在運(yùn)行過程中撞到障礙物的概率降低,從而降低了由于碰撞帶來的損壞,避免經(jīng)濟(jì)損失,另一方面減少碰撞也提高了機(jī)器人的運(yùn)行效率。
【附圖說明】
一個(gè)或多個(gè)實(shí)施例通過與之對(duì)應(yīng)的附圖中的圖片進(jìn)行示例性說明,這些示例性說明并不構(gòu)成對(duì)實(shí)施例的限定,附圖中具有相同參考數(shù)字標(biāo)號(hào)的元件表示為類似的元件,除非有特別申明,附圖中的圖不構(gòu)成比例限制。
圖1為本發(fā)明實(shí)施例提供的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法的流程圖。
圖2為本發(fā)明實(shí)施例提供的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法的全局代價(jià)地圖。
圖3為本發(fā)明實(shí)施例提供的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法的局部代價(jià)地圖。
圖4為本發(fā)明實(shí)施例提供的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法的局部窗口內(nèi)的路徑規(guī)劃示意圖。
圖5為本發(fā)明實(shí)施例提供的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法的全局路徑規(guī)劃示意圖。
圖6為本發(fā)明實(shí)施例提供的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃裝置的結(jié)構(gòu)框圖。
圖7為本發(fā)明實(shí)施例提供的機(jī)器人的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
如圖1所示,本發(fā)明實(shí)施例提供室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法,其特征在于,包括:
步驟10、根據(jù)已知障礙物環(huán)境信息和障礙物膨脹信息,建立包含不同路徑代價(jià)值的點(diǎn)的全局代價(jià)地圖,其中,所述點(diǎn)的路徑代價(jià)值體現(xiàn)所述點(diǎn)與相鄰點(diǎn)路徑距離以及體現(xiàn)所述點(diǎn)與最近障礙物距離;
利用已知障礙物環(huán)境信息,建立如圖2所示的全局代價(jià)地圖。全局代價(jià)地圖包括靜態(tài)層和膨脹層兩部分,其中靜態(tài)層主要表示室內(nèi)中的墻壁、桌子等建立地圖時(shí)候已經(jīng)存在的障礙物。膨脹層是把障礙物膨脹一圈的地圖層,例如障礙物是一個(gè)圓凳子,根據(jù)經(jīng)驗(yàn)設(shè)定的固定值在圓凳子周圍膨脹一圈,得到圓凳子的膨脹圈,多個(gè)障礙物的膨脹圈體現(xiàn)在地圖上,組成膨脹層。
具體地,障礙物的膨脹圈直徑與機(jī)器人半徑有關(guān),與障礙物大小無關(guān)。進(jìn)一步地,膨脹層的代價(jià)值(所述點(diǎn)與最近障礙物距離代價(jià)值),是離障礙物越遠(yuǎn)值越小,按指數(shù)規(guī)律遞減的。
在全局代價(jià)地圖中采用膨脹層的目的是為了保證路徑規(guī)劃以后的路徑在障礙物的中間區(qū)域。例如,機(jī)器人穿過墻壁和兒童自行車時(shí),盡量避免靠近障礙物運(yùn)行,而傾向于從墻壁和兒童自行車的中間穿過,這樣機(jī)器人在運(yùn)行過程中撞到障礙物的概率降低,從而降低了由于碰撞帶來的損壞也提高運(yùn)行效率。當(dāng)兩個(gè)障礙較近時(shí),在障礙物正中間通過,如通過門時(shí),機(jī)器人路徑在門的正中間;當(dāng)兩個(gè)障礙較遠(yuǎn)時(shí),路徑在中間區(qū)域,如通過較大寬度的走廊時(shí),只要離走廊有膨脹直徑的距離以上的,都是中間區(qū)域。
全局代價(jià)地圖為二維柵格地圖,二維柵格地圖把環(huán)境分成一系列柵格,其中每一個(gè)柵格給定一個(gè)可能值。每一個(gè)柵格代表全局代價(jià)地圖中包含不同路徑代價(jià)值的點(diǎn),路徑代價(jià)值所對(duì)應(yīng)的概率的范圍從0-1,或者為無窮大,無窮大代表所述點(diǎn)不可通行(如為墻壁),路徑代價(jià)值體現(xiàn)所述點(diǎn)被障礙物占據(jù)的概率、所述點(diǎn)與相鄰點(diǎn)路徑距離以及體現(xiàn)所述點(diǎn)與最近障礙物距離。所述點(diǎn)的路徑代價(jià)值等于所述點(diǎn)被障礙物占據(jù)的概率、所述點(diǎn)與相鄰點(diǎn)路徑距離代價(jià)值加上所述點(diǎn)與最近障礙物距離代價(jià)值之和。進(jìn)一步地,根據(jù)默認(rèn)設(shè)置,或者用戶需求,可以對(duì)所述點(diǎn)被障礙物占據(jù)的概率、所述點(diǎn)與相鄰點(diǎn)路徑距離代價(jià)值和所述點(diǎn)與最近障礙物距離代價(jià)值分別賦予不同權(quán)重。
例如,某S點(diǎn)的上、下、左、右、左上、右上、左下、右下八個(gè)方位的相鄰點(diǎn)的所述點(diǎn)被障礙物占據(jù)的概率的數(shù)值范圍為0-33.33%,以及無窮大;所述點(diǎn)與相鄰點(diǎn)路徑距離代價(jià)值的數(shù)值范圍為0-33.33%、所述點(diǎn)與最近障礙物距離代價(jià)值的數(shù)值范圍為0-33.33%,某S點(diǎn)的上、下、左、右、左上、右上、左下、右下八個(gè)方位的相鄰點(diǎn)的路徑代價(jià)值如下表所示:
此時(shí),路徑代價(jià)值之和最小的點(diǎn)為O點(diǎn),P點(diǎn)被障礙物占據(jù)的概率為無窮大,代表其被不可移動(dòng)的靜態(tài)障礙物占據(jù),如墻壁、床或衣柜等。
如果對(duì)所述點(diǎn)被障礙物占據(jù)的概率、所述點(diǎn)與相鄰點(diǎn)路徑距離代價(jià)值和所述點(diǎn)與最近障礙物距離代價(jià)值分別賦予0.4、0.2和0.4的權(quán)重,則如下表所示:
此時(shí),路徑代價(jià)值之和最小的點(diǎn)為M點(diǎn)。
其中,二維柵格地圖可以通過對(duì)已知障礙物環(huán)境信息的采集,根據(jù)采集結(jié)果預(yù)先輸入。當(dāng)然,也可結(jié)合建圖和定位技術(shù),通過slam(Simultaneous Localization and Mapping,即時(shí)定位與地圖構(gòu)建)建立二維柵格地圖。
步驟13、設(shè)置所述機(jī)器人在所述全局代價(jià)地圖中的起始點(diǎn)和目標(biāo)點(diǎn);
步驟15、采用跳點(diǎn)搜索算法計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑代價(jià)值之和最小全局路徑;
具體地,所述路徑代價(jià)值之和最小全局路徑包括若干順序相連的局部目標(biāo)點(diǎn);跳點(diǎn)搜索(即JumpPointSearch,簡(jiǎn)稱JPS)算法生成并擴(kuò)展的節(jié)點(diǎn)數(shù)量很少,而且到達(dá)目標(biāo)的速度很快。因?yàn)樘c(diǎn)搜索能夠消除路徑間的對(duì)稱性,通過在直線和對(duì)角線方向上修剪節(jié)點(diǎn)來識(shí)別后繼,在搜索時(shí)跳過了大量可能會(huì)添加到open列表和closed列表中的中間節(jié)點(diǎn)以及其他計(jì)算,這使搜索速度有了很大提升,且其過程中節(jié)點(diǎn)存儲(chǔ)量少。
步驟17、控制機(jī)器人沿路徑代價(jià)值之和最小全局路徑移動(dòng)過程中,根據(jù)動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息建立動(dòng)態(tài)的局部代價(jià)地圖,生成局部路徑,拼接局部路徑與路徑代價(jià)值之和最小全局路徑,以路徑擬合控制算法控制所述機(jī)器人移動(dòng)以避開動(dòng)態(tài)障礙物。
具體地,通過機(jī)器人上安裝的傳感器實(shí)時(shí)掃描到的周圍環(huán)境信息建立的局部代價(jià)地圖,根據(jù)局部代價(jià)地圖進(jìn)行局部路徑規(guī)劃生成局部路徑,局部路徑考慮動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息,即為在動(dòng)態(tài)環(huán)境的避障。在實(shí)際控制機(jī)器人移動(dòng)時(shí),根據(jù)拼接局部路徑與路徑代價(jià)值之和最小全局路徑而成的目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人移動(dòng),使機(jī)器人沿著最終規(guī)劃的路徑行走。
本發(fā)明實(shí)施例的有益效果在于,本發(fā)明實(shí)施例的有益效果在于,本發(fā)明實(shí)施例提供的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法,全局路徑規(guī)劃中參考已知障礙物環(huán)境信息和障礙物膨脹信息,局部路徑規(guī)劃中根據(jù)動(dòng)態(tài)障礙物信息及其膨脹信息生成局部路徑,與路徑代價(jià)值之和最小全局路徑拼接,并且用局部路徑代替局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物。全局路徑規(guī)劃中獲取的障礙物環(huán)境信息較完善,路徑代價(jià)值之和最小全局路徑考慮了全局環(huán)境,局部路徑規(guī)劃中根據(jù)動(dòng)態(tài)障礙物信息及其膨脹信息生成局部路徑,并且用局部路徑代替局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物,可讓機(jī)器人在局部窗口運(yùn)行中適應(yīng)變化的環(huán)境,使機(jī)器人沿著最終規(guī)劃的目標(biāo)避障路徑行走。全局路徑規(guī)劃與局部路徑規(guī)劃結(jié)合,機(jī)器人在局部路徑中移動(dòng)不容易喪失目標(biāo)以及陷入死鎖。
而且,全局代價(jià)地圖根據(jù)已知障礙物環(huán)境信息和障礙物膨脹信息建立,全局代價(jià)地圖包含不同路徑代價(jià)值的點(diǎn),所述點(diǎn)的路徑代價(jià)值體現(xiàn)所述點(diǎn)與相鄰點(diǎn)路徑距離以及體現(xiàn)所述點(diǎn)與最近障礙物距離;計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑為路徑代價(jià)值之和最小全局路徑,在全局路徑規(guī)劃中除了考慮起始點(diǎn)到所述目標(biāo)點(diǎn)的路徑距離,還考慮與最近障礙物距離,盡量避免靠近障礙物運(yùn)行,而傾向于在兩個(gè)障礙物的中間運(yùn)行,機(jī)器人在運(yùn)行過程中撞到障礙物的概率降低,從而降低了由于碰撞帶來的損壞,避免經(jīng)濟(jì)損失,另一方面減少碰撞也提高了機(jī)器人的運(yùn)行效率。
局部代價(jià)地圖根據(jù)動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息建立,生成的局部路徑除了避開動(dòng)態(tài)障礙物,還考慮與動(dòng)態(tài)障礙物及與最近障礙物距離,局部運(yùn)行中也盡量避免靠近動(dòng)態(tài)障礙物和最近障礙物運(yùn)行,而傾向于在動(dòng)態(tài)障礙物及最近障礙物的中間運(yùn)行。
具體地,路徑擬合的控制算法如下:
建立室內(nèi)環(huán)境的全局坐標(biāo)系,獲取機(jī)器人當(dāng)前位置P1,獲取離機(jī)器人最近且靠近目標(biāo)點(diǎn)的局部路徑點(diǎn)位置P2,獲取P2向前預(yù)設(shè)距離(如10cm/20cm/30cm)的局部路徑點(diǎn)位置P3,計(jì)算P1到P3的連線與全局坐標(biāo)系X軸的夾角θ1,計(jì)算P2到P3的連線與全局坐標(biāo)系X軸的夾角θ2,定義ω=θ2-θ1,并根據(jù)機(jī)器人的不同款式或型號(hào)等預(yù)設(shè)的角度閾值α。當(dāng)ω的絕對(duì)值大于α?xí)r,控制機(jī)器人以角速度最大,線速度為零趨近局部路徑運(yùn)行,直到與局部路徑擬合;反之,當(dāng)ω的絕對(duì)值小于等于α?xí)r,則認(rèn)為機(jī)器人的運(yùn)行路徑此時(shí)已與局部路徑擬合,此時(shí)控制機(jī)器人以角速度為零,以一定的線速度在局部路徑上運(yùn)行。
在另一實(shí)施例中,所述方法還包括;
實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息,計(jì)算所述動(dòng)態(tài)障礙物膨脹信息,根據(jù)所述動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息重新生成局部路徑。
當(dāng)局部路徑上有障礙時(shí),通過避障傳感器實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息,計(jì)算所述動(dòng)態(tài)障礙物膨脹信息,對(duì)當(dāng)前局部路徑進(jìn)行重新規(guī)劃,保證局部路徑是一條安全的最優(yōu)路徑,以避開動(dòng)態(tài)障礙物,適應(yīng)變化的環(huán)境。
圖3為局部代價(jià)地圖的示意圖。如圖3所示,局部代價(jià)地圖包括障礙層和膨脹層,在局部代價(jià)地圖中加入膨脹層的目的是為了實(shí)時(shí)避障和盡量使規(guī)劃的路徑在中間。圖4為局部窗口內(nèi)的路徑規(guī)劃示意圖。如圖4所示,目標(biāo)點(diǎn)與起始點(diǎn)之間實(shí)線連線為路徑代價(jià)值之和最小全局路徑,局部窗口內(nèi)的虛線部分為局部路徑。
圖5為全局路徑規(guī)劃示意圖,具體為拼接局部路徑與路徑代價(jià)值之和最小全局路徑,并且用局部路徑代替局部代價(jià)地圖所在的局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑。如5所示,機(jī)器人在全局代價(jià)地圖內(nèi)的移動(dòng)中,局部代價(jià)地圖跟隨機(jī)器人一起移動(dòng)。這樣機(jī)器人在全局代價(jià)地圖內(nèi)的移動(dòng)中,由于局部路徑是根據(jù)實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息并計(jì)算所述動(dòng)態(tài)障礙物膨脹信息建立的動(dòng)態(tài)的局部代價(jià)地圖生成的,縱觀機(jī)器人在全局坐標(biāo)系下的全局代價(jià)地圖移動(dòng)時(shí),看起來的效果是局部代價(jià)地圖跟隨機(jī)器人一起移動(dòng),就像鼠標(biāo)光圈跟隨鼠標(biāo)移動(dòng)一樣。并且,還可以通過提高檢測(cè)和計(jì)算精度,讓機(jī)器人在移動(dòng)過程當(dāng)中,機(jī)器人始終保持在局部地圖的正中間。
在另一實(shí)施例中,采用跳點(diǎn)搜索算法計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑代價(jià)值之和最小全局路徑;路徑代價(jià)值之和最小全局路徑包括若干順序相連的局部目標(biāo)點(diǎn)。在跳點(diǎn)搜索算法中采用代價(jià)估計(jì)函數(shù)f(n)=g(n)+h(n),其中,f(n)是起始點(diǎn)到目標(biāo)點(diǎn)的路徑代價(jià)值,g(n)是當(dāng)前節(jié)點(diǎn)到目標(biāo)點(diǎn)的路徑代價(jià)值,h(n)是當(dāng)前節(jié)點(diǎn)到起始點(diǎn)的路徑代價(jià)值。采用跳點(diǎn)搜索算法計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑代價(jià)值之和最小全局路徑具體包括:
步驟31、建立open列表和close列表;open列表用于存放未遍歷訪問的節(jié)點(diǎn);close列表用于存放已經(jīng)遍歷訪問過的節(jié)點(diǎn)。
步驟32、將機(jī)器人的目標(biāo)點(diǎn)放入open列表。
步驟33、遍歷目標(biāo)點(diǎn)的上、下、左、右、左上、左下、右上和右下八個(gè)方向的子節(jié)點(diǎn)。
步驟34、判斷子節(jié)點(diǎn)是否已在open列表或close列表中。
若子節(jié)點(diǎn)已在open列表中,則重新計(jì)算所述子節(jié)點(diǎn)的f(n)值,判斷子節(jié)點(diǎn)的f(n)值是否減?。蝗糇庸?jié)點(diǎn)的f(n)值減小,則更新open列表中子節(jié)點(diǎn)的f(n)值和父節(jié)點(diǎn)。
若子節(jié)點(diǎn)已在close列表中,則重新計(jì)算子節(jié)點(diǎn)的f(n)值,判斷子節(jié)點(diǎn)的f(n)值是否減小;若子節(jié)點(diǎn)的f(n)值減小,將子節(jié)點(diǎn)從close列表中移除,重新更新子節(jié)點(diǎn)的f(n)值和父節(jié)點(diǎn),將子節(jié)點(diǎn)加入open列表中。
若子節(jié)點(diǎn)不在open列表或close列表,則將子節(jié)點(diǎn)放入open列表中。
步驟35、從open列表中選取f(n)值最小的節(jié)點(diǎn),并將f(n)值最小的節(jié)點(diǎn)的父節(jié)點(diǎn)放入close列表,跳轉(zhuǎn)到步驟36執(zhí)行。
步驟36、判斷所述選取f(n)值最小的節(jié)點(diǎn)是否為機(jī)器人的起始點(diǎn);若是,則返回最短路徑,最短路徑中的節(jié)點(diǎn)為局部目標(biāo)點(diǎn);若否,則將所述f(n)值最小的節(jié)點(diǎn)的父節(jié)點(diǎn)放入close列表,并跳轉(zhuǎn)到步驟37處理。
步驟37、對(duì)f(n)值最小的節(jié)點(diǎn)分別進(jìn)行水平方向搜索、垂直方向搜索和對(duì)角線方向搜索,以搜索跳點(diǎn);其中,所述對(duì)角線方向搜索包括水平方向搜索和垂直方向搜索;待各方向搜索結(jié)束,跳轉(zhuǎn)到步驟35繼續(xù)執(zhí)行。
可以理解地,該跳點(diǎn)搜索法中的每一節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù)包含節(jié)點(diǎn)的行列下標(biāo)、下個(gè)搜索方向和其父節(jié)點(diǎn)。搜索過程中,從open表中選取代價(jià)估計(jì)函數(shù)f(n)值最小的節(jié)點(diǎn),對(duì)該節(jié)點(diǎn)的下個(gè)搜索方向分別進(jìn)行水平方向搜索、垂直方向搜索和對(duì)角線方向搜索,以搜索跳點(diǎn),將搜索到的跳點(diǎn)添加入open表,并將該節(jié)點(diǎn)添入close表。重復(fù)上述搜索過程,不斷從open表中取出節(jié)點(diǎn),進(jìn)行跳點(diǎn)搜索,直至取到終點(diǎn),停止搜索,返回路徑節(jié)點(diǎn)數(shù)組,該路徑節(jié)點(diǎn)數(shù)組為最短路徑,最短路徑中的每一節(jié)點(diǎn)為一局部目標(biāo)點(diǎn)。相比A*算法,跳點(diǎn)搜索法可同時(shí)采用水平方向搜索、垂直方向搜索和對(duì)角線方向搜索,消除地圖中大量的對(duì)稱節(jié)點(diǎn),提高搜索效率,且可有效減少節(jié)點(diǎn)存儲(chǔ)量,節(jié)省存儲(chǔ)空間。
又例如,只遍歷目標(biāo)點(diǎn)的上下左右四個(gè)方位,從目標(biāo)點(diǎn)開始執(zhí)行簡(jiǎn)化的跳點(diǎn)搜索算法:
步驟21、將目標(biāo)點(diǎn)視為父節(jié)點(diǎn),將目標(biāo)點(diǎn)到目標(biāo)點(diǎn)的路徑距離設(shè)為0;
步驟22、將目標(biāo)點(diǎn)上方A點(diǎn)、目標(biāo)點(diǎn)下方B點(diǎn)、目標(biāo)點(diǎn)左邊C點(diǎn)、目標(biāo)點(diǎn)右邊D點(diǎn)四個(gè)子節(jié)點(diǎn)放入當(dāng)前處理序列curP(open列表);計(jì)算目標(biāo)點(diǎn)與目標(biāo)點(diǎn)上方A點(diǎn)的路徑距離,計(jì)算目標(biāo)點(diǎn)上方A點(diǎn)與最近障礙物距離,并計(jì)算出目標(biāo)點(diǎn)上方A點(diǎn)的路徑代價(jià)值potarrA;計(jì)算目標(biāo)點(diǎn)與目標(biāo)點(diǎn)下方B點(diǎn)的路徑距離,計(jì)算目標(biāo)點(diǎn)下方B點(diǎn)與最近障礙物距離,并計(jì)算出目標(biāo)點(diǎn)下方B點(diǎn)的路徑代價(jià)值potarrB;計(jì)算目標(biāo)點(diǎn)與目標(biāo)點(diǎn)左邊C點(diǎn)的路徑距離,計(jì)算目標(biāo)點(diǎn)左邊C點(diǎn)與最近障礙物距離,并計(jì)算出目標(biāo)點(diǎn)左邊C點(diǎn)的路徑代價(jià)值potarrC;計(jì)算目標(biāo)點(diǎn)與目標(biāo)點(diǎn)右邊D點(diǎn)的路徑距離,計(jì)算目標(biāo)點(diǎn)右邊D點(diǎn)與最近障礙物距離,并計(jì)算出目標(biāo)點(diǎn)右邊D點(diǎn)的路徑代價(jià)值potarrD;比較potarrA、potarrB、potarrC和potarrD,并選取其中的最小值的點(diǎn)假設(shè)為目標(biāo)點(diǎn)某側(cè)p1點(diǎn);
步驟23、將p1點(diǎn)上方H點(diǎn)、p1點(diǎn)下方I點(diǎn)、p1點(diǎn)左邊J點(diǎn)、p1點(diǎn)右邊K點(diǎn)四個(gè)子節(jié)點(diǎn)放入當(dāng)前處理序列curP;分別判斷所述p1點(diǎn)上方H點(diǎn)、p1點(diǎn)下方I點(diǎn)、p1點(diǎn)左邊J點(diǎn)或p1點(diǎn)右邊K點(diǎn)是否父節(jié)點(diǎn);若是,則移出當(dāng)前處理序列curP;計(jì)算p1點(diǎn)上、下、左、右四個(gè)子節(jié)點(diǎn)除了父節(jié)點(diǎn)以外節(jié)點(diǎn)的路徑代價(jià)值;比較p1點(diǎn)上、下、左、右四個(gè)子節(jié)點(diǎn)除了父節(jié)點(diǎn)以外子節(jié)點(diǎn)的路徑代價(jià)值,并選取其中的最小值的點(diǎn)假設(shè)為p1點(diǎn)某側(cè)p2點(diǎn);
步驟24、判斷所述p2點(diǎn)是否為移動(dòng)機(jī)器人的起始點(diǎn);若是,則返回路徑代價(jià)值之和最小全局路徑,路徑代價(jià)值之和最小全局路徑中的節(jié)點(diǎn)為局部目標(biāo)點(diǎn);若否,則重復(fù)上述步驟23得到非父節(jié)點(diǎn)的路徑代價(jià)值最小值的……pn-1點(diǎn)、pn點(diǎn)……,以搜索跳點(diǎn)。
本發(fā)明實(shí)施例的有益效果在于,本發(fā)明實(shí)施例提供的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法,局部代價(jià)地圖根據(jù)動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息建立,局部代價(jià)地圖包含不同路徑代價(jià)值的點(diǎn),在局部代價(jià)地圖中確定穿過局部窗口的局部路徑,根據(jù)所述局部路徑,控制所述移動(dòng)機(jī)器人避開所述動(dòng)態(tài)障礙物,在局部路徑規(guī)劃中除了考慮避開動(dòng)態(tài)障礙物,還考慮與最近動(dòng)態(tài)障礙物距離、穿過局部窗口的路徑距離,盡量避免靠近動(dòng)態(tài)障礙物和最近障礙物運(yùn)行,而傾向于在兩個(gè)動(dòng)態(tài)障礙物的中間或動(dòng)態(tài)障礙物和最近障礙物中間運(yùn)行,機(jī)器人在運(yùn)行過程中撞到動(dòng)態(tài)障礙物的概率降低,從而降低了由于碰撞帶來的損壞,避免經(jīng)濟(jì)損失,減少碰撞也提高了機(jī)器人的運(yùn)行效率,動(dòng)態(tài)障礙物信息實(shí)時(shí)檢測(cè),保證移動(dòng)機(jī)器人局部路徑規(guī)劃和避障的準(zhǔn)確性和實(shí)時(shí)性。
在另一實(shí)施例中,所述方法還包括:
根據(jù)所述路徑代價(jià)值之和最小全局路徑計(jì)算機(jī)器人行進(jìn)速度。
在局部窗口的速度控制上,直接根據(jù)全局規(guī)劃給出的路徑計(jì)算機(jī)器人行進(jìn)速度。根據(jù)機(jī)器人要走的全局路徑(路徑代價(jià)值之和最小全局路徑),機(jī)器人本身的行進(jìn)加速度限制等特性,執(zhí)行機(jī)器人行進(jìn)速度控制算法,計(jì)算出機(jī)器人沿著該局部路徑需要的速度。在圖4局部窗口內(nèi)的路徑規(guī)劃示意圖中,從起始點(diǎn)到目標(biāo)點(diǎn)之間的全局路徑為全局規(guī)劃算法中規(guī)劃出的路徑,該全局路徑在局部窗口中的實(shí)線路徑為路徑代價(jià)值之和最小全局路徑在局部窗口的部分路徑,虛線路徑為局部路徑。值得說明的是,在局部窗口內(nèi),局部路徑(虛線)并不一定完全替換路徑代價(jià)值之和最小全局路徑在局部窗口的部分路徑(局部窗口內(nèi)實(shí)線),先通過拼接局部路徑與路徑代價(jià)值之和最小全局路徑,在拼接的頭部和尾部之間使用局部路徑。
本發(fā)明實(shí)施例的有益效果在于,機(jī)器人在局部窗口內(nèi)運(yùn)行時(shí),其運(yùn)行速度為根據(jù)全局規(guī)劃給出的路徑計(jì)算機(jī)器人行進(jìn)速度。根據(jù)全局路徑(路徑代價(jià)值之和最小全局路徑)反向推算出使機(jī)器人運(yùn)行在此局部窗口的速度,相對(duì)于相關(guān)技術(shù)中動(dòng)態(tài)調(diào)整機(jī)器人運(yùn)行速度的方式,本發(fā)明實(shí)施例的機(jī)器人在局部窗口內(nèi)的控制運(yùn)行時(shí)間較短,較不容易讓機(jī)器人死鎖,提高導(dǎo)航和路徑規(guī)劃中的運(yùn)行速度。
實(shí)施例2
本發(fā)明實(shí)施例還提供一種室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃裝置200,如圖6所示,包括全局代價(jià)地圖建立模塊210、起終點(diǎn)設(shè)置模塊220、路徑確定模塊230和局部避障控制模塊240。
全局代價(jià)地圖建立模塊210,用于根據(jù)已知障礙物環(huán)境信息和障礙物膨脹信息,建立包含不同路徑代價(jià)值的點(diǎn)的全局代價(jià)地圖,其中,所述點(diǎn)的路徑代價(jià)值體現(xiàn)所述點(diǎn)被障礙物占據(jù)的概率、所述點(diǎn)與相鄰點(diǎn)路徑距離以及體現(xiàn)所述點(diǎn)與最近障礙物距離;
起終點(diǎn)設(shè)置模塊220,用于設(shè)置所述機(jī)器人在所述全局代價(jià)地圖中的起始點(diǎn)和目標(biāo)點(diǎn);
路徑確定模塊230,用于采用跳點(diǎn)搜索算法計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑代價(jià)值之和最小全局路徑;所述路徑代價(jià)值之和最小全局路徑包括若干順序相連的局部目標(biāo)點(diǎn);
局部避障控制模塊240,用于控制所述機(jī)器人向每一所述局部目標(biāo)點(diǎn)移動(dòng)過程中,采用當(dāng)局部路徑上有障礙時(shí)進(jìn)行重新規(guī)劃的方法以及路徑擬合控制算法避開動(dòng)態(tài)障礙物。
需要說明的是,本發(fā)明實(shí)施例提出的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃裝置200與方法實(shí)施例提出的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法基于相同的發(fā)明構(gòu)思,方法實(shí)施例與裝置實(shí)施例中的相應(yīng)技術(shù)內(nèi)容可相互適用,此處不再詳述。
本發(fā)明實(shí)施例的有益效果在于,本發(fā)明實(shí)施例提供的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃裝置200,全局路徑規(guī)劃中參考已知障礙物環(huán)境信息和障礙物膨脹信息,局部路徑規(guī)劃中根據(jù)動(dòng)態(tài)障礙物信息及其膨脹信息生成局部路徑,與路徑代價(jià)值之和最小全局路徑拼接,并且用局部路徑代替局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物。全局路徑規(guī)劃中獲取的障礙物環(huán)境信息較完善,路徑代價(jià)值之和最小全局路徑考慮了全局環(huán)境,局部路徑規(guī)劃中根據(jù)動(dòng)態(tài)障礙物信息及其膨脹信息生成局部路徑,并且用局部路徑代替局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物,可讓機(jī)器人在局部窗口運(yùn)行中適應(yīng)變化的環(huán)境,使機(jī)器人沿著最終規(guī)劃的目標(biāo)避障路徑行走。全局路徑規(guī)劃與局部路徑規(guī)劃結(jié)合,機(jī)器人在局部路徑中移動(dòng)不容易喪失目標(biāo)以及陷入死鎖。而且,全局代價(jià)地圖根據(jù)已知障礙物環(huán)境信息和障礙物膨脹信息建立,全局代價(jià)地圖包含不同路徑代價(jià)值的點(diǎn),所述點(diǎn)的路徑代價(jià)值體現(xiàn)所述點(diǎn)與相鄰點(diǎn)路徑距離以及體現(xiàn)所述點(diǎn)與最近障礙物距離;計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑為路徑代價(jià)值之和最小全局路徑,在全局路徑規(guī)劃中除了考慮起始點(diǎn)到所述目標(biāo)點(diǎn)的路徑距離,還考慮與最近障礙物距離,盡量避免靠近障礙物運(yùn)行,而傾向于在兩個(gè)障礙物的中間運(yùn)行,機(jī)器人在運(yùn)行過程中撞到障礙物的概率降低,從而降低了由于碰撞帶來的損壞,避免經(jīng)濟(jì)損失,另一方面減少碰撞也提高了機(jī)器人的運(yùn)行效率。
在另一實(shí)施例中,所述裝置還包括;
重生成模塊,用于實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息,計(jì)算所述動(dòng)態(tài)障礙物膨脹信息,根據(jù)所述動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息重新生成局部路徑。
當(dāng)局部路徑上有障礙時(shí),通過避障傳感器實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息,計(jì)算所述動(dòng)態(tài)障礙物膨脹信息,對(duì)當(dāng)前局部路徑進(jìn)行重新規(guī)劃,保證局部路徑是一條安全的最優(yōu)路徑,以避開動(dòng)態(tài)障礙物,適應(yīng)變化的環(huán)境。
在另一實(shí)施例中,所述局部避障控制模塊240還用于:
實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息,計(jì)算所述動(dòng)態(tài)障礙物膨脹信息,根據(jù)所述動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息建立局部代價(jià)地圖,并在局部代價(jià)地圖中確定穿過局部窗口的局部路徑,根據(jù)所述局部路徑,控制所述移動(dòng)機(jī)器人避開所述動(dòng)態(tài)障礙物。
本發(fā)明實(shí)施例的有益效果在于,當(dāng)局部路徑上有障礙時(shí),通過避障傳感器實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息,計(jì)算所述動(dòng)態(tài)障礙物膨脹信息,對(duì)當(dāng)前局部路徑進(jìn)行重新規(guī)劃,保證局部路徑是一條安全的最優(yōu)路徑,以避開動(dòng)態(tài)障礙物,適應(yīng)變化的環(huán)境。本發(fā)明實(shí)施例提供的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃裝置200,動(dòng)態(tài)障礙物信息實(shí)時(shí)檢測(cè),保證移動(dòng)機(jī)器人局部路徑規(guī)劃和避障的準(zhǔn)確性和實(shí)時(shí)性。
在又一實(shí)施例中,所述障礙物膨脹信息包括膨脹直徑,所述膨脹直徑根據(jù)所述機(jī)器人半徑設(shè)置。
在另一實(shí)施例中,所述點(diǎn)與最近障礙物距離代價(jià)值依據(jù)離最近障礙物越遠(yuǎn)值越小的規(guī)律且按指數(shù)規(guī)律遞減。
在又一實(shí)施例中,所述裝置還包括:
速度計(jì)算模塊,用于根據(jù)所述路徑代價(jià)值之和最小全局路徑計(jì)算機(jī)器人行進(jìn)速度。
本發(fā)明實(shí)施例的有益效果在于,機(jī)器人在局部窗口內(nèi)運(yùn)行時(shí),其運(yùn)行速度為根據(jù)全局規(guī)劃給出的路徑計(jì)算機(jī)器人行進(jìn)速度。根據(jù)全局路徑(路徑代價(jià)值之和最小全局路徑)反向推算出使機(jī)器人運(yùn)行在此局部窗口的速度,相對(duì)于相關(guān)技術(shù)中動(dòng)態(tài)調(diào)整機(jī)器人運(yùn)行速度的方式,本發(fā)明實(shí)施例的機(jī)器人在局部窗口內(nèi)的控制運(yùn)行時(shí)間較短,較不容易讓機(jī)器人死鎖,提高導(dǎo)航和路徑規(guī)劃中的運(yùn)行速度。
實(shí)施例3
本發(fā)明實(shí)施例還提供機(jī)器人300,如圖7所示,包括機(jī)身310和處理器320,所述處理器320安裝在所述機(jī)身內(nèi),所述處理器320用于:
根據(jù)已知障礙物環(huán)境信息和障礙物膨脹信息,建立包含不同路徑代價(jià)值的點(diǎn)的全局代價(jià)地圖,其中,所述點(diǎn)的路徑代價(jià)值體現(xiàn)所述點(diǎn)被障礙物占據(jù)的概率、所述點(diǎn)與相鄰點(diǎn)路徑距離以及體現(xiàn)所述點(diǎn)與最近障礙物距離;
設(shè)置所述機(jī)器人在所述全局代價(jià)地圖中的起始點(diǎn)和目標(biāo)點(diǎn);
采用跳點(diǎn)搜索算法計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑代價(jià)值之和最小全局路徑;
控制機(jī)器人沿路徑代價(jià)值之和最小全局路徑移動(dòng)過程中,根據(jù)動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息建立動(dòng)態(tài)的局部代價(jià)地圖,生成局部路徑,拼接局部路徑與路徑代價(jià)值之和最小全局路徑,并且用局部路徑代替局部代價(jià)地圖所在的局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物。
需要說明的是,本發(fā)明實(shí)施例提出機(jī)器人實(shí)施例與裝置實(shí)施例室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃裝置及與方法實(shí)施例提出的室內(nèi)動(dòng)態(tài)環(huán)境下機(jī)器人路徑規(guī)劃方法基于相同的發(fā)明構(gòu)思,機(jī)器人實(shí)施例與方法實(shí)施例、裝置實(shí)施例中的相應(yīng)技術(shù)內(nèi)容可相互適用,此處不再詳述。
本發(fā)明實(shí)施例的有益效果在于,本發(fā)明實(shí)施例提供機(jī)器人300包括機(jī)身310和處理器320,所述處理器320安裝在所述機(jī)身內(nèi),所述處理器320用于,根據(jù)已知障礙物環(huán)境信息和障礙物膨脹信息,建立全局代價(jià)地圖,計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑代價(jià)值之和最小全局路徑;根據(jù)動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息建立動(dòng)態(tài)的局部代價(jià)地圖,生成局部路徑,拼接局部路徑與路徑代價(jià)值之和最小全局路徑,并且用局部路徑代替局部代價(jià)地圖所在的局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物。本發(fā)明實(shí)施例提供的機(jī)器人300,全局路徑規(guī)劃中獲取的障礙物環(huán)境信息較完善,路徑代價(jià)值之和最小全局路徑考慮了全局環(huán)境,局部路徑規(guī)劃中根據(jù)動(dòng)態(tài)障礙物信息及其膨脹信息生成局部路徑,并且用局部路徑代替局部窗口內(nèi)的路徑代價(jià)值之和最小全局路徑得到目標(biāo)避障路徑,以路徑擬合控制算法控制所述機(jī)器人沿所述目標(biāo)避障路徑移動(dòng)以避開動(dòng)態(tài)障礙物,可讓機(jī)器人在局部窗口運(yùn)行中適應(yīng)變化的環(huán)境,使機(jī)器人沿著最終規(guī)劃的目標(biāo)避障路徑行走。全局路徑規(guī)劃與局部路徑規(guī)劃結(jié)合,機(jī)器人在局部路徑中移動(dòng)不容易喪失目標(biāo)以及陷入死鎖。而且,全局代價(jià)地圖根據(jù)已知障礙物環(huán)境信息和障礙物膨脹信息建立,全局代價(jià)地圖包含不同路徑代價(jià)值的點(diǎn),所述點(diǎn)的路徑代價(jià)值體現(xiàn)所述點(diǎn)與相鄰點(diǎn)路徑距離以及體現(xiàn)所述點(diǎn)與最近障礙物距離;計(jì)算所述起始點(diǎn)到所述目標(biāo)點(diǎn)之間的路徑為路徑代價(jià)值之和最小全局路徑,在全局路徑規(guī)劃中除了考慮起始點(diǎn)到所述目標(biāo)點(diǎn)的路徑距離,還考慮與最近障礙物距離,盡量避免靠近障礙物運(yùn)行,而傾向于在兩個(gè)障礙物的中間運(yùn)行,機(jī)器人在運(yùn)行過程中撞到障礙物的概率降低,從而降低了由于碰撞帶來的損壞,避免經(jīng)濟(jì)損失,另一方面減少碰撞也提高了機(jī)器人的運(yùn)行效率。
在另一實(shí)施例中,所述機(jī)器人300還包括:
固定在所述機(jī)身上并與處理器320連接的測(cè)障傳感器330,用于實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息;具體地,測(cè)障傳感器330可以為紅外傳感器,可安裝在機(jī)身的各個(gè)方向。
所述處理器320還用于計(jì)算所述動(dòng)態(tài)障礙物膨脹信息,根據(jù)所述動(dòng)態(tài)障礙物信息和動(dòng)態(tài)障礙物膨脹信息重新生成局部路徑。
當(dāng)局部路徑上有障礙時(shí),通過避障傳感器實(shí)時(shí)檢測(cè)所述動(dòng)態(tài)障礙物信息,計(jì)算所述動(dòng)態(tài)障礙物膨脹信息,對(duì)當(dāng)前局部路徑進(jìn)行重新規(guī)劃,保證局部路徑是一條安全的最優(yōu)路徑,以避開動(dòng)態(tài)障礙物,適應(yīng)變化的環(huán)境。
最后應(yīng)說明的是:以上實(shí)施例僅用以說明本申請(qǐng)的技術(shù)方案,而非對(duì)其限制;在本申請(qǐng)的思路下,以上實(shí)施例或者不同實(shí)施例中的技術(shù)特征之間也可以進(jìn)行組合,步驟可以以任意順序?qū)崿F(xiàn),并存在如上所述的本申請(qǐng)的不同方面的許多其它變化,為了簡(jiǎn)明,它們沒有在細(xì)節(jié)中提供;盡管參照前述實(shí)施例對(duì)本申請(qǐng)進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本申請(qǐng)各實(shí)施例技術(shù)方案的范圍。