王險(xiǎn)峰,邱祖澤,丁子琳,趙 通,楊浩偉
(東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
人工智能技術(shù)與機(jī)器人技術(shù)已經(jīng)成為當(dāng)前社會(huì)中不可或缺的一部分,機(jī)器人與自主學(xué)習(xí)功能的相互融合便成為未來(lái)的主要發(fā)展方向之一。在每個(gè)行業(yè)中高度的智能化機(jī)器人設(shè)備均可以起到促進(jìn)效率、提升工作質(zhì)量的效果,例如工業(yè)領(lǐng)域的自主化流水線生產(chǎn)、監(jiān)測(cè)領(lǐng)域的智能數(shù)據(jù)監(jiān)測(cè)等。對(duì)于這些高智能化發(fā)展的機(jī)器人能夠精準(zhǔn)識(shí)別出實(shí)時(shí)所處的環(huán)境和位置是幫助人們生產(chǎn)生活的重要前提,這也是科研人員一直所追求的智能機(jī)器人成果之一。傳統(tǒng)輪式機(jī)器人主要在SLAM技術(shù)的引導(dǎo)下實(shí)現(xiàn)對(duì)真實(shí)環(huán)境相關(guān)數(shù)據(jù)的監(jiān)測(cè)和提取,然后通過(guò)機(jī)器人自身的激光雷達(dá)處理數(shù)據(jù)完成規(guī)劃目標(biāo)路徑的任務(wù),從而達(dá)到智能導(dǎo)航的目的。SLAM技術(shù)還可以為機(jī)器人搭建一套未知地形的地圖資源共享平臺(tái),幫助機(jī)器人中的各個(gè)激光雷達(dá)更好地實(shí)現(xiàn)定位功能。
輪式機(jī)器人SLAM導(dǎo)航系統(tǒng)的研究已經(jīng)有將近40年的歷史,傳統(tǒng)方法對(duì)于此類機(jī)器人自動(dòng)導(dǎo)航系統(tǒng)的研究主要基于卡爾曼濾波算法,利用這種算法對(duì)機(jī)器人周邊線性高速噪聲系統(tǒng)進(jìn)行優(yōu)質(zhì)處理,再通過(guò)其他不同種類的算法進(jìn)行非線性系統(tǒng)的設(shè)計(jì)與數(shù)據(jù)處理,可以截取算法中產(chǎn)生的誤差。例如文獻(xiàn)[1]中提出的基于濾波算法的導(dǎo)航系統(tǒng),這種系統(tǒng)下的輪式機(jī)器人SLAM技術(shù)與卡爾曼濾波直接共享位置信息,利用粒子群的分布表示導(dǎo)航系統(tǒng)中障礙的存在位置,以粒子濾波的方式表示輪式機(jī)器人可以通行的路徑,這種系統(tǒng)在較為復(fù)雜的地形中更容易應(yīng)用。文獻(xiàn)[2]中提出的是基于軟件庫(kù)cartographer的導(dǎo)航系統(tǒng),此系統(tǒng)利用激光計(jì)算機(jī)器人所在環(huán)境到目的地之間的距離,然后采用后端非線性優(yōu)化方式驗(yàn)證距離數(shù)據(jù)的真實(shí)性與準(zhǔn)確性,最后在軟件庫(kù)中搭建地形圖場(chǎng)景平臺(tái),減少輪式機(jī)器人SLAM導(dǎo)航系統(tǒng)提供的路徑誤差。文獻(xiàn)[3]提出基于多自適應(yīng)神經(jīng)模糊推理的移動(dòng)機(jī)器人導(dǎo)航系統(tǒng)。分別將3個(gè)紅外距離傳感器安裝在機(jī)器人的前、左和右側(cè),讀取環(huán)境中的前、左前和右前靜態(tài)和動(dòng)態(tài)障礙物。將該傳感器數(shù)據(jù)信息作為輸入值輸入到 MANFIS 架構(gòu)中,為機(jī)器人的左右電機(jī)生成適當(dāng)?shù)乃俣瓤刂泼睢?/p>
上述方法均具有一定的有效性,但對(duì)輪式機(jī)器人S導(dǎo)航過(guò)程中的路障采集精度仍有待提升。本文將主要研究基于改進(jìn)RBPF算法的輪式機(jī)器人SLAM導(dǎo)航系統(tǒng),利用改進(jìn)RBPF算法的數(shù)據(jù)特征優(yōu)化傳統(tǒng)導(dǎo)航系統(tǒng)中存在的缺陷。
本文研究的基于改進(jìn)RBPF算法的輪式機(jī)器人SLAM導(dǎo)航系統(tǒng)硬件主要由導(dǎo)航功能模塊、底盤驅(qū)動(dòng)模塊、控制模塊組成,系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
圖1 基于改進(jìn)RBPF算法的輪式機(jī)器人SLAM導(dǎo)航系統(tǒng)硬件
導(dǎo)航功能模塊是由多方面的硬件結(jié)構(gòu)共同組成的,主要包括負(fù)責(zé)功能數(shù)據(jù)采集的傳感器結(jié)構(gòu)和負(fù)責(zé)數(shù)據(jù)處理的處理器結(jié)構(gòu),兩者相互配合從而形成了較為完整的導(dǎo)航功能模塊。本文首先介紹傳感器硬件結(jié)構(gòu),傳感器在輪式機(jī)器人中是極其重要的數(shù)據(jù)感知和采集手段,可以為導(dǎo)航功能模塊提供穩(wěn)定且精準(zhǔn)的環(huán)境數(shù)據(jù),傳感器中一般會(huì)存在一定的算法來(lái)保障導(dǎo)航功能模塊的精準(zhǔn)性。
傳感器采用RPLIDAR A1型激光雷達(dá),傳統(tǒng)的超聲波激光雷達(dá)大多方向性差、監(jiān)測(cè)范圍有限,甚至還存在數(shù)據(jù)錯(cuò)漏現(xiàn)象,而本文選用的RPLIDAR A1型激光雷達(dá)按順時(shí)針旋轉(zhuǎn),可實(shí)現(xiàn)360度全方位掃描,感知環(huán)境信息不受光線影響,在光線不足的地方同樣也能完成導(dǎo)航任務(wù)[4-5]。其能夠?yàn)閷?dǎo)航功能模塊中的數(shù)據(jù)處理單元提供優(yōu)質(zhì)的可感知單元。這種傳感器還可以在SLAM算法基礎(chǔ)上引用改進(jìn)RBPF算法,具有更廣泛的算法空間,這也是本文選用此款傳感器的主要原因。其基本參數(shù)如表1所示。
表1 RPLIDAR A1型激光雷達(dá)參數(shù)
處理器是導(dǎo)航功能模塊的核心結(jié)構(gòu),負(fù)責(zé)處理激光雷達(dá)上傳的全部?jī)?nèi)容。本文采用的處理器為嵌入式處理單元,配置了i7 6700芯片,可以在芯片中安裝多種類算法,芯片在進(jìn)行算法計(jì)算過(guò)程中還可以處于低功耗處理狀態(tài),并對(duì)外提供豐富的數(shù)據(jù)接口,保障數(shù)據(jù)量計(jì)算與交互的同時(shí)運(yùn)行。
輪式機(jī)器人的底盤可以實(shí)時(shí)控制機(jī)器人的運(yùn)動(dòng)速度,一個(gè)良好的底盤驅(qū)動(dòng)可以精準(zhǔn)進(jìn)行差速控制,大多數(shù)底盤驅(qū)動(dòng)由兩個(gè)主動(dòng)輪子和多個(gè)從動(dòng)輪子組成,每個(gè)主動(dòng)輪具有獨(dú)立的驅(qū)動(dòng)模塊,能夠?yàn)橹鲃?dòng)輪提供穩(wěn)定可靠的動(dòng)力,而從動(dòng)輪主要是起到改變方向、輔助支撐的作用,跟隨主動(dòng)輪的驅(qū)動(dòng)方向來(lái)改變整個(gè)機(jī)器人的運(yùn)動(dòng)方向。
帶齒輪的底盤驅(qū)動(dòng)是以齒輪作為動(dòng)力的傳輸結(jié)構(gòu),可以將主動(dòng)輪軸與從動(dòng)輪軸相互拉開(kāi)距離,保證輪式機(jī)器人的多個(gè)輪子在運(yùn)動(dòng)過(guò)程中不相互影響且可以起到相互輔助的作用,這樣的設(shè)計(jì)結(jié)構(gòu)極大減少了底盤總占用面積,從而為輪式機(jī)器人提供了更廣泛的運(yùn)動(dòng)空間。本文還在底盤中增加了懸掛系統(tǒng),懸掛系統(tǒng)具有增強(qiáng)動(dòng)力的作用,再在懸掛系統(tǒng)中添加改進(jìn)RBPF算法,使懸掛系統(tǒng)也具備數(shù)據(jù)識(shí)別功能,針對(duì)不同的路況提供相應(yīng)的動(dòng)力供給量[6-7]。
底盤驅(qū)動(dòng)結(jié)構(gòu)電路如圖2所示。
圖2 底盤驅(qū)動(dòng)結(jié)構(gòu)電路圖
本文在控制模塊中安裝了擴(kuò)展卡爾曼濾波器,將此裝置中擴(kuò)展卡爾曼濾波算法和改進(jìn)RBPF算法相配合,擴(kuò)展卡爾曼濾波算法用來(lái)估計(jì)導(dǎo)航地圖環(huán)境特征位置,改進(jìn)RBPF算法用來(lái)估計(jì)機(jī)器人所處的位置,通過(guò)兩者相互配合,形成了能夠處理不確定性高斯噪聲的新算法。
傳統(tǒng)機(jī)器人的SLAM算法中含有大量的噪音,從而影響了控制模塊的數(shù)據(jù)判斷,為此本文設(shè)計(jì)的新算法可以較大程度地減少控制模塊的數(shù)據(jù)判斷誤差,機(jī)器人會(huì)根據(jù)控制模塊對(duì)外輸出數(shù)據(jù)來(lái)決定實(shí)時(shí)運(yùn)動(dòng)狀態(tài),控制模塊再通過(guò)擴(kuò)展卡爾曼濾波裝置對(duì)激光雷達(dá)采集數(shù)據(jù)進(jìn)行信息融合,制定機(jī)器人下一階段的運(yùn)動(dòng)目標(biāo)??刂颇K電路如圖3所示。
圖3 控制模塊電路圖
傳統(tǒng)的RBPF算法中只將里程計(jì)信息作為提議分布,機(jī)器人在運(yùn)動(dòng)的過(guò)程中偶爾會(huì)發(fā)生輪子打滑或漂移的情況,在該情況下里程計(jì)所記錄的信息會(huì)發(fā)生較大誤差,從而得到的提議分布與現(xiàn)實(shí)后驗(yàn)概率分布差距較大。本文中改進(jìn)的RBPF算法將高測(cè)量精度的激光雷達(dá)信息與里程計(jì)信息進(jìn)行整合優(yōu)化,得到更能靠近現(xiàn)實(shí)后驗(yàn)概率分布的提議分布。改進(jìn)后的提議分布為:
(1)
然而提議分布中的似然函數(shù)無(wú)法直接獲得,因此不能對(duì)其進(jìn)行采樣。解決方法是把提議分布近似看作為高斯分布:
(2)
(3)
(4)
改進(jìn)后的RBPF SLAM算法能夠自主適應(yīng)不同運(yùn)動(dòng)模式下的提議分布,且能夠在普通的粒子運(yùn)動(dòng)模型中提取較高權(quán)重的粒子,使機(jī)器人時(shí)刻處于平穩(wěn)狀態(tài),如下所示為較高權(quán)重粒子的計(jì)算方式[8-10]:
(5)
利用算法公式進(jìn)行權(quán)重計(jì)算時(shí),加入激光雷達(dá)信息會(huì)減小權(quán)重方差,此時(shí)的粒子分布群出現(xiàn)頂峰值,再使用濾波器對(duì)粒子群進(jìn)行發(fā)散,便可以調(diào)控運(yùn)動(dòng)模型與周圍環(huán)境之間的1∶1比例關(guān)系[11-13]。檢測(cè)實(shí)際機(jī)器人運(yùn)動(dòng)場(chǎng)景和預(yù)測(cè)場(chǎng)景之間的差異,然后持續(xù)進(jìn)行重采樣,評(píng)估粒子數(shù)是否達(dá)到表示路徑的標(biāo)準(zhǔn)[14-16]。
改進(jìn)后的RBPF SLAM算法具體實(shí)現(xiàn)步驟如圖4所示。
圖4 改進(jìn)后的RBPF SLAM算法實(shí)現(xiàn)步驟
改進(jìn)的RBPF SLAM算法在輪式機(jī)器人導(dǎo)航中運(yùn)行首先需要對(duì)每個(gè)粒子進(jìn)行卡爾曼過(guò)濾,將過(guò)濾后的粒子傳送到計(jì)算矩陣中,等待后期的算法計(jì)算;其次是要選擇權(quán)重值較高的粒子初步判斷機(jī)器人現(xiàn)階段所在的位置,根據(jù)外部地形環(huán)境等因素聚集粒子到特殊位置,并防止這些粒子出現(xiàn)大量的離散狀態(tài),盡量控制粒子在有限的空間內(nèi)分布[17];然后對(duì)有限空間中的粒子進(jìn)行統(tǒng)計(jì),為卡爾曼的深度過(guò)濾提供數(shù)據(jù)保障,所統(tǒng)計(jì)的粒子數(shù)必須是在一個(gè)獨(dú)立的粒子群中,當(dāng)粒子群中統(tǒng)計(jì)的數(shù)據(jù)量在正常范圍區(qū)間,則證明改進(jìn)的RBPF SLAM算法適用于該輪式機(jī)器人導(dǎo)航系統(tǒng),若粒子群數(shù)據(jù)量較少或過(guò)多,則證明改進(jìn)的RBPF SLAM算法不適應(yīng)該輪式機(jī)器人導(dǎo)航系統(tǒng)[18-20]。改進(jìn)的RBPF SLAM算法在輪式機(jī)器人導(dǎo)航中運(yùn)行過(guò)程如圖5所示。
圖5 改進(jìn)RBPF SLAM算法在導(dǎo)航中運(yùn)行過(guò)程
根據(jù)圖5可知,本文設(shè)計(jì)的算法實(shí)現(xiàn)程序是在普通的粒子權(quán)重中提取高質(zhì)量的粒子,以便組成更高質(zhì)量的粒子群,這樣的卡爾曼濾波才會(huì)實(shí)現(xiàn)路徑的距離篩選和障礙物的識(shí)別,保障算法結(jié)果的精準(zhǔn)性。
本文設(shè)計(jì)的實(shí)驗(yàn)主要針對(duì)本文所設(shè)計(jì)導(dǎo)航系統(tǒng)下的輪式機(jī)器人能否在復(fù)雜的路徑環(huán)境中實(shí)現(xiàn)精準(zhǔn)避障以及減少運(yùn)動(dòng)誤差等項(xiàng)目,從這些項(xiàng)目中還對(duì)系統(tǒng)設(shè)計(jì)的完整性和功能性進(jìn)行判斷。
本次實(shí)驗(yàn)環(huán)境為計(jì)算機(jī)學(xué)院實(shí)驗(yàn)樓1樓的走廊過(guò)道,在過(guò)道的3 m*4 m的區(qū)域上布置了8張椅子作為大障礙物,2個(gè)紙箱子作為小障礙物。大障礙物的體積為64 000 cm3,小障礙物的體積為5 850 cm3。為了方便地控制機(jī)器人,需要在筆記本電腦和輪式機(jī)器人的上位機(jī)配置相同的ROS系統(tǒng),筆記本電腦通過(guò)ROS系統(tǒng)與機(jī)器人進(jìn)行通信。
首先將輪式機(jī)器人放到起始點(diǎn),如圖6所示。然后啟動(dòng)輪式機(jī)器人初始化程序,加載改進(jìn)RBPF SLAM算法導(dǎo)航程序,改進(jìn)RBPF SLAM算法利用激光雷達(dá)與里程計(jì)信息實(shí)時(shí)更新導(dǎo)航地圖。通過(guò)筆記本電腦端發(fā)送目的地坐標(biāo),輪式機(jī)器人接收到坐標(biāo)信息后會(huì)進(jìn)行從起始點(diǎn)到目的地之間的路徑規(guī)劃,當(dāng)輪式機(jī)器人靠近路障時(shí),導(dǎo)航系統(tǒng)識(shí)別到該障礙物并繞開(kāi),如圖7所示。繞開(kāi)路障后,輪式機(jī)器人會(huì)繼續(xù)沿著導(dǎo)航系統(tǒng)的規(guī)劃路徑運(yùn)動(dòng),當(dāng)導(dǎo)航系統(tǒng)判斷達(dá)到目的地的位置時(shí)就會(huì)退出導(dǎo)航程序,機(jī)器人停止運(yùn)動(dòng),如圖8所示。
圖6 輪式機(jī)器人初始狀態(tài)
圖7 輪式機(jī)器人運(yùn)動(dòng)過(guò)程
圖8 輪式機(jī)器人到達(dá)目的地
在完成了本文提出的改進(jìn)RBPF SLAM算法的導(dǎo)航實(shí)驗(yàn)后,在相同的實(shí)驗(yàn)環(huán)境中使用同一個(gè)輪式機(jī)器人來(lái)完成基于濾波算法系統(tǒng)的導(dǎo)航實(shí)驗(yàn)以及基于軟件庫(kù)系統(tǒng)的導(dǎo)航實(shí)驗(yàn)。為了統(tǒng)一控制變量,不同導(dǎo)航系統(tǒng)中的算法計(jì)算的初始粒子數(shù)均設(shè)置為100,所計(jì)算出的結(jié)果將會(huì)以特有的格式儲(chǔ)存在系統(tǒng)文件中,保證每組計(jì)算數(shù)據(jù)的類型一致。
本文先分析不同導(dǎo)航系統(tǒng)下輪式機(jī)器人的避障效果,實(shí)驗(yàn)中用A代表機(jī)器人在路徑中的初始位置,D點(diǎn)代表機(jī)器人的目的地,C、B兩點(diǎn)均代表機(jī)器人因不同導(dǎo)航引導(dǎo)而產(chǎn)生的路徑偏差,設(shè)定實(shí)驗(yàn)環(huán)境中的輪式機(jī)器人運(yùn)動(dòng)速度保持一致,3種系統(tǒng)下的路徑引導(dǎo)結(jié)果如圖9所示。
圖9 不同導(dǎo)航系統(tǒng)下的路徑選擇情況
根據(jù)圖中的路徑結(jié)果可知,本文系統(tǒng)下輪式機(jī)器人選擇的路徑最短,能夠在躲避障礙物的前提下完成最短路徑的規(guī)劃,而其他兩種系統(tǒng)下的輪式機(jī)器人雖然也能夠躲開(kāi)障礙物,但是所選擇的路徑在不同程度上長(zhǎng)于本文系統(tǒng),因?yàn)楸疚南到y(tǒng)所采用的改進(jìn)的RBPF SLAM算法能夠?qū)αW尤哼M(jìn)行最高權(quán)重的篩選和多次選擇,能夠判斷出到達(dá)目的地的最佳距離,所以本文系統(tǒng)具有更加高效的避障能力。
接著對(duì)3種系統(tǒng)下輪式機(jī)器人內(nèi)部算法數(shù)據(jù)儲(chǔ)存空間中的數(shù)據(jù)誤差進(jìn)行對(duì)比,實(shí)驗(yàn)中隨著機(jī)器人運(yùn)動(dòng)時(shí)間的增長(zhǎng),誤差也會(huì)隨之累積,對(duì)外則表現(xiàn)出導(dǎo)航界面中出現(xiàn)錯(cuò)誤點(diǎn)的數(shù)量增長(zhǎng),3種導(dǎo)航系統(tǒng)算法下的誤差累積對(duì)比結(jié)果如圖10所示。
圖10 算法誤差對(duì)比結(jié)果
根據(jù)圖10中的對(duì)比結(jié)果可知,本文系統(tǒng)下的算法誤差導(dǎo)致的錯(cuò)誤點(diǎn)數(shù)量在相同的運(yùn)動(dòng)時(shí)間內(nèi),出現(xiàn)次數(shù)最少,相比其他兩種系統(tǒng)平均每10分鐘少1~3個(gè)錯(cuò)誤點(diǎn)。原因是本文所采用的算法基于控制模塊與導(dǎo)航功能模塊與算法之間建立了數(shù)據(jù)共享機(jī)制,加強(qiáng)了算法運(yùn)算過(guò)程中的錯(cuò)誤識(shí)別率,進(jìn)而減少了誤差的累積。
本文提出的基于改進(jìn)RBPF算法的輪式機(jī)器人SLAM導(dǎo)航系統(tǒng)較為注重粒子權(quán)重在卡爾曼濾波過(guò)程中的篩選階段,提高了導(dǎo)航系統(tǒng)的數(shù)據(jù)真實(shí)性,減少了不必要軟件程序的運(yùn)行,還可以提升算法對(duì)于粒子的重復(fù)應(yīng)用。
本文設(shè)計(jì)的基于改進(jìn)RBPF算法的導(dǎo)航系統(tǒng)只有在算法得到保障的前提下才可以運(yùn)行,即需要測(cè)量精度高的激光雷達(dá)和比較平坦的地面。雖然具有較高的計(jì)算效率,但是實(shí)現(xiàn)過(guò)程中比較繁瑣,所以在后續(xù)的研究任務(wù)中,還可以將算法的作用作為重點(diǎn)研究?jī)?nèi)容,用于提升導(dǎo)航數(shù)據(jù)的可應(yīng)用程度。