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