亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于改進A*算法的家庭服務機器人路徑規(guī)劃方法與流程

文檔序號:12914901閱讀:341來源:國知局
一種基于改進A*算法的家庭服務機器人路徑規(guī)劃方法與流程

本發(fā)明涉及一種家庭服務機器人路徑規(guī)劃技術,具體為一種基于改進a*算法的家庭服務機器人路徑規(guī)劃方法。



背景技術:

隨著社會的發(fā)展,家庭服務機器人的需求正逐步增大,而路徑規(guī)劃(指機器人按照某一指標要求自行搜索出一條從起點駛向終點的路徑)是家庭服務機器人的基礎。目前,家庭服務機器人的自主移動能力欠缺,多要在人為控制下實現,其中一個重要的原因是路徑規(guī)劃算法不夠完善。

近年來最常用的路徑規(guī)劃算法是a*算法,它是一種基于面積的全局規(guī)劃算法,屬于啟發(fā)式搜索中的最佳優(yōu)先搜索方法。但是a*算法在路徑規(guī)劃中存在實時性差的缺陷,所選路徑相比與最優(yōu)路徑有一定的偏差。針對a*算法的以上缺陷,論文“a*算法改進算法及其應用”(張仁平,后勤工程學院,2009)所提出的方法只考慮了對a*算法在啟發(fā)代價中引入父節(jié)點的影響,但未考慮實際代價與啟發(fā)代價的權重。論文“基于加權a*算法的服務型機器人路徑規(guī)劃”(趙真明,東南大學,2008)考慮在a*算法實際代價和啟發(fā)代價間確定最佳比例關系,但并未對啟發(fā)函數做出改進。



技術實現要素:

針對現有技術中家庭服務機器人路徑規(guī)劃算法不夠完善、所選路徑相比與最優(yōu)路徑有一定偏差等不足,本發(fā)明要解決的問題是提供一種系統運行穩(wěn)定,生成路徑耗時減少、偏差小的基于改進a*算法的家庭服務機器人路徑規(guī)劃方法。

為解決上述技術問題,本發(fā)明采用的技術方案是:

本發(fā)明一種基于改進a*算法的家庭服務機器人路徑規(guī)劃方法,包括以下步驟:

1)根據實際場景構建二維占據柵格地圖,將每一個柵格分別標記為障礙區(qū)域或可行區(qū)域;

2)創(chuàng)建open隊列,保存已經生成而未被訪問的節(jié)點信息;創(chuàng)建closed隊列,保存已被訪問過的節(jié)點信息;確定起始節(jié)點與目標節(jié)點,分別標記為s和g節(jié)點,將起始節(jié)點放入open隊列;

3)將當前節(jié)點以及當前節(jié)點父節(jié)點到目標節(jié)點的距離之和作為啟發(fā)代價h,在啟發(fā)代價前乘上一個啟發(fā)量權重a,將乘上一個啟發(fā)量權重a后的將啟發(fā)代價h和實際代價g之和f作為總代價;

4)運行改進的a*算法,在可行區(qū)域內搜尋初始節(jié)點s到目標節(jié)點g之間的最優(yōu)路徑,并得到算法運行時間、遍歷柵格數和路徑長度指標;

5)修改啟發(fā)代價的啟發(fā)量權重a,重復步驟4),將得到的算法運行時間、遍歷柵格數和路徑長度指標進行比較分析,得到最佳的啟發(fā)量權重a,即得到該環(huán)境下最佳的規(guī)劃路徑。

步驟4)中,運行改進的a*算法搜尋初始節(jié)點s到目標節(jié)點g之間的最優(yōu)路徑具體為:

4.1)從open隊列中選取節(jié)點y,并將其從隊列中刪去;

4.2)判斷節(jié)點y是否為目標節(jié)點,如果不是目標節(jié)點,則轉至步驟4.3)運行;

4.3)判斷節(jié)點y周圍的子節(jié)點是否在closed隊列中;若是,直接跳過該節(jié)點至下一個節(jié)點;

4.4)判斷節(jié)點y周圍的子節(jié)點是否在open隊列中,若是,則將節(jié)點y周圍的子節(jié)點與y節(jié)點對應的路程代價比較,若節(jié)點y周圍的子節(jié)點的代價較小,則更新open隊列,將該子節(jié)點更新為當前節(jié)點,將y節(jié)點加入closed隊列;

4.5)循環(huán)步驟4.1至步驟4.4,直至搜尋至目標節(jié)點g。

