本發(fā)明涉及路徑規(guī)劃,尤其涉及一種移動(dòng)機(jī)器人路徑規(guī)劃方法及系統(tǒng)。
背景技術(shù):
1、路徑規(guī)劃一直是移動(dòng)機(jī)器人研究領(lǐng)域的關(guān)鍵技術(shù)之一,路徑規(guī)劃的主要目的是在未知環(huán)境下迅速準(zhǔn)確的找到一條從起始位置到目標(biāo)位置的不發(fā)生碰撞的最優(yōu)路徑。
2、目前,研究者們已經(jīng)開發(fā)了多種路徑規(guī)劃算法來應(yīng)對(duì)不同的環(huán)境和需求。移動(dòng)機(jī)器人的路徑規(guī)劃可分為三大類:分別是傳統(tǒng)算法、基于采樣的規(guī)劃方法以及智能算法。傳統(tǒng)算法如dijkstra算法和a*算法,它們是路徑規(guī)劃中的經(jīng)典算法。a*算法通過引入啟發(fā)式函數(shù),提高了搜索效率,但無法保證找到全局最優(yōu)解;基于采樣的規(guī)劃方法包括概率路圖法(prm)和快速搜索隨機(jī)樹法(rrt),這些方法通過隨機(jī)采樣來探索狀態(tài)空間,并構(gòu)建出可行的路徑。它們特別適用于高維空間和復(fù)雜約束的問題,但可能需要大量的采樣來保證路徑的可行性;目前智能算法的應(yīng)用也越來越廣泛,隨著人工智能技術(shù)的發(fā)展,越來越多的智能算法被應(yīng)用于路徑規(guī)劃中,如神經(jīng)網(wǎng)絡(luò)、模糊邏輯、遺傳算法等。這些算法能夠提供更加靈活和適應(yīng)性強(qiáng)的解決方案,尤其是在動(dòng)態(tài)和未知環(huán)境中。綜上所述,移動(dòng)機(jī)器人路徑規(guī)劃的研究正在朝著提高適應(yīng)性和效率、以及更智能的決策方向發(fā)展。隨著技術(shù)的不斷進(jìn)步,未來的路徑規(guī)劃算法將更加智能化、自動(dòng)化,并能夠更好地適應(yīng)復(fù)雜多變的環(huán)境。
3、a*算法是一種啟發(fā)式搜索算法,廣泛應(yīng)用于路徑規(guī)劃領(lǐng)域,包括移動(dòng)機(jī)器人的路徑規(guī)劃。盡管a*算法以其高效性和準(zhǔn)確性而受到青睞,但在實(shí)際應(yīng)用中也存在一些缺點(diǎn):1)、搜索速度慢:在使用a*算法進(jìn)行移動(dòng)機(jī)器人路徑規(guī)劃時(shí),目前常用的鄰域搜索方式為四鄰域和八鄰域搜索模式,當(dāng)搜索空間較大且障礙物較少時(shí),這種搜索方式的效率會(huì)非常低下,導(dǎo)致算法的搜索速度變慢。2)存在無用節(jié)點(diǎn):a*算法在向外擴(kuò)展時(shí),需計(jì)算其所有可能存在的下一位置的代價(jià)函數(shù),但在實(shí)際搜索過程中,背離其最終目標(biāo)位置的搜索方向的節(jié)點(diǎn)往往為無效節(jié)點(diǎn),這會(huì)占用算法搜索的時(shí)間,導(dǎo)致算法搜索效率的降低。3)啟發(fā)式函數(shù)依賴性:a*算法的性能極大依賴于啟發(fā)式函數(shù)的選擇。如果啟發(fā)式函數(shù)選擇不當(dāng),可能會(huì)導(dǎo)致算法效率降低或無法找到最優(yōu)解。4)存在冗余節(jié)點(diǎn):使用a*算法得到的路徑往往存在很多冗余節(jié)點(diǎn),導(dǎo)致路徑存在較多拐點(diǎn),降低了移動(dòng)機(jī)器人工作的效率。
4、現(xiàn)有的移動(dòng)機(jī)器人路徑規(guī)劃算法,通常存在搜索效率低、擴(kuò)展節(jié)點(diǎn)過多和存在冗余節(jié)點(diǎn)等問題,現(xiàn)有技術(shù)中,申請(qǐng)?zhí)枮?02110837144.2的發(fā)明公開了用rrt*算法生成多條可行路徑,并通過轉(zhuǎn)彎特性函數(shù)計(jì)算每條路徑的時(shí)間代價(jià),最終選擇時(shí)間代價(jià)最小的路徑作為規(guī)劃路徑。這種方法能夠減少機(jī)器人實(shí)際任務(wù)的路徑時(shí)間代價(jià),提高執(zhí)行任務(wù)的效率,但運(yùn)算量較大,導(dǎo)致算法運(yùn)行效率較低。申請(qǐng)?zhí)枮?01711374451.1的發(fā)明公開了一種路徑規(guī)劃方法,首先在靜態(tài)障礙物環(huán)境中進(jìn)行全局路徑預(yù)規(guī)劃,然后對(duì)預(yù)規(guī)劃路徑進(jìn)行二次平滑處理。在遇到動(dòng)態(tài)障礙物時(shí),采用人工勢(shì)場(chǎng)法進(jìn)行局部路徑規(guī)劃。這種方法有效提高了路徑規(guī)劃的效率和平滑性,但在面臨動(dòng)態(tài)環(huán)境變化頻繁時(shí),算法的實(shí)時(shí)更新和適應(yīng)性不足。申請(qǐng)?zhí)枮榘l(fā)明202010639974.x公開了采用a*算法進(jìn)行全局路徑規(guī)劃,并利用加權(quán)思想改進(jìn)評(píng)價(jià)函數(shù)以剔除冗余點(diǎn)。在遇到動(dòng)態(tài)障礙時(shí),采用人工勢(shì)場(chǎng)算法進(jìn)行局部路徑規(guī)劃。然而,這種方法通過算法融合提高了計(jì)算復(fù)雜度,降低了算法的計(jì)算效率。
5、由此可知,現(xiàn)有技術(shù)在移動(dòng)機(jī)器人路徑規(guī)劃方面仍存在諸多缺陷,亟需提出一種新的路徑規(guī)劃方法以提高機(jī)器人路徑規(guī)劃的整體效率。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,有必要提供一種移動(dòng)機(jī)器人路徑規(guī)劃方法及系統(tǒng),用以解決現(xiàn)有技術(shù)的上述缺陷。
2、為了解決上述問題,第一方面,本發(fā)明實(shí)施例提供一種移動(dòng)機(jī)器人路徑規(guī)劃方法,包括:
3、s1,根據(jù)當(dāng)前節(jié)點(diǎn)的八鄰域中是否存在障礙物,確定八鄰域與新十六鄰域混合使用的多鄰域混合搜索機(jī)制;
4、s2,基于所述多鄰域混合搜索機(jī)制,根據(jù)當(dāng)前節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)的位置,刪除無效節(jié)點(diǎn);
5、s3,采用雙向搜索策略,并加入動(dòng)態(tài)權(quán)重系數(shù)調(diào)整啟發(fā)函數(shù),得到規(guī)劃后的路徑;
6、s4,對(duì)規(guī)劃后的路徑采用冗余拐點(diǎn)刪除策略,去除無用拐點(diǎn),得到最優(yōu)路徑。
7、優(yōu)選的,在步驟s1之前,所述方法還包括:
8、使用柵格法模擬環(huán)境,得到用于移動(dòng)機(jī)器人路徑規(guī)劃的柵格地圖。
9、優(yōu)選的,步驟s1中,根據(jù)當(dāng)前節(jié)點(diǎn)的八鄰域中是否存在障礙物,確定八鄰域與新十六鄰域混合使用的多鄰域混合搜索機(jī)制,包括:
10、判斷當(dāng)前節(jié)點(diǎn)的八鄰域中是否存在障礙物:
11、若存在障礙物,則使用八鄰域搜索方式;
12、若不存在障礙物,則使用十六鄰域搜索方式;其中,所述十六鄰域搜索方式是在八鄰域搜索方式和二十四鄰域搜索方式的基礎(chǔ)上進(jìn)行優(yōu)化得到的。
13、優(yōu)選的,步驟s2中,基于所述多鄰域混合搜索機(jī)制,根據(jù)當(dāng)前節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)的位置,刪除無效節(jié)點(diǎn),包括:
14、確定當(dāng)前節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)在柵格地圖中的位置,計(jì)算當(dāng)前節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)的連線與柵格地圖x軸正方向的夾角α;
15、根據(jù)夾角α的范圍,以及當(dāng)前的鄰域搜索方式,去除無效節(jié)點(diǎn):當(dāng)使用八鄰域搜索方式時(shí),根據(jù)夾角α的范圍,去除八鄰域中的3個(gè)無效節(jié)點(diǎn),保留5個(gè)有效節(jié)點(diǎn)。當(dāng)使用十六鄰域搜索時(shí),根據(jù)夾角α的范圍,去除十六鄰域中的9個(gè)無效節(jié)點(diǎn),保留7個(gè)有效節(jié)點(diǎn)。
16、優(yōu)選的,步驟s3中,采用雙向搜索策略,并加入動(dòng)態(tài)權(quán)重系數(shù)調(diào)整啟發(fā)函數(shù),得到規(guī)劃后的路徑,具體包括:
17、初始化正向搜索和反向搜索的列表;正向搜索由起點(diǎn)向終點(diǎn)搜索,反向搜索由終點(diǎn)向起點(diǎn)搜索;
18、根據(jù)代價(jià)計(jì)算函數(shù)計(jì)算列表中每個(gè)節(jié)點(diǎn)的代價(jià)值,選擇代價(jià)值最小的節(jié)點(diǎn)作為下一步要探索的節(jié)點(diǎn);
19、判斷正向搜索與反向搜索是否相交,若相交則算法結(jié)束,否則繼續(xù)搜索;
20、在雙向搜索過程中,使用動(dòng)態(tài)權(quán)重系數(shù)調(diào)整啟發(fā)函數(shù),以動(dòng)態(tài)調(diào)整搜索速度。
21、優(yōu)選的,所述在雙向搜索過程中,使用動(dòng)態(tài)權(quán)重系數(shù)調(diào)整啟發(fā)函數(shù),以動(dòng)態(tài)調(diào)整搜索速度,包括:
22、在雙向搜索過程中,使用動(dòng)態(tài)權(quán)重系數(shù)w(n)來調(diào)整啟發(fā)函數(shù)h(n),以動(dòng)態(tài)平衡g(n)與h(n)之間的比例關(guān)系;其中,g(n)表示從起點(diǎn)到當(dāng)前節(jié)點(diǎn)n的代價(jià)值,h(n)表示從當(dāng)前節(jié)點(diǎn)n到終點(diǎn)的代價(jià)值;
23、使用動(dòng)態(tài)權(quán)重系數(shù)w(n)之后雙向搜索算法總代價(jià)的計(jì)算公式為:
24、f(n)=g(n)+w(n)·h(n)
25、式中,f(n)表示起點(diǎn)到終點(diǎn)的總代價(jià)值;
26、其中,在正向搜索時(shí),動(dòng)態(tài)權(quán)重系數(shù)的表達(dá)式為:
27、
28、在反向搜索時(shí),動(dòng)態(tài)權(quán)重系數(shù)的表達(dá)式為:
29、
30、式中,xs和ys為起點(diǎn)坐標(biāo),xg和yg為終點(diǎn)坐標(biāo),xt和yt為正向搜索的當(dāng)前坐標(biāo),xu和yu為反向搜索的當(dāng)前坐標(biāo);
31、動(dòng)態(tài)權(quán)重系數(shù)w(n)采用指數(shù)與對(duì)數(shù)函數(shù)相結(jié)合的方式,根據(jù)當(dāng)前節(jié)點(diǎn)與目標(biāo)終點(diǎn)的距離來動(dòng)態(tài)調(diào)整搜索速度;若當(dāng)前節(jié)點(diǎn)與目標(biāo)終點(diǎn)大于預(yù)設(shè)距離,則加快搜索速度;若當(dāng)前節(jié)點(diǎn)與目標(biāo)終點(diǎn)小于預(yù)設(shè)距離,則減少搜索速度,提高搜索精度。
32、優(yōu)選的,步驟s4中,所述對(duì)規(guī)劃后的路徑采用冗余拐點(diǎn)刪除策略,去除無用拐點(diǎn),包括:
33、s41,由開始節(jié)點(diǎn)向前連接其相隔的拐點(diǎn),判斷開始節(jié)點(diǎn)與相隔拐點(diǎn)的連線中是否存在障礙物;其中,將規(guī)劃后的路徑的終點(diǎn)作為最初的開始節(jié)點(diǎn);
34、s42,若不存在障礙物,則刪除開始節(jié)點(diǎn)與相隔拐點(diǎn)之間的拐點(diǎn),返回s41;若存在障礙物,則將所述相隔拐點(diǎn)作為不可刪除拐點(diǎn),將得到的不可刪除拐點(diǎn)作為新的開始節(jié)點(diǎn),返回s41;
35、s43,重復(fù)s41~s42,逐步向前處理至路徑的起點(diǎn);
36、s44,將獲得的所有不可刪除拐點(diǎn)重新連接,形成最優(yōu)路徑。
37、第二方面,本發(fā)明實(shí)施例提供一種移動(dòng)機(jī)器人路徑規(guī)劃系統(tǒng),包括:
38、鄰域搜索優(yōu)化模塊,用于根據(jù)當(dāng)前節(jié)點(diǎn)的八鄰域中是否存在障礙物,確定八鄰域與新十六鄰域混合使用的多鄰域混合搜索機(jī)制;
39、節(jié)點(diǎn)優(yōu)化模塊,用于基于所述多鄰域混合搜索機(jī)制,根據(jù)當(dāng)前節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)的位置,刪除無效節(jié)點(diǎn);
40、雙向搜索模塊,用于采用雙向搜索策略,并加入動(dòng)態(tài)權(quán)重系數(shù)調(diào)整啟發(fā)函數(shù),得到規(guī)劃后的路徑;
41、冗余拐點(diǎn)刪除模塊,用于對(duì)規(guī)劃后的路徑采用冗余拐點(diǎn)刪除策略,去除無用拐點(diǎn),得到最優(yōu)路徑。
42、第三方面,本發(fā)明還提供了一種電子設(shè)備,包括存儲(chǔ)器和處理器,其中,
43、所述存儲(chǔ)器,用于存儲(chǔ)程序;
44、所述處理器,與所述存儲(chǔ)器耦合,用于執(zhí)行所述存儲(chǔ)器中存儲(chǔ)的所述程序,以實(shí)現(xiàn)如本發(fā)明第一方面實(shí)施例所述的移動(dòng)機(jī)器人路徑規(guī)劃方法中的步驟。
45、第四方面,本發(fā)明還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于存儲(chǔ)計(jì)算機(jī)可讀取的程序或指令,所述程序或指令被處理器執(zhí)行時(shí)能夠?qū)崿F(xiàn)如本發(fā)明第一方面實(shí)施例所述的移動(dòng)機(jī)器人路徑規(guī)劃方法中的步驟。
46、本發(fā)明提供的移動(dòng)機(jī)器人路徑規(guī)劃方法,與現(xiàn)有技術(shù)相比,具有以下
47、有益效果:
48、本發(fā)明實(shí)施例提供的移動(dòng)機(jī)器人路徑規(guī)劃方法及系統(tǒng),通過改進(jìn)鄰域搜索機(jī)制,擴(kuò)展了算法搜索時(shí)可選擇的下一目標(biāo)位置,提高了路徑規(guī)劃算法的搜索效率;通過節(jié)點(diǎn)優(yōu)化策略,去除了算法搜索過程中的無效節(jié)點(diǎn),減少了路徑規(guī)劃算法搜索的時(shí)間;通過引入雙向搜索機(jī)制,提高了算法搜索的效率,同時(shí)加入動(dòng)態(tài)權(quán)重因子調(diào)整算法搜索速度,保證雙向搜索可以在中間點(diǎn)位會(huì)合,成功規(guī)劃出最優(yōu)路徑。通過冗余拐點(diǎn)刪除策略去除了無用拐點(diǎn),提高了移動(dòng)機(jī)器人行駛的效率。