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