郭文強, 張 筱, 師 帥, 韓 陽
(陜西科技大學(xué) 電氣與信息工程學(xué)院, 陜西 西安 710021)
隨著機器人實際部署數(shù)量的增加,尤其是商業(yè)和消費類移動機器人的應(yīng)用前景顯現(xiàn),整個工程技術(shù)領(lǐng)域?qū)C器人行業(yè)的技術(shù)發(fā)展投入了巨大的熱情和資源.針對復(fù)雜的環(huán)境,讓機器人進行行走,導(dǎo)航系統(tǒng)發(fā)揮著極其重要的作用.目前,導(dǎo)航技術(shù)已經(jīng)廣泛應(yīng)用于自然災(zāi)害、資源探索、交通運輸?shù)戎T多方面[1].
導(dǎo)航系統(tǒng)需要通過各種傳感器輸出的位置信息來判斷機器人目前所在位置以及下一步執(zhí)行動作[2].目前,多數(shù)導(dǎo)航設(shè)備,如我國的北斗、美國的GPS、歐盟的伽利略、俄羅斯的格羅納斯,由于定位系統(tǒng)星座發(fā)射的微波信號過于微弱等原因,無法應(yīng)用于室內(nèi)導(dǎo)航.
室內(nèi)定位導(dǎo)航技術(shù)目前還處在探索與發(fā)展階段.常見的慣性導(dǎo)航測量,通過積分計算獲取載體的導(dǎo)航信息,慣性精度會累積,從而影響導(dǎo)航效果[3].Xtion深度攝像頭是華碩公司繼微軟公司生產(chǎn)的Kinect深度攝像頭之后的新一代視覺傳感器設(shè)備.Xtion相對于Kinect擁有更小的體積,并使用光編碼技術(shù)加上價格低廉的CMOS感光芯片,大大降低產(chǎn)品的成本.另外,Xtion數(shù)據(jù)不會因為時間的累積產(chǎn)生誤差,可以補償慣性導(dǎo)航測量等帶來的誤差,為機器人導(dǎo)航提供更準(zhǔn)確的位置信息.
慣性測量單元(Inertial Measurement Unit,簡稱IMU)是測量物體三軸姿態(tài)角(或角速率)以及加速度的裝置[4].其中的加速度計可以測量移動機器人運動的線加速度,進行積分及二次積分計算出速度和位置信息;角速率儀可以測出角速度,進行積分計算出姿態(tài)信息.從已知初始位置開始,根據(jù)連續(xù)測得的機器人加速度和角速度推算出下一時刻機器人的位置和姿態(tài),從而實時地確定機器人當(dāng)前位置和姿態(tài).
外力加速度對慣性測量單元IMU精度影響很大,常導(dǎo)致位置誤差隨時間變大.
增量式光電編碼器可作為里程計搭載在移動機器人的輪子上.當(dāng)移動機器人向前移動一段時間后,借助增量式光電編碼器可以測量出輪子旋轉(zhuǎn)的圈數(shù),再根據(jù)已知輪子周長,便可計算出移動機器人的移動距離.
光電編碼器由于碼盤刻劃精度、軸系跳(晃)動、安裝工藝、環(huán)境干擾等原因必然存在誤差[5].
Xtion深度攝像頭通過投射一些“隨機”點陣,然后用一個普通的CMOS傳感器來捕捉這個點陣.當(dāng)場景的深度信息發(fā)生變化時,攝像頭捕獲到的點陣信息也會發(fā)生變化,通過這個變化就能推算出深度信息.它能夠提供三大類的原始數(shù)據(jù)信息,包括深度數(shù)據(jù)流、彩色視頻流、原始音頻流等.因此,Xtion深度攝像頭適用于骨骼跟蹤、身份識別、語音識別等應(yīng)用場景.而在本文中,除了用于導(dǎo)航過程中的障礙物感知功能,主要應(yīng)用Xtion采集的深度數(shù)據(jù)流和彩色視頻流的數(shù)據(jù),實現(xiàn)機器人位移和偏移度感知.
考慮到Xtion深度攝像頭感應(yīng)范圍有限,范圍在0.8~3.5 m[6],當(dāng)障礙物距離攝像頭小于0.8 m時,位置精度會下降,故本實驗采用IMU和增量式光電編碼器作為Xtion攝像頭盲區(qū)部分?jǐn)?shù)據(jù)采集的補償設(shè)備,以提升移動機器人在導(dǎo)航過程中的感知能力.
移動機器人導(dǎo)航系統(tǒng)常采用多種傳感器獲取感知和路徑規(guī)劃所需的大量環(huán)境信息以及移動機器人位置與姿態(tài)信息.考慮到移動機器人導(dǎo)航系統(tǒng)工作環(huán)境的復(fù)雜性和任務(wù)的特殊性,本導(dǎo)航系統(tǒng)的控制單元由路徑規(guī)劃單元、運動控制單元和數(shù)據(jù)融合單元組成.
圖1是本文采用的基于Xtion的移動機器人導(dǎo)航系統(tǒng)組成示意圖.機器人本體采用輪式移動機構(gòu)實現(xiàn)移動.整個系統(tǒng)應(yīng)用Xtion深度攝像頭、MPU6500 IMU傳感器、E6B2-CWZ6C光電編碼器采集機器人位移、偏移度數(shù)據(jù),并傳送到PC(也可采用樹莓派等微型計算機)為核心的數(shù)據(jù)融合單元進行數(shù)據(jù)融合.
圖1 移動機器人導(dǎo)航系統(tǒng)示意圖
路徑規(guī)劃單元利用融合后的傳感數(shù)據(jù),再根據(jù)經(jīng)典的A*算法規(guī)劃出一條相對最優(yōu)路徑;運動控制單元采用Arduino控制板,按照路徑規(guī)劃單元提供的一系列航路點,控制輪式移動機構(gòu)動作實現(xiàn)機器人從起始位置到設(shè)定的目標(biāo)位置的無碰撞運動完成導(dǎo)航任務(wù)[7].
步驟2:估計k時刻的值,因在實際運動過程中,移動機器人在相鄰時刻的相對運動量信息的變化很小,故設(shè)定k-1時刻與k時刻位姿信息量如下(1)式:
(1)
(2)
(3)
步驟4:測量值為如下(4)式:
(4)
(5)
(6)
步驟6:計算k時刻的X軸、Y軸和θ的相對運動量:
(7)
(8)
(9)
步驟7:計算移動機器人相對運動量融合結(jié)果:
(10)
(11)
(12)
其中:W1、W2、W3是三種傳感器的權(quán)值.
步驟8:根據(jù)移動機器人上一時刻位姿(Xk-1,Yk-1,θk-1)和相對運動信息(ΔXk,ΔYk,Δθk),估算機器人當(dāng)前的位姿(Xk,Yk,θk):
(13)
通過以上算法計算過程,得到應(yīng)用Xtion傳感器后,每一時刻移動機器人的位移(Xk,Yk)、偏移度θk數(shù)據(jù).
(14)
(15)
步驟10:終止條件判斷:當(dāng)機器人移動至目標(biāo)位置允許誤差范圍內(nèi),算法終止;否則,返回步驟2進行迭代運算.
設(shè)定機器人的起始點和目標(biāo)終點坐標(biāo),導(dǎo)航系統(tǒng)在已知地圖的情況下根據(jù)A*算法規(guī)劃出的相對最優(yōu)路徑[9].機器人在向目標(biāo)點移動過程中,不斷更新環(huán)境信息、感知環(huán)境和自身位姿的變化,并將傳感器不斷采集的位置數(shù)據(jù),用卡爾曼濾波進行數(shù)據(jù)融合,經(jīng)路徑規(guī)劃單元、運動控制單元,自主的做出相應(yīng)的調(diào)整,實現(xiàn)避障.
上述過程周而復(fù)始,即不斷進行定位感知與路徑更新、執(zhí)行的過程,直到移動機器人到達設(shè)定的目標(biāo)終點,從而完成導(dǎo)航任務(wù).
為了驗證本文所提方法在移動機器人室內(nèi)導(dǎo)航系統(tǒng)中的有效性,進行了如下兩組導(dǎo)航對比實驗.一組是傳統(tǒng)的采用IMU慣性測量單元和增量式光電編碼器作為主要傳感器(下簡稱“無Xtion”法);另一組是采用Xtion深度攝像頭作為主要傳感器結(jié)合IMU慣性測量單元、增量式光電編碼器(下簡稱“本文方法”).移動機器人導(dǎo)航系統(tǒng)實驗平臺實物如圖2所示.
圖2 移動機器人導(dǎo)航系統(tǒng)平臺實物圖
實驗中所有Xtion、IMU、光電編碼器數(shù)據(jù)需傳送至PC中按照本文算法進行機器人位移、偏移度數(shù)據(jù)融合,根據(jù)A*算法更新路徑規(guī)劃,最后控制機器人從起始點向目標(biāo)點移動.系統(tǒng)的軟件平臺采用機器人操作系統(tǒng)(Robot Operating System),程序設(shè)計采用Python和C++語言完成.
實驗環(huán)境為室內(nèi),整個地圖區(qū)域為500 cm×500 cm,機器人起始點坐標(biāo)(30,30)和終點坐標(biāo)為(300,450),單位為cm.設(shè)終點坐標(biāo)允許誤差范圍為5%,測量噪聲是方差為1的高斯白噪聲.根據(jù)實驗經(jīng)驗,增量式光電編碼器信息、視覺信息和IMU的權(quán)值分別為:W1=0.85,W2=0.95,W3=0.7.
移動機器人導(dǎo)航過程中傳感器每間隔1 s采集一次數(shù)據(jù).圖3為移動機器人分別進行10次導(dǎo)航實驗取平均結(jié)果的航跡,其中黑色的矩形塊代表障礙物.圖3中實線是通過A*算法規(guī)劃的理想路徑;虛線是基于無Xtion方法獲取的移動機器人導(dǎo)航航跡(“無Xtion”法);點劃線是本文基于Xtion深度攝像頭應(yīng)用于移動機器人行程的導(dǎo)航航跡(“本文方法”).
按照本文提出的融合算法,以k=10 s為例,給出主要實驗結(jié)果.三種傳感器在三種傳感器的位移、偏移度變化量數(shù)據(jù)為:
求取第10 s時機器人移動加權(quán)平均變化量結(jié)果為:
ΔXk= 12.72 cm/s
ΔYk=12.72 cm/s
Δθk=1.98 °/s
再根據(jù)第9 s時X、Y、θ的取值:
Xk-1=85.25 cm
Yk-1=90.16 cm
θk=30.50 °
通過公式(13)計算得機器人第10 s的位姿信息:
Xk= 89.75 cm
Yk=94.66 cm
θk=32.48 °
對應(yīng)位置如圖3所示點(89.75,94.66).
圖3 移動機器人導(dǎo)航航跡對比
通過以上算法計算出本實驗結(jié)果,給出圖3的實驗對應(yīng)的數(shù)據(jù),如表1所示.同時,在不改變500 cm×500 cm地圖、起始點坐標(biāo)(30,30)、終點坐標(biāo)(300,450)的前提下,改變地圖中的障礙物大小及位置,利用本文提出的算法進行10次導(dǎo)航實驗取平均,三種方式的表示形式同圖3,結(jié)果如圖4所示.
圖4 不同障礙物實驗的仿真結(jié)果
從表1、圖3、圖4可以看出,根據(jù)算法計算過程得,本文方法與A*算法得出的機器人理想航跡更為接近.
在航跡誤差方面,本實驗位置誤差水平基本維持在1~2 cm內(nèi);而僅使用IMU和光電編碼器的方法誤差可接近10 cm.
實驗結(jié)果表明:應(yīng)用Xtion深度攝像頭能夠補償IMU慣性測量單元、增量式光電編碼器在移動機器人導(dǎo)航中測量的不足,可以有效地提升導(dǎo)航系統(tǒng)的準(zhǔn)確性.
表1 三種方法的實驗數(shù)據(jù)對比(單位:cm,cm,°)
本文應(yīng)用新型、成本較低視覺傳感器Xtion深度攝像頭作為移動機器人導(dǎo)航過程中的主要傳感器,提出一種機器人位移、偏移度數(shù)據(jù)融合算法.實驗結(jié)果表明,在整個導(dǎo)航系統(tǒng)中應(yīng)用Xtion深度攝像頭,可以有效地補償IMU、光電編碼器等傳感器在移動機器人導(dǎo)航系統(tǒng)產(chǎn)生的誤差,從而提升移動機器人導(dǎo)航系統(tǒng)的導(dǎo)航精度,為自主機器人實現(xiàn)高性能導(dǎo)航提供了一種新途徑.
[1] Jose Rivera Rubio,Kai Arulkumaran,Hemang Rishi,et al.An assistive haptic interface for appearance-based indoor navigation[J].Computer Vision and Image Understanding,2016,149(8):126-145.
[2] Peter Henry,Michae Krainin,Evan Herbst,et al.RGB-Dmapping:Using kinect style depth cameras for dense 3D modeling of indoor environments[J].International Journal of Robotics Research,2012,31(5):647-663.
[3] 王可,戈振揚,郭浩,等.基于Xtion傳感器的玉米果穗三維形態(tài)指標(biāo)測量系統(tǒng)[J].傳感器與微系統(tǒng),2015,34(4):62-65.
[4] 曹宇,宋愛國,紀(jì)鵬,等.基于IMU模塊的救援機器人姿態(tài)顯示系統(tǒng)設(shè)計[J].電子測量技術(shù),2015,38(11):92-95.
[5] 董靜,萬秋華,趙長海,等.光電編碼器故障診斷技術(shù)研究現(xiàn)狀與展望[J].中國光學(xué),2015,8(5):755-767.
[6] 楊興臻.基于Xtion傳感器的空調(diào)跟蹤送風(fēng)設(shè)計[D].哈爾濱:哈爾濱工業(yè)大學(xué),2016.
[7] 孫雷,王孫安,張進華,等.移動服務(wù)機器人共享控制研究[J].陜西科技大學(xué)學(xué)報(自然科學(xué)版),2015,33(1):169-174.
[8] Marco Berardi,Andrea Andrisani,Luciano Lopez,et al.A new data assimilation technique based on ensemble Kalman filter and Brownian bridges:An application to Richards'equation[J].Computer Physics Communications,2016,208(11):43-53.
[9] 關(guān)泉珍,鮑泓,史志堅.基于A*算法的駕駛地圖路徑規(guī)劃實現(xiàn)[J].北京聯(lián)合大學(xué)學(xué)報(自然科學(xué)版),2016,30(2):31-39.