一種基于Hilbert曲線探測的多機器人協(xié)作地圖構(gòu)建方法
【專利摘要】本發(fā)明提出一種基于MAPSO算法的多機器人地圖構(gòu)建方法,該方法采用MAPSO全局優(yōu)化方法與Hilbert曲線探測方法相結(jié)合,可有效提高多機器人環(huán)境探測精度,減少重復探測次數(shù)。綜合運用Hilbert曲線特性以及機器人的探測半徑,并采用MAPSO算法對機器人待測子區(qū)域分配問題進行全局優(yōu)化,可以避免重復探測,提高探測效率。在Hilbert曲線探測過程中,每個機器人只會在自己的子區(qū)域進行探測,避免了機器人發(fā)生碰撞的情況。
【專利說明】—種基于Hi Ibert曲線探測的多機器人協(xié)作地圖構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種多移動機器人的地圖構(gòu)建方法,尤其涉及一種基于多Agent粒子群優(yōu)化(MAPSO)算法和Hilbert曲線探測的多移動機器人協(xié)作地圖構(gòu)建方法。
【背景技術(shù)】
[0002]地圖構(gòu)建是一個具有典型性和通用性的多機器人協(xié)調(diào)問題,是多機器人協(xié)調(diào)問題的基礎(chǔ)。地圖構(gòu)建技術(shù)已廣泛應(yīng)用于國防、工農(nóng)業(yè)、柔性制造業(yè)以及無人探險等領(lǐng)域。目前常用的地圖表示方法分為三類:柵格法、拓撲法以及幾何信息表示法。基于柵格的方法僅需決定每個柵格是空(及柵格的值為O)還是存在障礙物(即柵格的值為I),對環(huán)境的其他特征不感興趣,且柵格地圖容易建立、維護;拓撲法適用于結(jié)構(gòu)化環(huán)境,不適用于非結(jié)構(gòu)化環(huán)境;基于幾何信息表示的方法較為緊湊,便于目標識別以及位置估計。
[0003]多Agent粒子群優(yōu)化算法(MAPSO)需要調(diào)整的參數(shù)較少,易于實現(xiàn),且可進行并行計算和無梯度計算,有較好的全局搜索能力。在MAPSO系統(tǒng)中,采用競爭、運動搜索模型,每個備選解被稱為“粒子”,該粒子為解空間候選解,解的優(yōu)劣程度由適應(yīng)度函數(shù)決定。其中,適應(yīng)度函數(shù)根據(jù)優(yōu)化目標定義。多個粒子并存,通過和選取的鄰居粒子競爭、合作而得到最優(yōu)值,速度決定粒子在搜索空間單位迭代次數(shù)的位移。
[0004]Hilbert曲線探測方法配合機器人的可探測半徑,可以避免重復探測相同的區(qū)域。多機器人之間協(xié)同對未知環(huán)境的探測,較大地提高了探測精度,節(jié)省探測時間。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提出一種基于MAPSO的Hilbert曲線探測構(gòu)建地圖的方法,在對子區(qū)域進行Hilbert曲線探測的實現(xiàn)中,引入MAPSO算法對機器人待測子區(qū)域分配問題進行全局優(yōu)化,實現(xiàn)多機器人協(xié)作建圖,達到減少多機器人在協(xié)作建圖中的重復探測次數(shù),提高探測效率的目的。
[0006]本發(fā)明的總體解決方案是:用多機器人完成Hilbert曲線探測,并使用MAPSO算法進行全局優(yōu)化,使機器人找到近似最優(yōu)目標區(qū)域進行探測。采用柵格法進行地圖建模,根據(jù)未知環(huán)境的整體大小設(shè)定正方形區(qū)域作為待探測區(qū)域。根據(jù)機器人的探測半徑將待探測區(qū)域分割為一些子區(qū)域,即其中每個子區(qū)域的邊長均為機器人探測半徑的整數(shù)倍。而每個子區(qū)域再分割即為傳統(tǒng)的柵格,柵格的大小相當于機器人的可探測范圍,并采用MAPSO算法為多個機器人分配優(yōu)選的子區(qū)域,而在子區(qū)域內(nèi)部采用Hilbert曲線探測。
[0007]本發(fā)明所述的方法具體包括如下步驟:
[0008]步驟1:將所需探測的環(huán)境劃分為若干子區(qū)域。
[0009]步驟2:通過MAPSO算法使處于當前位置的四個機器人找到近似最優(yōu)目標區(qū)域。如果每個機器人都找到有效探測區(qū)域,則轉(zhuǎn)到步驟3 ;如果每個機器人都沒有找到有效探測區(qū)域,則轉(zhuǎn)到步驟5,即任務(wù)結(jié)束;如果只有部分機器人沒有找到有效探測區(qū)域,則按照當前的位置進行下一輪MAPSO算法規(guī)劃,即返回到步驟2,直到每個機器人都找到有效探測區(qū)域。
[0010]步驟3:四個機器人采用分布式結(jié)構(gòu)對目標區(qū)域進行一步Hilbert曲線探測。
[0011]步驟4:判斷是否四個機器人全部都完成Hilbert曲線探測過程,如果是,則機器人將進行信息融合,繪制探測的結(jié)果圖,并轉(zhuǎn)到步驟2;否則,返回步驟3,進行下一步Hilbert曲線探測。
[0012]步驟5:任務(wù)結(jié)束。
[0013]本發(fā)明主要針對標準的Hilbert曲線探測進行改進,引入MAPSO算法進行全局優(yōu)化,
[0014]本發(fā)明提出的基于MAPSO算法的多機器人環(huán)境探測方法采用MAPSO全局優(yōu)化方法與Hilbert曲線探測方法相結(jié)合,使得多個機器人盡量避免重復探測,保持相互遠離,距離原來的位置最近,實現(xiàn)多機器人協(xié)作建圖。本方法可有效提高多機器人環(huán)境探測精度,減少重復探測次數(shù)。綜合運用Hilbert曲線特性以及機器人的探測半徑,可以避免重復探測,提高探測效率。在Hilbert曲線探測過程中,每個機器人只會在自己的子區(qū)域進行探測,避免了機器人發(fā)生碰撞的情況。
【專利附圖】
【附圖說明】
[0015]圖1基于多Agent粒子群優(yōu)化和Hilbert曲線探測的多機器人協(xié)作建圖方法的流程圖。
【具體實施方式】
[0016]下面結(jié)合附圖對本發(fā)明進行進一步的說明。
[0017]如圖1所示,本發(fā)明運用MAPSO算法與HiIbert曲線探測的方法相結(jié)合,具體實現(xiàn)步驟如下:
[0018]步驟1:根據(jù)機器人的探測半徑,將所需探測的環(huán)境劃分為若干子區(qū)域,為MAPSO全局優(yōu)化做準備。
[0019]步驟2:通過MAPSO算法使處于當前位置的四個機器人找到近似最優(yōu)目標子區(qū)域。當算法結(jié)束時,如果每個機器人都找到有效探測區(qū)域,則執(zhí)行下一步的Hilbert曲線探測,即轉(zhuǎn)到步驟3 ;如果每個機器人都沒有找到有效探測區(qū)域,則轉(zhuǎn)到步驟5,即任務(wù)結(jié)束;如果只有部分機器人沒有找到有效探測區(qū)域,則根據(jù)當前的位置進行下一輪MAPSO算法規(guī)劃,即返回到步驟2,直到每個機器人都找到有效探測區(qū)域。
[0020]具體地,多Agent粒子群優(yōu)化算法兼有進化計算和群智能的特點,利用該算法使多個機器人盡量保持相互遠離,距離原來的位置最近,并且保證探測區(qū)域盡量不重復。
[0021]在多Agent粒子群優(yōu)化算法過程主要包括以下幾個部分:
[0022](I)初始化粒子群體:MAPS0首先隨機地初始化一群粒子,其中第i個粒子在d維解空間的位置為Xi = (Xil, xi2, Xi3,Xid),初始化粒子的兩個極值個體最優(yōu)值(Pbest)和全局最優(yōu)值(gbest)。
[0023](2)競爭:每個粒子從環(huán)境中選取離自己最近的8個粒子作為鄰居粒子,并根據(jù)計算適應(yīng)度值調(diào)整自己的位置信息。
[0024](3)更新:粒子通過動態(tài)跟蹤Pbest和gbest來更新其速度和位置,其公式如下:[0025]vid (t+1) = wvid (t) +C^1 [pbest (t) -xid (t) ] +c2r2 [gbest (t) _xid (t) ] (I)
[0026]xid (t+1) = Xid (t)+Vid (t+1 )(2)
[0027] 式中,vid(t+1)表示t+1時刻第i個粒子在d維解空間的速度,xid(t+Ι)表示t+1時刻第i個粒子在d維解空間的位置,C1 = c2 = 2,為加速因子,w = 0.7298為慣性因子,T1和r2是介于[0,I]之間的隨機數(shù),t代表時刻t。
[0028](4)計算適應(yīng)度值:根據(jù)適應(yīng)度函數(shù)計算每個粒子的適應(yīng)度值,其公式如下:
[0029]ffitness = W1D1-W2D^W3S1 (3)
[0030]式中,D1代表機器人的下一個探測目標與當前位置的距離總和,實驗中,希望該值越?。籇2代表下一個目標區(qū)域中,各機器人的距離總和;當機器人處于下一個目標位置進行探測的時候,S1E比于已探測區(qū)域面積與目標區(qū)域的比值。Wl,w2,W3為前三個條件函數(shù)的加權(quán)因子Wjwfw3 = I。
[0031]根據(jù)適應(yīng)度函數(shù)更新粒子的全局最優(yōu)值。當計算所得的最優(yōu)值到達設(shè)計要求時或者算法到達最大迭代次數(shù)時,退出MAPSO尋優(yōu)算法;否則返回到(2)。
[0032]步驟3:四個機器人采用分布式結(jié)構(gòu)對目標區(qū)域進行一步Hilbert曲線探測。
[0033]本發(fā)明對探測環(huán)境做一下假設(shè):
[0034](I)環(huán)境采用柵格法進行建模和描述,各柵格cell (i,j)值cell [i][j] e {O, I}, O表示沒有被障礙物占據(jù),I表示被障礙物占據(jù)。
[0035](2)機器人已知其初始位置。機器人可以依據(jù)其當前所在的位置坐標計算下一步的位置,在仿真中不計因機器人和任意物理因素而導致的定位誤差。機器人可以探測障礙物的范圍即為傳感器可以感知的范圍。
[0036](3)環(huán)境對機器人來講是未知的,當其對環(huán)境進行探測之后,才能構(gòu)建環(huán)境地圖。
[0037](4)每個機器人都可以保存局部地圖,在整個地圖構(gòu)建完成之前,每個機器人都保存自己所探測的地圖。結(jié)束仿真時,機器人將其保存的局部地圖傳給多機器人系統(tǒng),這時,完成整個地圖的構(gòu)建,而每個機器人所保存的環(huán)境地圖被再次置空。
[0038]Hilbert曲線探測的原理是機器人沿著四條首尾相連的Hilbert曲線對環(huán)境進行探測,每一步Hilbert曲線探測都有兩種可能狀態(tài):flag = O即探測、flag = I即避障。
[0039]探測:機器人在初始時刻或者退出避障時,機器人自動進入探測狀態(tài)。
[0040]避障:當機器人遇到障礙物的時候,就進入避障狀態(tài),機器人沿障礙物的左側(cè)進行探測,當機器人回到發(fā)現(xiàn)障礙的點時,機器人自動退出避障狀態(tài),進入探測狀態(tài)。如果障礙物處跨越了兩個子區(qū)域時,每個機器人遵循只在自己的子區(qū)域探測原則,在子區(qū)域的邊界處沿原方向返回。當機器人再一次到達子區(qū)域的邊界是,就理解為已經(jīng)完成自己區(qū)域的探測任務(wù),機器人退出避障狀態(tài)。機器人根據(jù)flag的值進行相應(yīng)的運動。
[0041]步驟4:判斷是否四個機器人全部都完成Hilbert曲線探測過程,如果是,則機器人將進行信息融合,繪制探測的結(jié)果圖,并轉(zhuǎn)到步驟2;否則,返回步驟3,進行下一步Hilbert曲線探測。
[0042]步驟5:任務(wù)結(jié)束。
[0043]以上結(jié)合附圖對本發(fā)明的【具體實施方式】作了說明,但這些說明不能被理解為限制了本發(fā)明的范圍,本發(fā)明的保護范圍由隨附的權(quán)利要求書限定,任何在本發(fā)明權(quán)利要求基礎(chǔ)上的改動都是本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種基于多Agent粒子群優(yōu)化和Hilbert曲線探測的多機器人協(xié)作地圖構(gòu)建方法,其特征在于,所述方法包括以下步驟: 步驟1:根據(jù)機器人的探測半徑,將所需探測的環(huán)境劃分為若干子區(qū)域,為MAPSO進行全局優(yōu)化做準備; 步驟2:采用多Agent粒子群算法進行全局優(yōu)化,使處于當前位置的四個機器人找到近似最優(yōu)目標區(qū)域;如果每個機器人都找到有效探測區(qū)域,則繼續(xù)執(zhí)行步驟3 ;如果每個機器人都沒有找到有效探測區(qū)域,則轉(zhuǎn)到步驟5 ;如果只有部分機器人沒有找到有效探測區(qū)域,則按照當前的位置進行下一輪MAPSO算法規(guī)劃,即返回步驟2,直到每個機器人都找到有效探測區(qū)域; 步驟3:四個機器人采用分布式結(jié)構(gòu)對目標區(qū)域進行一步Hilbert曲線探測; 步驟4:判斷是否四個機器人全部都完成Hilbert曲線探測過程,如果是,則機器人將進行信息融合,繪制探測的結(jié)果圖,并轉(zhuǎn)到步驟2;否則,返回步驟3,進行下一步Hilbert曲線探測。 步驟5:任務(wù)結(jié)束。
2.根據(jù)權(quán)利要求1所述的多機器人協(xié)作地圖構(gòu)建方法,其特征在于,所述步驟I具體是采用柵格法進行地 圖建模,根據(jù)未知環(huán)境的整體大小設(shè)定正方形區(qū)域作為待探測區(qū)域,把待探測區(qū)域分割為一些子區(qū)域,其中每個子區(qū)域的邊長均為機器人探測半徑的整數(shù)倍,而每個子區(qū)域再分割即為傳統(tǒng)的柵格,柵格的大小相當于機器人的可探測范圍。
3.根據(jù)權(quán)利要求1所述的多機器人協(xié)作地圖構(gòu)建方法,其特征在于,所述步驟2中的采用多Agent粒子群算法進行全局優(yōu)化的過程包括以下幾個部分: (1)初始化粒子群體=MAPSO首先隨機地初始化一群粒子,其中第i個粒子在d維解空間的位置為Xi = (Xil, Xi2, Xi3,...,Xid),初始化粒子的兩個極值個體最優(yōu)值(Pbest)和全局最優(yōu)值(gbest); (2)競爭:每個粒子按照從環(huán)境中選取離自己最近的8個粒子作為選取鄰居粒子,并根據(jù)計算適應(yīng)度值調(diào)整自己的位置信息; (3)更新:粒子通過動態(tài)跟蹤Pbest和gbest來更新其速度和位置,其公式如下:
Vid (t+1) = WVid (t) +C^1 [Pbest (t) -Xid (t) ] +C2T2 [gbest (t) -Xid (t) ](I)
xid (t+1) = xid(t)+vid(t+l)(2) 式中,vid (t+1)表示t+1時刻第i個粒子在d維解空間的速度,xid (t+1)表示t+Ι時刻第i個粒子在d維解空間的位置,C1 = c2 = 2,為加速因子,W = 0.7298為慣性因子,ι和T2是介于[O, I]之間的隨機數(shù),t代表時刻t ; (4)計算適應(yīng)度值:根據(jù)適應(yīng)度函數(shù)計算每個粒子的適應(yīng)度值,其公式如下:
ffitness 一 W1D1-W2Dg+W3S1(3) 式中,D1代表機器人的下一個探測目標與當前位置的距離總和,實驗中,希望該值越小;D2代表下一個目標區(qū)域中,各機器人的距離總和;當機器人處于下一個目標位置進行探測的時候,S1E比于已探測區(qū)域面積與目標區(qū)域的比值。W1, w2,W3為前三個條件函數(shù)的加權(quán)因子 w1+w2+w3 = I ; 根據(jù)適應(yīng)度函數(shù)更新粒子的全局最優(yōu)值,當計算所得的最優(yōu)值到達設(shè)計要求時或者算法到達最大迭代次數(shù)時,退出MAPSO尋優(yōu)算法;否則返回到(2)。
4.根據(jù)權(quán)利要求1所述的多機器人協(xié)作地圖構(gòu)建方法,其特征在于,所述步驟3的Hilbert曲線探測過程如下:機器人沿著四條首尾相連的Hilbert曲線對環(huán)境進行探測,機器人根據(jù)flag的值進行相應(yīng)的運動,每一步Hilbert曲線探測都有兩種可能狀態(tài):flag =O即探測、flag = I即避障; 探測:機器人在初始時刻或者退出避障時,機器人自動進入探測狀態(tài); 避障:當機器人遇到障礙物的時候,就進入避障狀態(tài),機器人沿障礙物的左側(cè)進行探測,當機器人回到發(fā)現(xiàn)障礙的點時,機器人自動退出避障狀態(tài),進入探測狀態(tài);如果障礙物處跨越了兩個子區(qū)域時,每個機器人遵循只在自己的子區(qū)域探測原則,在子區(qū)域的邊界處沿原方向返回;當機器人再一次到達子區(qū)域的邊界是,就理解為已經(jīng)完成自己區(qū)域的探測任務(wù),機器人退出避障狀態(tài)。
5.根據(jù)權(quán)利要求4所述的多機器人協(xié)作地圖構(gòu)建方法,其特征在于,步驟3中,需要對環(huán)境進行構(gòu)建:已知障礙物的位置、大小,通過機器人探測器獲取全局信息,存儲于機器人內(nèi)部信息庫,為所有機器人共享,當進入機器人需要采取避障行為的范圍時,提取相應(yīng)障礙物或其它機器人信息。
【文檔編號】G05D1/02GK103926930SQ201410191404
【公開日】2014年7月16日 申請日期:2014年5月7日 優(yōu)先權(quán)日:2014年5月7日
【發(fā)明者】唐賢倫, 李臘梅, 蔣暢江, 王福龍, 陳龍, 張毅 申請人:重慶郵電大學