郭驛眾,李 根,許佳斌,王衛(wèi)軍,馮 偉,王 建
(1. 廣州先進(jìn)技術(shù)研究所·廣州·511458;2. 中國科學(xué)院深圳先進(jìn)技術(shù)研究院·深圳·518055)
作為自主移動(dòng)機(jī)器人(Autonomous Mobile Robot,AMR)的關(guān)鍵組成部分,導(dǎo)航模塊已經(jīng)發(fā)展出以慣性、地磁、視覺、激光雷達(dá)等傳感器為基礎(chǔ)的同時(shí)兼具效率和精度的導(dǎo)航方法。由于圖像中包含大量空間信息,對(duì)于室內(nèi)環(huán)境中工作的AMR,采用視覺傳感器的導(dǎo)航方式在信息豐富度和環(huán)境適應(yīng)性上具有較大的優(yōu)勢(shì)[1]。
視覺歸航(Visual Homing,VH)是一種輕量級(jí)機(jī)器人的導(dǎo)航方式,只利用參考位置和當(dāng)前位姿下拍攝的圖像來進(jìn)行導(dǎo)航,不需要當(dāng)前狀態(tài)之前的路徑和運(yùn)動(dòng)。該導(dǎo)航方式通常采用純方位方法實(shí)現(xiàn),比如Cartwright和Collett仿照蜜蜂歸巢原理提出的快照模型(Snapshot Model,SM)[2],通過移動(dòng)不斷減小當(dāng)前位姿下圖像和參考圖像的差距來達(dá)到靠近目標(biāo)點(diǎn)的目的。Corke P使用平均地標(biāo)矢量(Average Landmark Vector,ALV)原理[3],通過檢測(cè)地標(biāo)并對(duì)比當(dāng)前位置和目標(biāo)位置關(guān)鍵點(diǎn)方向矢量和的差值求出導(dǎo)航矢量。Robert和 Michael等人提出考慮圖像平面均勻網(wǎng)格上點(diǎn)的流向量屬性[4]。流向量指示當(dāng)前圖像中局部區(qū)域必須移動(dòng)的方向,通過對(duì)齊當(dāng)前圖像與參考圖像提供導(dǎo)航控制。這些傳統(tǒng)的視覺歸航方法多依賴于環(huán)境中的全局地標(biāo)及導(dǎo)航過程中地標(biāo)的選擇[5],且對(duì)于環(huán)境紋理及光照的要求較高,對(duì)于動(dòng)態(tài)環(huán)境則缺乏魯棒性[4],此外,還存在無法獲得精確的導(dǎo)航位置,以及無法保證收斂性等問題[5]。
通過引入ArUco碼作為地標(biāo),可以解決傳統(tǒng)視覺歸航方法的弊端[6]。相較于傳統(tǒng)的基于視覺的方式,對(duì)ArUco碼進(jìn)行識(shí)別和相對(duì)定位可以直接估計(jì)位置和航向,減少了計(jì)算量,且具有較高的精度和魯棒性[7]。另外,可以通過將ArUco碼粘貼在天花板上減少可能受到的障礙物遮擋的影響[8]。ArUco碼具有成本低廉,信息獲取較為簡單,可以使用低成本攝像頭進(jìn)行檢測(cè)等優(yōu)點(diǎn)[7]。然而采用ArUco碼輔助視覺導(dǎo)航有時(shí)局限于單個(gè)標(biāo)記,比如在預(yù)定位置采用ArUco碼標(biāo)記引導(dǎo)自動(dòng)導(dǎo)航小車(Automated Guided Vehicle,AGV)轉(zhuǎn)向[9];或者至多局限于一部分標(biāo)記,且這些標(biāo)記的相對(duì)位姿需要已知,比如與同步定位和建圖(Simultaneous Localization and Mapping,SLAM)進(jìn)行結(jié)合[10],在使用ArUco碼輔助機(jī)器人導(dǎo)航之前,對(duì)ArUco碼進(jìn)行全局定位并提前構(gòu)建地圖,通過識(shí)別ArUco碼對(duì)比全局地圖,提供自主移動(dòng)機(jī)器人的位置和航向信息。
使用SLAM對(duì)ArUco碼進(jìn)行建圖,具有較高的定位精度,然而其需要預(yù)先構(gòu)建精確且全局一致的地圖,當(dāng)?shù)貓D丟失時(shí),機(jī)器人立即失去定位和導(dǎo)航的能力。本文提出了一種在沒有構(gòu)建全局地圖的情況下,通過對(duì)既往路徑中記錄的ArUco碼信息進(jìn)行反向?qū)Ρ群退褜さ姆绞?,?shí)現(xiàn)移動(dòng)機(jī)器人無地圖自主視覺返航同時(shí)實(shí)現(xiàn)避障功能的方法。
如圖1所示,相機(jī)視界內(nèi)通常可以識(shí)別到多個(gè)ArUco碼,機(jī)器人的運(yùn)動(dòng)會(huì)導(dǎo)致識(shí)別的ArUco碼產(chǎn)生時(shí)間順序上的連續(xù)變化,本文將通過識(shí)別和記錄對(duì)應(yīng)ArUco碼構(gòu)建的局部坐標(biāo)系下的關(guān)鍵位姿,并通過不同的ArUco碼構(gòu)建的局部坐標(biāo)系的連續(xù)變換實(shí)現(xiàn)機(jī)器人的反向?qū)Ш讲⒒氐匠霭l(fā)點(diǎn)。然而該方法只能適用于機(jī)器人經(jīng)過和記錄的地標(biāo)物,當(dāng)遇到動(dòng)態(tài)障礙物或者未曾經(jīng)過的地方,該方法就無效了,因此,本文引入里程計(jì),通過對(duì)車輪轉(zhuǎn)速進(jìn)行積分來獲得機(jī)器人既往任意時(shí)刻的位姿。然而里程計(jì)存在累積誤差,且隨著累計(jì)時(shí)間的增加而變大,因此機(jī)器人只采用較近期位姿實(shí)現(xiàn)超出原有識(shí)別區(qū)域的自主返航。同時(shí)使用激光雷達(dá)提供障礙物的距離和方位信息用以避障。
圖1 相機(jī)視界與機(jī)器人軌跡Fig.1 Camera field of view and the robot trajectory
具體來說,系統(tǒng)有返航和非返航兩種狀態(tài),非返航狀態(tài)下可以通過預(yù)設(shè)軌跡或手動(dòng)方式操作移動(dòng)機(jī)器人進(jìn)行運(yùn)動(dòng),全過程中相機(jī)采用固定頻率對(duì)視界中的ArUco碼進(jìn)行識(shí)別,由于同一時(shí)刻相機(jī)視界內(nèi)存在多個(gè)二維碼,解算當(dāng)前時(shí)刻相機(jī)相對(duì)視界內(nèi)所有ArUco碼的位姿,并以當(dāng)前時(shí)刻相機(jī)直線距離最近的ArUco碼建立局部坐標(biāo)系,如果該時(shí)刻是初次識(shí)別到ArUco碼的時(shí)刻,將機(jī)器人當(dāng)前相對(duì)于該ArUco碼的位姿作為關(guān)鍵位姿進(jìn)行保存,同時(shí)左右輪編碼器通過計(jì)算轉(zhuǎn)動(dòng)速度積分并記錄車輛軌跡。
返航狀態(tài)的流程如圖2所示,首先相機(jī)對(duì)視界內(nèi)所有ArUco碼進(jìn)行識(shí)別;再檢索數(shù)據(jù)庫中是否有保存對(duì)應(yīng)ArUco碼ID號(hào),并以此判定是否經(jīng)過該ArUco碼對(duì)應(yīng)的可識(shí)別區(qū)域。如果保存有對(duì)應(yīng)的ID號(hào),則判定經(jīng)過,并進(jìn)行基于ArUco碼時(shí)序最小的導(dǎo)航偏差估計(jì)。由于ArUco碼存取是按照識(shí)別的時(shí)間順序保存,如果存有甚至有多個(gè)ArUco碼被識(shí)別和保存,則選取時(shí)序更小的ArUco碼構(gòu)建局部坐標(biāo)系,獲得機(jī)器人在當(dāng)前ArUco碼坐標(biāo)系下的位姿作為當(dāng)前點(diǎn),并讀取該ArUco碼被初次識(shí)別時(shí)的機(jī)器人的位姿作為目標(biāo)點(diǎn)。如果沒有保存對(duì)應(yīng)的ArUco碼,說明機(jī)器人移動(dòng)到一個(gè)未曾到過的區(qū)域,則判定未經(jīng)過,則以當(dāng)前視界范圍內(nèi)直線距離最近的ArUco碼構(gòu)建局部坐標(biāo)系,并獲取機(jī)器人在當(dāng)前坐標(biāo)系下的位姿作為當(dāng)前點(diǎn)。通過讀取編碼器積分軌跡選取前瞻點(diǎn)作為目標(biāo)點(diǎn)。
圖2 無地圖視覺導(dǎo)航系統(tǒng)返航流程圖Fig.2 Flow chart of the visual homing navigation system with no map building
隨后,通過激光雷達(dá)判定是否有障礙物及與障礙物之間的距離。當(dāng)判定路徑上沒有障礙物時(shí),利用純跟蹤(Pure Pursuit,PP)導(dǎo)航算法計(jì)算線速度和角速度并驅(qū)動(dòng)機(jī)器人移動(dòng),直至返回出發(fā)位置。當(dāng)判定路徑上存在障礙物時(shí),采用動(dòng)態(tài)窗口(Dynamic Window Approach,DWA)算法對(duì)機(jī)器人進(jìn)行軌跡預(yù)測(cè),同時(shí)通過讀取編碼器積分軌跡選取前瞻目標(biāo)點(diǎn),實(shí)現(xiàn)避障功能并返回既往軌跡。
基于人工標(biāo)記物位置固定的前提下,如ArUco碼粘貼在天花板上(圖3),相機(jī)在任何可以拍攝到ArUco碼的位置都可以通過識(shí)別視界內(nèi)的ArUco碼獲得該碼坐標(biāo)系下的相對(duì)位姿,即該位姿下相機(jī)坐標(biāo)系相對(duì)于ArUco碼坐標(biāo)系的空間轉(zhuǎn)換矩陣。如圖3所示,M1CT為相機(jī)相對(duì)1號(hào)ArUco碼的空間轉(zhuǎn)換矩陣,M2CT為相機(jī)相對(duì)2號(hào)ArUco碼的空間轉(zhuǎn)換矩陣。同時(shí),雷達(dá)和相機(jī)固定在機(jī)器人上,且兩個(gè)傳感器都有其特定的測(cè)定坐標(biāo)系。從圖3中可知,雷達(dá)坐標(biāo)系、相機(jī)坐標(biāo)系及機(jī)器人坐標(biāo)系的Z軸重合,且三者原點(diǎn)都位于機(jī)器人本體中軸線上,通過測(cè)量固定位置的距離,可以很輕易地實(shí)現(xiàn)從雷達(dá)到相機(jī)及從機(jī)器人到相機(jī)的坐標(biāo)轉(zhuǎn)換,為了簡化說明,后文以相機(jī)坐標(biāo)系替代機(jī)器人本體坐標(biāo)系進(jìn)行討論。
圖3 局部坐標(biāo)系的連續(xù)變換Fig.3 Continuous transform of the local coordinate system
M2rR=M2CR×CrR+M2CS
(1)
CrRQ=M2CRR-1×(M2rQ-M2rR)
(2)
通過將方向矢量帶入運(yùn)動(dòng)學(xué)模型中即可解出機(jī)器人線速度及角速度[v,ω]。為了實(shí)現(xiàn)連續(xù)的導(dǎo)航,機(jī)器人需要在上一個(gè)ArUco碼離開相機(jī)視界范圍之前識(shí)別到下一個(gè)ArUco碼并重復(fù)構(gòu)建局部坐標(biāo)系、坐標(biāo)轉(zhuǎn)換及計(jì)算控制量的步驟,即要求任意ArUco碼間距小于相機(jī)的視界直徑。
在非返航過程中機(jī)器人將所有識(shí)別的ArUco碼以時(shí)間順序保存,在返航過程中通過對(duì)視界內(nèi)ArUco碼的識(shí)別和對(duì)比,始終選取時(shí)序最小的,可以確保在連續(xù)返航的過程中回到出發(fā)點(diǎn)的收斂性,同時(shí)在偏離原有航跡且非連續(xù)倒序識(shí)別ArUco碼時(shí),對(duì)于重新識(shí)別的ArUco碼仍然可以通過時(shí)序?qū)Ρ确祷爻霭l(fā)點(diǎn),具有一定的自適應(yīng)性。
ArUco碼是一種由黑色邊框及內(nèi)部白色二進(jìn)制編碼組成的正方形基準(zhǔn)標(biāo)記(Squared Fiducial Marker,SFM),相較其他人工路標(biāo)具有檢測(cè)精度高及檢測(cè)速度快等優(yōu)點(diǎn)[6]。通過基于OpenCV的圖像識(shí)別和處理,將識(shí)別出的ArUco碼解碼為二進(jìn)制與字典庫進(jìn)行匹配可以獲得對(duì)應(yīng)的唯一ID號(hào),并獲得ArUco碼中心坐標(biāo)系的四個(gè)角點(diǎn)的坐標(biāo)(見圖4)。
圖4 ArUco碼識(shí)別及中心坐標(biāo)系下角點(diǎn)坐標(biāo)Fig.4 Recognition of the ArUco marker and the endpoint coordinates at the corresponding ArUco marker coordinate system
(3)
(4)
(5)
將n個(gè)匹配點(diǎn)對(duì)全部展開,可以寫成一個(gè)2n×12的矩陣M和一個(gè)12×1的矩陣x,所有使得Mx=0的解可以表示為
(6)
其中,vi是M的零奇異值對(duì)應(yīng)的右奇異矢量,通過構(gòu)建MTM組成的方陣,求解特征值為0的特征矢量,求得為vi。根據(jù)剛體結(jié)構(gòu)不變性,不同坐標(biāo)系下的兩個(gè)點(diǎn)的相對(duì)距離是不變的,原式可優(yōu)化為
(7)
自主移動(dòng)機(jī)器人采用兩輪差速模型[14],通過控制左右兩個(gè)驅(qū)動(dòng)輪的轉(zhuǎn)動(dòng)速度可以實(shí)現(xiàn)機(jī)器人的直行和轉(zhuǎn)向。僅考慮機(jī)器人在二維水平面的運(yùn)動(dòng)情況,運(yùn)動(dòng)學(xué)模型如圖5。
圖5 差速自主移動(dòng)機(jī)器人運(yùn)動(dòng)學(xué)模型Fig.5 Dynamic model of differential autonomous mobile robot
通過驅(qū)動(dòng)輪上的編碼器可以得到左右輪的轉(zhuǎn)動(dòng)速度vr,vl,已知驅(qū)動(dòng)輪輪距為b,從而解算出機(jī)器人中心的線速度及角速度v,ω。
(8)
在驅(qū)動(dòng)輪純滾動(dòng),無側(cè)向滑動(dòng)的情況下,機(jī)器人受到非完整約束[15],那么n時(shí)刻機(jī)器人在當(dāng)前ArUco碼坐標(biāo)系下的位姿[x,y,θ]T存在以下關(guān)系
(9)
同時(shí),機(jī)器人軌跡可以用圓弧進(jìn)行表示,且n時(shí)刻圓弧半徑為Ln=vn/ωn,其中vn,ωn為n時(shí)刻機(jī)器人的線速度和角速度。通過對(duì)左右輪轉(zhuǎn)速記錄并進(jìn)行積分,可以得到小車從開始到結(jié)束任意時(shí)刻相對(duì)于出發(fā)點(diǎn)位置的坐標(biāo)朝向和速度,盡管使用速度積分的方式會(huì)引入累積誤差。
DWA動(dòng)態(tài)窗口法是基于運(yùn)動(dòng)學(xué)模型,在有限速度和加速度及短暫時(shí)間間隔的約束下的一種速度控制方法[15],多用于障礙物躲避的局部路徑規(guī)劃。DWA可以概括為三步[16]:一是根據(jù)機(jī)器人自身限制和環(huán)境制約將速度的采樣空間約束在一定范圍內(nèi);二是根據(jù)機(jī)器人運(yùn)動(dòng)學(xué)對(duì)采樣后的速度進(jìn)行模擬得到預(yù)軌跡;三是設(shè)定評(píng)價(jià)函數(shù)對(duì)預(yù)軌跡進(jìn)行評(píng)分以獲取最優(yōu)軌跡對(duì)應(yīng)的執(zhí)行速度。
將機(jī)器人當(dāng)前速度設(shè)為[vc,ωc],根據(jù)機(jī)器人自身速度及加速度的限制,速度采樣空間應(yīng)滿足
(10)
通過設(shè)定的采樣分辨率獲得所有[v,ω]的速度組合,并設(shè)定預(yù)測(cè)時(shí)間窗口的長度,根據(jù)運(yùn)動(dòng)學(xué)模型進(jìn)行模擬獲得預(yù)測(cè)的軌跡和終點(diǎn)位置。為了獲取最優(yōu)的執(zhí)行速度組合,采用代價(jià)函數(shù)對(duì)每條軌跡進(jìn)行評(píng)價(jià)。代價(jià)函數(shù)定義為
C(v,ω)=αCdist(v,ω)+βCtarg(v,ω)
(11)
式中,使得C(v,ω)值最小的速度組合為最優(yōu)速度;函數(shù)Cdist(v,ω)用來評(píng)價(jià)機(jī)器人在當(dāng)前軌跡上與最近的障礙物之間的距離,距離越遠(yuǎn),Cdist(v,ω)的值越?。籆targ(v,ω)為當(dāng)前設(shè)定的采樣速度下,達(dá)到模擬軌跡終點(diǎn)的機(jī)器人與當(dāng)前ArUco碼記錄的機(jī)器人起始點(diǎn)的歐幾里得距離,即返航過程始終將當(dāng)前相機(jī)視野范圍內(nèi)索引值最小的ArUco碼對(duì)應(yīng)的初次識(shí)別到該ArUco碼時(shí)刻的位置作為返航目標(biāo)點(diǎn);α,β為每一個(gè)函數(shù)的權(quán)重。
本文搭建了如圖6所示的兩輪差速機(jī)器人實(shí)驗(yàn)平臺(tái)進(jìn)行測(cè)試,主要由顯示器、工控機(jī)和運(yùn)動(dòng)底盤組成。攝像頭使用的是索尼IMX317,分辨率為1920×1080,幀率為30Hz。實(shí)驗(yàn)環(huán)境為如圖7的6m×12m的實(shí)驗(yàn)室,天花板上均勻等距粘貼ArUco碼,攝像頭與天花板的距離為2.5m;地面采用紙箱作為障礙物。采用激光雷達(dá)構(gòu)建了全局地圖及Marker的特征地圖為機(jī)器人在測(cè)試過程中提供定位。
圖6 機(jī)器人實(shí)驗(yàn)平臺(tái)Fig.6 Robot platform
圖7 實(shí)驗(yàn)室環(huán)境及地圖Fig.7 Testing site and the map
將相機(jī)視界以時(shí)間順序進(jìn)行拼接。由于相機(jī)視角是從下向上,而Rviz建圖視角是從上向下,將相機(jī)視界翻轉(zhuǎn)后可以得到如圖8的視界圖和實(shí)際軌跡的對(duì)比,兩者具有高度的相似度,同時(shí)相機(jī)對(duì)ArUco碼的識(shí)別時(shí)序與導(dǎo)航路徑點(diǎn)具有同步性,每一個(gè)ArUco碼的關(guān)鍵位姿與實(shí)際機(jī)器人軌跡之間存在對(duì)應(yīng)關(guān)系,因此,找尋時(shí)序更小的ArUco碼意味著找尋時(shí)序更小的路徑點(diǎn),即更加靠近出發(fā)點(diǎn)的位置,直至返回出發(fā)點(diǎn)。
圖8 相機(jī)視界(翻轉(zhuǎn))與導(dǎo)航軌跡Fig.8 Camera view (reversed)and the corresponding trajectory
通過對(duì)同一條長度為3m的直線路徑進(jìn)行20次的重復(fù)測(cè)試,以測(cè)定僅靠相機(jī)定位及導(dǎo)航的重復(fù)定位精度。在機(jī)器人停止時(shí),通過讀取最小時(shí)序ArUco碼(即初始ArUco碼)獲得機(jī)器人當(dāng)前位置的坐標(biāo),同時(shí)讀取出發(fā)時(shí)刻機(jī)器人起始位置坐標(biāo),并將這些坐標(biāo)顯示在圖9中。停止點(diǎn)距離目標(biāo)點(diǎn)的平均距離誤差為0.0169m(即1.69cm),方差為0.000887m2(即8.87cm2),20個(gè)停止點(diǎn)的平均停止點(diǎn)坐標(biāo)為(-0.099788,0.79)cm,距目標(biāo)點(diǎn)的誤差為0.8cm,該距離小于平均距離誤差的原因是平均停止點(diǎn)反映了空間上的分布,減小了極端數(shù)據(jù)對(duì)于均值的影響,具有更高的可信度。
圖9 20次重復(fù)定位測(cè)試Fig.9 Result of 20-times repeat positioning test
通過使用鍵盤控制的方式控制移動(dòng)機(jī)器人出發(fā),形成一條特定的軌跡,比如實(shí)驗(yàn)中采用繞障軌跡,分別對(duì)比了繞開單個(gè)(圖10(a))、兩個(gè)(圖10(b))、三個(gè)障礙物(圖10(c))及全覆蓋路徑(圖11)的軌跡。
(a)
(b)
(c)圖10 移動(dòng)機(jī)器人繞障返航軌跡Fig.10 Homing trajectory of the AMR with obstacle avoidance
圖11 全覆蓋路徑及返航軌跡Fig.11 Full coverage path and the corresponding homing trajectory
在機(jī)器人移動(dòng)的同時(shí),相機(jī)對(duì)視界范圍內(nèi)的ArUco碼標(biāo)記物進(jìn)行識(shí)別,僅將5次以上關(guān)鍵幀識(shí)別的ArUco碼ID進(jìn)行保存,以避免運(yùn)動(dòng)過程中相機(jī)視界短時(shí)間掃過的ArUco碼造成的干擾。僅保留長時(shí)間穩(wěn)定識(shí)別的ArUco碼,同時(shí)以此時(shí)距離最近的ArUco碼的位姿信息作為該ArUco碼對(duì)應(yīng)的關(guān)鍵位姿信息,在到達(dá)預(yù)定目標(biāo)點(diǎn)后觸發(fā)機(jī)器人返航功能。機(jī)器人識(shí)別視界內(nèi)的ArUco碼標(biāo)記物并查找存儲(chǔ)的ID號(hào),通過存儲(chǔ)的時(shí)序選擇時(shí)序更小的ArUco碼生成局部坐標(biāo)系,提取該ArUco碼的關(guān)鍵位姿作為當(dāng)前坐標(biāo)系下目標(biāo)點(diǎn),并生成控制量以控制機(jī)器人移動(dòng)。在手動(dòng)操作和返航的同時(shí),采用激光雷達(dá)對(duì)移動(dòng)機(jī)器進(jìn)行定位并記錄軌跡,采用Rviz可視化工具顯示機(jī)器人運(yùn)動(dòng)軌跡信息(圖10),可以清晰地對(duì)比返航前和返航后的軌跡。
在該實(shí)驗(yàn)中,機(jī)器人對(duì)不同的繞障軌跡的返航展示了返航的能力,在僅依靠視覺信息及激光雷達(dá)信息進(jìn)行返航時(shí)實(shí)現(xiàn)了對(duì)靜態(tài)障礙物的避讓,同時(shí)返回了出發(fā)位置。對(duì)于單個(gè)障礙物的軌跡(圖10(a)),返航軌跡的路程與出發(fā)軌跡的路程幾乎接近,同時(shí)由于僅保存對(duì)應(yīng)ArUco碼的關(guān)鍵位姿,稀疏的導(dǎo)航點(diǎn)使得機(jī)器人在移動(dòng)過程中產(chǎn)生一定的震蕩;對(duì)于兩個(gè)障礙物的軌跡(圖10(b)),返航軌跡相比出發(fā)軌跡節(jié)約了9.76%的路程;對(duì)于三個(gè)障礙物的軌跡(圖10(c)),返航軌跡相比出發(fā)軌跡節(jié)約了57.33%的路程。
對(duì)于出發(fā)軌跡,尤其是在復(fù)雜軌跡的情況下,本方法所具有的抄近路的能力更加顯著,如圖11所示全覆蓋路徑,返航路程相比出發(fā)路程節(jié)約了79.16%。
在復(fù)雜軌跡相交部或者頸部,由于相機(jī)視界范圍的覆蓋使得有重復(fù)ArUco碼出現(xiàn),基于時(shí)序最小的導(dǎo)航偏差估計(jì),此時(shí)機(jī)器人展現(xiàn)出跳過部分路徑抄近路的能力。當(dāng)軌跡越接近直線時(shí),返航路程則接近出發(fā)路程。由于機(jī)器人導(dǎo)航僅依靠視覺信息,返航的穩(wěn)定性受到光照的嚴(yán)重影響,當(dāng)無法識(shí)別ArUco碼或者嚴(yán)重偏離已識(shí)別區(qū)域時(shí),機(jī)器人會(huì)失去導(dǎo)航能力。
提出了一種簡單的基于視覺的實(shí)現(xiàn)自主移動(dòng)機(jī)器人無地圖返航及避障的方法,該方法采用ArUco碼作為視覺標(biāo)定物。機(jī)器人在出發(fā)狀態(tài)中識(shí)別并以時(shí)序記錄相對(duì)于視界內(nèi)的ArUco碼的關(guān)鍵位姿,使得在返航狀態(tài)中通過選擇視界內(nèi)時(shí)序更小的ArUco碼并構(gòu)建局部坐標(biāo)系從而實(shí)現(xiàn)局部定位與導(dǎo)航,并通過局部坐標(biāo)系的連續(xù)變化,實(shí)現(xiàn)無全局地圖情況下返回出發(fā)點(diǎn)的目的。基于不同出發(fā)軌跡,該方法展現(xiàn)出一定的跳過既往路徑,以更近的路線返回出發(fā)點(diǎn)的能力。當(dāng)出發(fā)軌跡接近直線,返航軌跡接近出發(fā)軌跡;對(duì)于復(fù)雜軌跡的相交部或頸部,由于相機(jī)視界識(shí)別到時(shí)序更早的ArUco碼,使得機(jī)器人可以以更短的路徑返回出發(fā)點(diǎn)。實(shí)驗(yàn)結(jié)果表明:
1)基于相機(jī)和ArUco碼標(biāo)記物的情況下,20次重復(fù)定位測(cè)試中實(shí)現(xiàn)8mm的平均定位誤差;
2)基于激光雷達(dá)和里程計(jì),在無地圖的情況下,機(jī)器人通過動(dòng)態(tài)窗口算法實(shí)現(xiàn)自主返航過程中對(duì)于靜態(tài)障礙物的避障;
3)在全覆蓋路徑測(cè)試中,返航路程相比出發(fā)路程節(jié)約了79.16%。
本次結(jié)果只是初步的,未能實(shí)現(xiàn)設(shè)計(jì)的全部功能,如超出識(shí)別范圍后基于里程計(jì)的偏航矯正等,因此還需要進(jìn)一步的測(cè)試和改進(jìn)。這項(xiàng)工作為后續(xù)工作提供了一些有趣的方向,如基于編碼器的航跡推算、優(yōu)化激光雷達(dá)信息實(shí)現(xiàn)動(dòng)態(tài)避障返航,以及使用自然特征而非人工標(biāo)記等。