王險峰,邱祖澤,丁子琳,趙 通,楊浩偉
(東北石油大學(xué) 計算機與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
人工智能技術(shù)與機器人技術(shù)已經(jīng)成為當(dāng)前社會中不可或缺的一部分,機器人與自主學(xué)習(xí)功能的相互融合便成為未來的主要發(fā)展方向之一。在每個行業(yè)中高度的智能化機器人設(shè)備均可以起到促進效率、提升工作質(zhì)量的效果,例如工業(yè)領(lǐng)域的自主化流水線生產(chǎn)、監(jiān)測領(lǐng)域的智能數(shù)據(jù)監(jiān)測等。對于這些高智能化發(fā)展的機器人能夠精準(zhǔn)識別出實時所處的環(huán)境和位置是幫助人們生產(chǎn)生活的重要前提,這也是科研人員一直所追求的智能機器人成果之一。傳統(tǒng)輪式機器人主要在SLAM技術(shù)的引導(dǎo)下實現(xiàn)對真實環(huán)境相關(guān)數(shù)據(jù)的監(jiān)測和提取,然后通過機器人自身的激光雷達處理數(shù)據(jù)完成規(guī)劃目標(biāo)路徑的任務(wù),從而達到智能導(dǎo)航的目的。SLAM技術(shù)還可以為機器人搭建一套未知地形的地圖資源共享平臺,幫助機器人中的各個激光雷達更好地實現(xiàn)定位功能。
輪式機器人SLAM導(dǎo)航系統(tǒng)的研究已經(jīng)有將近40年的歷史,傳統(tǒng)方法對于此類機器人自動導(dǎo)航系統(tǒng)的研究主要基于卡爾曼濾波算法,利用這種算法對機器人周邊線性高速噪聲系統(tǒng)進行優(yōu)質(zhì)處理,再通過其他不同種類的算法進行非線性系統(tǒng)的設(shè)計與數(shù)據(jù)處理,可以截取算法中產(chǎn)生的誤差。例如文獻[1]中提出的基于濾波算法的導(dǎo)航系統(tǒng),這種系統(tǒng)下的輪式機器人SLAM技術(shù)與卡爾曼濾波直接共享位置信息,利用粒子群的分布表示導(dǎo)航系統(tǒng)中障礙的存在位置,以粒子濾波的方式表示輪式機器人可以通行的路徑,這種系統(tǒng)在較為復(fù)雜的地形中更容易應(yīng)用。文獻[2]中提出的是基于軟件庫cartographer的導(dǎo)航系統(tǒng),此系統(tǒng)利用激光計算機器人所在環(huán)境到目的地之間的距離,然后采用后端非線性優(yōu)化方式驗證距離數(shù)據(jù)的真實性與準(zhǔn)確性,最后在軟件庫中搭建地形圖場景平臺,減少輪式機器人SLAM導(dǎo)航系統(tǒng)提供的路徑誤差。文獻[3]提出基于多自適應(yīng)神經(jīng)模糊推理的移動機器人導(dǎo)航系統(tǒng)。分別將3個紅外距離傳感器安裝在機器人的前、左和右側(cè),讀取環(huán)境中的前、左前和右前靜態(tài)和動態(tài)障礙物。將該傳感器數(shù)據(jù)信息作為輸入值輸入到 MANFIS 架構(gòu)中,為機器人的左右電機生成適當(dāng)?shù)乃俣瓤刂泼睢?/p>
上述方法均具有一定的有效性,但對輪式機器人S導(dǎo)航過程中的路障采集精度仍有待提升。本文將主要研究基于改進RBPF算法的輪式機器人SLAM導(dǎo)航系統(tǒng),利用改進RBPF算法的數(shù)據(jù)特征優(yōu)化傳統(tǒng)導(dǎo)航系統(tǒng)中存在的缺陷。
本文研究的基于改進RBPF算法的輪式機器人SLAM導(dǎo)航系統(tǒng)硬件主要由導(dǎo)航功能模塊、底盤驅(qū)動模塊、控制模塊組成,系統(tǒng)硬件結(jié)構(gòu)如圖1所示。

