劉云萍,韓艷麗
(太原工業(yè)學(xué)院 計(jì)算機(jī)工程系,太原 030008)
機(jī)器人SLAM技術(shù)中有一個(gè)可以自動(dòng)定位的技術(shù)叫做機(jī)器人定位技術(shù),機(jī)器人定位技術(shù)的運(yùn)行原理就是憑借著自身的各個(gè)傳感器為介質(zhì),用此來(lái)吸引附近的物質(zhì)獲得一些精準(zhǔn)消息,并將獲得精準(zhǔn)消息通過詳細(xì)的計(jì)算方式得到精準(zhǔn)的地理位置。通過單個(gè)傳感器在復(fù)雜環(huán)境下很難準(zhǔn)確定位,不能保證機(jī)器人能夠長(zhǎng)期穩(wěn)定的運(yùn)行[1]。通常在不同的場(chǎng)景需要不同的傳感器,以保證定位的穩(wěn)定性,因此多傳感器融合定位已成為一種必要的發(fā)展趨勢(shì)。實(shí)現(xiàn)多傳感器融合定位過程中還存在眾多問題,比如怎樣選取多傳感器組合,怎樣融合多傳感器相關(guān)信息,克服這些阻礙對(duì)將來(lái)機(jī)器人的推廣和應(yīng)用有著重大意義。利用機(jī)器人自身的傳感器來(lái)收集附近的精準(zhǔn)信息,并且應(yīng)用這些信息,計(jì)算出機(jī)器人的精準(zhǔn)位置和實(shí)時(shí)動(dòng)態(tài)的方法就叫做機(jī)器人定位算法[2]??蔀闄C(jī)器人實(shí)時(shí)提供有效的避障、路徑規(guī)劃、作業(yè)決策等相關(guān)信息。進(jìn)一步對(duì)機(jī)器人的精準(zhǔn)位置和實(shí)時(shí)動(dòng)態(tài)等信息進(jìn)行挖掘,是可以提升多傳感器機(jī)器人整體工作實(shí)效的一種方式。為此,提出了一種基于SLFN的多傳感器機(jī)器人定位信息挖掘方法。
把勻速狀態(tài)設(shè)立在實(shí)施定位的機(jī)器人中,速度值為v。當(dāng)T1時(shí)刻到達(dá)點(diǎn)A時(shí),收集傳感器狀態(tài)強(qiáng)度數(shù)據(jù),因?yàn)闄C(jī)器人是一直在運(yùn)行的狀態(tài),所以必須當(dāng)信號(hào)抵達(dá)點(diǎn)B并且是在T2時(shí)間抵達(dá)時(shí),才能達(dá)到可以開始定位計(jì)算的要求[3]。從下面的圖1可以看到,L是A、B之間的長(zhǎng)度,Δt是T1、T2中間的時(shí)間段,AB兩者之間的中間點(diǎn)是C。經(jīng)過對(duì)這些數(shù)據(jù)的推理可以得到,需要計(jì)算出的是T1時(shí)間時(shí)A(x1,y1)的具體坐標(biāo)點(diǎn),但是現(xiàn)實(shí)計(jì)算出來(lái)的是T2時(shí)間時(shí)B(x2,y2)的具體坐標(biāo)點(diǎn)。因此,把機(jī)器人在Δt時(shí)走的長(zhǎng)度L當(dāng)成計(jì)算得出的偏差。
圖1 機(jī)器人實(shí)時(shí)定位模型
在圖1中,機(jī)器人運(yùn)動(dòng)以XOY為全局坐標(biāo)系,在全局坐標(biāo)系下,機(jī)器人的姿態(tài)角為θ,多傳感器機(jī)器人x軸和y軸的位置坐標(biāo)為L(zhǎng)x和Ly,多傳感器機(jī)器人的位姿向量設(shè)置為(Lx,Ly,θ)。從多傳感器機(jī)器人實(shí)時(shí)更新的定位反饋回應(yīng)中運(yùn)用其中最大的四個(gè)定位點(diǎn),并且以A(L1,L1,θ)為基點(diǎn)開展之后的計(jì)算,點(diǎn)1為,點(diǎn)2坐標(biāo)為,點(diǎn)3坐標(biāo)為,點(diǎn)4坐標(biāo)為。多傳感器機(jī)器人在Δt時(shí)間內(nèi)以v為前進(jìn)速度的運(yùn)動(dòng)學(xué)方程如式(1)所示:
由于在定位過程中,機(jī)器人處于平面運(yùn)動(dòng)狀態(tài),須滿足純滾動(dòng)和不滑動(dòng)兩個(gè)約束條,其約束條件可如式(2)所示:
則機(jī)器人的姿態(tài)角θ計(jì)算公式如式(3)所示:
式(3)中,θ,不是完全獨(dú)立的。當(dāng)機(jī)器人在實(shí)踐啟動(dòng)情況里,因?yàn)槭褂昧似骄档挠?jì)算手段,所以要求多傳感器機(jī)器人從P(t1)到P(t2)需要在固定的Δt時(shí)間內(nèi)完成,進(jìn)行精準(zhǔn)定位之后的具體地點(diǎn)大致是(t2-t1)/2時(shí)ΔRSSI對(duì)應(yīng)的點(diǎn),機(jī)器人實(shí)時(shí)定位的偏差會(huì)受到無(wú)線信號(hào)狀態(tài)的作用,得到機(jī)器人運(yùn)動(dòng)到t2的實(shí)際坐標(biāo)如式(4)所示:
多傳感器機(jī)器人在空間的姿態(tài)變換設(shè)定為是分別繞三個(gè)軸旋轉(zhuǎn)所獲得的。選擇的旋轉(zhuǎn)順序不同時(shí),會(huì)有不同的分解方式[4]。目前常用的分解方式為歐拉角。即機(jī)器人的位姿變換可用ZYX軸順序旋轉(zhuǎn)獲得,即:
式(5)中:R表示多傳感器機(jī)器人旋轉(zhuǎn)矩陣,γ表示多傳感器機(jī)器人翻滾角,ψ表示多傳感器機(jī)器人航向角。
為判斷原始數(shù)據(jù)點(diǎn)un是否屬于目標(biāo)特征直線,對(duì)原共線判定準(zhǔn)則修訂如式(6)所示:
式(6)中:ρn、ρn-i、ρn+i表示數(shù)據(jù)點(diǎn),un、加權(quán)系數(shù)是k1、k2,標(biāo)準(zhǔn)差是un-i、un+i,設(shè)定閾值是Var(ε)。當(dāng)un和它臨近的存在2i個(gè)點(diǎn)共線,那么un一定是遵循著共線準(zhǔn)則的。
線段特征的收集成效會(huì)被ε、k1、k2與i這寫共線判斷依據(jù)的精準(zhǔn)參數(shù)而作用。從整體來(lái)看,如果把共線準(zhǔn)則的要求執(zhí)行得過于嚴(yán)苛,會(huì)導(dǎo)致具有同樣特征的直線分割成幾段不同的線條,也就是會(huì)使特征在傳感器測(cè)量噪聲的強(qiáng)大干擾下變得片段化。過于隨意便會(huì)導(dǎo)致特征的夸大化,造成一定的錯(cuò)誤判斷和差距,得到不符合本體的數(shù)值。因?yàn)檫@個(gè)計(jì)算準(zhǔn)則的收集一你那個(gè)因素很多,運(yùn)行附近的環(huán)境也是多種多樣,所以這個(gè)容易就受到個(gè)別參數(shù)的干擾,因此,需要選擇合適的程度,把可能出現(xiàn)的種種情況都考慮進(jìn)去。
1)選取參數(shù)i
i的選擇的影響因素很多,其中最影響最大的就是數(shù)據(jù)點(diǎn)的密集程度,如果數(shù)據(jù)點(diǎn)十分密集的時(shí)候,i取值過于小會(huì)導(dǎo)致共線的判斷依據(jù)寬松,且ρn、ρn+i、ρn-i之間的差距過于小;反之i取值過大容易導(dǎo)致錯(cuò)誤判斷。因此,i的選擇要根據(jù)實(shí)際狀態(tài)來(lái)看i,如果數(shù)據(jù)已經(jīng)提前進(jìn)行了整理,i的選擇可以適當(dāng)偏小,因?yàn)槿绻麑?dǎo)致了特征的線段變短,那么之后可以的操作中還可以將線段進(jìn)行整合或者是重新分配便于改動(dòng)。
2)選取參數(shù)參數(shù)k1、k2
共線數(shù)據(jù)un-i與特征判斷數(shù)據(jù)un+i對(duì)un是否屬于該特征線段判斷影響的對(duì)應(yīng)點(diǎn)是k1與k2。k1大輕易造成判斷依舊過于嚴(yán)苛,而k2大輕易造成錯(cuò)誤判斷。因此k1選擇的依據(jù)可以參照參數(shù)i來(lái)進(jìn)行,則為k1的選擇可以大于k2。
3)閾值ε的選擇
閾值ε的取值有著非常重要的意義,并且距離dn作用于閾值ε的取值。一般情況下,閾值ε會(huì)隨著dn的的增大而增大,所以,要想使閾值ε達(dá)到上面的詳細(xì)要求,閾值函數(shù)可以依據(jù)實(shí)踐狀態(tài)來(lái)調(diào)整改進(jìn)分段函數(shù)ε=W(dn),
其具體形式如式(7)所示:
式(7)中,d1=0.6,d2=2.4,ε1=0.01,ε2=0.012。
定位信息與處理即對(duì)多傳感器機(jī)器人行為信息和IMU信息進(jìn)行處理,為機(jī)器人線程規(guī)劃及定位信息挖掘提供依據(jù)。假設(shè)預(yù)測(cè)值為Z,估計(jì)量為X,則在X下Z的概率密度函數(shù)表示為f(Z/X),若函數(shù)∏f(Z/X)為最大取值時(shí),將參數(shù)值當(dāng)做是X的估計(jì)值,如式(8)、式(9)所示:
式(9)中,L為最大似然函數(shù)。當(dāng)式中X為最大值時(shí),其L值也達(dá)到最大,則表明為X的極大似然估計(jì)。所以,求取X的極大似然估計(jì)值的問題可轉(zhuǎn)變成求取似然函數(shù)最大值的問題,方便多傳感器機(jī)器人定位。在進(jìn)行預(yù)處理的過程中,將實(shí)時(shí)采集到的多傳感器機(jī)器人定位信息與離線狀態(tài)構(gòu)建的信息庫(kù)中的信息相對(duì)比[5],找到相匹配的值,取μ=e_rssi_i,σ=d_rssi_i,利用正態(tài)分布的概率公式,計(jì)算pi(x.y)即為rssi_AP_i與信息庫(kù)中的概率如式(10)所示:
計(jì)算各個(gè)多傳感器機(jī)器人定位點(diǎn)在信息庫(kù)中出現(xiàn)的概率分布,將每個(gè)點(diǎn)的所有概率相乘,得到該多傳感器機(jī)器人定位的總分布概率。
式(11)中,n為信息庫(kù)中所有多傳感器機(jī)器人定位信息量。在之前收集到的p(x.y)參考信息概率經(jīng)過計(jì)算得到結(jié)果之后,基于此,在機(jī)器人定位坐標(biāo)信息中選擇里面最大的p(x.y)值所相對(duì)應(yīng)的具體信息。
基于總分布概率,確定狀態(tài)轉(zhuǎn)移概率p(xt|ut,xt-1)f為具有隨機(jī)高斯噪聲的線性函數(shù),如式(12)所示:
式(12)中:矩陣是At、Bt,接下來(lái)用狀態(tài)乘At,控制向量乘Bt,然后用這些參數(shù)和狀態(tài)轉(zhuǎn)移形成線性關(guān)系;xt和xt-1為狀態(tài)向量,t時(shí)刻的控制向量表示為ut,xt和ut的形式如式(13)、式(14)所示:
首先通過上述處理得到多傳感器機(jī)器人定位信息,這些定位信息是一組在x軸和y軸坐標(biāo)位置點(diǎn)組合[6]。其結(jié)合多傳感器信息及預(yù)處理結(jié)果,得到機(jī)器人當(dāng)前的定位信息值,將機(jī)器人當(dāng)前定位的信息與輸入值進(jìn)行對(duì)照,可以獲得對(duì)照之后的比較差值[7],得到比較差值之后,矯正值就容易得出了,可以利用對(duì)照后的差值繼而使用深度估計(jì)法進(jìn)行信息計(jì)算就可以得出,然后可以對(duì)多傳感器機(jī)器人的定位信息數(shù)據(jù)調(diào)整改進(jìn),如式(15)、式(16)所示:
式(16)中,r(k)為標(biāo)準(zhǔn)設(shè)定值,c(k)為當(dāng)前機(jī)器人的定位信息,e(k)為比較差值。比例系數(shù)是Kp,積分系數(shù)是ki,第k個(gè)采集時(shí)刻的輸出量是u(k),微分系數(shù)是Kd,則k-1個(gè)采集時(shí)刻的輸出量如式(17)所示:
基于輸出量對(duì)多傳感器機(jī)器人定位信息進(jìn)行融合,實(shí)現(xiàn)對(duì)機(jī)器人輸出量控制,而不對(duì)輸入量控制[8],進(jìn)而適應(yīng)輸入信號(hào)的頻繁變化規(guī)律,避免出現(xiàn)劇烈振蕩,影響對(duì)機(jī)器人定位信息準(zhǔn)確度,基于此設(shè)計(jì)的微分器為:
在微分器控制過程中,假設(shè)視覺機(jī)器人定位信息存在一定約束條件:
式(19)中,?d表示視覺機(jī)器人位置向量;表示視覺機(jī)器人速度向量;?′表示視覺機(jī)器人加速度向量;?表示標(biāo)準(zhǔn)數(shù)值。
基于此,計(jì)算控制器輸入與微分器輸入之和,如式(21)所示:
式(20)中,αPI表示線性控制器的輸入值;αD表示微控制器的輸入值。在控制目標(biāo)的一階微分環(huán)節(jié)上,通過轉(zhuǎn)換控制目標(biāo)的轉(zhuǎn)移函數(shù),添加抵抗空氣流產(chǎn)生擾動(dòng)的性能,可得到表達(dá)式如式(21)所示:
式(22)中,μ、κ分別表示變換分母、分子系數(shù);y表示輸出信號(hào)。
通過參數(shù)整定后,可以離散處理視覺機(jī)器人變量,使經(jīng)過微分線性控制的數(shù)值變化較小,變化幅度在-1和1之間,避免輸入過程出現(xiàn)劇烈波動(dòng),影響控制效果。設(shè)定隨機(jī)變量為Sh,確定多傳感器機(jī)器人定位信息的先驗(yàn)概率p(Sh),計(jì)算后驗(yàn)概率的分布結(jié)果為p(Sh|D),計(jì)算公式如式(23)所示:
式(23)中,p(D)表示得到的正規(guī)化常數(shù);p(D|Sh)表示挖掘的邊界似然值。
在確定激活函數(shù)之后,實(shí)現(xiàn)參數(shù)獨(dú)立,保證不同參數(shù)完整性后,得到多傳感器機(jī)器人定位數(shù)據(jù)集,分析機(jī)器人定位信息集中各個(gè)不同變量之間的獨(dú)立性關(guān)系,從而得到機(jī)器人定位信息特征。分析機(jī)器人激活函數(shù),將所有的多傳感器機(jī)器人關(guān)鍵定位特征進(jìn)行挖掘,其計(jì)算公式如式(24)所示:
從上面的數(shù)據(jù)可以看出,可以達(dá)成多傳感器機(jī)器人在定位信息的挖掘,其中的重要原因就是使用定位,獲取多傳感器機(jī)器人定位信息,并進(jìn)行實(shí)時(shí)挖掘。
為驗(yàn)證本文提出的多傳感器機(jī)器人定位信息挖掘方法的有效性,搭建機(jī)器人平臺(tái)和實(shí)驗(yàn)所需環(huán)境。仿真環(huán)境使用URDF文件實(shí)現(xiàn),URDF作為機(jī)器人的一種描述文件,在Gazebo中大量使用。利用仿真環(huán)境調(diào)試方法穩(wěn)定性高,修改調(diào)試方便,節(jié)約成本,還能夠加深對(duì)方法的理解。但實(shí)際運(yùn)行環(huán)境更復(fù)雜,在加上真實(shí)傳感器不可能避免的存在隨機(jī)誤差,對(duì)定位信息挖掘方法提出了更大的挑戰(zhàn),因此需要搭建實(shí)體機(jī)器人實(shí)驗(yàn)憑條,進(jìn)一步驗(yàn)證所設(shè)計(jì)方法的有效性。實(shí)驗(yàn)采用的機(jī)器人如圖2所示,機(jī)器人參數(shù)如表1所示。
圖2 機(jī)器人
表1 機(jī)器人參數(shù)
服務(wù)器使用的配置為Windows10操作系統(tǒng),8.00GB內(nèi)存,64為操作系統(tǒng),數(shù)據(jù)庫(kù)軟件為微軟開發(fā)的SQL service2020。
實(shí)驗(yàn)中以多傳感器機(jī)器人定位信息挖掘精度和挖掘時(shí)間開銷為實(shí)驗(yàn)指標(biāo)。
1)定位信息挖掘精度:該指標(biāo)是衡量多傳感器機(jī)器人定位信息挖掘的重要性能指標(biāo),其計(jì)算公式如式(25)所示:
式(25)中,代表挖掘的實(shí)際數(shù)據(jù)量,代表挖掘數(shù)據(jù)的總量。
2)定位信息挖掘時(shí)間耗時(shí):該性能指標(biāo)反映多傳感器機(jī)器人定位信息挖掘的速度,其計(jì)算公式如式(26)所示:
式(26)中,代表實(shí)際挖掘數(shù)據(jù)的用時(shí),代表理想的挖掘所用時(shí)間。
3.3.1 挖掘精度分析
多傳感器機(jī)器人定位信息的挖掘精度可衡量方法的優(yōu)勢(shì),本文實(shí)驗(yàn)中對(duì)比了本文方法、文獻(xiàn)[3]方法以及文獻(xiàn)[4]方法對(duì)樣本多傳感器機(jī)器人定位信息進(jìn)行挖掘,為了保證實(shí)驗(yàn)的精度,對(duì)樣本信息進(jìn)行挖掘時(shí)均進(jìn)行了多次迭代速度,且得到的實(shí)驗(yàn)結(jié)果均為迭代后的均值,三種方法對(duì)樣本信息挖掘的精度結(jié)果如圖3所示。
圖3 挖掘精度對(duì)比結(jié)果
分析圖3中數(shù)據(jù)可以看出,隨著挖掘時(shí)間的不斷改變,采用本文方法、文獻(xiàn)[3]方法以及文獻(xiàn)[4]方法對(duì)樣本信息進(jìn)行挖掘的精度存在一定差異。當(dāng)挖掘時(shí)間為40min時(shí),本文方法的挖掘精度約為96%,文獻(xiàn)[3]方法的挖掘精度約為70%,文獻(xiàn)[4]方法的挖掘精度約為56%;當(dāng)挖掘時(shí)間為60min時(shí),本文方法的挖掘精度約為98%,文獻(xiàn)[3]方法的挖掘精度約為78%,文獻(xiàn)[4]方法的挖掘精度約為80%;對(duì)比三種方法可以看出,本文方法的挖掘精度最高,這是由于本文方法進(jìn)行定位信息挖掘之前對(duì)多傳感器機(jī)器人定位信息進(jìn)行預(yù)處理,并對(duì)其冗余進(jìn)行刪除,降低了干擾項(xiàng)的存在,提高了本文方法的挖掘精度。
3.3.2 挖掘時(shí)間開銷分析
在保證定位信息挖掘精度的基礎(chǔ)上,進(jìn)一步分析了本文方法、文獻(xiàn)[3]方法和文獻(xiàn)[4]方法在進(jìn)行信息挖掘時(shí)的時(shí)間開銷,得到的結(jié)果如圖4所示。
圖4 挖掘時(shí)間開銷對(duì)比結(jié)果
分析圖4 中數(shù)據(jù)可以看出,在相同實(shí)驗(yàn)條件下采用三種方法對(duì)樣本信息進(jìn)行挖掘的耗時(shí)存在一定差異。當(dāng)信息量為750bit時(shí),本文方法的挖掘時(shí)間開銷約為46.5s,文獻(xiàn)[3]方法的挖掘時(shí)間開銷約為68.3s,文獻(xiàn)[4]方法的挖掘時(shí)間開銷約為48.7s;當(dāng)信息量為100bit時(shí),本文方法的挖掘時(shí)間開銷約為24.5s,達(dá)到最小值;文獻(xiàn)[3]方法的挖掘時(shí)間開銷約為63.2s,文獻(xiàn)[4]方法的挖掘時(shí)間開銷約為48.9s;相比之下所提方法的挖掘時(shí)間開銷較短均要小于文獻(xiàn)[3]方法、文獻(xiàn)[4]方法,實(shí)現(xiàn)了快速的挖掘,進(jìn)而提升了方法的有效性。
3.3.3 內(nèi)存占用率對(duì)比
以內(nèi)存占用率為指標(biāo)檢驗(yàn)不同方法的資源利用情況,以此來(lái)反映不同方法的實(shí)用效果。實(shí)驗(yàn)中,不同方法的內(nèi)存占用率變化情況如圖5所示。
通過分析圖5所示結(jié)果可知,對(duì)于三種不同方法,內(nèi)存占用率均隨著實(shí)驗(yàn)迭代次數(shù)的增加而增加。其中,文獻(xiàn)[3]的內(nèi)存占用率最大值為57.38%,文獻(xiàn)[4]方法的內(nèi)存占用率最大值為45.32%,而本文所提方法的內(nèi)存占用率最大值僅為28.4%。相比之下,所提方法的內(nèi)存占用率更少,說明在實(shí)際應(yīng)用過程中,該方法的可行性更高。
圖5 內(nèi)存占用率對(duì)比結(jié)果
針對(duì)多傳感器機(jī)器人定位信息由于存在定位信息量大、干擾因素多等原因,導(dǎo)致挖掘精度差、耗時(shí)長(zhǎng)、內(nèi)存占用率高的問題,提出了新的挖掘方法。經(jīng)實(shí)驗(yàn)驗(yàn)證,采用本文提出的基于SLFN的多傳感器機(jī)器人定位信息挖掘方法,具有以下優(yōu)勢(shì):
1)采用所提方法挖掘精度,相比文獻(xiàn)[3]方法、文獻(xiàn)[4]方法提高了23%、29%。
2)采用所提方法挖掘耗時(shí),相比文獻(xiàn)[3]方法、文獻(xiàn)[4]方法降低了30.25、13.3s。
3)采用所提方法內(nèi)存占用率相比文獻(xiàn)[3]方法、文獻(xiàn)[4]方法降低了28.98%、16.92%。