陳仕勇
摘要:針對多機(jī)器人編隊控制中的定位問題,設(shè)計了一套基于固定攝像頭的單目二維多機(jī)器人定位系統(tǒng)。該定位系統(tǒng)通過垂直于工作平面的攝像頭獲取實時圖像信息,通過攝像機(jī)標(biāo)定算法校正圖像畸變,結(jié)合中值濾波和Roberts邊緣檢測算子采用基于RGB顏色空間模型的目標(biāo)跟蹤算法穩(wěn)定識別并跟蹤定位機(jī)器人,對獲取的數(shù)據(jù)進(jìn)行處理得到各個機(jī)器人高精度的速度、位置、方向等信息。最后,定位實驗驗證了本文設(shè)計的基于OpenCV的單目二維多機(jī)器人定位系統(tǒng)是有效的。
Abstract: Aiming at the positioning problem of multi robot formation control, a set of monocular two-dimensional multi robot positioning system based on fixed camera is designed. The positioning system obtains real-time image information through the camera perpendicular to the working plane, corrects image distortion through camera calibration algorithm, combines median filter and Roberts edge detection operator, uses the target tracking algorithm based on RGB color space model to identify and track the positioning robot stably, and processes the acquired data to obtain the high-precision speed, position of each robot direction and other information. Finally, the localization experiments show that the localization system based on OpenCV is effective.
關(guān)鍵詞:多機(jī)器人;定位系統(tǒng);目標(biāo)識別;OpenCV
Key words: multi robot;positioning system;target recognition;OpenCV
中圖分類號:TP391? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1006-4311(2020)20-0226-05
0? 引言
多機(jī)器人協(xié)調(diào)控制是機(jī)器人控制領(lǐng)域的重要課題之一[1-3]。目前,實驗室研究多機(jī)器人控制采用的定位方法主要是慣性傳感器算法、無線定位技術(shù)、超聲波定位、GPS定位、軌跡推算等方法[4-9],這些方法有的誤差會隨時間累積,有的精度太低,有的系統(tǒng)復(fù)雜成本較高,有的可靠性不足,這些傳統(tǒng)方法均不能很好的適應(yīng)實驗室環(huán)境定位需求。
OpenCV是開源的計算機(jī)視覺庫,它包含很多非常常用的算法,已經(jīng)廣泛應(yīng)用于對實時性要求較高的計算機(jī)視覺模式識別系統(tǒng)的開發(fā)[10,11]。OpenCV是開放C源碼的,具有統(tǒng)一的結(jié)構(gòu)和功能定義、強(qiáng)大的圖像和矩陣運算能力,也提供了方便靈活的用戶接口。本文提出了一種基于OpenCV計算視覺的單目二維定位方法。
1? 方案設(shè)計
1.1 實驗環(huán)境建立
為了能夠?qū)崿F(xiàn)對多機(jī)器人進(jìn)行跟蹤定位,實驗采用了單目二維視覺系統(tǒng)。對于單目二維視覺系統(tǒng),其攝像機(jī)(攝像頭)垂直于工作平面安裝,并建立兩個坐標(biāo)系。圖1是單目二維視覺系統(tǒng)的安裝示意圖。
實驗中考慮到成本等問題,沒有使用高端攝像機(jī)和全景攝像頭,而是選取了廉價的普通USB攝像頭作為圖像獲取的工具。移動機(jī)器人使用了四輪全向機(jī)器人。由于本系統(tǒng)采用RGB模型跟蹤機(jī)器人,如圖2所示用簡單的顏色來標(biāo)識機(jī)器人。
1.2 程序基本結(jié)構(gòu)
該系統(tǒng)定位等過程由計算機(jī)獨立進(jìn)行,主要進(jìn)行圖像獲取、校正圖像、中值濾波、基于RGB顏色空間模型跟蹤、輪廓檢測、數(shù)據(jù)處理等,如圖3所示。
2? 步驟及原理
2.1 攝像機(jī)標(biāo)定
攝像機(jī)成像可以簡單理解為小孔成像,理想中的透鏡成像應(yīng)該滿足小孔成像原理,實際上是沒有完美的透鏡的,所得到的圖像都有畸變。畸變將對定位精度產(chǎn)生嚴(yán)重影響,由于本文主要研究二維物體,所以選用了平面棋盤模式來標(biāo)定。在攝像機(jī)圖像中放置一個棋盤,用OpenCV函數(shù)cvFindChessboardCorners()來定位棋盤角點,cvCalibrateCamera2()得到畸變系數(shù),最后再用cvUndistort()函數(shù)來糾正圖像的形變,如圖4所示。攝像機(jī)標(biāo)定的程序流程如圖5。
2.2 中值濾波
圖像由于在產(chǎn)生、傳輸和存儲等過程中受到干擾,得到的圖像存在噪音。只有對這些噪音進(jìn)行處理,在實驗過程中能更好的分割和識別圖像。本文系統(tǒng)不僅要求濾波能減弱噪聲干擾,還需要保留物體清晰的輪廓,結(jié)合各種濾波的特點我們選用了中值濾波。中值濾波的主要功能是用與周圍像素比較接近的值代替與周圍像素灰度值相差比較大的像素。因此可以知道中值濾波是一種選擇性處理,而非線性運算,因而它能夠在消除噪聲的同時,對原圖像的非噪聲點影響較小,不會引起較大的模糊效應(yīng),對于圖像中不同特征區(qū)域不會使其邊緣模糊,是本系統(tǒng)一種比較理想的濾波器,濾波效果如圖6。
2.3 基于RGB顏色空間模型跟蹤
在計算機(jī)視覺中常用的跟蹤方法有背景差分法、特征點匹配法和Camshift跟蹤算法等,經(jīng)過分析對比各種方法的特點和實驗實際需求,我們創(chuàng)新性的提出了基于RGB顏色空間模型的跟蹤算法。RGB模型的優(yōu)點是顯而易見的,結(jié)構(gòu)簡單,幾乎適用于所有的圖像處理芯片。但是它的缺點也是十分明顯,例如對光照非常敏感,光的強(qiáng)度顏色等變化會導(dǎo)致分割的失敗??紤]到室內(nèi)光源顏色強(qiáng)度等穩(wěn)定性,經(jīng)過適當(dāng)處理可以滿足實驗需求。
在利用RGB模型實現(xiàn)多機(jī)器人跟蹤定位時,為了區(qū)分各個機(jī)器人我們?yōu)槊總€機(jī)器人選擇了不同的顏色來標(biāo)識該機(jī)器人。實現(xiàn)對機(jī)器人的跟蹤定位,就是實現(xiàn)對這些特定顏色標(biāo)記的跟蹤和定位。在實現(xiàn)過程中主要分為了機(jī)器人顏色信息提取、閉運算開、開運算。圖7是程序的流程圖。
2.3.1 機(jī)器人顏色信息提取
機(jī)器人顏色信息提取采用了閾值法?;驹硎牵菏紫韧ㄟ^現(xiàn)場人工標(biāo)定得到機(jī)器人的RGB顏色信息范圍,把這個范圍作為一個標(biāo)準(zhǔn),在程序運行時對每幀圖像的像素點進(jìn)行逐行掃描,判斷其RGB值是否在范圍內(nèi),在范圍內(nèi)則記錄下該點,不在則忽略。
設(shè)采集到的圖像為g1(x,y,r,g,b),人工標(biāo)定的RGB為(r∈(a1,a2),g∈(d1,d2),b∈(c1,c2)),通過閾值法得到的圖像為
g1(x,y,r,g,b)=
閾值法處理后,得到了二值圖如圖8。
在理想的實驗環(huán)境中,機(jī)器人運動的路線的光照強(qiáng)度都是恒定不變的我們得到的圖像的RGB值始終是一個恒定的值。但是,實際的環(huán)境的光照強(qiáng)度是隨著時間和位置的變化而不斷變化的,在機(jī)器人運動過程中機(jī)器人特定顏色的閾值也在不斷發(fā)生改變,這會造成提取機(jī)器人顏色信息失敗。為了解決這個問題,通常的做法是采用穩(wěn)定的人工光源。在本文中采用了自適應(yīng)閾值法。
自適應(yīng)閾值法的基本前提是光照強(qiáng)度的變化是連續(xù)緩慢不間斷的。它是在閾值法的基礎(chǔ)上使閾值隨著環(huán)境的變化不斷變化以適應(yīng)環(huán)境的變化?;驹硎牵?/p>
①通過人工標(biāo)定得到最初閾值。
②利用閾值法得到在這個閾值內(nèi)的所有特征顏色的RGB值,再計算出這些值的平均RGB值。
③用這個新值取代上一次的閾值。
④不斷重復(fù)②③步即可實現(xiàn)自適應(yīng)。
設(shè)人工標(biāo)定的閾值為f(r,g,b),特征點的值為g(r,g,b)得到的平均值為
則新得到的閾值為
f(r,g,b)=
2.3.2 開運算與閉運算
通過觀察圖8很容易發(fā)現(xiàn)閾值法到的二值圖存在“斑點”和目標(biāo)顏色區(qū)域提取不完整,這會影響輪廓檢測的準(zhǔn)確性和可靠性。采用閉運算和開運算可以很好的解決這些問題。開運算是先腐蝕再膨脹,閉運算是先膨脹再腐蝕。開運算和閉運算操作幾乎都是“保留區(qū)域”形式的:最顯著的效果是,閉運算消除了低于其鄰近點的孤立點,而開運算是消除高于其鄰近點的孤立點。在本文中先通過閉運算來消除二值圖中的斑點,然后用開運算來連接鄰近區(qū)域使提取的目標(biāo)顏色區(qū)域完整如圖9。
2.4 輪廓檢測
每種輪廓檢測方法都有優(yōu)點和缺點。在實驗中,輪廓檢測之前圖像已經(jīng)做了很多處理,輪廓檢測需要做的工作很少,只需要在二值化圖像中找到目標(biāo)輪廓即可。Roberts邊緣檢測算子計算量小、速度快,但是該方法對多種噪聲敏感僅適用于干擾較少并且邊緣明顯的圖像處理。實驗中得到的二值化圖像沒有噪聲并且邊緣明顯,Roberts邊緣檢測算子無疑是最優(yōu)的方法。圖10是用OpenCV實現(xiàn)輪廓檢測實現(xiàn)的子程序的主要流程圖。
圖11(a)是通過RGB空間模型和濾波處理得到的圖像,圖(b)是以O(shè)penCV提供的函數(shù)利用Roberts算法得到機(jī)器人上標(biāo)識輪廓用橢圓趨近的圖像。大小圓的圓心就是我們實驗得到的最基本的數(shù)據(jù)。
3? 實驗分析
為了驗證本系統(tǒng)的定位的精度、實時性和通用性,本文針對多輪移動全向機(jī)器人,在室內(nèi)環(huán)境下完成了定位實驗。在實驗中采用了具有編碼器的四輪全向機(jī)器人,在室內(nèi)按照一定的路徑行駛。可以得到機(jī)器人實際的位置軌跡信息和攝像頭的位置軌跡信息。通過Matlab畫出了軌跡圖,圖12是機(jī)器人走直線的軌跡圖,其中點畫線是系統(tǒng)測得軌跡,直線是實際軌跡。
為了驗證系統(tǒng)能否對多機(jī)器人跟蹤定位得到多個機(jī)器人的狀態(tài)信息,本文在室內(nèi)環(huán)境下完成了多機(jī)器人的跟蹤定位實驗。在多機(jī)器人的跟蹤定位實驗中使用了四個全向機(jī)器人如圖13(a),分別選用了紅、黃、藍(lán)、綠四種顏色作為機(jī)器人的標(biāo)識色。通過RGB模型閾值法把四個不同機(jī)器人分割了出來,得到了噪聲較少清晰的二值圖如圖13(b),對二值圖進(jìn)行開閉運算處理得到了沒有噪聲的完整目標(biāo)圖像,最后對處理后的圖像進(jìn)行輪廓檢測如圖13(c)得到了各個機(jī)器人的狀態(tài)信息,為了便于分析研究實時畫出了機(jī)器人的軌跡圖如圖13(d)。
4? 結(jié)論
針對實驗室環(huán)境下的多機(jī)器人編隊研究,本文提出了一種基于OpenCV的單目二維定位方法。針對多個機(jī)器人定位對實時性的要求,采用簡單的RGB模型避免了大量運算。為了提高算法的魯棒性,采用了紅、綠、藍(lán)、黃、青(藍(lán)綠色)、品紅(紫色)作為標(biāo)識色。在提取目標(biāo)位置信息時直接采用輪廓檢測橢圓逼近的方法,在避免了大量復(fù)雜運算的同時又得到了高精度的目標(biāo)信息。
參考文獻(xiàn):
[1]查延麟.多移動機(jī)器人系統(tǒng)協(xié)調(diào)控制算法設(shè)計[J].電子設(shè)計工程,2018,26(24):23-26,31.
[2]潘建龍.多機(jī)器人協(xié)作系統(tǒng)運動規(guī)劃及位置力協(xié)調(diào)控制研究[D].東南大學(xué),2018.
[3]劉瑞軒.多水下機(jī)器人協(xié)調(diào)控制研究[D].江蘇科技大學(xué),2018.
[4]連黎明.基于多信息融合的移動機(jī)器人定位算法[J].西南師范大學(xué)學(xué)報(自然科學(xué)版),2019,44(09):89-95.
[5]劉紅林,凌有鑄,陳孟元.基于JSD自適應(yīng)粒子濾波的移動機(jī)器人定位算法[J].安徽工程大學(xué)學(xué)報,2019,34(04):56-62.
[6]張一博,馬磊.基于視覺傳感器的移動機(jī)器人定位算法[J].傳感器與微系統(tǒng),2019,38(06):137-139,143.
[7]彭冬旭.基于單目視覺的機(jī)器人定位算法研究[D].安徽工業(yè)大學(xué),2019.
[8]陳慶武,張志安,何雨,韓明明,黃學(xué)功.基于改進(jìn)擴(kuò)展卡爾曼濾波算法的移動機(jī)器人定位方法研究[J].測試技術(shù)學(xué)報,2018,32(04):292-299.
[9]李振雨,王好臣,丁兆勇,王功亮.基于神經(jīng)網(wǎng)絡(luò)算法的機(jī)器人定位技術(shù)研究[J].機(jī)床與液壓,2018,46(15):84-87.
[10]劉新澤,劉靖宇,杜智文,鈕楊潔,丁建鑫.基于OpenCV的視覺定位四旋翼無人機(jī)[J].福建電腦,2019,35(04):97-98.
[11]楊芳.基于OpenCV的雙目視覺系統(tǒng)目標(biāo)定位與測距方法研究[D].寧夏大學(xué),2018.