圖1 基于改進RBPF算法的輪式機器人SLAM導(dǎo)航系統(tǒng)硬件
導(dǎo)航功能模塊是由多方面的硬件結(jié)構(gòu)共同組成的,主要包括負責(zé)功能數(shù)據(jù)采集的傳感器結(jié)構(gòu)和負責(zé)數(shù)據(jù)處理的處理器結(jié)構(gòu),兩者相互配合從而形成了較為完整的導(dǎo)航功能模塊。本文首先介紹傳感器硬件結(jié)構(gòu),傳感器在輪式機器人中是極其重要的數(shù)據(jù)感知和采集手段,可以為導(dǎo)航功能模塊提供穩(wěn)定且精準(zhǔn)的環(huán)境數(shù)據(jù),傳感器中一般會存在一定的算法來保障導(dǎo)航功能模塊的精準(zhǔn)性。
傳感器采用RPLIDAR A1型激光雷達,傳統(tǒng)的超聲波激光雷達大多方向性差、監(jiān)測范圍有限,甚至還存在數(shù)據(jù)錯漏現(xiàn)象,而本文選用的RPLIDAR A1型激光雷達按順時針旋轉(zhuǎn),可實現(xiàn)360度全方位掃描,感知環(huán)境信息不受光線影響,在光線不足的地方同樣也能完成導(dǎo)航任務(wù)[4-5]。其能夠為導(dǎo)航功能模塊中的數(shù)據(jù)處理單元提供優(yōu)質(zhì)的可感知單元。這種傳感器還可以在SLAM算法基礎(chǔ)上引用改進RBPF算法,具有更廣泛的算法空間,這也是本文選用此款傳感器的主要原因。其基本參數(shù)如表1所示。

表1 RPLIDAR A1型激光雷達參數(shù)
處理器是導(dǎo)航功能模塊的核心結(jié)構(gòu),負責(zé)處理激光雷達上傳的全部內(nèi)容。本文采用的處理器為嵌入式處理單元,配置了i7 6700芯片,可以在芯片中安裝多種類算法,芯片在進行算法計算過程中還可以處于低功耗處理狀態(tài),并對外提供豐富的數(shù)據(jù)接口,保障數(shù)據(jù)量計算與交互的同時運行。
輪式機器人的底盤可以實時控制機器人的運動速度,一個良好的底盤驅(qū)動可以精準(zhǔn)進行差速控制,大多數(shù)底盤驅(qū)動由兩個主動輪子和多個從動輪子組成,每個主動輪具有獨立的驅(qū)動模塊,能夠為主動輪提供穩(wěn)定可靠的動力,而從動輪主要是起到改變方向、輔助支撐的作用,跟隨主動輪的驅(qū)動方向來改變整個機器人的運動方向。
帶齒輪的底盤驅(qū)動是以齒輪作為動力的傳輸結(jié)構(gòu),可以將主動輪軸與從動輪軸相互拉開距離,保證輪式機器人的多個輪子在運動過程中不相互影響且可以起到相互輔助的作用,這樣的設(shè)計結(jié)構(gòu)極大減少了底盤總占用面積,從而為輪式機器人提供了更廣泛的運動空間。本文還在底盤中增加了懸掛系統(tǒng),懸掛系統(tǒng)具有增強動力的作用,再在懸掛系統(tǒng)中添加改進RBPF算法,使懸掛系統(tǒng)也具備數(shù)據(jù)識別功能,針對不同的路況提供相應(yīng)的動力供給量[6-7]。
底盤驅(qū)動結(jié)構(gòu)電路如圖2所示。

圖2 底盤驅(qū)動結(jié)構(gòu)電路圖
本文在控制模塊中安裝了擴展卡爾曼濾波器,將此裝置中擴展卡爾曼濾波算法和改進RBPF算法相配合,擴展卡爾曼濾波算法用來估計導(dǎo)航地圖環(huán)境特征位置,改進RBPF算法用來估計機器人所處的位置,通過兩者相互配合,形成了能夠處理不確定性高斯噪聲的新算法。
傳統(tǒng)機器人的SLAM算法中含有大量的噪音,從而影響了控制模塊的數(shù)據(jù)判斷,為此本文設(shè)計的新算法可以較大程度地減少控制模塊的數(shù)據(jù)判斷誤差,機器人會根據(jù)控制模塊對外輸出數(shù)據(jù)來決定實時運動狀態(tài),控制模塊再通過擴展卡爾曼濾波裝置對激光雷達采集數(shù)據(jù)進行信息融合,制定機器人下一階段的運動目標(biāo)??刂颇K電路如圖3所示。

