王家亮 ,董 楷 ,,顧兆軍 ,陳 輝 ,,韓 強(qiáng) ,
(1.中國民航大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,天津 300300;2.中國民航大學(xué)信息安全測評中心,天津 300300)
隨著無人機(jī)技術(shù)發(fā)展,四軸飛行器作為典型無人機(jī)應(yīng)用越來越廣泛.四軸飛行器在攝影航拍、農(nóng)業(yè)植保、軍事偵察、搜索救援、物流運(yùn)輸?shù)阮I(lǐng)域有著重要應(yīng)用價值.小型無人機(jī)由于具有成本低、飛行靈活等特點(diǎn),在交通運(yùn)輸領(lǐng)域的橋梁道路檢測、輔助交通指揮、交通監(jiān)控中有著較大的應(yīng)用優(yōu)勢.無人機(jī)自主避障是無人機(jī)飛行使用過程中最為基礎(chǔ)和關(guān)鍵的技術(shù),因此,無人機(jī)自主避障技術(shù)成為研究熱點(diǎn).
四軸飛行器主要避障方法可以根據(jù)所使用的傳感器進(jìn)行分類,常見用于避障的傳感器主要有紅外傳感器、激光傳感器、超聲波傳感器和視覺傳感器等,利用上述傳感器獲取四軸飛行器與環(huán)境之間的距離信息.如林立雄等[1]提出一種利用激光傳感器獲取位置信息并改進(jìn)人工勢場的局部實(shí)時避障算法,解決無人機(jī)跟蹤目標(biāo)時避障問題;王梓豪等[2]提出一種基于單目視覺融合多傳感器實(shí)現(xiàn)無人機(jī)集群穿越障礙的技術(shù),在低精度GPS 條件下,利用視覺定位與激光雷達(dá)等驗(yàn)證在室外穿越障礙的可行性;Wang 等[3]利用激光傳感器測量距離,并采用人工勢場的方法完成飛行器室內(nèi)避障.
基于視覺傳感器的避障方法主要是結(jié)合圖像處理與深度學(xué)習(xí)等技術(shù)處理無人機(jī)采集的圖像,計(jì)算飛行器與障礙物之間的距離遠(yuǎn)近關(guān)系,再進(jìn)行路徑規(guī)劃以躲避障礙物.如運(yùn)用圖像處理技術(shù)中的光流法計(jì)算不同障礙物之間的相對遠(yuǎn)近關(guān)系.張小東等[4]提出基于徑向光流的單目視覺自主實(shí)時障礙物檢測方法,解決無人機(jī)在室外復(fù)雜環(huán)境下,傳統(tǒng)金字塔LK(Lucas-Kanade)光流法檢測障礙物準(zhǔn)確性不高、適應(yīng)性差的問題.付強(qiáng)等[5]提出一種運(yùn)用稠密光流法,計(jì)算視頻幀的光流場,將光流信息作為輸入量,并設(shè)計(jì)模糊避障控制器的撲翼飛行器避障方法.Huang 等[6]提出一種利用雙目視覺傳感器并基于圖像特征點(diǎn)提取的障礙物測距方法,優(yōu)化雙目視覺測距,并建立距離估計(jì)模型.Lin 等[7]提出基于視覺的四軸飛行器自主導(dǎo)航算法,在飛行器飛行過程中利用光流信息檢測障礙物并進(jìn)行躲避.Dai 等[8]以卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為預(yù)測機(jī)制,利用無人機(jī)單目攝像頭在室內(nèi)或者室外未知環(huán)境中自主避障.張午陽等[9]基于深度學(xué)習(xí),利用目標(biāo)檢測框選出的目標(biāo)上下邊距的長度估計(jì)障礙物與無人機(jī)之間的距離,再根據(jù)距離判斷是否進(jìn)行避障,實(shí)現(xiàn)了對人避障.Fu 等[10]提出基于雙目視覺的自動避障方法,采用基于深度學(xué)習(xí)的單次多框檢測器(SSD)對圖像中的障礙物進(jìn)行檢測,完成撲翼飛行器避障.關(guān)震宇等[11]提出一種基于Dubins 路徑無人機(jī)實(shí)時避障算法,在已知障礙物情況下進(jìn)行路徑規(guī)劃,并能夠在未知障礙物信息環(huán)境中完成實(shí)時避障.李樾等[12]采用傳統(tǒng)速度障礙法,建立三維機(jī)動障礙的模型,設(shè)定系統(tǒng)遇障時的通行法則,將三維環(huán)境離散為多個障礙平面,通過障礙平面解決速度障礙法難以處理的三維避障問題.郭行等[13]將動態(tài)障礙威脅、控制約束、終端約束等分解處理,設(shè)計(jì)初始軌跡、規(guī)避軌跡、優(yōu)化軌跡以使最終飛行軌跡具備近似最優(yōu)特性,并保證動態(tài)避障和滿足各種約束.Huang 等[14]融合雷達(dá)與單目攝像頭的數(shù)據(jù)信息并改進(jìn)A* 算法,提高了飛行器在農(nóng)田中的避障能力.Lee等[15]使用Faster R-CNN(faster region-based convolutional neural network)估計(jì)障礙物與飛行器之間的距離,解決單目視覺距離信息問題,實(shí)現(xiàn)了單目飛行器在室外環(huán)境中避障.Ou 等[16]提出一種基于深度學(xué)習(xí)的四軸飛行器自主避障算法,采用非監(jiān)督方式從攝像機(jī)圖像中提取深度信息,并利用Q 學(xué)習(xí)提高避障能力.張香竹等[17]提出一種利用單目深度估計(jì)和目標(biāo)檢測的四軸飛行器避障算法,利用單目深度估計(jì)模型與目標(biāo)檢測模型獲得圖像的深度信息與障礙物位置信息進(jìn)行避障.Wang等[18]利用深度相機(jī)與深度學(xué)習(xí)技術(shù),通過目標(biāo)識別算法將識別結(jié)果映射到深度圖上,提高障礙物識別準(zhǔn)確率.
以上文獻(xiàn)通過采用雷達(dá)、激光測距儀、雙目攝像頭等傳感器在已知或未知的環(huán)境中識別并躲避障礙物,相比于使用其他傳感器避障,單目視覺傳感器具有結(jié)構(gòu)簡單、價格較低和應(yīng)用范圍廣的優(yōu)點(diǎn),本文針對單目四軸飛行器,從求解圖像幀中安全避障域角度解決自主避障問題.角點(diǎn)包含圖像中重要的結(jié)構(gòu)信息,可有效地作為圖像中的特征點(diǎn)或關(guān)鍵點(diǎn),通過葛立恒(Graham)算法遍歷該區(qū)域內(nèi)的角點(diǎn),識別障礙物區(qū)域.因此,本文提出基于角點(diǎn)聚類與Graham 算法的障礙物區(qū)域識別方法,采用極大化思想[19]求解安全避障域.在無人機(jī)避障飛行時,較為準(zhǔn)確地識別安全區(qū)域完成自主避障,提高四軸飛行器自主避障能力.
四軸飛行器是一種典型的結(jié)構(gòu)簡單、可垂直起降的多旋翼無人機(jī),從結(jié)構(gòu)上可以分為“ × ”型和“+”型,如圖1 所示.四軸飛行器對角線上旋翼旋轉(zhuǎn)方向相同,另一組對角線上旋翼旋轉(zhuǎn)方向相反,相互抵消飛行時旋翼產(chǎn)生的反扭矩力.四軸飛行器通過電機(jī)帶動旋翼產(chǎn)生升力進(jìn)行飛行.本文采用“ × ”型結(jié)構(gòu)四軸飛行器.飛行器機(jī)體坐標(biāo)系原點(diǎn)在飛行器重心,x、y軸分別為四軸飛行器所在水平面的機(jī)頭方向、重心指向的左側(cè),用右手定則確定z軸方向.四軸飛行器的飛行姿態(tài)分別用俯仰角θ、滾動角?、偏航角ψ描述.其中,θ為機(jī)體軸(沿x軸機(jī)頭方向)與地平面(水平面)之間的夾角,飛行器抬頭時,θ為正,否則為負(fù);?為飛行器繞前后軸線(x軸)轉(zhuǎn)動的角度,機(jī)體向右滾時為正,反之為負(fù);ψ為實(shí)際航向與計(jì)劃航向之間的夾角,向右偏航為正.本文對無人機(jī)采集到的圖像進(jìn)行處理,得到四軸飛行器避障指令,根據(jù)指令與無人機(jī)動力模型調(diào)整俯仰角、滾動角、偏航角,使無人機(jī)完成避障.
通過調(diào)整4 個電機(jī)的速度改變四軸飛行器4 個旋翼產(chǎn)生的升力差,從而改變3 個角度,并控制飛行器起飛、懸停、前進(jìn)后退和轉(zhuǎn)彎偏航等動作.飛行器合外氣動力矩為
式中:l為旋翼中心與飛行器中心的距離;μ為阻力系數(shù);Γr為第r個旋翼產(chǎn)生的升力,r=1,2,3,4;ωr為第r個旋翼轉(zhuǎn)速.
四軸飛行器總升力 Γ、飛行器合外氣動力矩τ和旋翼轉(zhuǎn)速ωr的關(guān)系如式(2)所示.
式中:λ 為常數(shù).
無人機(jī)避障過程第一步為環(huán)境感知,即識別障礙物區(qū)域,本文設(shè)計(jì)的基于角點(diǎn)聚類與Graham 掃描的障礙物識別算法流程如圖2 所示.首先,運(yùn)用Shi-Tomasi 算法計(jì)算圖像幀中的角點(diǎn);然后,運(yùn)用LK 光流法計(jì)算該角處的光流,根據(jù)距離攝像頭近處光流大、距離攝像頭遠(yuǎn)處光流小的特點(diǎn),剔除一些距離較遠(yuǎn)的角點(diǎn),再將剔除后的角點(diǎn)進(jìn)行聚類;最后,用Graham 掃描算法得到每組點(diǎn)的外包輪廓作為障礙物輪廓.
圖2 障礙物識別流程Fig.2 Flow chart of obstacle recognition
LK 光流算法是一種基于兩幀差分的光流估計(jì)算法,光流包含著物體的運(yùn)動信息,反映四軸飛行器與障礙物之間的相對運(yùn)動.該算法基于3 個假設(shè):1)亮度恒定,即對于相近的兩幀圖像運(yùn)動目標(biāo)的灰度值不變;2)時間連續(xù)性,運(yùn)動目標(biāo)在幀間對應(yīng)的像素點(diǎn)位移較??;3)空間一致性,因?yàn)橄噜忺c(diǎn)運(yùn)動相似,所以對于前后兩幀圖像中相鄰點(diǎn)保持相鄰.根據(jù)LK 光流法可以得到點(diǎn) (x,y) 處光流為
式中:(Ixi,Iyi,Iti) 為圖像第i個像素點(diǎn)在(x,y,t)(點(diǎn)(x,y)在時刻t處)的梯度.
由于無人機(jī)避障實(shí)時性,應(yīng)避免在圖像幀每個像素點(diǎn)計(jì)算光流花費(fèi)大量時間,對視頻流中相近的兩幀圖像運(yùn)用Shi-Tomasi 算法與LK 光流法計(jì)算圖像角點(diǎn)處光流,并判斷障礙物的位置和大小.根據(jù)距離近的障礙物角點(diǎn)光流較大、距離遠(yuǎn)的障礙物角點(diǎn)光流較小的性質(zhì),設(shè)置合適的閾值f,剔除光流小于f的點(diǎn),即相對于四軸飛行器較遠(yuǎn)的點(diǎn).圖3 為光流f取不同值時的實(shí)驗(yàn)效果.
圖3 障礙物角點(diǎn)識別效果Fig.3 Effect of obstacle corner point recognition
當(dāng)光流值f=1 像素時,算法同時識別出近處與遠(yuǎn)處障礙物角點(diǎn),在計(jì)算障礙物輪廓時,會導(dǎo)致安全避障域計(jì)算錯誤;當(dāng)光流值f=4 像素時,近處障礙物的角點(diǎn)被識別出來,而遠(yuǎn)處障礙物的角點(diǎn)被剔除,效果較好;當(dāng)光流值f=8 像素時,無法識別出障礙物的角點(diǎn),四軸飛行器無法避障.因此,根據(jù)實(shí)驗(yàn)結(jié)果,本文選取閾值f=4 像素.
識別算法
首先,根據(jù)經(jīng)過剔除后角點(diǎn)間的距離對角點(diǎn)進(jìn)行聚類,使得距離相近的角點(diǎn)分為一組,然后通過Graham 掃描算法計(jì)算每組角點(diǎn)的外包輪廓,計(jì)算出的外包輪廓即為障礙物區(qū)域輪廓.
角點(diǎn)聚類時,首先計(jì)算角點(diǎn)之間的距離并設(shè)置閾值d,使得角點(diǎn)之間距離小于d的聚為一類;然后,剔除角點(diǎn)個數(shù)小于3 的組.
分組后對每組角點(diǎn)使用Graham 掃描算法計(jì)算輪廓,具體步驟如下:
步驟1選取圖像幀中最下方的角點(diǎn)作為原點(diǎn)P0.
步驟2計(jì)算各個角點(diǎn)相對于P0的幅角,按從小到大的順序?qū)Ω鱾€點(diǎn)排序,排序?yàn)镻0、P1、…、Pn.
步驟3P0、P1入棧,將P0作為前點(diǎn)、P1為當(dāng)前點(diǎn)、P2為判斷點(diǎn).
步驟4直線L為棧頂?shù)? 個點(diǎn)連線.判斷點(diǎn)如果在直線的右側(cè),執(zhí)行步驟5;如果在直線上或者直線的左側(cè),執(zhí)行步驟6.
步驟5如果棧頂?shù)脑夭皇钦系K物輪廓上的點(diǎn),則將棧頂元素出棧,執(zhí)行步驟4.
步驟6把判斷點(diǎn)壓入棧,執(zhí)行步驟7.
步驟7如果棧頂元素是Pn,結(jié)束掃描;否則,將下個點(diǎn)作判斷點(diǎn),返回步驟4.
在四軸飛行器前避障區(qū)域(3 m)時,確定最小安全通過區(qū)域在四軸飛行器拍攝圖像中的對應(yīng)像素位置 (x1,y1) 與 (x2,y2),根據(jù)公式d=(x1,y1)2-(x2,y2)2得到參數(shù)d的最小值.通過在不同場景的實(shí)驗(yàn)選取滿足條件的參數(shù)d的值,使得不同大小的障礙物(椅子、大小不同的紙箱、垃圾桶、路障等)都得到合理的障礙物輪廓,因此,參數(shù)d適用于多個場景.圖4為角點(diǎn)之間距離d取不同值時,用Graham 掃描算法識別出障礙物輪廓的實(shí)驗(yàn)效果,藍(lán)色框?yàn)橄到y(tǒng)終端識別出的障礙物區(qū)域,余圖同.
圖4 障礙物輪廓識別效果Fig.4 Recognition effect of obstacle contour
當(dāng)d=180 時,對于較大的障礙物無法計(jì)算出完整輪廓;當(dāng)d=280 時,識別出近處障礙物完整輪廓;當(dāng)d=400 時,幾個障礙物被認(rèn)作為一個而得到錯誤的障礙物輪廓.因此,根據(jù)實(shí)驗(yàn)結(jié)果,本文選取閾值d=280.
為控制四軸飛行器躲避障礙物,需要在采集的圖像幀上計(jì)算可通行區(qū)域.將不包含障礙物且面積最大的矩形區(qū)域認(rèn)為是最優(yōu)通行區(qū)域.通過分析圖像幀計(jì)算最優(yōu)通行區(qū)域,然后控制四軸飛行器經(jīng)過最優(yōu)通行區(qū)域,躲避障礙物.
本文系統(tǒng)結(jié)構(gòu)如圖5,算法運(yùn)行流程如下:
步驟1系統(tǒng)初始化.系統(tǒng)通過WiFi 與四軸飛行器建立連接,接收四軸飛行器拍攝的視頻流信息,然后讀取圖像幀進(jìn)行處理.
步驟2基于角點(diǎn)聚類與Graham 掃描的障礙物識別算法.首先,運(yùn)用LK 光流法計(jì)算圖像幀中角點(diǎn)處光流,并根據(jù)光流的特征剔除距離四軸飛行器較遠(yuǎn)的點(diǎn),然后對角點(diǎn)聚類,運(yùn)用Graham 算法找到每組點(diǎn)的外包輪廓.
步驟3基于極大化思想的安全避障域算法.根據(jù)障礙物輪廓在已劃分的圖像幀上標(biāo)記障礙物矩形,根據(jù)極大化思想計(jì)算最優(yōu)通行區(qū)域.
步驟4基于安全避障域識別的四軸飛行器控制算法.計(jì)算最優(yōu)通行區(qū)域中心點(diǎn)與圖像中心點(diǎn)像素偏差,并通過比例-積分(PD)算法得到控制信息,并發(fā)送給四軸飛行器,控制四軸飛行器完成避障.
采用極大化思想解決如何在包含障礙物的圖像幀中計(jì)算最優(yōu)通行區(qū)域問題.將圖像幀分為3 600 個長、寬像素值分別為16、12 像素的小矩形,并對包含障礙物區(qū)域的小矩形進(jìn)行標(biāo)記.劃分小矩形的數(shù)量過多,會導(dǎo)致計(jì)算量增加,從而影響避障實(shí)時性;反之,則會導(dǎo)致障礙物部分區(qū)域未被標(biāo)記,影響通行區(qū)域的計(jì)算.為保證實(shí)時性,算法首先遍歷每行小矩形的下邊界,每隔5 像素判斷一次該像素是否在障礙物輪廓內(nèi),若在障礙物輪廓內(nèi),則標(biāo)記此小矩形,如圖6(a)中情形1 所示,小矩形只有下邊界有像素點(diǎn)在障礙物輪廓內(nèi);再遍歷每列小矩形的右邊界,判斷是否有障礙物穿過,若該矩形未被標(biāo)記,則每隔5 像素判斷一次該矩形右邊界上像素是否在障礙物輪廓內(nèi),若在障礙物輪廓內(nèi),則標(biāo)記此小矩形,如圖6(a)情形2 小矩形只有右邊界有像素在障礙物輪廓內(nèi);因?yàn)槊扛? 像素點(diǎn)判斷一次,且只判斷小矩形右邊界與下邊界,所以可能出現(xiàn)恰好小矩形包含障礙物,卻未標(biāo)記的情形,如圖6(a)情形3 所示.情形3 中未被標(biāo)記的小矩形一定是障礙物輪廓邊緣,而且由于劃分的小矩形大小合適,所以并不會因?yàn)檫@部分矩形未被標(biāo)記而影響計(jì)算通行區(qū)域,如圖6(b)中椅子的邊緣并未標(biāo)記卻并不影響四軸飛行器避障.
圖6 標(biāo)記障礙物矩形Fig.6 Marked obstacle rectangle
分析圖像幀中可通行區(qū)域,通行區(qū)域邊界有2 種情形:1)通行區(qū)域邊界部分與障礙物邊界重合(圖7(a)情形1);2)通行區(qū)域邊界與障礙物邊界重合或者圖像幀邊界重合(圖7(a)情形2);當(dāng)通行區(qū)域?yàn)閳D像幀底端時,四軸飛行器距離障礙物還有一段距離,地面可能會被認(rèn)為是通行區(qū)域(圖7(a)情形3),此時,距離障礙物較遠(yuǎn),四軸飛行器繼續(xù)向前飛行.對于圖像幀中每一個通行區(qū)域都可以通過圖像中一列小矩形左右移動得到,如圖7(b)中以橙色矩形為下端點(diǎn)的一列黃色小矩形,可以通過左右移動得到整個綠色通行區(qū)域.左右能移動的最大范圍由這一列黃色矩形上每個小矩形距離障礙物或邊界的最小值確定.通行區(qū)域面積就是這一列黃色小矩形高度與左右能移動最大距離的乘積.所以,為找到最優(yōu)通行區(qū)域,需要枚舉出圖像幀上所有通行區(qū)域,然后找到其中的最大值.
以圖像幀中劃分的每個矩形分別作為端點(diǎn),計(jì)算不同高度的通行區(qū)域面積,并找到最大值作為包含該點(diǎn)處的最大通行區(qū)域,遍歷整個圖像幀中所有小矩形,得到最大通行區(qū)域.
首先,對圖像幀建立如圖7(b)所示坐標(biāo)系;然后,計(jì)算圖像幀中沒有被標(biāo)記的任意小矩形(w,h)左、右側(cè)到標(biāo)記矩形或邊界的最遠(yuǎn)距離,并分別記為L[w,h]和R[w,h] ;最后,遞歸法算出每個小矩形處的最大通行區(qū)域面積.
左側(cè)最遠(yuǎn)距離Dl[w,h] 為當(dāng)前左側(cè)最遠(yuǎn)距離L[w,h]與這一列小矩形的下一個小矩形左側(cè)最遠(yuǎn)距離Dl[w,h-1] 的較小值,即
右側(cè)最遠(yuǎn)距離Dr[w,h] 為當(dāng)前右側(cè)最遠(yuǎn)距離R[w,h]與這一列小矩形的下一個小矩形右側(cè)最遠(yuǎn)距離Dr[w,h-1] 的較小值,即
通行區(qū)域高度H[w,h] 為此列小矩形的個數(shù):
通行區(qū)域面積A[w,h] 為通行區(qū)域高度與通行區(qū)域左右最遠(yuǎn)距離和的乘積:
根據(jù)得到的最大通行區(qū)域左上角和右下角坐標(biāo),畫出通行區(qū)域矩形和通行區(qū)域中心點(diǎn)(如圖8 所示),對應(yīng)圖中的綠色框和綠色點(diǎn),余圖同.
圖8 通行區(qū)域分析結(jié)果Fig.8 Passing domain analysis result
安全避障域識別算法偽代碼如下:
在系統(tǒng)處理完圖像幀找到通行區(qū)域后,采用PD 算法控制無人機(jī)飛行躲避障礙物.PD 控制是比例積分微分(PID)控制的一種,是線性控制方法[20].
首先,確定是否有四軸飛行器可通行區(qū)域,如果通行區(qū)域面積小于四軸飛行器可通過最小面積,則向四軸飛行器發(fā)送降落指令;如果有可通過的區(qū)域,則分別計(jì)算最優(yōu)通行區(qū)域中心點(diǎn)(綠色中心點(diǎn))與當(dāng)前圖像幀的中心點(diǎn)(黑色中心點(diǎn))的水平像素偏差d1與垂直像素偏差d2,如圖9 所示.根據(jù)PD 算法,分別以d1、d2作為偏差值,得到水平控制量u1(t)和垂直控制量u2(t),再將u1(t)與u2(t)作為飛控算法輸入,控制無人機(jī)完成避障飛行.
圖9 PD 控制避障示意Fig.9 Obstacle avoidance by PD control
采用深圳睿熾科技的Tello 四軸飛行器作為實(shí)驗(yàn)平臺,該飛行器搭載大疆公司的飛控技術(shù)和英特爾Movidius 芯片,并配有500 萬像素的攝像頭.電腦終端配置為Intel(R)Core(TM)i5-7300HQ 處理器,顯卡為NVIDIA GeForce 1050Ti,網(wǎng)卡為Intel Dual Band Wireless-AC 3168.
為驗(yàn)證算法是否有效,用紙箱、椅子和垃圾桶作為障礙物,通過在室內(nèi)與室外布置的3 個實(shí)驗(yàn)場景驗(yàn)證算法的避障效果,如圖10 所示.實(shí)驗(yàn)1 為多組障礙物障礙實(shí)驗(yàn),實(shí)驗(yàn)2、3 為復(fù)雜程度不同的復(fù)雜障礙物避障實(shí)驗(yàn).
圖10 實(shí)驗(yàn)場景Fig.10 Experimental scenes
設(shè)定四軸飛行器的前進(jìn)速度為0.42 m/s,單目相機(jī)采集頻率為30 幀/s,算法執(zhí)行周期為1 s.實(shí)驗(yàn)場景尺寸為:箱子53 cm × 32 cm × 56 cm、路障65 cm ×27 cm × 27 cm、書包45 cm × 30 cm × 12 cm、椅子85 cm × 50 cm × 43 cm.
4.2.1 多組障礙物避障實(shí)驗(yàn)(實(shí)驗(yàn)1)
按照圖10(a)所示場景進(jìn)行避障測試,四軸飛行器起飛后向前飛行,飛行過程中在t11、t12、t13時刻依次躲避3 組障礙物,實(shí)驗(yàn)結(jié)果如圖11 所示.
圖11 躲避多組障礙物實(shí)驗(yàn)(實(shí)驗(yàn)1)Fig.11 Experiment of avoiding multiple groups of obstacles (experiment 1)
對四軸飛行器飛行過程中記錄的俯仰角和滾動角數(shù)據(jù)信息進(jìn)行分析,如圖12 所示.實(shí)驗(yàn)過程中,系統(tǒng)終端通過處理四軸飛行器所拍攝的圖像得到控制指令,再將控制指令發(fā)送給四軸飛行器.四軸飛行器在俯仰角 θ <0 的范圍內(nèi)波動(θ <0 表示四軸飛行器向前飛行).在第0~16 幀,滾動角 ?=0,此時,四軸飛行器距離障礙物較遠(yuǎn),所以,滾動角并未改變;在第17~40 幀,? <0,表示四軸飛行器向左移動躲避第1 組障礙物;在第41~57 幀,? >0,表示四軸飛行器向右飛行躲避第2 組障礙物;第58~71 幀內(nèi),四軸飛行器 ? <0,表示四軸飛行器向左飛行躲避第3 組障礙物.由于起飛時四軸飛行器距離第1 組障礙物較遠(yuǎn),所以滾動角變化范圍較小.3 組障礙物之間距離較小,所以,滾動角變化范圍較大.
圖12 四軸飛行器數(shù)據(jù)結(jié)果(實(shí)驗(yàn)1)Fig.12 Quad-rotor helicopter data results (experiment 1)
4.2.2 復(fù)雜障礙物避障實(shí)驗(yàn)(實(shí)驗(yàn)2、3)
按照圖11(b)、(c)所示場景進(jìn)行復(fù)雜障礙物避障實(shí)驗(yàn),結(jié)果分別如圖13、14 所示.
圖13 復(fù)雜障礙物避障實(shí)驗(yàn)(實(shí)驗(yàn)2)Fig.13 Experiment of avoiding complex obstacles (experiment 2)
圖14 復(fù)雜障礙物避障實(shí)驗(yàn)(實(shí)驗(yàn)3)Fig.14 Experiment of avoiding complex obstacles (experiment 3)
為檢驗(yàn)本文算法的避障準(zhǔn)確性和實(shí)時性,將安全避障域面積與計(jì)算時間作為評價指標(biāo),與改進(jìn)的基于貝葉斯估計(jì)與區(qū)域劃分遍歷[21]的避障路徑規(guī)劃算法(BR 算法)進(jìn)行對比分析.本文算法與BR 算法計(jì)算時間對比如圖15 所示.在處理每幀圖像平均用時上,前者0.17 s,后者0.13 s 左右,本文算法雖然處理圖像時間增加,但仍滿足無人機(jī)避障實(shí)時性要求.將通行區(qū)域所包含像素個數(shù)作為通行區(qū)域面積評價指標(biāo),2 種算法對比結(jié)果如圖16 所示.在第15~58 幀、第64~168 幀,本文算法求解出的避障域比BR 算法更準(zhǔn)確;在其余幀,2 種算法求解避障域面積相同,則只顯示本文算法面積.在障礙物識別時,BR 算法使用貝葉斯估計(jì)與背景差分法,本文算法采用基于角點(diǎn)聚類與Graham 掃描的障礙物識別算法;在計(jì)算安全避障域時,BR 算法雖然找到無人機(jī)安全通行區(qū)域,但并不一定是最優(yōu)安全避障域.本文算法基于極大化思想,在計(jì)算最優(yōu)安全避障域的同時,兼顧準(zhǔn)確性和實(shí)時性.
圖15 處理時間對比Fig.15 Comparison of processing time
圖16 通行區(qū)域面積對比Fig.16 Comparison of passing domain area
本文針對單目四軸飛行器自主避障中障礙物識別與計(jì)算安全通行區(qū)域問題,分別提出基于角點(diǎn)聚類與Graham 掃描的障礙物識別算法和基于極大化思想的安全避障域算法.在Tello 四軸飛行器上對安全避障域識別算法進(jìn)行測試實(shí)驗(yàn),結(jié)果表明,算法能夠合理識別障礙物并使四軸飛行器完成避障,同時算法滿足準(zhǔn)確性與實(shí)時性要求.下一步將使用機(jī)載計(jì)算機(jī)平臺或融合其他傳感器進(jìn)行相關(guān)研究.