本發(fā)明涉及智能規(guī)劃領(lǐng)域,更具體地,涉及一種機(jī)器人路徑規(guī)劃的高階貝塞爾曲線(xiàn)優(yōu)化方法。
背景技術(shù):
1、近年來(lái),隨著智能控制和機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,路徑規(guī)劃技術(shù)開(kāi)始融合這些先進(jìn)的技術(shù),例如,通過(guò)深度學(xué)習(xí)網(wǎng)絡(luò)來(lái)處理高維空間的路徑規(guī)劃問(wèn)題,或者使用強(qiáng)化學(xué)習(xí)方法來(lái)優(yōu)化路徑規(guī)劃的決策過(guò)程。
2、在路徑規(guī)劃的實(shí)踐中,貝塞爾曲線(xiàn)被廣泛應(yīng)用于路徑平滑處理,貝塞爾曲線(xiàn)通過(guò)控制點(diǎn)來(lái)定義曲線(xiàn)的形狀,能夠生成平滑且連續(xù)的路徑,這對(duì)于機(jī)器人和自動(dòng)駕駛車(chē)輛的路徑規(guī)劃尤為重要,高階貝塞爾曲線(xiàn)可以提供更多的控制點(diǎn),從而實(shí)現(xiàn)更復(fù)雜的路徑規(guī)劃
3、現(xiàn)有技術(shù)中的機(jī)器人路徑規(guī)劃進(jìn)度和效率不足,路徑中的折彎次數(shù)過(guò)多,導(dǎo)致機(jī)器人的運(yùn)行不穩(wěn)定。
技術(shù)實(shí)現(xiàn)思路
1、為了克服現(xiàn)有技術(shù)中的機(jī)器人路徑規(guī)劃進(jìn)度和效率不足,路徑中的折彎次數(shù)過(guò)多,導(dǎo)致機(jī)器人的運(yùn)行不穩(wěn)定等問(wèn)題,本發(fā)明設(shè)計(jì)一種機(jī)器人路徑規(guī)劃的高階貝塞爾曲線(xiàn)優(yōu)化方法能有效解決上述技術(shù)問(wèn)題。
2、為解決上述技術(shù)問(wèn)題,本發(fā)明的技術(shù)方案如下:
3、一種機(jī)器人路徑規(guī)劃的高階貝塞爾曲線(xiàn)優(yōu)化方法,包括以下步驟:
4、利用激光雷達(dá)或攝像頭采集環(huán)境數(shù)據(jù),生成三維環(huán)境地圖;
5、對(duì)所述三維環(huán)境地圖進(jìn)行柵格化處理,劃分可行區(qū)域和障礙區(qū)域;
6、采用改進(jìn)的a*算法進(jìn)行路徑規(guī)劃,引入動(dòng)態(tài)調(diào)整因子μ優(yōu)化代價(jià)函數(shù)f(n);
7、將所述a*算法的搜索鄰域擴(kuò)大到24鄰域,找出最優(yōu)路徑;
8、利用高階貝塞爾曲線(xiàn)對(duì)路徑進(jìn)行平滑處理,減少折彎次數(shù);
9、根據(jù)機(jī)器人實(shí)時(shí)位置和環(huán)境變化,動(dòng)態(tài)調(diào)整路徑。
10、優(yōu)選地,所述利用激光雷達(dá)或攝像頭采集環(huán)境數(shù)據(jù),生成三維環(huán)境地圖的具體步驟包括:
11、安裝并校準(zhǔn)激光雷達(dá)或攝像頭以獲取精確的環(huán)境數(shù)據(jù);
12、實(shí)時(shí)掃描環(huán)境,收集距離和角度數(shù)據(jù);
13、利用收集的環(huán)境數(shù)據(jù)構(gòu)建三維環(huán)境地圖,并更新所述三維環(huán)境地圖以反映環(huán)境變化。
14、優(yōu)選地,所述對(duì)所述三維環(huán)境地圖進(jìn)行柵格化處理,劃分可行區(qū)域和障礙區(qū)域的具體步驟包括:構(gòu)建三維環(huán)境地圖
15、將預(yù)處理后的環(huán)境數(shù)據(jù)轉(zhuǎn)換為三維坐標(biāo)點(diǎn);
16、利用所述三維坐標(biāo)點(diǎn)構(gòu)建所述三維環(huán)境地圖,反映環(huán)境中的障礙物和地形信息;
17、將所述三維環(huán)境地圖轉(zhuǎn)換為二維柵格地圖,便于路徑規(guī)劃算法處理;
18、設(shè)定柵格大小,柵格大小根據(jù)實(shí)際應(yīng)用場(chǎng)景和計(jì)算資源進(jìn)行權(quán)衡;
19、劃分柵格坐標(biāo)系,為每個(gè)柵格分配唯一的坐標(biāo);
20、分析所述三維環(huán)境地圖中的障礙物信息,確定障礙物在所述二維柵格地圖中的位置;
21、根據(jù)障礙物位置,將對(duì)應(yīng)的柵格標(biāo)記為障礙區(qū)域;
22、將未標(biāo)記為障礙區(qū)域的柵格標(biāo)記為可行區(qū)域;
23、檢查相鄰柵格,若所述障礙區(qū)域與可行區(qū)域之間存在狹小通道,進(jìn)行適當(dāng)調(diào)整,確保路徑規(guī)劃的準(zhǔn)確性;
24、對(duì)柵格地圖進(jìn)行平滑處理,實(shí)時(shí)監(jiān)控環(huán)境變化,當(dāng)檢測(cè)到環(huán)境變化時(shí),及時(shí)更新所述二維柵格地圖,重新標(biāo)記所述可行區(qū)域和所述障礙區(qū)域;
25、確保柵格地圖始終反映當(dāng)前環(huán)境狀況,為路徑規(guī)劃提供準(zhǔn)確依據(jù)。
26、所述采用改進(jìn)的a*算法進(jìn)行路徑規(guī)劃,引入動(dòng)態(tài)調(diào)整因子μ優(yōu)化代價(jià)函數(shù)f(n)包括:
27、創(chuàng)建兩個(gè)集合,開(kāi)放集和關(guān)閉集,開(kāi)放集用于存儲(chǔ)待檢查的節(jié)點(diǎn),關(guān)閉集用于存儲(chǔ)已經(jīng)檢查過(guò)的節(jié)點(diǎn);
28、為起始點(diǎn)設(shè)置g(n)=0和h(n);
29、計(jì)算起始點(diǎn)的代價(jià)函數(shù)f(n)=g(n)+μ*h(n),其中μ是動(dòng)態(tài)調(diào)整因子;
30、若所述開(kāi)放集為空,則沒(méi)有找到路徑,算法結(jié)束;
31、從所述開(kāi)放集中找到具有最低f(n)值的節(jié)點(diǎn),記為當(dāng)前節(jié)點(diǎn)n;
32、將所述當(dāng)前節(jié)點(diǎn)從所述開(kāi)放集移動(dòng)到所述關(guān)閉集;
33、若所述當(dāng)前節(jié)點(diǎn)是目標(biāo)點(diǎn),則路徑規(guī)劃完成,進(jìn)入遍歷所述當(dāng)前節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn);
34、根據(jù)路徑規(guī)劃過(guò)程中的環(huán)境變化和需求,動(dòng)態(tài)調(diào)整μ的值;
35、若路徑規(guī)劃過(guò)程中遇到特殊區(qū)域,增加μ的值,使得算法更加傾向于避開(kāi)這些區(qū)域;
36、若需要更快的路徑搜索,可以減少μ的值,使得算法更加傾向于使用啟發(fā)式信息;
37、從所述目標(biāo)點(diǎn)開(kāi)始,沿著每個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)回溯到所述起始點(diǎn),構(gòu)建出完整的路徑;
38、將路徑反轉(zhuǎn),得到從所述起始點(diǎn)到所述目標(biāo)點(diǎn)的路徑。
39、輸出構(gòu)建的路徑并對(duì)路徑進(jìn)行平滑處理,以提高機(jī)器人的實(shí)際行駛效率。
40、優(yōu)選地,所述遍歷所述當(dāng)前節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn)進(jìn)一步包括:
41、若所述鄰居節(jié)點(diǎn)在所述關(guān)閉集中,跳過(guò)此所述鄰居節(jié)點(diǎn);
42、計(jì)算從所述當(dāng)前節(jié)點(diǎn)到所述鄰居節(jié)點(diǎn)的移動(dòng)代價(jià),記為tentative_g_score;
43、若所述鄰居節(jié)點(diǎn)不在所述開(kāi)放集中,或者tentative_g_score小于所述鄰居節(jié)點(diǎn)的g(n),則更新所述鄰居節(jié)點(diǎn)的信息:
44、設(shè)置所述鄰居節(jié)點(diǎn)的父節(jié)點(diǎn)為所述當(dāng)前節(jié)點(diǎn);
45、更新所述鄰居節(jié)點(diǎn)的g(n)為tentative_g_score;
46、重新計(jì)算所述鄰居節(jié)點(diǎn)的h(n);
47、更新所述鄰居節(jié)點(diǎn)的代價(jià)函數(shù)f(n)=g(n)+μ*h(n);
48、若所述鄰居節(jié)點(diǎn)不在所述開(kāi)放集中,將其添加到所述開(kāi)放集。
49、優(yōu)選地,所述利用高階貝塞爾曲線(xiàn)對(duì)路徑進(jìn)行平滑處理,減少折彎次數(shù)包括:
50、根據(jù)改進(jìn)a*算法或其他路徑規(guī)劃算法,獲取機(jī)器人的初步路徑規(guī)劃結(jié)果;
51、將所述初步路徑上的關(guān)鍵節(jié)點(diǎn)提取出來(lái),形成路徑點(diǎn)序列;
52、使用高階貝塞爾曲線(xiàn)來(lái)擬合所述路徑點(diǎn)序列;
53、確定貝塞爾曲線(xiàn)的控制點(diǎn),所述控制點(diǎn)將決定曲線(xiàn)的形狀;
54、使用優(yōu)化算法來(lái)調(diào)整所述控制點(diǎn)的位置;
55、設(shè)定優(yōu)化目標(biāo),以最小化路徑長(zhǎng)度、最大化路徑平滑度或同時(shí)考慮這兩個(gè)因素;
56、直到找到一組所述控制點(diǎn),使得貝塞爾曲線(xiàn)與所述路徑點(diǎn)序列的擬合度達(dá)到預(yù)設(shè)標(biāo)準(zhǔn)。
57、一種電子設(shè)備,所述設(shè)備包括:
58、存儲(chǔ)有可執(zhí)行程序代碼的存儲(chǔ)器;
59、與所述存儲(chǔ)器耦合的處理器;
60、所述處理器調(diào)用所述存儲(chǔ)器中存儲(chǔ)的所述可執(zhí)行程序代碼,執(zhí)行如上述所述的一種機(jī)器人路徑規(guī)劃的高階貝塞爾曲線(xiàn)優(yōu)化方法。
61、一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令被調(diào)用時(shí),用于執(zhí)行上述所述的一種機(jī)器人路徑規(guī)劃的高階貝塞爾曲線(xiàn)優(yōu)化方法。
62、與現(xiàn)有技術(shù)相比,本發(fā)明技術(shù)方案的有益效果是:本發(fā)明通過(guò)高精度傳感器實(shí)時(shí)獲取環(huán)境數(shù)據(jù),確保環(huán)境信息的準(zhǔn)確性和實(shí)時(shí)性,構(gòu)建三維環(huán)境地圖能夠更真實(shí)地反映實(shí)際環(huán)境,包括地形、障礙物等,為后續(xù)的路徑規(guī)劃提供準(zhǔn)確的基礎(chǔ),將三維環(huán)境地圖轉(zhuǎn)換為二維柵格地圖,簡(jiǎn)化路徑規(guī)劃算法的處理難度,提高計(jì)算效率,明確區(qū)分可行區(qū)域和障礙區(qū)域,為路徑規(guī)劃提供清晰的界限,減少路徑搜索的盲目性,實(shí)時(shí)監(jiān)控環(huán)境變化,更新柵格地圖,確保路徑規(guī)劃的準(zhǔn)確性和實(shí)時(shí)性,引入動(dòng)態(tài)調(diào)整因子μ優(yōu)化代價(jià)函數(shù)f(n),使算法能夠根據(jù)不同情況動(dòng)態(tài)調(diào)整搜索策略,提高路徑規(guī)劃的效率,將搜索鄰域擴(kuò)大到24鄰域,增加搜索的靈活性,有助于找到更優(yōu)的路徑,根據(jù)環(huán)境變化和需求動(dòng)態(tài)調(diào)整μ的值,使算法更加靈活,能夠應(yīng)對(duì)復(fù)雜多變的環(huán)境,利用高階貝塞爾曲線(xiàn)對(duì)路徑進(jìn)行平滑處理,減少路徑中的折彎次數(shù),使路徑更加平滑,提高機(jī)器人的行駛穩(wěn)定性,通過(guò)優(yōu)化算法調(diào)整貝塞爾曲線(xiàn)的控制點(diǎn)位置,確保曲線(xiàn)與路徑點(diǎn)序列的擬合度達(dá)到預(yù)設(shè)標(biāo)準(zhǔn),同時(shí)優(yōu)化路徑的長(zhǎng)度和平滑度,根據(jù)機(jī)器人實(shí)時(shí)位置和環(huán)境變化動(dòng)態(tài)調(diào)整路徑:在機(jī)器人行駛過(guò)程中,實(shí)時(shí)感知環(huán)境變化,并根據(jù)新的環(huán)境信息動(dòng)態(tài)調(diào)整路徑,確保路徑規(guī)劃的實(shí)時(shí)性和準(zhǔn)確性。