基于改進(jìn)遺傳算法的移動機(jī)器人路徑規(guī)劃研究
目前,移動機(jī)器人技術(shù)已在各領(lǐng)域中得到廣泛應(yīng)用,比如送餐機(jī)器人、導(dǎo)購機(jī)器人、醫(yī)療機(jī)器人和伴護(hù)機(jī)器人等,移動機(jī)器人的出現(xiàn)不僅節(jié)省了成本,也提高了人們的生活質(zhì)量。路徑規(guī)劃的方法有很多,其中應(yīng)用較廣泛的有遺傳算法[1-3]、人工勢場法[4-5]和粒子群法[6-7]等。目前,前人已經(jīng)針對相關(guān)算法提出各種改進(jìn)策略,效果比較顯著。在采用遺傳算法進(jìn)行路徑規(guī)劃時,有的學(xué)者提出采用RRT 算法產(chǎn)生初始路徑,并引入一種新的插入算子[8],通過實(shí)驗(yàn)證明了所提算法是有效的。另外針對在路徑規(guī)劃過程中收斂速度慢的問題,有的學(xué)者提出首先采用A* 算法產(chǎn)生初始種群,然后結(jié)合遺傳算法進(jìn)行路徑優(yōu)化[9],也取得了較好的效果。但目前在采用遺傳算法進(jìn)行路徑規(guī)劃時仍存在較多問題,本文主要針對采用隨機(jī)法產(chǎn)生初始種群時不可行路徑所占比重較大的問題,提出基于Cost-Gain 算法的避障策略,然后分別對傳統(tǒng)遺傳算法和改進(jìn)遺傳算法在MATLAB 仿真平臺上進(jìn)行實(shí)驗(yàn),結(jié)果證明了所提算法是有效的。
本文引用地址:http://butianyuan.cn/article/202308/449752.htm1 問題描述
移動機(jī)器人在進(jìn)行路徑規(guī)劃時首先需要了解周圍的環(huán)境。文中假設(shè)機(jī)器人的工作環(huán)境為二維空間,工作空間大小為20×20。在直角坐標(biāo)系中,X 軸為橫軸,Y 軸為縱軸,采用柵格法建立工作環(huán)境模型??紤]到障礙物的不規(guī)則性和機(jī)器人的外形,為提高移動機(jī)器人工作時的安全可靠性,將環(huán)境模型中靜態(tài)障礙物的四周分別按照機(jī)器人半徑的長度進(jìn)行擴(kuò)展,當(dāng)障礙物未占滿1 個柵格時按照1 個完整柵格進(jìn)行填充。
移動機(jī)器人工作環(huán)境模型如圖1所示,其中黑色部分表示工作環(huán)境中的靜態(tài)障礙物,空白柵格為可行區(qū),S所在的柵格為機(jī)器人的起點(diǎn),T所在的柵格為機(jī)器人的目標(biāo)點(diǎn),在整個運(yùn)行過程中將機(jī)器人看作質(zhì)點(diǎn)。
圖1 環(huán)境模型
文中采用序號編碼和坐標(biāo)編碼相結(jié)合的編碼方式,用A~K 分別表示10~20。設(shè)柵格序號用i表示,則i與其對所對應(yīng)柵格坐標(biāo)(xi,yi),的關(guān)系如式(1)。
(1)
編碼后的移動機(jī)器人環(huán)境模型如圖2所示。
圖2 編碼的環(huán)境模型
2 改進(jìn)遺傳算法在移動機(jī)器人路徑規(guī)劃中的應(yīng)用
2.1 種群初始化算法的改進(jìn)
種群初始化最常用的方法為隨機(jī)法,此方法雖然簡便,但產(chǎn)生的初始種群中不可行路徑所占比例較多,初始種群質(zhì)量低。針對此問題,文中采用基于Cost-Gain算法的避障策略產(chǎn)生初始種群。
設(shè)定種群數(shù)目為M, 個體長度為len,機(jī)器人出發(fā)點(diǎn)為(x1,y1) ,目標(biāo)點(diǎn)為(xn,yn) ,初始種群產(chǎn)生的具體步驟如下:
步驟1:在起點(diǎn)S 和目標(biāo)點(diǎn)T 之間隨機(jī)生成n-2 個非障礙柵格,組成一條初始路徑。
步驟2:判斷路徑是否為連續(xù)路徑。當(dāng)兩個相鄰路徑點(diǎn)的橫坐標(biāo)與縱坐標(biāo)之差最大為1 時,則說明路徑為連續(xù)可行路徑,否則需要采用平均值插入法填補(bǔ)間斷路徑,候補(bǔ)柵格坐標(biāo)計算如式(2)。
(2)
若候補(bǔ)柵格為自由柵格,則直接進(jìn)行插入,否則需要根據(jù)基于Cost-Gain 算法在障礙物周圍的八個自由柵格中確定候補(bǔ)柵格。
Cost-Gain算法是用效用來表示收益G(x,y)與代價 C(x,y) 之間關(guān)系的一種算法 , 它們之間的關(guān)系如式(3)。
(3)
用路徑點(diǎn)(xi-1,yi-1) , (xi,yi) 所組成的路徑與路徑點(diǎn)(xi,yi) ,所組成的路徑間的平滑度作為收益函數(shù) G( x,y),用路徑點(diǎn) (xi,yi) 與所組成路徑的距離作為代價函數(shù)C( x,y ),平滑度越大,路徑越短,說明效用越大,柵格被選作候補(bǔ)柵格的優(yōu)先級越高。
步驟3:保存當(dāng)前所生成的路徑作為初始路徑。
步驟4:檢查生成的路徑數(shù)目是否為M,若是,終止初始化,否則重復(fù)執(zhí)行以上步驟。
2.2 適應(yīng)度函數(shù)
適應(yīng)度值是衡量個體質(zhì)量好壞的重要指標(biāo),個體的適應(yīng)度值越大,個體保存下來的幾率越大。文中采用路徑總長度L 和路徑平滑度H 構(gòu)造適應(yīng)度函數(shù)。
路徑距離計算公式如式(4)。
(4)
式中:
di為第i 個路徑點(diǎn)與第i+1個路徑點(diǎn)之間的距離(m);L為路徑的總長度(m)。
路徑平滑度計算如式(5)(6)。
(5)
(6)
式中:
H為路徑平滑度;
A1為第 i 個路徑點(diǎn)與第 i+1個路徑點(diǎn)的橫坐標(biāo)之差。
B1為第 i 個路徑點(diǎn)與第 i+1個路徑點(diǎn)的縱坐標(biāo)之差。
A2為第i+1個路徑點(diǎn)與第i+2個路徑點(diǎn)的橫坐標(biāo)之差。
B2為第i+1個路徑點(diǎn)與第i+2個路徑點(diǎn)的縱坐標(biāo)之差。
Ci為第 i段路徑與第i+1段路徑的夾角。
第x 條路徑的適應(yīng)度函數(shù)如式(7)。
(7)
式中:
e 為路徑長度系數(shù);
c 為路徑平滑度系數(shù);
D 為起點(diǎn)與目標(biāo)點(diǎn)之間的距離(m)。
2.3 選擇算子
本文采用輪盤賭對路徑進(jìn)行選擇,具體步驟如下:
步驟1:計算每條路徑的適應(yīng)度fx 。
步驟2:求出第x 條路徑的被選擇概率px ,并得出累計選擇概率PX ,在區(qū)間(0,1)生成1 個隨機(jī)數(shù)u,當(dāng)?shù)谝淮纬霈F(xiàn)PX 滿足μ ≤ PX 時,則選擇第x 條路徑。
步驟3:重復(fù)步驟2,直到滿足個體數(shù)達(dá)到設(shè)定的種群數(shù)目為止。
2.4 交叉算子
為避免進(jìn)化過程中局部收斂問題的產(chǎn)生,需要對個體進(jìn)行交叉操作。首先在種群中隨機(jī)選擇兩個個體進(jìn)行單點(diǎn)交叉,然后將交叉操作后的各路徑點(diǎn)的x 坐標(biāo)和y 坐標(biāo)進(jìn)行升序排列,重新生成一條新路徑。檢查新路徑是否為可行路徑,否則,重新對路徑進(jìn)行交叉操作。
2.5 變異算子
文中選用相鄰點(diǎn)替代法進(jìn)行變異操作。首先隨機(jī)選擇除機(jī)器人起始點(diǎn)和終點(diǎn)外的一點(diǎn)作為變異點(diǎn),然后隨機(jī)在其相鄰的八個柵格中選擇一個柵格替代該點(diǎn),將變異后各路徑點(diǎn)的x 坐標(biāo)和y 坐標(biāo)進(jìn)行升序排列,重新生成一條新路徑。檢查新路徑是否為可行路徑,否則,重新對路徑進(jìn)行變異操作。
2.6 終止條件
當(dāng)滿足提前設(shè)定好的進(jìn)化代數(shù)M時終止遺傳操作。
3 仿真實(shí)驗(yàn)
為驗(yàn)證文中所提算法的有效性,在MATLAB 仿真平臺上分別對傳統(tǒng)遺傳算法和改進(jìn)遺傳算法進(jìn)行實(shí)驗(yàn)。參數(shù)設(shè)置如下:種群的個體數(shù)目M = 800,個體長度len = 10,進(jìn)化代數(shù)G = 100,仿真結(jié)果分別如圖3至圖6所示。
圖3和圖5分別為采用傳統(tǒng)遺傳算法進(jìn)行路徑規(guī)劃的仿真圖和適應(yīng)度變化曲線圖,圖4和圖6分別為采用改進(jìn)后遺傳算法進(jìn)行路徑規(guī)劃的仿真圖和適應(yīng)度變化曲線圖。
圖3 傳統(tǒng)遺傳算法路徑仿真圖
圖4 改進(jìn)遺傳算法路徑仿真圖
圖5 傳統(tǒng)遺傳算法適應(yīng)度曲線圖
圖6 改進(jìn)遺傳算法適應(yīng)度曲線圖
仿真數(shù)據(jù)對比如表1。
表1 數(shù)據(jù)對比表
由表1 可以看出,采用改進(jìn)后的遺傳算法進(jìn)行路徑規(guī)劃時,規(guī)劃出的路徑最優(yōu)適應(yīng)度值更大,長度更短,收斂速度更快,證明了所提算法是有效的。
4 結(jié)束語
文中主要針對采用傳統(tǒng)遺傳算法進(jìn)行路徑規(guī)劃時隨機(jī)產(chǎn)生初始種群中不可行路徑所占比重較大的問題提出基于Cost-Gain 算法的避障策略,從仿真結(jié)果來看,采用改進(jìn)遺傳算法規(guī)劃出的路徑長度更短,收斂速度更快,充分證明了算法的有效性。
參考文獻(xiàn):
[1] 楊博,劉樹東,魯維佳,潘玉恒.改進(jìn)遺傳算法在機(jī)器人路徑規(guī)劃中的應(yīng)用[J].現(xiàn)代制造工程,2022(6):9-16.
[2] 魏彤,龍琛.基于改進(jìn)遺傳算法的移動機(jī)器人路徑規(guī)劃[J].北京航空航天大學(xué)學(xué)報,2020,46(4):703-711.
[3] 李培英.基于改進(jìn)遺傳算法的移動機(jī)器人路徑規(guī)劃[J].國外電子測量技術(shù),2022,41(6):38-44.
[4] 石志剛,梅松,邵毅帆,等.基于人工勢場法的移動機(jī)器人路徑規(guī)劃研究現(xiàn)狀與展望[J].中國農(nóng)機(jī)化學(xué)報,2021,42(12):182-188.
[5] 胡杰,張華,傅海濤,等.改進(jìn)人工勢場法在移動機(jī)器人路徑規(guī)劃中的應(yīng)用[J].機(jī)床與液壓,2021,49(3):6-10.
[6] 楊會敏.基于粒子群優(yōu)化算法的移動機(jī)器人路徑規(guī)劃[D].鞍山:遼寧科技大學(xué),2022.
[7] 郭世凱,孫鑫.基于改進(jìn)粒子群算法的移動機(jī)器人路徑規(guī)劃[J].電子測量技術(shù),2019,42(3):54-58.
[8] 宋宇,王志明.基于改進(jìn)遺傳算法的移動機(jī)器人路徑規(guī)劃[J].現(xiàn)代電子技術(shù),2019,42(24):172-175.
[9] 焦合軍,周萬春,李淵博.基于混合遺傳算法的機(jī)器人路徑規(guī)劃研究[J].中州大學(xué)學(xué)報,2020,37(6):125-128.
(本文來源于《電子產(chǎn)品世界》雜志2023年8月期)
評論