步驟4.4)中,若節(jié)點y周圍的子節(jié)點的代價較大,則將子節(jié)點加入open隊列。

步驟4.4)中,如節(jié)點y周圍的子節(jié)點不在open隊列中,則將子節(jié)點加入open隊列。

步驟4.4)中,如果節(jié)點y是目標節(jié)點,則結束步驟4),進入步驟5)。

本發(fā)明具有以下有益效果及優(yōu)點:

1.本發(fā)明提出的基于引入父節(jié)點以及改變啟發(fā)代價權重的改進a*算法進行智能機器人的路徑規(guī)劃,對普遍的和實際的環(huán)境分別進行多次仿真與實驗,結果分析表明,基于引入父節(jié)點以及改變啟發(fā)代價權重的改進a*算法的路徑規(guī)劃系統運行穩(wěn)定,生成路徑耗時減少,遍歷柵格數明顯減少,各性能指標均明顯優(yōu)于普通a*算法。

附圖說明

圖1為本發(fā)明改進的a*算法流程圖;

圖2為實際場景下的a*算法仿真效果圖;

圖3為實際場景下引入父節(jié)點的a*算法仿真效果圖;

圖4為本發(fā)明改進的a*算法中時間消耗、路徑消耗和遍歷柵格數隨啟發(fā)量權重的變化圖像。

具體實施方式

下面結合說明書附圖對本發(fā)明作進一步闡述。

本發(fā)明一種基于改進a*算法的家庭服務機器人路徑規(guī)劃方法,包括以下步驟:

1)根據實際場景構建二維占據柵格地圖,將每一個柵格分別標記為障礙或可行區(qū)域;

2)創(chuàng)建open隊列,保存已經生成而未被訪問的節(jié)點信息;創(chuàng)建closed隊列,保存已被訪問過的節(jié)點信息;確定起始節(jié)點與目標節(jié)點,分別標記為s和g節(jié)點,將起始節(jié)點放入open隊列;

3)將當前節(jié)點(即正在被訪問的節(jié)點)以及當前節(jié)點父節(jié)點到目標節(jié)點的距離(在曼哈頓距離、切比雪夫距離以及歐幾里得距離中選取)之和作為啟發(fā)代價h,在啟發(fā)代價前乘上一個啟發(fā)量權重a,將乘上一個啟發(fā)量權重a后的將啟發(fā)代價h和實際代價g(即實際已走距離,通過實時檢測得到)之和f作為總代價(即啟發(fā)函數)。

4)運行改進的a*算法,在可行區(qū)域內搜尋初始節(jié)點s到目標節(jié)點g之間的最優(yōu)路徑,并得到算法運行時間、遍歷柵格數和路徑長度指標;

5)修改啟發(fā)代價的啟發(fā)量權重a,重復步驟4),將得到的算法運行時間、遍歷柵格數和路徑長度指標進行比較分析,得到最佳的啟發(fā)量權重a。即得到該環(huán)境下最佳的規(guī)劃路徑。

關于步驟1),本實施例針對移動式服務機器人工作的典型場景,選取了一個典型的室內家居環(huán)境,構建室內地圖。并考慮房間戶型(其中包括臥室、客廳、衛(wèi)生間、廚房、衣帽間、活動室以及陽臺)以及房間內部的桌椅、家具、雜物等障礙(將每一個柵格分別標記為障礙區(qū)域或可行區(qū)域來區(qū)分是否有物體擺放),使地圖更加符合實際室內情況。在該環(huán)境下,對不同的算法進行仿真實驗,并對比分析實驗結果。其中柵格地圖設置為50*80格。步驟2)中,創(chuàng)建open隊列主要保存已經生成而未被訪問的節(jié)點信息,創(chuàng)建closed隊列主要保存已被訪問過的節(jié)點信息。確定起始節(jié)點與目標節(jié)點,為了充分評估算法的有效性,選取場景西北角(左上角)亮點標記為起始點,東南角(右下角)亮點標記為目標點,將其標記為s和g節(jié)點,將起始節(jié)點放入open隊列。

步驟3)中,將當前節(jié)點以及當前節(jié)點父節(jié)點到目標節(jié)點的歐幾里得距離(在曼哈頓距離、切比雪夫距離以及歐幾里得距離中選取)之和作為啟發(fā)代價h。曼哈頓距離和切比雪夫距離不能直接體現兩點間的距離,而歐幾里德距離則更加符合實際,所以本實施例中選用歐幾里德距離,具體公式為:

在啟發(fā)代價前乘上一個啟發(fā)量權重a,將啟發(fā)代價h和實際代價g之和f作為總代價,具體公式為:f(n)=g(n)+a[h(n)+h(p)]。

步驟4)中,運行改進的a*算法搜尋初始節(jié)點s到目標節(jié)點g之間的最優(yōu)路徑,并得到算法運行時間、遍歷柵格數和路徑長度等指標;

步驟4.1)從open隊列中選取總估計代價最小的節(jié)點y,作為當前節(jié)點進行研究,并將其從open隊列中刪去;

步驟4.2)判斷節(jié)點y是否為目標節(jié)點,若是則說明算法已經搜尋到目標點g,結束步驟4),并可返回搜尋到的路徑,否則向下繼續(xù)運行步驟4.3);

步驟4.3)判斷當前節(jié)點y周圍的四個子節(jié)點(也可以選取八個字節(jié)點)是否在closed隊列中,若是,則說明該節(jié)點已經被遍歷過,直接跳過該節(jié)點;

步驟4.4)判斷節(jié)點y周圍的四個子節(jié)點是否在open隊列中,若是,則將其與y節(jié)點對應的路程代價比較,若子節(jié)點的代價較小,則更新open隊列,將該子節(jié)點更新為當前節(jié)點,將y節(jié)點加入closed隊列;若非,則將子節(jié)點加入open隊列。

步驟4.5)循環(huán)運行步驟4.1)至步驟4.4),一步步從當前節(jié)點向目標節(jié)點逼近,直至搜尋至目標節(jié)點g。

關于步驟5),一般來說,啟發(fā)代價與實際代價的權重不能相差過大,啟發(fā)量過大會使搜索路徑落入局部最優(yōu)解的可能性變的很大,使得規(guī)劃的路徑與最優(yōu)路徑差別很大。因此,啟發(fā)量權重a一般在1左右。在此,令a∈[0.5,2],對引入了父節(jié)點和啟發(fā)函數權重的a*算法進行實驗,重復步驟4),將得到的算法運行時間、遍歷柵格數和路徑長度等指標進行比較分析,得到最佳的啟發(fā)量權重a。即可確定該環(huán)境下最佳的規(guī)劃路徑。

針對該場景下父節(jié)點的影響,從算法的快速性,準確性,計算復雜度三個方面分別選取搜尋時間、路徑代價、遍歷柵格數三個指標。由圖2和圖3以及實驗結果的對比,可以清晰地看出引入了父節(jié)點的a*算法(a為0.5)相比于a*算法遍歷的柵格數顯著減少,而從實驗結果來看,兩者花費的時間分別是10.1362秒和63.7900秒,但是路徑代價上,兩者分別是126.1070和121.9172??梢钥闯鲈撍惴ㄏ啾萢*算法該算法在犧牲了較小路程代價的情況下,可以極大地提高算法的實時性。

在引入啟發(fā)量權重之后,通過對合理范圍(如啟發(fā)量權重為權0.5-1.2)內的啟發(fā)量權重進行研究,對不同啟發(fā)代價權重的情況進行仿真后,將得到的搜尋時間、路徑代價、遍歷柵格數等指標進行分析,繪制出這三個指標隨啟發(fā)量權重變化而變化的規(guī)律,如圖4所示。

從圖4中可以看出,針對該場景下的路徑規(guī)劃問題,搜尋時間、路徑代價、遍歷柵格數三個指標有如下的規(guī)律:

(1)時間消耗

當a在0.7~0.9之間時,搜尋到最佳路徑所消耗的時間較短;當a增大或減小至該范圍外后,消耗時間都會增大;相比于a*算法,所消耗時間僅為其15%左右。

(2)路徑代價

路徑代價在a為0.6左右時最小,達到最優(yōu)的狀態(tài);當a增大或減小,路徑代價均會快速上升;路徑代價與a*算法相差約3%。

(3)遍歷柵格數

遍歷柵格數與a大致呈線性反相關,a越小,遍歷柵格數越多,算法的計算量和存儲量越大;與a*算法相比,遍歷柵格數僅為其12.4%。

從各項指標的與原算法對比中,可以看出該方法在各性能指標上,均明顯優(yōu)于普通a*算法以及前文提到的只考慮父節(jié)點和只考慮實際代價和啟發(fā)代價間最佳比例關系的兩種算法。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1