圖3 控制模塊電路圖
傳統(tǒng)的RBPF算法中只將里程計信息作為提議分布,機器人在運動的過程中偶爾會發(fā)生輪子打滑或漂移的情況,在該情況下里程計所記錄的信息會發(fā)生較大誤差,從而得到的提議分布與現(xiàn)實后驗概率分布差距較大。本文中改進的RBPF算法將高測量精度的激光雷達信息與里程計信息進行整合優(yōu)化,得到更能靠近現(xiàn)實后驗概率分布的提議分布。改進后的提議分布為:
(1)

然而提議分布中的似然函數(shù)無法直接獲得,因此不能對其進行采樣。解決方法是把提議分布近似看作為高斯分布:
(2)
(3)
(4)

改進后的RBPF SLAM算法能夠自主適應(yīng)不同運動模式下的提議分布,且能夠在普通的粒子運動模型中提取較高權(quán)重的粒子,使機器人時刻處于平穩(wěn)狀態(tài),如下所示為較高權(quán)重粒子的計算方式[8-10]:
(5)
利用算法公式進行權(quán)重計算時,加入激光雷達信息會減小權(quán)重方差,此時的粒子分布群出現(xiàn)頂峰值,再使用濾波器對粒子群進行發(fā)散,便可以調(diào)控運動模型與周圍環(huán)境之間的1∶1比例關(guān)系[11-13]。檢測實際機器人運動場景和預(yù)測場景之間的差異,然后持續(xù)進行重采樣,評估粒子數(shù)是否達到表示路徑的標(biāo)準(zhǔn)[14-16]。
改進后的RBPF SLAM算法具體實現(xiàn)步驟如圖4所示。

圖4 改進后的RBPF SLAM算法實現(xiàn)步驟
改進的RBPF SLAM算法在輪式機器人導(dǎo)航中運行首先需要對每個粒子進行卡爾曼過濾,將過濾后的粒子傳送到計算矩陣中,等待后期的算法計算;其次是要選擇權(quán)重值較高的粒子初步判斷機器人現(xiàn)階段所在的位置,根據(jù)外部地形環(huán)境等因素聚集粒子到特殊位置,并防止這些粒子出現(xiàn)大量的離散狀態(tài),盡量控制粒子在有限的空間內(nèi)分布[17];然后對有限空間中的粒子進行統(tǒng)計,為卡爾曼的深度過濾提供數(shù)據(jù)保障,所統(tǒng)計的粒子數(shù)必須是在一個獨立的粒子群中,當(dāng)粒子群中統(tǒng)計的數(shù)據(jù)量在正常范圍區(qū)間,則證明改進的RBPF SLAM算法適用于該輪式機器人導(dǎo)航系統(tǒng),若粒子群數(shù)據(jù)量較少或過多,則證明改進的RBPF SLAM算法不適應(yīng)該輪式機器人導(dǎo)航系統(tǒng)[18-20]。改進的RBPF SLAM算法在輪式機器人導(dǎo)航中運行過程如圖5所示。

圖5 改進RBPF SLAM算法在導(dǎo)航中運行過程
根據(jù)圖5可知,本文設(shè)計的算法實現(xiàn)程序是在普通的粒子權(quán)重中提取高質(zhì)量的粒子,以便組成更高質(zhì)量的粒子群,這樣的卡爾曼濾波才會實現(xiàn)路徑的距離篩選和障礙物的識別,保障算法結(jié)果的精準(zhǔn)性。
本文設(shè)計的實驗主要針對本文所設(shè)計導(dǎo)航系統(tǒng)下的輪式機器人能否在復(fù)雜的路徑環(huán)境中實現(xiàn)精準(zhǔn)避障以及減少運動誤差等項目,從這些項目中還對系統(tǒng)設(shè)計的完整性和功能性進行判斷。
本次實驗環(huán)境為計算機學(xué)院實驗樓1樓的走廊過道,在過道的3 m*4 m的區(qū)域上布置了8張椅子作為大障礙物,2個紙箱子作為小障礙物。大障礙物的體積為64 000 cm3,小障礙物的體積為5 850 cm3。為了方便地控制機器人,需要在筆記本電腦和輪式機器人的上位機配置相同的ROS系統(tǒng),筆記本電腦通過ROS系統(tǒng)與機器人進行通信。
首先將輪式機器人放到起始點,如圖6所示。然后啟動輪式機器人初始化程序,加載改進RBPF SLAM算法導(dǎo)航程序,改進RBPF SLAM算法利用激光雷達與里程計信息實時更新導(dǎo)航地圖。通過筆記本電腦端發(fā)送目的地坐標(biāo),輪式機器人接收到坐標(biāo)信息后會進行從起始點到目的地之間的路徑規(guī)劃,當(dāng)輪式機器人靠近路障時,導(dǎo)航系統(tǒng)識別到該障礙物并繞開,如圖7所示。繞開路障后,輪式機器人會繼續(xù)沿著導(dǎo)航系統(tǒng)的規(guī)劃路徑運動,當(dāng)導(dǎo)航系統(tǒng)判斷達到目的地的位置時就會退出導(dǎo)航程序,機器人停止運動,如圖8所示。

