陳子舉 王璐潔 史芷境 徐恒榮 郭浩 赫東鋒
摘要:針對掃地機器的自主定位問題,文章提出了基于單目視覺傳感器的室內(nèi)定位法。首先,設(shè)計了一種基于色塊編碼的可擴展信標(biāo),該信標(biāo)含有定位圓以及方格碼;然后,通過識別方格碼獲取路標(biāo)編碼,通過識別三個定位圓獲取相機相對于該路標(biāo)的位姿信息,實現(xiàn)掃地機器人的自主定位。為了驗證該定位方法的正確性和準(zhǔn)確性,分別進行了定位實驗,得出相機相對于信標(biāo)平移時的最大定位誤差及標(biāo)準(zhǔn)差分別為0.6mm和0.3mm,相對于信標(biāo)旋轉(zhuǎn)時最大誤差及標(biāo)準(zhǔn)差分別為0.07°和1.56°。實驗結(jié)果表明上述方法可以有效地提高掃地機器人的定位精度,同時該方法實現(xiàn)簡單,具有很強的操作性以及實用價值。
關(guān)鍵詞:室內(nèi)自主定位;單目視覺;人工信標(biāo);掃地機器人;數(shù)字圖像處理
中圖法分類號:TP242文獻(xiàn)標(biāo)識碼:A
Autonomous positioning method for sweeping robots based onartificial beacons
CHEN Ziju,WANG Lujie,SHI Zhijing,XU Hengrong,GUO Hao,HE Dongfeng
(Xi'an Technological University,Xi'an,710000,China)
Abstract:Aiming at the autonomous positioning problem of sweeping robots, an indoor positioning method based on monocular vision sensor is proposed. First, an extensible beacon based on colour block coding is designed,which contains positioning circles and grid codes. Then,the road sign code is obtained by recognizing the square code, and the position information of the camera relative to the road signpost is obtained by identifying three positioning circles, so as to realize the autonomous positioning of the sweeping robot. In order to verify the correctness and accuracy of the positioning method,positioning experiments are carried out respectively. It is concluded that the maximum positioning error and standard deviation of the camera relative to the beacon translation are 0.6mm and 0.3mm respectively, and the maximum error and standard deviation relative to the rotation of the beacon are 0.07° and 1.56° respectively. Experimental results show that the above method can effectively improve the positioning accuracy of the sweeping robot. At the same time,the method is simple to realize,and it is highly operational as well as practical.
Key words: indoor autonomous positioning, monocular vision, artificial beacon, sweeping robot, digital image processing
1? 引言
近年來,隨著科技的不斷發(fā)展,人們對掃地機器人的清潔能力提出了新的要求,如何高效、快速地實現(xiàn)室內(nèi)全面清潔是提高掃地機器人清潔能力的關(guān)鍵。而要實現(xiàn)高效、快速的室內(nèi)全面清潔,離不開清潔機器人的準(zhǔn)確定位和全覆蓋路徑規(guī)劃兩項關(guān)鍵技術(shù)。準(zhǔn)確定位是指機器人借助傳感器確定自身在環(huán)境中的位姿;全覆蓋路徑規(guī)劃則是指機器人按照某一性能指標(biāo)搜索從起始狀態(tài)到目標(biāo)狀態(tài)的最優(yōu)無碰撞路徑,當(dāng)機器人完成自身的準(zhǔn)確定位后,要到達(dá)指定目標(biāo)就需要進行全覆蓋路徑規(guī)劃[1]。在掃地機器人移動過程中實現(xiàn)精度高、魯棒性強的定位對其至關(guān)重要,是較好完成清潔任務(wù)的前提。本文主要解決掃地機器人的定位問題,提出了一種基于單目視覺和人工信標(biāo)的掃地機器人自主定位方法。
根據(jù)使用的傳感器不同,可以將機器人定位分為三類,即基于激光雷達(dá)定位[2]、基于輪式里程計[3]或慣性測量單元[4]定位、基于視覺傳感器定位[5]?;诩す饫走_(dá)獲取機器人位姿的方法成本較高,不適于大規(guī)模推廣;基于輪式里程計或慣性測量單元定位具有結(jié)構(gòu)簡單、短期內(nèi)定位效果好的優(yōu)點,但長期定位具有較大的累積誤差,影響定位精度;而基于視覺傳感器獲取機器人位姿信息相對成本較低,定位精度也較高,優(yōu)勢明顯。
根據(jù)機器人攜帶視覺傳感器數(shù)目的不同,可以將基于視覺傳感器的定位分為單目視覺定位、雙目視覺定位和多目視覺定位。其中,單目視覺定位使用相機結(jié)構(gòu)簡單、裝載方便、價格便宜且畸變小,是當(dāng)前研究的熱門領(lǐng)域;雙目及多目視覺定位可以通過不同視角采集到的具有視差的平面圖像獲取周圍環(huán)境的三維信息,但計算量較大,且系統(tǒng)不穩(wěn)定[6]。
姬旭[7]提出了一種基于單目視覺傳感器的移動機器人室內(nèi)定位方法。首先,需要通過單目視覺傳感器來感知移動機器人的工作環(huán)境,并通過圖像處理技術(shù)將移動機器人從復(fù)雜的環(huán)境中準(zhǔn)確地識別出來。在此基礎(chǔ)上,設(shè)計基于已知標(biāo)志物的識別算法,實現(xiàn)移動機器人的室內(nèi)定位。缺點是該目標(biāo)識別算法仍需優(yōu)化,并且對環(huán)境的適應(yīng)性有待提高。
在室內(nèi)工作環(huán)境特征信息單一的情況下,通常采用基于信標(biāo)的定位技術(shù)。劉成成[8]提出了一種基于人工信標(biāo)的單目視覺的定位方法,該信標(biāo)采用圓環(huán)編碼,按照30°、60°、100°、170°對圓環(huán)進行分割,任意組合相加度數(shù)都是唯一的,使用時按順序標(biāo)為黑色,以承載位置信息。但是,該路標(biāo)不能承擔(dān)太多數(shù)據(jù),若要擴展便需要對圓環(huán)進行多次分割,這會導(dǎo)致弧角的角度差變小,從而會引起其識別率的降低。該信標(biāo)還存在無法識別方向角的問題,本文設(shè)計的人工信標(biāo)的三個定位圓在不同方向的距離不同,很好地解決了這一問題。
目前存在的問題有定位算法比較復(fù)雜,對環(huán)境的適應(yīng)性不高,定位精度較低。為了解決這些問題,本文通過對人工信標(biāo)進行獨特設(shè)計和編碼來降低單目視覺定位時的圖像處理的實時性問題;建立相機模型,并考慮相機的擺放問題,實現(xiàn)攝像頭基于人工信標(biāo)的信息獲取;通過將系統(tǒng)搭載在智能小車平臺上進行實驗并驗證該系統(tǒng)的實際定位效果。
2? 定位原理
2.1? 路標(biāo)設(shè)計
該人工信標(biāo)的設(shè)計圖如圖1 所示,長和寬均為33mm,相機的位姿信息通過定位圓和內(nèi)容碼獲取。如圖 1所示,其中三個圓 A/B/C 是定位圓,主要用來進行判斷此時機器人相對于路標(biāo)參考坐標(biāo)的角度,定位圓 A 的圓心用來計算機器人相對于路標(biāo)坐標(biāo);而方格碼則用來存儲信標(biāo)的編碼,方格碼的白色代表0,黑色代表1 ,其個數(shù)由后期存儲信息決定。通過信標(biāo)的編碼以及檢索數(shù)據(jù)庫,我們可以得到該信標(biāo)的絕對位置(X,Y)。
該信標(biāo)編碼區(qū)可以根據(jù)實際場地的大小進行調(diào)整,只需要改變內(nèi)容碼和校驗碼的行和列,或者改變方格碼的尺寸就可以實現(xiàn)人工信標(biāo)存儲信息的改變,該信標(biāo)目前可存儲的位置信息最高達(dá)16× 162+16× 161+16×160=4368個。
定位圓和內(nèi)容碼的尺寸及位置信息:三個定位圓 A/B/C 的直徑均為8mm,定位圓 A 的圓心距路標(biāo)上邊緣和左邊緣均為8mm;定位圓 B 距定位圓 A 的圓心水平距離為15mm;定位圓 C 距定位圓 A 圓心的豎直距離為 20mm 。內(nèi)容碼的尺寸為5mm×5mm,其左邊緣和上邊緣距定位圓 B/C 的圓心的直線距離均為6mm。
該信標(biāo)的設(shè)計結(jié)構(gòu)簡單,可被快速識別,同時編碼容量也可隨信息大小進行改變,并且只需單目視覺傳感器就可實現(xiàn)掃地機器人的自主定位。
2.2? 機器人定位原理
在該掃地機器人的定位系統(tǒng)中,信標(biāo)與信標(biāo)之間的基本距離相同,并且均勻地分布在室內(nèi)地板上,此時的室內(nèi)環(huán)境地圖可以看作一個柵格地圖,每一個人工信標(biāo)可以看作一個柵格點。掃地機器人的定位過程就是機器人在該室內(nèi)環(huán)境地圖中移動時借助人工信標(biāo)獲取自身位置信息的過程。
如圖2 所示,Ow 是室內(nèi)參考坐標(biāo)系,Oa 是視覺坐標(biāo)系,每一個正方形就是人工信標(biāo),通過讀取它的編號可以獲取該信標(biāo)的絕對位置。掃地機器人的航向角就是 Oa 坐標(biāo)系相對于 Ow 坐標(biāo)系繞原點旋轉(zhuǎn)的角度α。
航向角α可以通過公式(1)計算得到:
由公式(2)可以得到掃地機器人在室內(nèi)參考坐標(biāo)系下的位置:
其中,(XW,YW )是機器人在室內(nèi)參考坐標(biāo)系下的位置;(XO ,YO )是定位圓在視覺坐標(biāo)系下的位置,可由視覺傳感器觀測得到;(Xb ,Yb )是標(biāo)志點的絕對位置。3? 信標(biāo)定位信息的提取
3.1? 攝像頭獲取定位信息
攝像頭選用了可以進行圓形識別的 OpenMV3 camM7。考慮到周邊環(huán)境實際情況,選擇將鏡頭的高度固定在11cm。
首先,需要進行角度計算,利用攝像機里的像素坐標(biāo)實時計算攝像頭與路標(biāo)的夾角并且獲取定位物的像素坐標(biāo)。其次,固定相機高度,通過標(biāo)準(zhǔn)圓的像素坐標(biāo)與實際坐標(biāo)的關(guān)系,得到標(biāo)定系數(shù)。根據(jù)信標(biāo)的實際尺寸、標(biāo)定系數(shù)、前文計算的角度以及定位物的像素坐標(biāo)計算出信標(biāo)內(nèi)容碼的像素坐標(biāo)。最后,根據(jù)編碼的方式解出內(nèi)容碼數(shù)據(jù)。由于內(nèi)容碼儲存的是定位物的全局坐標(biāo),便可通過坐標(biāo)變換得出相機的全局坐標(biāo)。
3.2? 定位實現(xiàn)
首先,識別圓的算法采用霍夫變換識別了攝像頭與人工信標(biāo)間的夾角。其次,對相機進行標(biāo)定。規(guī)定了編碼的方式,在采取二值化后,對內(nèi)容碼的捕捉點獲取了返回值,利用返回值判斷每個單元碼到底是0 還是1 。再次,按照編碼的方式進行解碼。最后,根據(jù)解碼的編號在位置庫文檔找對應(yīng)的行。找到行后,獲取定位物的全局坐標(biāo),再根據(jù)已經(jīng)求得的角度,和在相機里定位物和方格碼的像素坐標(biāo)以及為2 的標(biāo)定系數(shù)。最終進行坐標(biāo)變換便可得到相機中點的全局坐標(biāo),再通過串行口將數(shù)據(jù)從端口輸出,實現(xiàn)掃地機器人的自主定位。
4? 定位實驗及結(jié)果分析
通過該定位實驗主要為驗證在信標(biāo)進行直線及角位移時相機定位的正確性以及準(zhǔn)確性。
4.1? 實驗平臺
該實驗平臺的搭建基于智能小車(圖3),其目前集成了紅外傳感器等多種傳感器及數(shù)據(jù)處理端。若要使得智能小車擁有完整的功能,屆時在處理端輸入運行代碼,再接入信標(biāo)識別的端口即可。直線測量精度和角度測量精度分別使用平移臺和旋轉(zhuǎn)臺來測量,兩個平臺組裝后的高度為11cm(圖4)。
4.2? 實驗過程
在實際環(huán)境中,智能小車和信標(biāo)分別是運動和固定狀態(tài)。在此,由于要測量相機的準(zhǔn)確性,我們使智能小車靜止,路標(biāo)運動。將設(shè)計好的人工信標(biāo)標(biāo)貼在最上端的旋轉(zhuǎn)臺,攝像頭與信標(biāo)之間的距離是11cm。為了驗證得到數(shù)據(jù)的真實性以及裝置的精度,我們用了平移平臺以及旋轉(zhuǎn)平臺的方法。
對平移方向的測量,我們采取在單一方向每次增加 1mm 的方法,共做10組實驗,則 X 軸增加1cm,記錄其編號、角度以及 x,y 坐標(biāo)。對于角度的測量應(yīng)用旋轉(zhuǎn)臺,每次旋轉(zhuǎn)30°,共旋轉(zhuǎn)360°,分為12次測量記錄。判斷是否會因為象限的不同,對角度的判斷造成誤差。
4.3? 結(jié)果分析
通過觀察得到的數(shù)據(jù),可以發(fā)現(xiàn)當(dāng) x 軸方向每次增加1mm 時,其平均增加值最低偏量為0.0055mm,最高偏量為0.6448mm 。Y 軸方向的前7 組實驗每增加1mm,平均增加值差約1mm,而第8 組實驗由于有同學(xué)不小心撞了下桌子,導(dǎo)致該組平均數(shù)據(jù)增加了1.55mm,之后的兩組平均數(shù)據(jù)都增加約1.5mm。
X 軸與 Y 軸的標(biāo)準(zhǔn)差均控制在0.3mm 以內(nèi),旋轉(zhuǎn)臺的標(biāo)準(zhǔn)差小于2°,由于標(biāo)準(zhǔn)差都較小,可以認(rèn)為數(shù)據(jù)比較集中,說明該系統(tǒng)的魯棒性較強(參見圖5—圖 10)。
通過觀察 X 向與 Y 向的定位標(biāo)定曲線發(fā)現(xiàn),趨勢與工作臺實際位移基本相等。隨著距離的增加,非線性度增加,這是由相機的畸變所引起的。圖10由于縱坐標(biāo)刻度較大,并且每次轉(zhuǎn)動30°,其誤差不超過1.5°,因此兩條線近乎重疊。
通過對得到的實驗數(shù)據(jù)進行分析,最終得出結(jié)論:X 軸與 Y 軸的標(biāo)準(zhǔn)差均控制在0.3mm 以內(nèi),旋轉(zhuǎn)臺的標(biāo)準(zhǔn)差小于2°。開發(fā)的軟件基本滿足 X 向,Y 向定位精度(5cm)和角度定位精度(1°)。
5? 結(jié)論
良好的自主定位能力是實現(xiàn)掃地機器人進行室內(nèi)清潔的基礎(chǔ),本文針對以往定位方案的人工信標(biāo)識別效率低下且識別算法難等缺點,設(shè)計了一款基于色塊編碼的人工信標(biāo),并針對該信標(biāo)提出了快速識別方法。
主要完成了以下工作:在相機的安裝高度為11cm 時,通過標(biāo)準(zhǔn)圓得出像素坐標(biāo)與實際坐標(biāo)的標(biāo)定參數(shù);通過霍夫變換識別圓法,識別出各個圓,并利用斜率公式計算出相機與路標(biāo)間的夾角;通過設(shè)置閾值對圖像進行二值化;通過角度與標(biāo)定系數(shù)及像素返回函數(shù)得出各單元碼的像素返回值;利用編碼方式得出路標(biāo)編號,進而查詢位置庫通過坐標(biāo)變換,最終獲得相機的全局位姿;搭建實驗平臺,在室內(nèi)光照條件下實驗,得出相機相對于路標(biāo)平移時的最大誤差及標(biāo)準(zhǔn)差分別為0.6mm 和0.3mm 。相機相對于路標(biāo)旋轉(zhuǎn)時最大誤差及標(biāo)準(zhǔn)差分別為0.07°和1.56°。
參考文獻(xiàn):
[1] 羅元,邵帥,張毅.基于信息融合的移動機器人定位與路徑規(guī)劃[J].計算機應(yīng)用,2010,30(11):3091?3093+3096.
[2] 李鑫磊,潘陽紅,曾明峰,等.基于激光雷達(dá)定位系統(tǒng)的全自主移動機器人[J].科技創(chuàng)新,2020(19):91?92.
[3] 唐尚華.基于單目視覺與輪式里程計融合的移動機器人定位控制系統(tǒng)研究[D].成都:電子科技大學(xué),2019.
[4] 劉艷嬌,張云洲,榮磊,等.基于直接法與慣性測量單元融合的視覺里程計[J].機器人,2019,41(5):683?689.
[5] 劉康.室內(nèi)視覺定位與導(dǎo)航綜述[ J].黑龍江科技信息,2017(8):7.
[6] 王朝文.室內(nèi)移動機器人視覺定位導(dǎo)航系統(tǒng)研究[ D].成都:電子科技大學(xué),2018.
[7] 姬旭.基于單目視覺的移動機器人室內(nèi)定位方法研究[D].北京:北京郵電大學(xué),2017.
[8] 劉成成.基于人工路標(biāo)的室內(nèi)單目視覺定位方法研究[D].南通:南通大學(xué),2019.
作者簡介:
陳子舉(2000—) ,本科,研究方向:數(shù)字圖像處理。
王璐潔(2001— ),本科,研究方向:數(shù)字圖像處理(通信作者)。