葉強(qiáng)強(qiáng), 鄭明魁, 邱 鑫
(福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350117)
國(guó)外對(duì)于移動(dòng)機(jī)器人相關(guān)技術(shù)的研究起步較早。如20世紀(jì)70年代斯坦福研究院(SRI)研究出Shakey的移動(dòng)機(jī)器人,它使用三角測(cè)距儀、碰撞傳感器等來(lái)實(shí)現(xiàn)自主定位與感知。受限于當(dāng)時(shí)的計(jì)算機(jī)水平及相應(yīng)的技術(shù),Shakey往往需要數(shù)個(gè)小時(shí)才能完成相應(yīng)的路徑規(guī)劃。隨著同時(shí)定位與建圖(simultaneous localization and mapping,SLAM)技術(shù)的發(fā)展,其技術(shù)迅速被運(yùn)用到機(jī)器人身上。2019年,在美國(guó)的TechCrunch AI+機(jī)器人大會(huì)上波士頓創(chuàng)始人暨CEO Marc Raibert展示了即將量產(chǎn)化的機(jī)器人SpotMini[1],展示其靈活性及其適用場(chǎng)景。SpotMini使用雙目攝像頭配合IMU通過(guò)3D SLAM技術(shù)實(shí)現(xiàn)定位。
國(guó)內(nèi)的移動(dòng)機(jī)器人產(chǎn)業(yè)起步時(shí)間雖然較短,但是在這一方面也取得相當(dāng)大的進(jìn)步。特別是在室內(nèi)移動(dòng)機(jī)器人這一方面,商業(yè)化的步伐正在加快。然而室內(nèi)移動(dòng)機(jī)器人要想真正得走進(jìn)人們的生活中,還有一些亟待解決的問(wèn)題,如移動(dòng)機(jī)器人準(zhǔn)確的定位是其自主導(dǎo)航的基礎(chǔ)。此外,一套成熟、可移植性強(qiáng)的移動(dòng)機(jī)器人方案也是實(shí)現(xiàn)商業(yè)化最重要的前提。
本文基于上述內(nèi)容提出一種移植性強(qiáng)、定位性能優(yōu)秀的室內(nèi)移動(dòng)機(jī)器人方案,在Ubuntu16.04環(huán)境搭載ROS系統(tǒng)上來(lái)實(shí)現(xiàn)室內(nèi)移動(dòng)機(jī)器人的建圖、循跡及自主導(dǎo)航系統(tǒng),為室內(nèi)移動(dòng)機(jī)器人商業(yè)化提供一種可行性方案。
本文移動(dòng)機(jī)器人硬件方面采用清華大學(xué)團(tuán)隊(duì)研發(fā)的Autolabor Pro1[2]差速底盤機(jī)器人、瑞芬的Ah100b型號(hào)九軸慣性測(cè)量單元(inertial measurement unit,IMU),北科天繪Rfans—16的激光雷達(dá)。移動(dòng)機(jī)器人系統(tǒng)的硬件框架如圖1所示,Autolabor Pro1是雙電機(jī)四輪驅(qū)動(dòng)的模式。因此,同側(cè)車輪的速度是相同的,在發(fā)送右輪或者左輪的速度時(shí),只需要發(fā)送同側(cè)一個(gè)車輪速度即可。激光雷達(dá)與IMU的數(shù)據(jù)放在PC端進(jìn)行處理,對(duì)移動(dòng)機(jī)器人的控制命令通過(guò)RS—232串口發(fā)給機(jī)器人底盤。
圖1 移動(dòng)機(jī)器人的硬件框架
移動(dòng)機(jī)器人的軟件框架如圖2所示,由于GMapping[3]與AMCL只適用2D雷達(dá)數(shù)據(jù)。因此,使用ROS[4]的開源包Pointcloud_to_laserscan把3D PointCloud2轉(zhuǎn)為2D高質(zhì)量的 LaserScan。為了讓GMapping建圖與AMCL重定位過(guò)程更加的精確。這里對(duì)2D的LaserScan數(shù)據(jù)進(jìn)行運(yùn)動(dòng)畸變的矯正。另外,由于GMapping與AMCL嚴(yán)重依賴于里程計(jì)數(shù)據(jù),若機(jī)器人處于打滑的情況,或者是地面不平坦環(huán)境下,會(huì)導(dǎo)致建圖與重定位的效果非常不理想。為改善這種情況,使用擴(kuò)展卡爾曼濾波(extended Kalman filtering,EKF)[5]對(duì)輪式里程計(jì)與IMU數(shù)據(jù)進(jìn)行融合,提升里程計(jì)數(shù)據(jù)的準(zhǔn)確度。
圖2 GMapping建圖與AMCL定位框架
圖3 移動(dòng)機(jī)器人運(yùn)動(dòng)Δt后各個(gè)坐標(biāo)系之間的關(guān)系
(1)
如果移動(dòng)機(jī)器人是在靜止的情況下,運(yùn)動(dòng)畸變自然也不存在。但是,若移動(dòng)機(jī)器人移動(dòng)速度較快時(shí),特別是在旋轉(zhuǎn)的情況下,這種雷達(dá)數(shù)據(jù)的運(yùn)動(dòng)畸變將嚴(yán)重影響到移動(dòng)機(jī)器人的建圖、定位效果。
激光雷達(dá)數(shù)據(jù)的畸變矯正主要思想是估計(jì)出激光雷達(dá)在一幀數(shù)據(jù)時(shí)間內(nèi)的運(yùn)動(dòng)情況,從而根據(jù)雷達(dá)數(shù)據(jù)一幀內(nèi)運(yùn)動(dòng)情況對(duì)這一幀數(shù)據(jù)進(jìn)行相應(yīng)的矯正。估計(jì)幀內(nèi)運(yùn)動(dòng)方法可以借助IMU[7]輔助測(cè)量得出,本文直接采用底盤里程計(jì)信息輔助方式來(lái)對(duì)激光數(shù)據(jù)進(jìn)行運(yùn)動(dòng)畸變矯正。里程計(jì)信息更新頻率遠(yuǎn)遠(yuǎn)高于激光雷達(dá)的更新頻率,基本都能達(dá)到50 Hz左右。ROS環(huán)境下里程計(jì)發(fā)布的信息為機(jī)器人坐標(biāo)系base_link在里程計(jì)坐標(biāo)系odom下的位姿O=(xR,yR,θR)T,移動(dòng)的速度v與角速度ω,在較短的時(shí)間內(nèi)能正確反映機(jī)器人的運(yùn)動(dòng)情況。
假設(shè)一幀的激光雷達(dá)n個(gè)數(shù)據(jù)對(duì)應(yīng)的時(shí)間點(diǎn)為{ts,ts+1,…,ts+n-2,te},由于里程計(jì)的更新頻率遠(yuǎn)遠(yuǎn)高于激光雷的數(shù)據(jù)的發(fā)布頻率,在相同的時(shí)間間隔內(nèi),里程計(jì)的時(shí)間戳比激光雷達(dá)的時(shí)間戳更加的密集。如圖4所示,ts與te為一幀中激光數(shù)據(jù)開始點(diǎn)與結(jié)束點(diǎn)對(duì)應(yīng)的時(shí)刻,豎直虛線代表?yè)碛欣锍逃?jì)信息的時(shí)間戳。把一幀的激光雷達(dá)按照時(shí)間間隔分成k個(gè)小區(qū)間,設(shè)移動(dòng)機(jī)器人在每一個(gè)小區(qū)間內(nèi)為勻加速運(yùn)動(dòng)的,如激光雷達(dá)的周期T=100 ms,k=10,則每個(gè)小區(qū)間的時(shí)間為10 ms,假設(shè)機(jī)器人在10 ms時(shí)間內(nèi)運(yùn)動(dòng)狀態(tài)為勻加速運(yùn)動(dòng)是合理的。
圖4 激光和里程計(jì)信息對(duì)應(yīng)的時(shí)刻
用Om表示m時(shí)刻對(duì)應(yīng)的里程計(jì)的信息為Om,其中時(shí)刻tm O(ts)=O(tm)+(O(tn)-O(tm))/(tn-tm)(ts-tm) (2) 同理,通過(guò){ts+k,ts+2k,…,ts+(k-1)k,te}最近時(shí)刻的里程計(jì)信息進(jìn)行線性插值求出{O(ts+k),O(ts+2k),…,O(ts+(n-1)k),O(te)}的里程計(jì)信息。假設(shè)ts+2k與ts+3k中有p個(gè)激光數(shù)據(jù)點(diǎn),在移動(dòng)機(jī)器人從ts+2k到ts+3k時(shí)刻是勻加速運(yùn)動(dòng)的前提下,對(duì)p個(gè)激光點(diǎn)進(jìn)行線性插值獲取p個(gè)點(diǎn)對(duì)應(yīng)的里程計(jì)信息。同理,獲得這一幀激光數(shù)據(jù)n個(gè)點(diǎn)對(duì)應(yīng)的里程計(jì)信息。使用對(duì)應(yīng)的里程計(jì)信息根據(jù)上述方法把n個(gè)激光點(diǎn)轉(zhuǎn)換到同一坐標(biāo)系上,重新封裝為激光數(shù)據(jù)再發(fā)布出去,即這一幀的運(yùn)動(dòng)畸變矯正完成。 GMapping主要基于RBPF粒子濾波的方法,GMapping中的每一個(gè)粒子都維持一幅地圖及相應(yīng)的位姿。RBPF算法把SLAM問(wèn)題分解為兩個(gè)部分:1)p(x1︰t′|z1︰t,u1︰t)機(jī)器人的定位;2)p(m|x1︰t,z1︰t)在已知機(jī)器人位姿的情況下建圖 {p(x1︰t,m|u1︰t,z1︰t)=p(x1︰t′|z1︰t,u1︰t)*p(m|x1︰t,|z1︰t)} (3) GMapping算法使用粒子濾波方式估計(jì)出機(jī)器人的軌跡p(x1︰t′|z1︰t,u1︰t),該算法主要有以下4個(gè)步驟: 1)抽樣 (4) (5) 2)重要性權(quán)重的計(jì)算 (6) 3)自適應(yīng)重采樣 粒子濾波有個(gè)嚴(yán)重的缺陷,如果頻繁地進(jìn)行重采樣的話,粒子的多樣性會(huì)散失。為緩解這種情況,GMapping實(shí)施自適應(yīng)重采樣,當(dāng)Neff[9]小于相應(yīng)的閾值T時(shí),則執(zhí)行重采樣。 4)地圖估計(jì) 為提升移動(dòng)機(jī)器人定位方面的魯棒性,實(shí)現(xiàn)從全局定位失效或者是機(jī)器人的綁架情況中恢復(fù)過(guò)來(lái)AMCL結(jié)合Augmented_MCL算法。Augmented_MCL使用指數(shù)平滑法思想通過(guò)跟蹤傳感器測(cè)量概率p(zt|z1︰t-1,u1︰t,m)的短期均值ωfast與長(zhǎng)期均值ωslow來(lái)判斷在什么情況下增加粒子,以便加強(qiáng)定位的魯棒性。 AMCL如果單純的依賴由編碼器得出的里程計(jì)的信息的話,在小車行駛的過(guò)程中,特別是在轉(zhuǎn)彎的過(guò)程中(轉(zhuǎn)彎容易導(dǎo)致打滑),從而導(dǎo)致粒子的估計(jì)不準(zhǔn)確。通過(guò)EKF融合IMU與里程計(jì)的數(shù)據(jù),能較好地維持粒子的收斂狀態(tài)。 在移動(dòng)機(jī)器人路徑規(guī)劃[11]這一方面,本文使用的是move_base包。在全局路徑規(guī)劃上使用帶有啟發(fā)式搜索的A*算法[12]。 在局部路徑規(guī)劃這一方面使用動(dòng)態(tài)窗口法(dynamic window approach,DWA)[13]算法,DWA根據(jù)當(dāng)前移動(dòng)移動(dòng)機(jī)器人的狀態(tài),模擬出多條軌跡,如圖5所示。根據(jù)相應(yīng)的評(píng)價(jià)標(biāo)準(zhǔn)如是否接近障礙物、是否靠近目標(biāo)點(diǎn)等選擇一條最優(yōu)的模擬軌跡。 圖5 DWA算法軌跡模擬情況 GMapping建圖效果如圖6所示,從整體上看建圖的效果還是非常不錯(cuò)。但是由于建圖實(shí)際環(huán)境中存在玻璃,激光點(diǎn)透過(guò)玻璃,建圖在局部細(xì)節(jié)方面還略有瑕疵。 圖6 GMapping建圖結(jié)果 AMCL的定位效果如圖7所示。定位開始時(shí),粒子處于散開狀態(tài),隨著移動(dòng)機(jī)器人的運(yùn)動(dòng)動(dòng),粒子慢慢收斂,說(shuō)明移動(dòng)機(jī)器人根據(jù)當(dāng)前周圍環(huán)境的雷達(dá)數(shù)據(jù)信息逐漸確定自己的位置。 圖7 AMCL粒子收斂圖 為實(shí)現(xiàn)移動(dòng)機(jī)器人的室內(nèi)循跡,移動(dòng)機(jī)器人每運(yùn)動(dòng)一段距離記錄下相應(yīng)的x,y,yaw,并把這些小車的位姿信息存儲(chǔ)在文本文件下。循跡時(shí),通過(guò)依次發(fā)布這些目標(biāo)點(diǎn),來(lái)實(shí)現(xiàn)小車的循跡功能。通過(guò)相應(yīng)的設(shè)置,讓移動(dòng)機(jī)器人既能依照軌跡回環(huán)循跡,又能讓小車往返循跡。在局部路徑規(guī)劃方面,小車使用的是DWA算法,在小車在循跡的過(guò)程中,也能實(shí)現(xiàn)避障的功能。移動(dòng)機(jī)器人的循跡如圖8所示。路徑為繞障礙物一圈的長(zhǎng)帶,可以看出,粒子一直收斂在機(jī)器人的周圍,定位狀態(tài)良好。 圖8 移動(dòng)機(jī)器人的循跡實(shí)現(xiàn) 本文通過(guò)對(duì)激光雷達(dá)數(shù)據(jù)預(yù)處理,里程計(jì)融合IMU實(shí)現(xiàn)室內(nèi)移動(dòng)機(jī)器人的GMapping建圖、AMCL重定位、自主導(dǎo)航與循跡等功能。經(jīng)過(guò)實(shí)驗(yàn)認(rèn)證,移動(dòng)機(jī)器人在室內(nèi)自主導(dǎo)航,循跡效果表現(xiàn)良好。而且,本文方案的可移植性非常的強(qiáng),如需要移植到阿克曼轉(zhuǎn)向型或是麥克納姆輪移動(dòng)機(jī)器人上,只需要更改其相應(yīng)的里程計(jì)模型即可?;诒痉桨?,之后可以逐步融合視覺(jué)等方面以增加相應(yīng)的功能,提升其魯棒性,使其真正商業(yè)化落地。3 GMapping建圖與AMCL重定位
3.1 GMapping建圖
3.2 AMCL重定位
4 移動(dòng)機(jī)器人的路徑規(guī)劃
5 實(shí)驗(yàn)結(jié)果
6 結(jié)束語(yǔ)