朱奇光 夏翠萍 陳衛(wèi)東 陳 穎
1.燕山大學,秦皇島,0660042.河北省特種光纖與光纖傳感重點實驗室,秦皇島,066004
基于混沌優(yōu)化MPSO的移動機器人FastSLAM算法研究
朱奇光1,2夏翠萍1陳衛(wèi)東1,2陳穎1
1.燕山大學,秦皇島,0660042.河北省特種光纖與光纖傳感重點實驗室,秦皇島,066004
針對移動機器人快速同時定位和地圖創(chuàng)建(FastSLAM)中粒子退化問題,提出一種基于混沌優(yōu)化的中值導向粒子群優(yōu)化(MPSO)算法。該算法在粒子估計過程中引入觀測信息,調(diào)整粒子的提議分布,提高位置預測的準測性?;煦鐑?yōu)化MPSO算法采用兩步優(yōu)化策略,首先通過中值導向加速度來改進粒子的進化速度,有效地克服粒子退化問題,改善算法的收斂性;然后針對粒子耗盡問題,在MPSO優(yōu)化算法中引入混沌搜索算法來尋找全局最優(yōu)位置,驅(qū)散聚集在局部最優(yōu)的粒子群,使其向全局最優(yōu)位置靠近,擴大解空間的范圍,從而保持種群的多樣性。仿真和實時數(shù)據(jù)證明了該方法正確、可行。
快速同時定位和地圖創(chuàng)建;提議分布;中值導向粒子群優(yōu)化;中值導向加速度;混沌
移動機器人同時定位與地圖創(chuàng)建(simultaneous localization and mapping, SLAM)是指移動機器人在未知環(huán)境中運動時,構(gòu)建增量式地圖的同時自我定位的過程[1]。擴展卡爾曼濾波(extend Kalman filter, EKF)通過增量式數(shù)據(jù)來評估機器人位姿和環(huán)境特征位置的聯(lián)合后驗概率,被廣泛應用于移動機器人SLAM中。但基于EKF的SLAM存在兩個明顯的缺陷[2]:一是其計算復雜度高,導致特征數(shù)目不能太多,數(shù)據(jù)處理也極其復雜;二是如果數(shù)據(jù)關聯(lián)一旦錯誤則EKF濾波器將發(fā)散。針對此局限,Montemerlo等[2-3]提出了快速同時定位與地圖創(chuàng)建(FastSLAM)算法,將SLAM后驗概率降解為定位問題和基于機器人位姿的K個獨立環(huán)境特征的評估問題。但在標準FastSLAM方法中,基于序列重要性采樣(sequential impotance sampling, SIS)存在粒子退化問題[4],重采樣雖然可以解決退化問題,但由于權(quán)重大的采樣多次被復制,權(quán)重小的采樣被忽略,所以這樣又導致了粒子的耗盡現(xiàn)象。目前很多學者致力于改進FastSLAM算法,Yoon等[5]提出了模糊粒子濾波器算法,該方法可以克服樣本中干擾粒子對預測結(jié)果的影響,從而提高預測結(jié)果的精度,但是實現(xiàn)起來比較復雜。劉利枚等[6]將粒子群優(yōu)化(particle swarm optimization, PSO)的思想引入到粒子濾波中,有效地改善了粒子的退化問題,但不能有效地解決粒子的耗盡問題。
針對FastSLAM中粒子退化耗盡問題,本文提出了一種基于混沌MPSO(median-oriented PSO)優(yōu)化的FastSLAM算法,該算法利用機器人的觀測值對預測采樣過程進行優(yōu)化,從而增強位置預測的準確性,并且通過調(diào)整該算法的結(jié)構(gòu),有效地解決了粒子退化問題。針對粒子的耗盡問題,采用混沌搜索算法對其進行優(yōu)化,可以在迭代中產(chǎn)生許多局部最優(yōu)解的鄰近點, 以此來幫助惰性粒子逃離局部最優(yōu)點, 進而能夠快速搜尋到全局最優(yōu)點,很好地保持了粒子的多樣性。
PSO算法[7]是一種基于群體智能的全局優(yōu)化算法,它利用m個粒子組成的粒子群在n維目標空間中搜索最優(yōu)解。粒子i具有兩個屬性:位置xi=(xi1,xi2,…,xin)T與速度vi=(vi1,vi2,…,vin)T,其中xi為一個潛在解。粒子曾經(jīng)歷過的最好位置(個體最優(yōu)位置)為ppbest=(pp1,pp2,…,ppn)T和整個群體曾經(jīng)歷過的最好位置(全局歷史最優(yōu)位置)為pgbest=(pg1,pg2,…,pgn)T。每次迭代中,粒子i第d維的速度和位置按下式更新:
vid(t+1)=w(t)vid(t)+C1r(pid(t)-xid(t))+
C2r(pgd(t)-xid(t))
(1)
xid(t+1)=xid(t)+vid(t+1)
(2)
d=1,2,…,ni=1,2,…,m
式中,t為當前進化代數(shù);r為分布于[0,1]之間的隨機數(shù);C1、C2為加速常數(shù);w(t)為慣性權(quán)重;xid(t)為當前位置;pid為局部最優(yōu)位置;pgd(t)為全局最優(yōu)位置。
1.1中值導向PSO算法
在PSO中,粒子群在追逐最優(yōu)粒子時,越接近最優(yōu)粒子,其速度越小,粒子群表現(xiàn)出強烈的趨同性,容易陷入局部最優(yōu),特別當似然函數(shù)呈多峰狀態(tài)時,會使大量粒子聚集在次優(yōu)位置,無法到達最優(yōu)位置,使得其并不能有效地改善粒子退化與枯竭現(xiàn)象,從而影響算法的精確度。為了避免粒子的退化枯竭現(xiàn)象,本文對PSO算法的結(jié)構(gòu)進行了優(yōu)化和改進,從而提出了一種中值導向的粒子群優(yōu)化(median-oriented particle swarm optimization, MPSO)算法。
該算法如下:
vid(t+1)=vid(t)+Mid(t)
(3)
其中,Mid(t)代表中值導向加速度,其定義如下:
Mid(t)=ai(t)[r(pid(t)-pmd(t)-xid(t))+
r(pgd(t)-pmd(t)-xid(t))]
(4)
則每次迭代中,粒子i第d維的更新速度公式為
vid(t+1)=vid(t)+ai(t)[r(pid(t)-pmd(t)-
xid(t))+r(pgd(t)-pmd(t)-xid(t))]
(5)
其中,pmd(t)為d維空間中粒子當前中間位置,ai(t)為加速系數(shù),且
(6)
(7)
其中,fi(t)為第i個粒子適應度,fmax(t)和fmed(t)分別為當前粒子適應度最大值和適應度中間值:
fmax=max(fj(t))
(8)
fmed(t)=median(fj(t))
(9)
由經(jīng)典牛頓力學可知,一個向量粒子在Δt時間內(nèi)受到恒定的加速度時有
(10)
式中,x1和x2分別為最初位置和最后位置;a和v1分別為粒子的加速度和初速度。
把式(5)代入式(2)中,并根據(jù)牛頓經(jīng)典力學公式(式(10))可推出每次迭代中,粒子i第d維的更新位置公式:
xid(t))+r(pgd(t)-xid(t))]
(11)
在粒子群優(yōu)化算法中,中值導向加速度扮演了一個關鍵角色,不僅提高了算法的收斂速度,而且還可以幫助粒子逃離局部最優(yōu)。當粒子遠離機器人真實位姿時,改進后的粒子群算法將有助于粒子向機器人真實的位置移動,從而提高機器人位置估計的精確性。在標準的PSO中,隨著優(yōu)化的進行,線性遞減的慣性權(quán)重w可以平衡粒子局部開發(fā)能力和全局探測能力[8]。而在MPSO中,中值導向加速度可以更好地權(quán)衡粒子的開發(fā)和探測能力。
1.2利用混沌對MPSO進行優(yōu)化
混沌具有遍歷性、隨機性和規(guī)律性等特點,能夠在一定范圍內(nèi)按照自身的規(guī)律不重復地遍歷所有的狀態(tài),具有易跳出局部最優(yōu)、搜索速度快、全局漸近收斂等優(yōu)點[9]。而在MPSO算法中,隨著搜索迭代的進行,種群多樣性不斷損失,使得算法有可能過早收斂,因此在MPSO算法中引入混沌搜索算法來尋找全局最優(yōu)位置,驅(qū)散聚集在局部最優(yōu)的粒子群,使其向全局最優(yōu)位置靠近,擴大解空間范圍,從而保持種群的多樣性,提高算法的精確度[10]。
本文采用適應度方差作為判斷粒子陷入局部最優(yōu)的準則。設粒子群的數(shù)量為n,fi為第i個粒子的適應度,favg為粒子群的平均適應度, 則適應度方差的標準值為
(12)
粒子群體的適應度方差為
(13)