圖6 輪式機器人初始狀態(tài)

圖7 輪式機器人運動過程

圖8 輪式機器人到達目的地
在完成了本文提出的改進RBPF SLAM算法的導(dǎo)航實驗后,在相同的實驗環(huán)境中使用同一個輪式機器人來完成基于濾波算法系統(tǒng)的導(dǎo)航實驗以及基于軟件庫系統(tǒng)的導(dǎo)航實驗。為了統(tǒng)一控制變量,不同導(dǎo)航系統(tǒng)中的算法計算的初始粒子數(shù)均設(shè)置為100,所計算出的結(jié)果將會以特有的格式儲存在系統(tǒng)文件中,保證每組計算數(shù)據(jù)的類型一致。
本文先分析不同導(dǎo)航系統(tǒng)下輪式機器人的避障效果,實驗中用A代表機器人在路徑中的初始位置,D點代表機器人的目的地,C、B兩點均代表機器人因不同導(dǎo)航引導(dǎo)而產(chǎn)生的路徑偏差,設(shè)定實驗環(huán)境中的輪式機器人運動速度保持一致,3種系統(tǒng)下的路徑引導(dǎo)結(jié)果如圖9所示。

圖9 不同導(dǎo)航系統(tǒng)下的路徑選擇情況
根據(jù)圖中的路徑結(jié)果可知,本文系統(tǒng)下輪式機器人選擇的路徑最短,能夠在躲避障礙物的前提下完成最短路徑的規(guī)劃,而其他兩種系統(tǒng)下的輪式機器人雖然也能夠躲開障礙物,但是所選擇的路徑在不同程度上長于本文系統(tǒng),因為本文系統(tǒng)所采用的改進的RBPF SLAM算法能夠?qū)αW尤哼M行最高權(quán)重的篩選和多次選擇,能夠判斷出到達目的地的最佳距離,所以本文系統(tǒng)具有更加高效的避障能力。
接著對3種系統(tǒng)下輪式機器人內(nèi)部算法數(shù)據(jù)儲存空間中的數(shù)據(jù)誤差進行對比,實驗中隨著機器人運動時間的增長,誤差也會隨之累積,對外則表現(xiàn)出導(dǎo)航界面中出現(xiàn)錯誤點的數(shù)量增長,3種導(dǎo)航系統(tǒng)算法下的誤差累積對比結(jié)果如圖10所示。

圖10 算法誤差對比結(jié)果
根據(jù)圖10中的對比結(jié)果可知,本文系統(tǒng)下的算法誤差導(dǎo)致的錯誤點數(shù)量在相同的運動時間內(nèi),出現(xiàn)次數(shù)最少,相比其他兩種系統(tǒng)平均每10分鐘少1~3個錯誤點。原因是本文所采用的算法基于控制模塊與導(dǎo)航功能模塊與算法之間建立了數(shù)據(jù)共享機制,加強了算法運算過程中的錯誤識別率,進而減少了誤差的累積。
本文提出的基于改進RBPF算法的輪式機器人SLAM導(dǎo)航系統(tǒng)較為注重粒子權(quán)重在卡爾曼濾波過程中的篩選階段,提高了導(dǎo)航系統(tǒng)的數(shù)據(jù)真實性,減少了不必要軟件程序的運行,還可以提升算法對于粒子的重復(fù)應(yīng)用。
本文設(shè)計的基于改進RBPF算法的導(dǎo)航系統(tǒng)只有在算法得到保障的前提下才可以運行,即需要測量精度高的激光雷達和比較平坦的地面。雖然具有較高的計算效率,但是實現(xiàn)過程中比較繁瑣,所以在后續(xù)的研究任務(wù)中,還可以將算法的作用作為重點研究內(nèi)容,用于提升導(dǎo)航數(shù)據(jù)的可應(yīng)用程度。