背景技術:
1、隨著人工智能技術的迅速發展,移動機器人的自主性和智能化水平得以提升。無論是在室內環境中提供服務的機器人,還是在室外環境中執行巡檢任務的機器人,其運動都離不開自主導航技術。路徑規劃作為實現移動機器人導航的關鍵,主要是指在有障礙物的環境中,移動機器人可以根據一定的評價指標,從起始點安全、高效地找到一條通往目標點的無碰撞路徑。
2、目前,常見的路徑規劃算法有a*算法、dijkstra*算法、rrt算法、遺傳算法、蟻群算法等。其中,a*算法由于其高效性、靈活性、直觀性和易實現性,在游戲開發、機器人導航、地圖路由、物流與運輸等鄰域得到了廣泛應用,適用于不同場景下的路徑規劃問題。a*算法的工作原理是將機器人所處的靜態環境以柵格地圖的形式進行建模,再將柵格地圖轉化為一個帶有權重的圖結構,通過在圖結構中尋找一條從起始點到目標節點的邊和節點的最優組合來實現全局路徑規劃。
3、相較于深度優先搜索和廣度優先搜索等其他基于圖搜索的路徑規劃算法,a*算法具有啟發式搜索的特性。它可以根據已知的環境信息,通過啟發函數作為引導,快速有效地搜索到從起始節點到目標節點的最優路徑。然而,傳統a*算法仍存在以下缺陷:算法最多只能搜索節點周圍8個相鄰節點,路徑選擇具有局限性,容易產生較多轉折點,不利于移動機器人快速平穩地行駛;受障礙物影響,啟發函數的預估值和真實值偏差較大,算法會擴展大量冗余節點,降低了搜索效率;算法規劃的路徑在斜向擴展時可能會與周邊障礙物發生碰撞,安全性較低,不利于機器人在實際環境中安全行駛。
4、由于上述缺陷,傳統a*算法的規劃結果往往并不理想,有待進一步改進。
技術實現思路
1、1.要解決的技術問題
2、針對現有技術中存在的a*算法搜索效率低的問題,本技術提供了一種基于目標導向角的路徑規劃方法及系統,通過在啟發函數中引入角度因子和距離因子等,提高了搜索效率。
3、2.技術方案
4、本技術的目的通過以下技術方案實現。
5、本說明書的一個方面提供一種基于目標導向角的路徑規劃方法,包括:初始化參數,并創建柵格地圖;參數包含起始點、目標點和障礙物數量n;根據障礙物數量n計算鄰域障礙物率,并根據鄰域障礙物率調整搜索鄰域范圍;并根據目標導向角調整搜索方向,確定當前搜索節點的擴展范圍;通過節點間安全裕度評估策略,在確定的擴展范圍內獲取滿足預設安全條件的待擴展節點;利用改進后的goa-a*算法遍歷搜索待擴展節點,生成從起始點到目標點的規劃路徑;其中,改進后的goa-a*算法通過在a*算法的啟發函數中設置角度因子和距離因子得到。
6、一方面,傳統a*算法在啟發函數中只考慮了節點到目標點的距離,沒有考慮節點周圍障礙物的密集程度。在障礙物密集的區域,即使節點距離目標較近,實際的路徑開銷也會很大,導致搜索方向偏離最優路徑。另一方面,傳統a*算法傾向于朝著目標點方向搜索,忽略了其他可能更優的方向。這種單一的搜索策略可能會陷入局部最優,錯過全局最優解。
7、本技術,一方面,在啟發函數中引入角度因子,將節點的搜索方向與目標點的方向進行對比,優先搜索與目標方向一致的節點。這種基于方向的啟發,可以有效避免搜索偏離最優路徑,提高搜索效率。另一發面,在啟發函數中引入距離因子,綜合考慮節點到起點和目標點的距離,平衡全局路徑開銷。通過兼顧距離和方向兩個維度,可以更準確地評估節點的優先級,避免局部最優陷阱。此外,根據節點周圍障礙物的密集程度,動態調整節點的搜索鄰域范圍。在障礙物稀疏區采用較大的搜索鄰域,加速搜索進程;在障礙物密集區采用較小的搜索鄰域,提高搜索精度。這種自適應的鄰域調整策略,可以在不同復雜度的環境下,實現高效、準確的路徑搜索。最后,在擴展節點時,通過節點間安全裕度評估,濾除與障礙物距離過近的不安全節點。這種安全性約束不僅保證了路徑的可行性,也減少了無效節點的搜索,進一步提升了算法效率。
8、進一步的,根據障礙物數量n計算鄰域障礙物率,包括:計算當前節點pi預設范圍內的障礙物數量n;根據障礙物數量n,計算鄰域障礙物率;根據鄰域障礙物率設置搜索步長,當鄰域障礙物率大于預設閾值時,設置步長l1,反之設置步長l2;根據設置的步長l1或l2,設置當前節點pi的搜索范圍;其中,l2大于l1;障礙物率越高,說明該區域障礙物越多,搜索難度越大,應該采用較小的搜索步長l1;反之,障礙物率低時,可以使用較大的搜索步長l2。動態調整搜索步長可以在障礙物稀疏的區域快速擴展搜索范圍,減少不必要的節點遍歷;在障礙物密集區采用小步長,保證搜索的精度和安全性。這種自適應的搜索策略可以在保證搜索質量的同時,提高整體效率。
9、根據當前節點、相鄰節點vc以及目標節點vg的坐標,計算目標導向角α;將目標導向角α的取值范圍劃分為多個區域;遍歷各個區域,設置角度閾值ε0,比較目標導向角α與角度閾值ε0,如果目標導向角α小于角度閾值ε0,則將相應節點pj作為當前節點pi的待擴展節點,如果否,則調整角度閾值ε0,繼續搜索;優先選擇目標導向角小于角度閾值的相鄰節點作為擴展節點。這意味著搜索會朝著目標節點的大致方向進行,減少了在錯誤方向上的無效嘗試。
10、對當前節點pi的所有相鄰節點重復以上擴展步驟,直至目標導向角α小于角度閾值ε0,得到當前節點pi的擴展范圍;如果沒有滿足角度閾值的節點,則調整閾值繼續搜索,直到找到合適的擴展節點。這種方法在擴展方向上引入了目標信息的指導,使得搜索更有針對性。將設置的搜索鄰域和擴展范圍進行組合,得到當前節點pi的最終擴展范圍。
11、進一步的,鄰域障礙物率obsrate的計算公式為:
12、進一步的,目標導向角α的計算公式為:
13、vc=(cx-nx,cy-ny),vg=(gx-nx,gy-ny),式中(nx,ny)為當前點坐標,(gx,gy)為目標點坐標,為相鄰節點坐標;表示第i個相鄰節點的x坐標,表示第i個相鄰節點的y坐標;
14、進一步的,通過節點間安全裕度評估策略,在確定的擴展范圍內獲取滿足預設安全條件的待擴展節點,包括:根據確定的擴展范圍內的每個子節點,連接子節點與對應父節點,生成直線l;計算柵格地圖中的每個障礙物節點到生成的直線l的垂直距離d;判斷得到的垂直距離是否大于預設距離d,如果是,則將對應子節點作為父節點的待擴展節點,如果否,則刪除對應子節點;遍歷擴展范圍內的所有子節點,得到最終的待擴展節點。
15、具體的,本技術對于擴展范圍內的每個子節點,連接其與對應父節點,生成一條直線l。計算柵格地圖中每個障礙物節點到直線l的垂直距離d。可以快速判斷子節點與父節點之間的連線是否與障礙物發生碰撞,無需遍歷連線上的所有點。通過簡化碰撞檢測的計算,減少了安全裕度評估的時間開銷,提高了評估效率。
16、進一步的,計算柵格地圖中的每個障礙物節點到生成的直線l的垂直距離d,通過如下公式:d=verticaldif×cos(θ),verticaldif=|yo-(k*xo+b)|,b=yp-k*xp,ycp=kx+b,其中,(xp,yp)為父節點坐標,(xc,yc)為子節點坐標,(xo,yo)為障礙物坐標,θ表示直線l與水平線的夾角;verticaldif表示障礙物的yo坐標和直線l上xo對應的y坐標差值的絕對值;k表示子節點和父節點形成的直線方程的斜率;b表示子節點和父節點形成的直線方程的截距;ycp表示子節點和父節點形成的直線方程;
17、進一步的,得到改進后的goa-a*算法,包括:計算當前節點到目標節點的距離dn;計算起始節點到目標節點的距離ds;根據dn和ds,設置啟發函數f(n),得到改進后的goa-a*算法。
18、進一步的,啟發函數f(n),表達式如下:
19、f(n)=g(n)+(weight+β*angleweight+γ*disweight)*h(n),ax+by+c=0,其中,angleweight表示目標導向角權重函數;disweight表示鄰近節點到最優路徑距離函數;β和γ分別為angleweight和disweight的權重系數;g(n)表示實際代價函數;h(n)表示估價函數;weight表示當前節點到目標節點距離權重函數;a,b,c分別表示起始節點和目標節點形成的直線方程的自變量系數、因變量系數和常數項。
20、進一步的,生成從起始點到目標點的規劃路徑,包括:利用改進后的goa-a*算法遍歷搜索待擴展節點,生成初始路徑path0;遍歷初始路徑path0中相鄰三節點組成的向量,通過計算向量夾角判斷節點共線線,剔除夾角為零的中間節點,獲得第一次剔除冗余點后的路徑path1;以路徑path1起點為起始節點,通過計算起始節點與路徑終點之間的所有節點的連線與障礙物之間的距離,判斷節點聯系是否穿過障礙物;獲取距離起始節點最近且未穿過障礙物的節點作為新的起始節點;剔除原始起始節點與新的起始節點之間的冗余節點,得到第二次剔除冗余點后的路徑path2;對初始路徑path0進行倒序處理,重復執行第一次和第二次剔除冗余節點步驟,得到反向剔除冗余點后的路徑path2,reverse;提取path2和path2,reverse的共同節點形成新序列,通過比較新序列中相鄰共同節點間正反路段的長度與節點數,選擇節點數少于閾值或者長度小于閾值的路段替換原有節點序列,得到最終的規劃路徑。
21、本說明書的另一個方面提供一種基于目標導向角的路徑規劃系統,其特征在于,包括:地圖模塊,初始化參數并創建柵格地圖;所述參數包含起始點、目標點和障礙物數量n;擴展范圍模塊,根據障礙物數量n計算鄰域障礙物率,并根據領域障礙物率調整鄰域搜索范圍;以及根據目標導向角調整鄰域搜索方向;根據調整后的鄰域搜索范圍和搜索方向,確定當前搜索節點的擴展范圍;擴展節點模塊,在確定的擴展范圍內獲取滿足預設安全條件的待擴展節點;路徑生成模塊,利用改進后的goa-a*算法遍歷待擴展節點,生成初始路徑;設置角度因子和距離因子,對a*算法進行改進得到所述改進后的goa-a*算法;路徑修正模塊,對初始路徑進行冗余點處理,得到最終的規劃路徑。
22、3.有益效果
23、相比于現有技術,本技術的優點在于:
24、(1)本技術通過設置目標導向角動態調整擴展搜索范圍,避免了傳統a*算法只能搜索周圍8個相鄰節點的局限性,有效減少了搜索過程中擴展的冗余節點數量,從而提高了路徑搜索效率。在節點代價函數中綜合考慮節點方位角偏離代價和距離偏離代價,平衡路徑長度與方向變化,使得生成的初始路徑轉折點減少。通過對路徑進行正向和反向兩次冗余點剔除處理,充分利用正反向搜索過程中獲得的環境信息,提取公共節點構建更優路徑,有效消除了因搜索方向導致的局部路徑冗余,提高了路徑規劃的效率。
25、(2)引入節點間安全裕度評估策略,通過計算節點連線與障礙物之間的距離,篩選出滿足安全距離閾值條件的節點作為待擴展節點,確保生成的路徑與障礙物保持足夠的安全距離,有效提升了規劃路徑的安全性能,避免了機器人與障礙物發生碰撞的風險;提高了路徑規劃的效率。
26、(3)基于柵格地圖進行路徑搜索,通過感知信息實時構建局部環境地圖,能夠適應動態變化的復雜環境。同時,通過設置步長l1和l2劃分不同搜索鄰域,增強了算法在不同環境下的自適應能力。