邱鵬瑞,劉 筠,劉 聰
(1.昆明理工大學(xué) 國(guó)土資源工程學(xué)院,云南 昆明 650093;2.昆明冶金高等專(zhuān)科學(xué)校 實(shí)訓(xùn)處,云南 昆明 650033;3.昆明冶金高等專(zhuān)科學(xué)校 礦業(yè)學(xué)院,云南 昆明 650033)
無(wú)人機(jī)(unmanned aerial vehicle)是一種沒(méi)有駕駛?cè)藛T的飛行器,它利用機(jī)載的飛行控制系統(tǒng)和航電系統(tǒng),按照系統(tǒng)預(yù)設(shè)的程序自主飛行或者有地面人員進(jìn)行操控飛行[1].四旋翼無(wú)人機(jī)是無(wú)人機(jī)的一種重要類(lèi)型,四旋翼有4個(gè)螺旋槳,且機(jī)架呈現(xiàn)交叉垂直結(jié)構(gòu),通過(guò)4個(gè)旋翼的轉(zhuǎn)速來(lái)實(shí)現(xiàn)機(jī)體的姿態(tài)與位置改變.近年來(lái),隨著傳感器技術(shù)、微機(jī)電、微慣導(dǎo)和新型材料技術(shù)的發(fā)展,四旋翼無(wú)人機(jī)朝著高度自主與智能化的方向發(fā)展[2].而自主飛行與智能飛行的前置核心技術(shù)是導(dǎo)航技術(shù).目前,傳統(tǒng)的導(dǎo)航技術(shù)有GPS導(dǎo)航、慣性導(dǎo)航、激光雷達(dá)導(dǎo)航、無(wú)線電導(dǎo)航和紅外導(dǎo)航等,GPS導(dǎo)航在室內(nèi)等特殊環(huán)境下,位置信息容易丟失,慣性導(dǎo)航由于定位誤差的累加會(huì)導(dǎo)致定位精度下降,激光雷達(dá)導(dǎo)航由于不斷發(fā)射信號(hào)使得隱蔽性較差,無(wú)線電導(dǎo)航存在信號(hào)強(qiáng)度導(dǎo)致定位不精確問(wèn)題,紅外導(dǎo)航受光照影響較大[3-4].相較于以上幾種導(dǎo)航方式,基于視覺(jué)的無(wú)人機(jī)自主飛行是一種比較新穎的導(dǎo)航方式,同時(shí)還有圖像采集方式可靠安全、應(yīng)用方式多樣、采集功耗低、估計(jì)精度高的優(yōu)點(diǎn),特別是在某些GPS信號(hào)容易受損丟失的環(huán)境,視覺(jué)自主飛行成為視覺(jué)反饋導(dǎo)航和微型飛行器交叉學(xué)科研究熱點(diǎn).四旋翼無(wú)人機(jī)視覺(jué)導(dǎo)航自主著陸是在四旋翼無(wú)人機(jī)的飛行過(guò)程中,通過(guò)視覺(jué)傳感器獲取圖像信息,并對(duì)圖像信息進(jìn)行分析、理解后,解算運(yùn)動(dòng)狀態(tài)及運(yùn)動(dòng)目標(biāo)位置信息來(lái)賦予無(wú)人機(jī)自主功能的應(yīng)用.本文基于Pixhawk開(kāi)源飛控和mavros技術(shù),以NVIDIA TX2為機(jī)載圖像處理上位機(jī)結(jié)合Opencv視覺(jué)庫(kù)實(shí)現(xiàn)基于單目機(jī)器視覺(jué)的四旋翼無(wú)人機(jī)定點(diǎn)著陸系統(tǒng).
系統(tǒng)架構(gòu)在設(shè)計(jì)時(shí)要考慮到四旋翼無(wú)人機(jī)載重量小的特點(diǎn),對(duì)機(jī)載相關(guān)設(shè)備、飛控和各類(lèi)傳感器如攝像頭等都有一定的限制,系統(tǒng)研究需要四旋翼無(wú)人機(jī)進(jìn)行視覺(jué)算法處理并實(shí)時(shí)解算,這就要求攝像頭選取時(shí),視角、重量和清晰度達(dá)到要求,同時(shí)用于處理視覺(jué)算法的機(jī)載電腦符合圖像處理能力強(qiáng)和重量輕等特點(diǎn).本文設(shè)計(jì)的單目視覺(jué)自主著陸系統(tǒng)架構(gòu)如圖1所示.完整的四旋翼無(wú)人機(jī)硬件系統(tǒng)由機(jī)架、飛控、電調(diào)、電機(jī)、遙控器、地面站及視覺(jué)處理相關(guān)傳感器如攝像頭、超聲波傳感器和視覺(jué)處理機(jī)載電腦組成.本研究采用的飛控是開(kāi)源的Pixhawk飛控,它是四旋翼無(wú)人機(jī)的核心器件,飛控主要實(shí)現(xiàn)飛行數(shù)據(jù)采集、姿態(tài)解算、位置解算以及飛行控制與導(dǎo)航.機(jī)載攝像頭模塊是視覺(jué)自主降落所采集數(shù)據(jù)的源頭,本系統(tǒng)采用200萬(wàn)像素高清低照度USB單目攝像頭,攝像頭 3.6 mm 焦距,90°視角.攝像頭采集的著陸標(biāo)識(shí)數(shù)據(jù)經(jīng)TX2視覺(jué)處理板進(jìn)行視覺(jué)處理后,將飛控命令發(fā)送至飛控版,控制無(wú)人機(jī)實(shí)現(xiàn)自主降落.
自主著陸系統(tǒng)的搭建,其首要任務(wù)是完成著陸地標(biāo)設(shè)計(jì)[5].著陸圖標(biāo)按識(shí)別特征種類(lèi)進(jìn)行劃分,可以分為:曲線特征、直線特征和點(diǎn)特征,不同種類(lèi)的著陸圖標(biāo)有著不同的優(yōu)缺點(diǎn).著陸標(biāo)識(shí)的數(shù)據(jù)信息由攝像頭捕獲后需進(jìn)行圖像處理和識(shí)別,因此標(biāo)識(shí)的設(shè)計(jì)要盡量簡(jiǎn)單,規(guī)避復(fù)雜的模式識(shí)別處理以減少運(yùn)算量,標(biāo)識(shí)盡量具備區(qū)別于其他地物的特征并包含有無(wú)人機(jī)著陸位姿解算所需的基本信息,同時(shí)由于無(wú)人機(jī)單目視覺(jué)的視野范圍有限,著陸標(biāo)識(shí)存在識(shí)別不全可能,此時(shí)著陸標(biāo)識(shí)需具有分級(jí)特性.在圖像識(shí)別中,圓形能夠較快的確定中心點(diǎn),但在具體實(shí)踐中圓形在自然界也較容易被誤判,本研究的著陸標(biāo)識(shí)采用黑白相間的分級(jí)地標(biāo),如圖2所示,標(biāo)識(shí)的內(nèi)外輪廓為正方形且面積比值為固定值,黑白相間的正方形標(biāo)識(shí)由小到大逐級(jí)嵌套,灰度差值大,便于閾值分割,同時(shí),內(nèi)外輪廓固定比值對(duì)地標(biāo)級(jí)數(shù)可以實(shí)現(xiàn)唯一識(shí)別.
攝像頭獲取的著陸標(biāo)記圖像采用大津動(dòng)態(tài)閾值法進(jìn)行二值化,該方法由日本的大津展之[6]提出,方法是通過(guò)閾值將圖像分割為2個(gè)組別,一個(gè)組灰度對(duì)應(yīng)目標(biāo),另一個(gè)組灰度對(duì)應(yīng)背景,那么這2個(gè)組的灰度值的類(lèi)間方差最大,類(lèi)內(nèi)方差最小.具體方法假設(shè)圖像由背景和待識(shí)別物體構(gòu)成,背景和物體的灰度值不同,設(shè)原圖的灰度等級(jí)為1~m級(jí),在灰度等級(jí)k處進(jìn)行分組,C0={1~k}和C1={(k+1)~m},對(duì)2個(gè)組產(chǎn)生的概率ω0和ω1進(jìn)行計(jì)算,組內(nèi)的灰度平均值用μ0和μ1表示,圖像整體灰度平均值用μ表示,2組間方差可用下式表示:
δ2(k)=ω0(μ0-μ)2+ω1(μ1-μ)2,
(1)
δ2(k)=ω0ω1(μ1-μ0)2,
(2)
δ2(k)=[μω(k)-μ(k)]2/ω(k)[1-ω(k)].
(3)
δ2(k)為閾值選擇函數(shù),灰度k由1~m級(jí)取值,并求得上式最大值的k便得到所求閾值,該方法在圖像的直方圖無(wú)明顯峰值時(shí)能取得較好的效果.
完成圖像二值化后,接下來(lái)對(duì)著陸標(biāo)記進(jìn)行圖像處理即輪廓提取,具體采用OpenCV的函數(shù)庫(kù)來(lái)實(shí)現(xiàn).OpenCV函數(shù)庫(kù)是針對(duì)計(jì)算機(jī)視覺(jué)的開(kāi)源函數(shù)庫(kù),由C/C++語(yǔ)言編寫(xiě)能夠運(yùn)行于Windows、Linux和Mac OS操作系統(tǒng)上,并提供有Matlab、Ruby、Python等語(yǔ)言的接口.研究以TX2為圖像處理機(jī)載上位機(jī),調(diào)用OpenCV的cvFindContours進(jìn)行輪廓提取,然后用cvApproxPloly函數(shù)對(duì)提取的輪廓多邊形近似,并遍歷四條邊且面積較大輪廓判斷為矩形,完成矩形檢測(cè).之后,進(jìn)行矩形聚類(lèi)處理,即將矩形分類(lèi)后,將中心點(diǎn)近似重合的矩形歸為一類(lèi),然后判定矩形數(shù)量最多的聚類(lèi)為著陸點(diǎn)目標(biāo),具體實(shí)現(xiàn)效果如圖3所示的著陸目標(biāo)A和著陸目標(biāo)B檢測(cè)效果.
位姿估計(jì)通常使用PnP估計(jì)方法,但PnP主要是針對(duì)點(diǎn)的估計(jì),本研究設(shè)定地標(biāo)的特征角點(diǎn)較少,因此使用面積來(lái)對(duì)相對(duì)位置進(jìn)行估計(jì).根據(jù)圖像平面坐標(biāo)與攝像機(jī)平面坐標(biāo)關(guān)系[7],如式(4)和式(5):
zc×Puv=K×Pc.
(4)
(5)
其中,K在張正友經(jīng)典標(biāo)定法中為相機(jī)內(nèi)參數(shù)[8],Puv=(uv1)T為圖像平面坐標(biāo),Pc=(xcyczc)T為相機(jī)平面坐標(biāo),fx和fy為焦距f在x,y方向上的像素度量表示.在無(wú)人機(jī)自主著陸過(guò)程中,機(jī)體存在發(fā)生震動(dòng)導(dǎo)致橫滾角和俯仰角輕微震動(dòng)可能,在此先假設(shè)機(jī)體無(wú)橫滾和俯仰,根據(jù)圖4,可先做如下推導(dǎo):
AB2=(xA-xB)2+(yA-yB)2
(6)
(7)
(8)
(9)
由于之前假設(shè)的情況是在地標(biāo)平面與相機(jī)平面平行時(shí)候才成立,此時(shí)根據(jù)式(10)的仿射變換可以算出xc和yc從而確定位置坐標(biāo),式中θ為機(jī)體的俯仰角,φ為機(jī)體的橫滾角:
(10)
在獲得位姿數(shù)據(jù)后,根據(jù)相對(duì)位置結(jié)合Pixhawk的飛控源碼,通過(guò)速度控制,視覺(jué)伺服的方式控制無(wú)人機(jī)飛行并逐漸逼近目標(biāo)點(diǎn),最后完成自主著陸.
實(shí)際測(cè)試中,四旋翼旋翼無(wú)人機(jī)在地標(biāo)高度7 m左右開(kāi)啟視覺(jué)著陸功能,通過(guò)TX2識(shí)別地標(biāo)解算得到機(jī)體位姿并將控制信號(hào)通過(guò)mavros發(fā)送至飛控來(lái)控制機(jī)體降落.實(shí)驗(yàn)采用開(kāi)源的Gazebo模擬器和OpenCV視覺(jué)庫(kù)進(jìn)行仿真,實(shí)驗(yàn)采集逐漸降低高度圖像4組,每組分別采集4個(gè)不同位姿圖像,視覺(jué)位姿估計(jì)實(shí)驗(yàn)數(shù)據(jù)見(jiàn)下表,隨著陸高度降低位姿估計(jì)精度升高,位置估計(jì)誤差控制在 30 mm.實(shí)驗(yàn)數(shù)據(jù)分析后可知機(jī)體飛行高度較高時(shí),由機(jī)體震動(dòng)導(dǎo)致的微小傾斜會(huì)導(dǎo)致拍攝區(qū)不規(guī)則漂移,位置誤差大,影響位姿控制效果,而隨著機(jī)體與著陸平臺(tái)不斷逼近,采樣圖像量化為數(shù)字圖像存在的量化誤差穩(wěn)定且逐漸減小,位姿誤差均減小到可控范圍.經(jīng)多次室外實(shí)驗(yàn),機(jī)體工作穩(wěn)定,系統(tǒng)各部件供電及功能正常,飛控視覺(jué)處理基本能滿(mǎn)足降落時(shí)延需求.
表1 視覺(jué)位姿估計(jì)對(duì)比數(shù)據(jù)
本文以四旋翼無(wú)人機(jī)為飛行平臺(tái)對(duì)基于視覺(jué)的無(wú)人機(jī)位姿估計(jì)與自主著陸進(jìn)行了研究,系統(tǒng)采用Pixhawk開(kāi)源飛控進(jìn)行無(wú)人機(jī)飛行控制,設(shè)計(jì)了黑白相間的正方形分級(jí)地標(biāo),并通過(guò)單目攝像頭采集圖像數(shù)據(jù)輸入機(jī)載圖像處理上位機(jī)NVIDIA TX2中進(jìn)行視覺(jué)圖像處理,結(jié)合OpenCV函數(shù)庫(kù)功能完成地標(biāo)檢測(cè)識(shí)別,最終通過(guò)mavros完成位姿估計(jì)與著陸控制.經(jīng)實(shí)驗(yàn)驗(yàn)證,研究實(shí)現(xiàn)了無(wú)人機(jī)對(duì)定點(diǎn)地標(biāo)的識(shí)別和著陸控制指令生成,系統(tǒng)設(shè)計(jì)簡(jiǎn)單,運(yùn)行高效,工作穩(wěn)定.鑒于研究局限性,系統(tǒng)在采集圖像到最終生成導(dǎo)航數(shù)據(jù)的平均時(shí)耗雖能滿(mǎn)足自主著陸要求,但相對(duì)于多傳感器組合導(dǎo)航系統(tǒng),實(shí)時(shí)性仍有待提高.