基于改進(jìn)細(xì)菌覓食算法的多機(jī)器人協(xié)作氣味源定位方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種機(jī)器人氣味源定位方法,具體涉及一種基于改進(jìn)細(xì)菌覓食算法的 多機(jī)器人協(xié)作氣味源定位方法,屬于自動(dòng)檢測(cè)及機(jī)器人技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 在自然界中,許多生物利用嗅覺器官發(fā)現(xiàn)同伴、搜尋食物源或進(jìn)行交流。隨著傳感 器技術(shù)、機(jī)器人學(xué)等發(fā)展,自上世紀(jì)90年代以來(lái),一些學(xué)者開始嘗試?yán)脵C(jī)器人進(jìn)行氣味 源定位,稱為機(jī)器人主動(dòng)嗅覺,它可廣泛應(yīng)用于有毒有害氣體檢測(cè),在救災(zāi)、搶險(xiǎn)乃至反恐、 安全等領(lǐng)域有廣闊的應(yīng)用前景。
[0003] 機(jī)器人氣味源定位可分為煙羽發(fā)現(xiàn)、煙羽跟蹤和氣味源確認(rèn)3個(gè)階段。根據(jù)煙羽 模型的建立方法,現(xiàn)有的氣味源定位方法可分為基于平流/湍流信息的氣味跟蹤法和基于 氣味分布模型估計(jì)的氣味跟蹤法兩類。第一類方法利用氣味濃度和/或風(fēng)速信息定位氣味 源,第二類方法利用機(jī)器人采集的環(huán)境信息,更新氣味分布地圖,以定位氣味源。
[0004] 由于多機(jī)器人系統(tǒng)的可擴(kuò)展性和魯棒性,使得多機(jī)器人系統(tǒng)代替單機(jī)器人系統(tǒng)成 為氣味源定位的主要工具。目前,模仿生物群體行為的多機(jī)器人氣味源定位方法正逐漸受 到關(guān)注,代表方法包括:2003年召開的國(guó)際會(huì)議《Proceedingsof11thInternational ConferenceonAdvancedRobotics》 中"Odoursearchingwithautonomousmobile robots:anevolutionary-basedapproach"論文提出的進(jìn)化優(yōu)化法;2008年第6期《機(jī) 器人》期刊"基于修正蟻群算法的多機(jī)器人氣味源定位策略研究"論文,以及2012年第 12 期《Sensors》期刊"AdaptinganAntColonymetaphorforMulti-robotchemical plumetracing"論文提出的蟻群優(yōu)化法;2013年第3期《機(jī)器人》期刊"室內(nèi)通風(fēng)環(huán)境 下基于模擬退火算法的單機(jī)器人氣味源定位"論文提出的模擬退火算法;2007年第2 期〈〈IEEEcomputationalintelligencemagazine))期刊"APS〇-basedmobilerobot forodorsourcelocalizationindynamicadvection-diffusionwithobstacle environment:theory,simulationandmeasurement',論文,2011 年第 3 期〈〈International JournalofAutomationComputing》期刊"Alearningparticleswarmoptimization algorithmforodorsourcelocalization"論文,以及2013年第5期《控制與決策》期刊 "基于微粒群優(yōu)化的有限通信多機(jī)器人氣味尋源"論文提出的微粒群優(yōu)化法。
[0005] 上述諸多方法多采用隨機(jī)搜索策略發(fā)現(xiàn)煙羽,搜索效率低,能量消耗高,很難指導(dǎo) 機(jī)器人快速發(fā)現(xiàn)煙羽。細(xì)菌覓食算法源于大腸桿菌在覓食過程中體現(xiàn)出的智能行為,具有 簡(jiǎn)單、分布式魯棒性好、擴(kuò)展性好等優(yōu)點(diǎn),但對(duì)于細(xì)菌覓食算法與機(jī)器人氣味源定位問題的 結(jié)合研究,目前尚未提出行之有效的方法。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的是提出一種基于改進(jìn)細(xì)菌覓食算法的多機(jī)器人協(xié)作氣味源定位方 法,搜索效率高,可實(shí)現(xiàn)氣味源的快速定位。
[0007] 為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種基于改進(jìn)細(xì)菌覓食算法的多機(jī) 器人協(xié)作氣味源定位方法,包括以下步驟:
[0008] (1)煙羽發(fā)現(xiàn)階段:機(jī)器人利用氣味傳感器在工作空間內(nèi)檢測(cè)所需搜索的氣味煙 羽,在機(jī)器人未測(cè)得氣味煙羽時(shí),將整個(gè)工作空間利用Voronoi圖方法劃分為多個(gè)區(qū)域,每 個(gè)機(jī)器人在各自的工作區(qū)域中執(zhí)行隨機(jī)煙羽搜索策略;
[0009] (2)煙羽跟蹤階段:當(dāng)機(jī)器人檢測(cè)到氣味煙羽時(shí),采用改進(jìn)細(xì)菌覓食算法確定機(jī) 器人下一步搜索方向,實(shí)現(xiàn)氣味的自動(dòng)跟蹤;
[0010] (3)氣味源確認(rèn)階段:根據(jù)機(jī)器人測(cè)得的氣味濃度值和機(jī)器人的位置變化范圍, 判斷確定氣味源的位置。
[0011] 進(jìn)一步地,步驟(1)中所述的Voronoi圖方法為根據(jù)工作空間中機(jī)器人的數(shù)量,利 用矢量對(duì)偶法生成Voronoi圖。
[0012] 進(jìn)一步地,步驟(1)中所述的隨機(jī)煙羽搜索策略為Z字型煙羽發(fā)現(xiàn)策略。
[0013] 進(jìn)一步地,步驟(2)中所述的改進(jìn)細(xì)菌覓食算法,包括以下步驟:
[0014] a?趨化操作,具體方法是:
[0015] 將每個(gè)機(jī)器人看作一個(gè)細(xì)菌,機(jī)器人所測(cè)氣味濃度值作為細(xì)菌的適應(yīng)值,設(shè)定細(xì) 菌9 1當(dāng)前位置為個(gè)體引導(dǎo)者,菌群發(fā)現(xiàn)的最優(yōu)位置為全局引導(dǎo)者;其中,9 1表示第i個(gè)細(xì) 菌;
[0016] 在煙羽跟蹤前期,利用隨機(jī)產(chǎn)生的方向向量作為細(xì)菌的運(yùn)動(dòng)方向,根據(jù)趨化性操 作公式更新細(xì)菌的位置;其中,所述趨化性操作公式為:
[0017]
[0018] 其中,0 ^k,1)表示第i個(gè)細(xì)菌在第j次趨化、第k次復(fù)制、第1次驅(qū)散操作后 的位置;S(i)表示細(xì)菌前進(jìn)的單位步長(zhǎng);A(i,j)表示第i個(gè)細(xì)菌在第j次趨化中隨機(jī)產(chǎn) 生的方向向量;
[0019] 在煙羽跟蹤后期,根據(jù)個(gè)體引導(dǎo)者和全局引導(dǎo)者的微粒速度更新公式產(chǎn)生細(xì)菌的 運(yùn)動(dòng)方向;其中,所述個(gè)體引導(dǎo)者和全局引導(dǎo)者的微粒速度更新公式為:
[0020] V1 (j+1,k, 1) = 〇V1 (j,k, 1) (P1 (j,k, 1) - 0 1 (j,k, 1)) +c2r2 (G1 (j,k, 1) - 0 1 (j, k, 1))
[0021] 其中,《為慣性權(quán)重;CJPC2為學(xué)習(xí)因子;^和"是[0,1]之間的隨機(jī)數(shù); P1 (j,k,1)表示第i個(gè)細(xì)菌在第j次趨化、第k次復(fù)制、第1次驅(qū)散操作后的個(gè)體引導(dǎo)者; G1 (j,k,1)表示第i個(gè)細(xì)菌在第j次趨化、第k次復(fù)制、第1次驅(qū)散操作后的全局引導(dǎo)者; Wj)細(xì)菌翻轉(zhuǎn)后的運(yùn)動(dòng)方向;
[0022] 根據(jù)細(xì)菌旋轉(zhuǎn)運(yùn)動(dòng)方向利用改進(jìn)趨化性操作公式更新細(xì)菌的位置;其中,所述改 進(jìn)趨化性操作公式為:
[0023]
[0024] 判斷細(xì)菌0 1的先前位置0 1 (j,k,1)與新生位置0 1 (j+1,k,1)之間是否有障礙 物,若無(wú)障礙物,則機(jī)器人直接移向新生位置;若有障礙物,則采用人工勢(shì)場(chǎng)法引導(dǎo)機(jī)器人 移向新生位置;
[0025] 根據(jù)新生位置機(jī)器人所測(cè)氣味濃度值,更新細(xì)菌0 1的個(gè)體引導(dǎo)者和全局引導(dǎo) 者;
[0026] b.復(fù)制操作,具體方法是:
[0027] 將N個(gè)細(xì)菌按照健康度進(jìn)行排序;其中,所述健康度公式為:
[0028]
[0029] 其中,J1 (j,k,1)表示第i個(gè)細(xì)菌在第j次趨化操作時(shí)的氣味濃度值;
[0030] 根據(jù)排序后的健康度,保留健康度較好的N/2個(gè)細(xì)菌,健康度較差的N/2個(gè)細(xì)菌執(zhí) 行交叉操作;其中,所述交叉操作公式為:
[0031] 0m(j,k+l, 1) =a0m(j,k,l) + (l-a) 0n(j,k, 1)
[0032] 其中,a是[0, 1]之間的隨機(jī)數(shù);0m(j,k,1)和0n(j,k,1)分別為健康度較差的 細(xì)菌和健康度較好的細(xì)菌;
[0033] 判斷細(xì)菌0m的先前位置0m(j,k,1)與新生位置0m(j,k+1,1)之間是否有障礙 物,若無(wú)障礙物,則機(jī)器人直接移向新生位置;若有障礙物,則采用人工勢(shì)場(chǎng)法引導(dǎo)機(jī)器人 移向新生位置;
[0034] 根據(jù)新生位置機(jī)器人所測(cè)氣味濃度值,更新細(xì)菌0?的個(gè)體引導(dǎo)者和全局引導(dǎo) 者;
[0035] c.迀徙操作,具體方法是:
[0036] 對(duì)于細(xì)菌0 \如果滿足迀徙操作條件rand〇〈Ped,執(zhí)行隨機(jī)翻轉(zhuǎn)運(yùn)動(dòng);否則,保持 當(dāng)前個(gè)體不變;其中,rand()是[0, 1]之間的隨機(jī)數(shù);P&是給定迀徙概率。