孫梅
摘 要:當(dāng)同一環(huán)境中存在多個(gè)機(jī)器人時(shí),很容易發(fā)生碰撞問題。為了避免該問題出現(xiàn),需要對機(jī)器人的所在位置進(jìn)行準(zhǔn)確定位。在實(shí)際的定位過程中,有效的定位方法主要包含全局定位和相對定位兩種。本文從聲源定位的概念入手,對基于聲音的分布式多機(jī)器人相對定位進(jìn)行研究。
關(guān)鍵詞:聲音;分布式;多機(jī)器人;相對定位
隨著機(jī)械技術(shù)、智能技術(shù)等相關(guān)技術(shù)的不斷發(fā)展,機(jī)器人的數(shù)量變得越來越多。當(dāng)在某一領(lǐng)域的環(huán)境中同時(shí)存在多個(gè)機(jī)器人時(shí),需要通過定位技術(shù)的應(yīng)用防止它們產(chǎn)生相互干擾。從整體角度講,基于聲音的相對定位技術(shù)能夠更好地實(shí)現(xiàn)多機(jī)器人定位目的。
一、基于聲音的分布式多機(jī)器人相對定位
(一)基于聲音的分布式多機(jī)器人相對定位算法
基于聲音的分布式多機(jī)器人相對定位的有效算法主要包含以下幾種:
1.協(xié)作定位
協(xié)作定位建立在機(jī)器人聲音收發(fā)狀態(tài)確定的基礎(chǔ)上,這種算法的作用是通過坐標(biāo)換算實(shí)現(xiàn)的。由于分布式多機(jī)器人的相對定位常常會受到實(shí)時(shí)性因素的影響,因此,在實(shí)際的相對定位過程中,應(yīng)該對發(fā)生機(jī)器人的數(shù)量進(jìn)行有效控制。
在協(xié)作定位算法中,坐標(biāo)值變換的實(shí)現(xiàn)建立在以下定理中:假設(shè)二維空間中存在一個(gè)具有未知特點(diǎn)的X軸獨(dú)立直角坐標(biāo)系,除此之外,該空間中還包含幾個(gè)不同的坐標(biāo)原點(diǎn)。以該二維空間中的兩個(gè)任意點(diǎn)為例,相對于該空間中所含坐標(biāo)系中的所有坐標(biāo)值而言,這兩個(gè)任意點(diǎn)屬于已知狀態(tài),因此,可以在該二維空間的所有坐標(biāo)系中進(jìn)行坐標(biāo)變換。假設(shè)某環(huán)境中同時(shí)存在5個(gè)機(jī)器人,分別將其命名為L1、L2、L3、L4、L5。將L1作為聲源進(jìn)行發(fā)聲,利用聲源定位算法可以得出其余四個(gè)機(jī)器人在機(jī)器人L1聲源坐標(biāo)系下的坐標(biāo),當(dāng)坐標(biāo)確定之后,L2、L3、L4、L5可以利用無線通信模塊將上述坐標(biāo)以及自身的ID廣播出來。當(dāng)上述環(huán)節(jié)結(jié)束之后,再將L3作為聲源進(jìn)行發(fā)聲,并分別得出L1、L2、L4以及L5在該坐標(biāo)系中的坐標(biāo)。在這種情況下,由于不同機(jī)器人缺失的對應(yīng)坐標(biāo)不同,因此應(yīng)該分別對其相應(yīng)向量進(jìn)行計(jì)算,利用向量完成這五個(gè)機(jī)器人的協(xié)作相對定位[ 1 ]。
2.聲源定位
聲源定位算法是指,將某固定發(fā)生機(jī)器人在周圍機(jī)器人局部坐標(biāo)系中的對應(yīng)坐標(biāo)確定出來。這里利用麥克風(fēng)陣列實(shí)現(xiàn)分布式多機(jī)器人的聲源相對定位。假定某傳感器陣列由A1、A2、A3以及A4這四個(gè)麥克風(fēng)組成,它們所形成的傳感器陣列結(jié)構(gòu)為十字型。通過對該陣列中任意兩個(gè)麥克風(fēng)到聲源位置距離的計(jì)算,得出麥克風(fēng)陣列坐標(biāo)系X軸與聲源之間的夾角,進(jìn)而將聲源所處坐標(biāo)系位置的象限確定出來。在估測聲源位置的過程中,聲音傳播速度為340m/s,其遠(yuǎn)遠(yuǎn)小于無線信號的傳播速度,為了防止該現(xiàn)象對最終估測結(jié)果產(chǎn)生影響,在聲源機(jī)器人發(fā)聲時(shí),應(yīng)該利用機(jī)器人自身攜帶的無線通信模塊以某字節(jié)聲音為起始標(biāo)志傳輸至其他定位機(jī)器人中。當(dāng)其他機(jī)器人接收到聲音起始標(biāo)志位信號之后,才會開始采集相應(yīng)的聲音信號。
(二)實(shí)現(xiàn)基于聲音的分布式多機(jī)器人相對定位的流程
基于聲音的分布式多機(jī)器人相對定位實(shí)現(xiàn)流程主要包含以下幾步:
1.初始化
某區(qū)域內(nèi)包含多個(gè)不同的機(jī)器人,隨機(jī)選中一個(gè)機(jī)器人m,將其作為該區(qū)域中的發(fā)聲機(jī)器人。
2.發(fā)聲
設(shè)置機(jī)器人m發(fā)聲,同時(shí),以機(jī)器人m的坐標(biāo)系為參照,將該區(qū)域中其他所有機(jī)器人的對應(yīng)坐標(biāo)計(jì)算出來。當(dāng)坐標(biāo)計(jì)算完成之后,其他機(jī)器人需要利用自身的無線通信模塊將上述坐標(biāo)廣播出來。
3.發(fā)聲標(biāo)志傳遞
當(dāng)發(fā)聲機(jī)器人m接收到相對坐標(biāo)之后,需要將發(fā)聲標(biāo)志傳遞至與它位置最為相近的機(jī)器人n。
4.調(diào)整發(fā)聲機(jī)器人
將發(fā)聲機(jī)器人設(shè)置為n,然后利用聲源定位算法將該區(qū)域中其他機(jī)器人在n發(fā)聲情況下坐標(biāo)系中的對應(yīng)坐標(biāo)計(jì)算出來,并通過所攜帶的無線通信模塊將坐標(biāo)計(jì)算結(jié)果廣播出來。
5.坐標(biāo)計(jì)算
結(jié)合協(xié)作定位算法,分別將傳感區(qū)域中所有機(jī)器人在其坐標(biāo)系下對應(yīng)的坐標(biāo)計(jì)算出來。
6.實(shí)現(xiàn)相對定位
當(dāng)上述步驟完成之后,則代表相對定位實(shí)現(xiàn)。當(dāng)需要對下個(gè)周期繼續(xù)進(jìn)行相對定位時(shí),可以將n機(jī)器人設(shè)置為m,再次按照上述步驟進(jìn)行。
二、基于聲音的分布式多機(jī)器人相對定位實(shí)驗(yàn)分析
(一)室內(nèi)實(shí)驗(yàn)
這里將MICE機(jī)器人作為實(shí)驗(yàn)對象,在室內(nèi)環(huán)境中按照分布式結(jié)構(gòu)布設(shè)6個(gè)機(jī)器人。在該室內(nèi)環(huán)境中,所有機(jī)器人與障礙物之間的距離超過200cm,同時(shí),不同發(fā)聲機(jī)器人與其他機(jī)器人之間的距離小于200cm。在這種環(huán)境下,進(jìn)行30次基于聲音的分布式多機(jī)器人相對定位實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,這種方法對不同機(jī)器人的定位較為準(zhǔn)確,其定位誤差平均值約為15.8cm。大部分誤差標(biāo)準(zhǔn)差小于11cm。由于室內(nèi)環(huán)境中的噪聲較少,不同機(jī)器人的發(fā)聲和信號接收過程受到的干擾相對較小,因此最終的定位結(jié)果較為準(zhǔn)確。
(二)室外實(shí)驗(yàn)
就分布式多機(jī)器人的相對定位室外實(shí)驗(yàn)設(shè)計(jì)而言,同樣將6個(gè)MICE機(jī)器人作為實(shí)驗(yàn)對象。該室外環(huán)境的范圍直徑為400cm。為了保證這些機(jī)器人之間的有效通信,需要利用CC2430無線通信模塊組成一個(gè)令牌環(huán)網(wǎng)。在這種狀況下,每個(gè)機(jī)器人都有一次獲得令牌的機(jī)會,令牌在6個(gè)機(jī)器人中循環(huán)一次的通信周期為60ms。因此,這種實(shí)驗(yàn)設(shè)計(jì)的定位實(shí)時(shí)性較高。在這種實(shí)驗(yàn)環(huán)境下進(jìn)行30次實(shí)驗(yàn),所有機(jī)器人相對定位的距離平均差小于13.7cm,其標(biāo)準(zhǔn)差的數(shù)值也被控制在較小范圍中,因此基于聲音的室外分布式多機(jī)器人相對定位能夠獲得良好的定位效果。
三、結(jié)論
當(dāng)環(huán)境中同時(shí)存在多個(gè)機(jī)器人時(shí),很容易產(chǎn)生碰撞問題。這種問題對不同機(jī)器人之間的定位提出了更高的要求。這里以聲源定位算法和協(xié)作定位算法為基礎(chǔ),得出一種基于聲音的分布式多機(jī)器人相對定位算法。通過實(shí)驗(yàn)可以看出,無論是在室外還是室內(nèi)環(huán)境中,這種定位算法的應(yīng)用能夠?qū)崿F(xiàn)對所有機(jī)器人位置的準(zhǔn)確定位。
參考文獻(xiàn):
[1] 吳玉秀,孟慶浩,曾明.基于聲音的分布式多機(jī)器人相對定位[J].自動化學(xué)報(bào),2014,05:798-809.
基金項(xiàng)目:基于ARDUINO模塊化裝卸機(jī)器人的研究與開發(fā)(省教育廳 13C602)