近年來,隨著多旋翼消費級無人機市場的飛速增長,其相關(guān)技術(shù)也正在發(fā)生日新月異的變革,以往多用于特種行業(yè)甚至軍用產(chǎn)品上的技術(shù)(如飛行控制、圖像傳輸、目標(biāo)識別和跟蹤等)也越來越多地用于消費級無人機,使其越來越接近于自動化甚至智能化飛行機器人的概念。
在消費級無人機技術(shù)的諸多趨勢中,避障能力是實現(xiàn)自動化乃至智能化的關(guān)鍵環(huán)節(jié),完善的自主避障系統(tǒng)將能夠在很大程度上減少因操作失誤造成的無人機損壞和傷及人身和建筑物的事故發(fā)生率,而從各消費級無人機廠商的新品和技術(shù)發(fā)展方向看,避障技術(shù)也將在未來幾年趨于完善并成為中高端消費級無人機的標(biāo)配系統(tǒng)。
避障技術(shù),顧名思義就是無人機自主躲避障礙物的智能技術(shù)。很多玩過無人機的小伙伴們都知道,有避障功能的無人機和沒有避障功能的無人機,可以說體驗是大不相同的!無人機自動避障系統(tǒng)能夠及時地避開飛行路徑中的障礙物,極大地減少因為操作失誤而帶來的各項損失。在減少炸機事故次數(shù)的同時,還能給無人機新手極大的幫助!
無人機避障技術(shù)的發(fā)展階段
根據(jù)目前無人機避障技術(shù)的發(fā)展以及其未來的研究態(tài)勢,無人機避障技術(shù)可分為三個階段,一是感知障礙物階段;二是繞過障礙物階段;三是場景建模和路徑搜索階段。這三個階段其實是無人機避障技術(shù)的作用過程。從無人機發(fā)現(xiàn)障礙物,到可以自動繞開障礙物,再達到自我規(guī)劃路徑的過程。
第一階段,無人機只能是簡單地感知障礙物。當(dāng)無人機遇到障礙物時,能快速地識別,并且懸停下來,等待無人機駕駛者的下一步指令!
第二階段,無人機能夠獲取障礙物的深度圖象,并由此精確感知障礙物的具體輪廓,然后自主繞開障礙物!這個階段是擺脫飛手操作,實現(xiàn)無人機自主駕駛的階段!
第三階段,無人機能夠?qū)︼w行區(qū)域建立地圖模型然后規(guī)劃合理線路!這個地圖不能僅僅是機械平面模型,而應(yīng)該是一個能夠?qū)崟r更新的三維立體地圖!這將是目前無人機避障技術(shù)的最高階段!
感知障礙物
在前避障時代,消費級無人機的使用說明上都會標(biāo)明必須在開闊場地飛行,而且應(yīng)當(dāng)盡量避免周圍有大量人群(當(dāng)然,這也與當(dāng)前技術(shù)和市場環(huán)境使得消費級無人機產(chǎn)品的可靠性較差有很大關(guān)系),因為一不小心操作失誤,或者在周圍有高大障礙物時啟動一鍵(低電壓、失控)返航,則有可能眼睜睜看著無人機傻傻地撞向那么明顯的障礙物,這是何等的回天乏力。為了降低這種事故的發(fā)生率,各廠商也都在卯足勁研發(fā)避障技術(shù),而在實現(xiàn)方式上,大家的著眼點也都放在了一個方向——測量無人機到障礙物的距離。
我們可以很容易地想到,只要無人機能夠測量出與潛在障礙物之間的距離,就可以在撞向障礙物之前停止前進(雖然固定翼無人機表示不同意),于是一場讓人感覺回天乏力的事故被輕描淡寫地避免了,這種思路簡單粗暴,但還是有一定作用的。而當(dāng)前運用較多的障礙物檢測方法主要有:
超聲波測距:這個方法很多人都熟悉,家用汽車的倒車?yán)走_就是利用超聲波檢測障礙物,該方法的優(yōu)點就是技術(shù)成熟,成本很低;但缺點在于作用距離近(常用的中低端超聲波傳感器作用距離不超過10m),且對反射面有一定要求。因此超聲波測距傳感器常用來測量無人機與地面的距離(固定翼無人機表示自己飛的太高太快,超聲波傳感器用不上)。
紅外/激光TOF:即飛行時間傳感器,基本原理就是傳感器發(fā)射一定頻率的紅外/激光信號,然后根據(jù)反射信號與原信號的相位差計算信號的飛行時間,即可換算出距離障礙物的距離。該方法技術(shù)比較成熟,作用距離較超聲波更遠(數(shù)米到數(shù)百米),而且高等級的TOF傳感器可以獲得障礙物的深度圖像(這一項能力在下文會有應(yīng)用說明),但缺點在于成本高,抗干擾能力較差(激光TOF稍好)。因此該方案在當(dāng)前市場上產(chǎn)品或樣機中有一定規(guī)模的應(yīng)用。
雙目視覺:這個方法運用了人眼估計距離的原理,即同一個物體在兩個鏡頭畫面中的坐標(biāo)稍有不同,經(jīng)過轉(zhuǎn)換即可得到障礙物的距離,雙目視覺方法也可以獲得障礙物的深度圖像。這種方法的缺點在于技術(shù)難度較高(不過自從有了OpenCV,媽媽再也不用擔(dān)心我不會寫機器視覺程序了),且距離估計的誤差隨距離變大而指數(shù)型增長,只是這一缺點在無人機避障應(yīng)用中并無大礙。
電子地圖:借助細粒度的數(shù)字高程地圖和城市3D建筑地圖,既能夠?qū)崿F(xiàn)避免重要建筑物受到無人機撞擊(即禁飛區(qū)功能),也能夠?qū)崿F(xiàn)很多情況下的無人機避障。而事實上,戰(zhàn)斧巡航導(dǎo)彈的遠程飛行也在很大程度上依賴于數(shù)字高程地圖。
障礙物測量的原理搞懂了,就可以開始討論無人機避障了。最簡單的策略莫過于遇到障礙物時停止前進,然后與障礙物保持一定的距離。這種遇到障礙物后就默默懸停等待,仿佛手足無措不知所往的初級策略,就是這么簡單的開始,無人機就進入了避障時代。
繞過障礙物
很顯然,我們不會滿足于讓無人機遇到障礙物后傻傻等待(固定翼表示自己一秒鐘也無法等待),這就需要設(shè)計讓無人機安全高效地繞過障礙物繼續(xù)完成預(yù)定飛行的策略。表面上看,連薩摩耶這種囧傻呆萌的狗狗都知道前面有座大樓時該怎么繞過去(請自行想象為什么說到狗狗時要強調(diào)前方是大樓,而不是一棵樹),讓無人機繞過障礙物的策略應(yīng)該很簡單了,但這其中的門道可多了去了。
首先,狗狗很清楚前方大樓的輪廓,因此只需要往邊緣走就可以繞過去,但是無人機想獲得障礙物輪廓就很難了,如果避障傳感器是普通超聲波,無人機就只能知道前方有障礙,但是卻無從知道障礙物的邊緣,這就是前面為什么要強調(diào)“能夠獲得障礙物深度圖像”了,對于能獲得深度圖像的TOF測距和雙目視覺測距方式,只要障礙物沒有充滿視場,就總能夠找到障礙物的邊緣。舉例說明,下圖所示的是無人機的到的深度圖像示意圖,灰度越深,表明距離越近,遇到這種情況,很顯然的策略就是往左上方飛,即朝向灰度最淺的區(qū)域飛行,此時問題仿佛已經(jīng)得到解決。
但是別高興太早,這種策略可以滿足大多數(shù)應(yīng)用場景,但是問題還遠沒有解決,看下面的左圖,一架無人機剛繞從一座高大建筑旁繞過去,然后得到了如左圖的障礙物深度圖像,如果按照前面的策略,肯定是要往顏色最前的地方飛行,好那我要是告訴你其實右圖是無人機和兩座懸崖幾何關(guān)系的俯視圖,請你告訴我無人機會怎么飛,如果按照前述的策略,這又必將是一場刻骨銘心的事故。
也許有人對windows98時代的迷宮屏保還有印象,屏保中,使用一直沿著左側(cè)墻壁和一直沿著右側(cè)墻壁都會最終走出迷宮,這是因為普通迷宮的拓?fù)浣Y(jié)構(gòu)就是兩條平行線中間有一個通道,按照這種思路,無人機遇到下圖這種簡單策略躲不過去的障礙時,完全可以采取類似的方式,就一直向左或者向右尋找出路。即如果上面右圖的局部場景的完整形態(tài)如果如下圖所示的話,沿著圖中的兩條曲線為路徑都可以繞過去,如果場景比下圖更復(fù)雜,繞過去的路可就需要苦苦追尋了。
雖然關(guān)于機器人在未知場景中的避障方法研究非常多,但是由于終究是未知場景,其中必然有復(fù)雜的搜索過程。
場景建模和路徑搜索
再回到狗狗繞過大樓的例子,看下圖,如果狗狗左側(cè)右側(cè)的路都走過,而且右側(cè)其實沒有那棵樹的話,很顯然的它下一次繞過這座樓的時候基本上會選擇左側(cè)的路(但是當(dāng)右側(cè)有顆邪惡的樹之后,結(jié)論仿佛有所改變),這是因為它大腦里已經(jīng)有了一幅地圖,即有了這個場景的模型。
無人機也是如此,無論是基于電子地圖,還是其他來源,還是SLAM(即時定位與地圖構(gòu)建)獲得了場景模型,就可以在機載計算機里用算法去搜索優(yōu)化的避障路徑。當(dāng)前關(guān)于這種已知場景路徑規(guī)劃的研究很多,算法也是層出不窮(算法太多太復(fù)雜,本文暫不展開討論),也是無人機避障發(fā)展的必然趨勢。
與傳統(tǒng)的機器人避障技術(shù)研究相比,當(dāng)前無人機的避障還處于很初級的階段,但由于消費級無人機市場的火爆,大家也都在爭先恐后地開展此類研究,可以預(yù)見,未來的避障時代中,將會有各自各樣現(xiàn)在難以想到的方法用于無人機避障,有了這些技術(shù)的輔助,無人機的操作也將越來越安全,越來越簡單。
無人機避障技術(shù)種類
紅外避障
紅外線的應(yīng)用我們并不陌生:從電視、空調(diào)的遙控器,到酒店的自動門,都是利用的紅外線的感應(yīng)原理。而具體到無人機避障上的應(yīng)用,紅外線避障的常見實現(xiàn)方式就是“三角測量原理”。
紅外感應(yīng)器包含紅外發(fā)射器與CCD檢測器,紅外線發(fā)射器會發(fā)射紅外線,紅外線在物體上會發(fā)生反射,反射的光線被CCD檢測器接收之后,由于物體的距離D不同,反射角度也會不同,不同的反射角度會產(chǎn)生不同的偏移值L,知道了這些數(shù)據(jù)再經(jīng)過計算,就能得出物體的距離了,如下圖所示。
超聲波避障
超聲波其實就是聲波的一種,因為頻率高于20kHz,所以人耳聽不見,并且指向性更強。
超聲波測距的原理比紅外線更加簡單,因為聲波遇到障礙物會反射,而聲波的速度已知,所以只需要知道發(fā)射到接收的時間差,就能輕松計算出測量距離,再結(jié)合發(fā)射器和接收器的距離,就能算出障礙物的實際距離,如下圖所示。
超聲波測距相比紅外測距,價格更加便宜,相應(yīng)的感應(yīng)速度和精度也遜色一些。同樣,由于需要主動發(fā)射聲波,所以對于太遠的障礙物,精度也會隨著聲波的衰減而降低,此外,對于海綿等吸收聲波的物體或者在大風(fēng)干擾的情況下,超聲波將無法工作。
激光避障
激光避障與紅外線類似,也是發(fā)射激光然后接收。不過激光傳感器的測量方式很多樣,有類似紅外的三角測量,也有類似于超聲波的時間差+速度。
但無論是哪種方式,激光避障的精度、反饋速度、抗干擾能力和有效范圍都要明顯優(yōu)于紅外和超聲波。
但這里注意,不管是超聲波還是紅外、亦或是這里的激光測距,都只是一維傳感器,只能給出一個距離值,并不能完成對現(xiàn)實三維世界的感知。當(dāng)然,由于激光的波束極窄,可以同時使用多束激光組成陣列雷達,近年來此技術(shù)逐漸成熟,多用于自動駕駛車輛上,但由于其體積龐大,價格昂貴,故不太適用于無人機。
視覺避障
解決機器人如何“看”的問題,也就是大家常聽到的計算機視覺(Computer Vision)。其基礎(chǔ)在于如何能夠從二維的圖像中獲取三維信息,從而了解我們身處的這個三維世界。
視覺識別系統(tǒng)通常來說可以包括一個或兩個攝像頭。單一的照片只具有二維信息,猶如2D電影,并無直接的空間感,只有靠我們自己依靠“物體遮擋、近大遠小”等生活經(jīng)驗?zāi)X補。故單一的攝像頭獲取到的信息及其有限,并不能直接得到我們想要的效果(當(dāng)然能夠通過一些其他手段,輔助獲取,但是此項還不成熟,并沒有大規(guī)模驗證)。類比到機器視覺中,單個攝像頭的圖片信息無法獲取到場景中每個物體與鏡頭的距離關(guān)系,即缺少第三個維度。
如下圖所示,單一的圖片具有很強的迷惑性和不確定性
雙目立體視覺猶如3D電影(左右眼看到的場景略有差異),能夠直接給人帶來強烈的空間臨場感。類比機器視覺,從單個攝像頭升級到兩個攝像頭,即立體視覺(Stereo Vision)能夠直接提供第三個維度的信息,即景深(depth),能夠更為簡單的獲取到三維信息。雙目視覺最常見的例子就是我們的雙眼:我們之所以能夠準(zhǔn)確的拿起面前的杯子、判斷汽車的遠近,都是因為雙眼的雙目立體視覺,而3D電影、VR眼鏡的發(fā)明,也都是雙目視覺的應(yīng)用。
雙目視覺的基本原理是利用兩個平行的攝像頭進行拍攝,然后根據(jù)兩幅圖像之間的差異(視差),利用一系列復(fù)雜的算法計算出特定點的距離,當(dāng)數(shù)據(jù)足夠時還能生成深度圖。
其實,各個避障技術(shù)在無人機上都有用武之地,只是應(yīng)用場景有所不同,特別對于前視避障而言,有些技術(shù)就不適用了。
紅外和超聲波技術(shù),因為都需要主動發(fā)射光線、聲波,所以對于反射的物體有要求,比如:紅外線會被黑色物體吸收,會穿透透明物體,還會被其他紅外線干擾;而超聲波會被海綿等物體吸收,也容易被槳葉氣流干擾。
而且,主動式測距還會產(chǎn)生兩臺機器相互干擾的問題。相比之下,雖然雙目視覺也對光線有要求,但是對于反射物的要求要低很多,兩臺機器同時使用也不會互相干擾,普適性更強。
最重要的是,常見的紅外和超聲波目前都是單點測距,只能獲得特定方向上的距離數(shù)據(jù),而雙目視覺可以在小體積、低功耗的前提下,獲得眼前場景的比較高分辨率的深度圖,這就讓避障功能有了更多的發(fā)展空間,比如避障之后的智能飛行、路徑規(guī)劃等。
激光技術(shù)雖然也能實現(xiàn)類似雙目視覺的功能,但是受限于技術(shù)發(fā)展,目前的激光元件普遍價格貴、體積大、功耗高,應(yīng)用在消費級無人機上既不經(jīng)濟也不實用。
無人機避障實現(xiàn)的難點
避障功能從構(gòu)思到實現(xiàn),走的每一步幾乎都便隨著無數(shù)的難題。僅僅是寫出有效的視覺識別或者地圖重構(gòu)的算法還只是第一步,能讓它在無人機這樣一個計算能力和功耗都有限制的平臺上流暢穩(wěn)定的跑起來,才是真正困難的地方。
此外,如何處理功能的邊界也是一個問題,比如雙目視覺在視線良好的情況下可以工作,那么當(dāng)有灰塵遮擋的情況下呢?這就需要不斷的實驗和試錯,并且持續(xù)的優(yōu)化算法,保證各項功能在各類場景下都能正常工作,不會給出錯誤的指令。
避障功能作為近年來無人機產(chǎn)品的大趨勢,帶來的最直接的好處就是,以往一些人為疏忽造成的撞擊,現(xiàn)在都能經(jīng)由避障功能去避免,既保障了無人機飛行安全的同時,也避免了對周圍人員財產(chǎn)的損害,讓飛無人機的門檻進一步得到了降低。
而長遠來看,無人機想要普及到農(nóng)業(yè)、建筑、運輸、媒體等領(lǐng)域,「智能化」肯定是必經(jīng)之路。
畢竟只有在飛行功能上做到智能控制,才有余量去滿足不同行業(yè)的需求。如今由“避障功能”而衍生出的一系列“智能飛行”功能,無疑就是“無人機智能化”的階段性體現(xiàn)之一。