本發(fā)明涉及無(wú)人機(jī)避障,尤其涉及一種基于光流的無(wú)人機(jī)避障方法。
[
背景技術(shù):
]
隨著無(wú)人機(jī)的推廣與普及,各個(gè)領(lǐng)域?qū)οM(fèi)級(jí)無(wú)人機(jī)的需求都在迅速增長(zhǎng)。然而,目前絕大部分消費(fèi)級(jí)無(wú)人機(jī)都沒(méi)有配備自動(dòng)避障系統(tǒng),只能由使用者實(shí)時(shí)操控,或按照預(yù)設(shè)航線和高度飛行,自身并沒(méi)有能力對(duì)飛行路線上的樹(shù)木、電線、建筑等障礙物進(jìn)行感知和避讓,存在很大的安全隱患。
根據(jù)采用的硬件不同,目前常用的避障技術(shù)主要有,激光雷達(dá)避障、超聲波傳感器避障和視覺(jué)傳感器避障等,這些避障技術(shù)在地面機(jī)器人上都得到了很好的應(yīng)用。然而,相比于地面機(jī)器人,無(wú)人機(jī)尤其是消費(fèi)級(jí)無(wú)人機(jī)的體積和載重受到嚴(yán)格限制,不能加裝過(guò)多的設(shè)備;且無(wú)人機(jī)不具有穩(wěn)定的支撐面,經(jīng)常會(huì)發(fā)生晃動(dòng),這就對(duì)傳感設(shè)備(例如三維雷達(dá))和計(jì)算設(shè)備提出了很高的強(qiáng)度要求。此外,無(wú)人機(jī)運(yùn)動(dòng)在三維空間,具有6個(gè)自由度,運(yùn)動(dòng)速度快,運(yùn)動(dòng)姿態(tài)復(fù)雜,在控制方面也遠(yuǎn)比地面機(jī)器人要困難的多。這些方面的限制,使得那些在地面機(jī)器人上很實(shí)用的避障技術(shù),并不特別適合應(yīng)用在無(wú)人機(jī),而且,這些避障技術(shù)都需要無(wú)人機(jī)加裝額外的傳感器,設(shè)計(jì)特殊的機(jī)體結(jié)構(gòu)和布局,非常依賴于無(wú)人機(jī)自身的硬件條件,不具備通用性,造價(jià)昂貴。除此之外,這些傳感器都必須主動(dòng)發(fā)射信號(hào)和接收信號(hào)來(lái)完成避障,極易受到干擾。鑒于此,使用視覺(jué)傳感器來(lái)實(shí)現(xiàn)避障已成為當(dāng)前國(guó)外微小型無(wú)人機(jī)環(huán)境感知及避障的主流研究方向。
與激光、雷達(dá)等避障方法相比,視覺(jué)避障有著非常大的便利。首先,幾乎所有的無(wú)人機(jī)都會(huì)配備一個(gè)前置攝像頭,不需要再額外配置硬件傳感器;其次,攝像頭不會(huì)主動(dòng)發(fā)射信號(hào),屬于被動(dòng)接受信號(hào)的傳感器,不需要發(fā)射裝置;而且,由于視覺(jué)避障不需要發(fā)射信號(hào),因此不存在輻射和信號(hào)干擾問(wèn)題,不會(huì)受到地理?xiàng)l件和姿態(tài)的限制;此外,視覺(jué)避障能源消耗也比較低,并且隱蔽性比較好,不容易被發(fā)現(xiàn)。
光流(Optical Flow)的概念是Gibson在1950年前后提出來(lái)的。它是三維運(yùn)動(dòng)場(chǎng)在二維成像面上的映射,研究光流的目的是通過(guò)圖像的亮度變化(即像素運(yùn)動(dòng))來(lái)估計(jì)物體運(yùn)動(dòng)情況。與攝像頭距離不同的障礙物在運(yùn)動(dòng)的時(shí)候,其在成像面上的投影的運(yùn)動(dòng)速度(即光流)是不同的。對(duì)于相同的運(yùn)動(dòng),距離越遠(yuǎn)的運(yùn)動(dòng)產(chǎn)生的光流矢量越小,距離越近的運(yùn)動(dòng)產(chǎn)生的光流矢量越大。因此,通過(guò)光流可以得到障礙物與攝像頭之間的相對(duì)距離信息,同時(shí)克服單目視覺(jué)無(wú)法得到距離信息的局限性,因此可以用光流來(lái)實(shí)現(xiàn)單目避障。然而到目前為止,光流避障的研究成果主要集中在地面機(jī)器人領(lǐng)域。借助光流輔助信息,地面機(jī)器人已經(jīng)具備了非常可靠的障礙物感知和規(guī)避的能力,但光流避障在無(wú)人機(jī)上的應(yīng)用仍然還不是很成熟。
目前,視覺(jué)避障方法中做的比較多的是基于雙目視覺(jué)的避障方法,例如,專利號(hào)為CN201510688485.2的本發(fā)明公開(kāi)了一種基于雙目視覺(jué)的無(wú)人機(jī)自主障礙物檢測(cè)系統(tǒng)及方法,其主要技術(shù)特點(diǎn)是:該系統(tǒng)包括在無(wú)人機(jī)上裝載有雙目視覺(jué)系統(tǒng)、其他傳感器模塊及飛行控制系統(tǒng);該方法包括雙目視覺(jué)系統(tǒng)獲取無(wú)人機(jī)飛行環(huán)境的視覺(jué)信息,并經(jīng)處理得到障礙物信息;其他傳感器單元獲取無(wú)人機(jī)的狀態(tài)信息;飛行控制系統(tǒng)接收障礙物信息和無(wú)人機(jī)狀態(tài)信息,建立飛行路徑,生成飛行控制指令并向無(wú)人機(jī)發(fā)送;無(wú)人機(jī)根據(jù)飛行控制指令規(guī)避障礙物飛行。本發(fā)明將視覺(jué)信息與其他傳感器信息相融合,感知飛行環(huán)境信息,進(jìn)行飛行路徑控制和路徑規(guī)劃以對(duì)障礙物進(jìn)行規(guī)避,有效地解決了無(wú)人機(jī)視覺(jué)避障的問(wèn)題,使其具備利用機(jī)載攝像機(jī)完成視覺(jué)避障的能力。
雙目視覺(jué)信息能夠比較方便的計(jì)算出無(wú)人機(jī)與障礙物之間的相對(duì)距離,從而根據(jù)距離來(lái)感知和規(guī)避障礙物。但這一方式也存在明顯的缺陷,由于雙目攝像頭之間需要維持一定的距離,在一定程度上會(huì)影響無(wú)人機(jī)的體積和布局。如果能夠只使用一個(gè)攝像頭來(lái)完成避障任務(wù),無(wú)人機(jī)就不需要考慮多攝像頭的安裝布局等問(wèn)題,于是,越來(lái)越多的人嘗試?yán)霉饬骷夹g(shù)來(lái)實(shí)現(xiàn)單目視覺(jué)避障。
[
技術(shù)實(shí)現(xiàn)要素:
]
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種只使用一個(gè)攝像頭來(lái)完成避障任務(wù)的基于光流的無(wú)人機(jī)避障方法。
為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案是,一種基于光流的無(wú)人機(jī)避障方法,包括以下步驟:
101、利用無(wú)人機(jī)上的單目攝像頭實(shí)時(shí)采集前方場(chǎng)景的圖像;
102、將圖像分成復(fù)數(shù)行,分別計(jì)算中間行和底部行的光流平均值,當(dāng)中間行光流平均值與底部行光流平均值的比值大于設(shè)定的閾值時(shí),認(rèn)為無(wú)人機(jī)前方存在障礙物,控制無(wú)人機(jī)做出規(guī)避動(dòng)作。
以上所述的基于光流的無(wú)人機(jī)避障方法,包括以下步驟:
201、在步驟102之前,對(duì)圖像做灰度化處理,然后利用SIFT特征提取圖像中的特征點(diǎn),如果提取的特征點(diǎn)數(shù)量小于預(yù)設(shè)的特征點(diǎn)數(shù)量閾值,則放棄該幀圖像,直接處理下一幀圖像,直到提取出有足夠特征點(diǎn)的圖像;
202、設(shè)置復(fù)數(shù)層金字塔結(jié)構(gòu)對(duì)有足夠特征點(diǎn)的圖像進(jìn)行尺度變換,再自頂向下利用LK算法迭代計(jì)算每一個(gè)特征點(diǎn)的光流;
203、對(duì)步驟202計(jì)算得到的光流場(chǎng)進(jìn)行閾值過(guò)濾。
以上所述的基于光流的無(wú)人機(jī)避障方法,包括閾值過(guò)濾下步驟:
301、最值過(guò)濾:利用最值過(guò)濾閾值將光流值明顯過(guò)大的特征點(diǎn)去除;
302、均值過(guò)濾:計(jì)算最值過(guò)濾后剩余特征點(diǎn)的光流的平均值,分別將每一個(gè)特征點(diǎn)的光流和光流平均值進(jìn)行比較得到比較值,將比較值超過(guò)均值過(guò)濾閾值的特征點(diǎn)去除。
以上所述的基于光流的無(wú)人機(jī)避障方法,如果通過(guò)閾值過(guò)濾過(guò)濾掉的特征點(diǎn)的比例超過(guò)比例閾值時(shí),則忽略該幀圖像,并統(tǒng)計(jì)連續(xù)忽略次數(shù);若連續(xù)忽略的圖像超過(guò)設(shè)定值時(shí),則無(wú)人機(jī)立即懸停,等到光流計(jì)算穩(wěn)定后再繼續(xù)飛行。
以上所述的基于光流的無(wú)人機(jī)避障方法,包括以下步驟:
501、將圖像分成復(fù)數(shù)列,每一列代表一個(gè)區(qū)域,分別計(jì)算每一列的中間行和底部行的光流比值,根據(jù)每一列中間行光流平均值與底部行光流平均值的比值,判斷該列是否存在障礙物,進(jìn)而得到障礙物的橫向分布信息;
502、在前方一段距離內(nèi)如果沒(méi)有障礙物,就繼續(xù)前進(jìn),同時(shí)沿著能使障礙物左右均衡分布和全局光流左右平衡的方向調(diào)整飛行方向。
以上所述的基于光流的無(wú)人機(jī)避障方法,如果某列不存在障礙物則該列為安全區(qū)域,相鄰兩列都不存在障礙物則可以得到一個(gè)更大的安全區(qū)域;然后,如果無(wú)人機(jī)正前方區(qū)域存在障礙物,則無(wú)人機(jī)在左右兩側(cè)選擇一個(gè)較大的安全區(qū)域轉(zhuǎn)向后再繼續(xù)飛行,如果前方找不到安全區(qū)域則轉(zhuǎn)向90度;如果正前方?jīng)]有障礙物,無(wú)人機(jī)在繼續(xù)保持前進(jìn)的同時(shí),沿著能使障礙物更加均衡地分布在無(wú)人機(jī)兩側(cè)的方向轉(zhuǎn)動(dòng)。
以上所述的基于光流的無(wú)人機(jī)避障方法,無(wú)人機(jī)前方障礙物的分布越密集,無(wú)人機(jī)前進(jìn)的平動(dòng)速度就越小,前方的安全區(qū)域偏離圖像的中心越遠(yuǎn),無(wú)人機(jī)的轉(zhuǎn)向轉(zhuǎn)速就越大。
以上所述的基于光流的無(wú)人機(jī)避障方法,包括以下步驟:
801、在步驟501中,將圖像分成8列,得到的8列圖像從左到右依次標(biāo)記為1至8;
802、所有的列均不存在障礙物,此時(shí)前進(jìn)的平動(dòng)速度為最高速度,無(wú)人機(jī)轉(zhuǎn)向的旋轉(zhuǎn)速度為0;
803、列1或列8存在障礙物,其他各列均不存在障礙物,此時(shí)平動(dòng)速度采用次高速度;
804、列2或7存在障礙物,列3至6均不存在障礙物,此時(shí)平動(dòng)速度采用較低速度;
805、列3或列6存在障礙物,列4和列5均不存在障礙物,此時(shí)平動(dòng)速度采用最低速度;
806、列4或列5存在障礙物,相當(dāng)于無(wú)人機(jī)正前方存在障礙物,此時(shí)無(wú)人機(jī)停止前進(jìn),改變方向繞行;
807、如果列4和列5均不存在障礙物,且左右兩側(cè)障礙物平衡分布,則無(wú)人機(jī)轉(zhuǎn)向的旋轉(zhuǎn)速度為0。
808、如果列4和列5均不存在障礙物,且左右兩側(cè)障礙物距離圖像中心距離的差的絕對(duì)值為1個(gè)列間距,無(wú)人機(jī)轉(zhuǎn)向的旋轉(zhuǎn)速度為較低旋轉(zhuǎn)速度;
809、如果列4和列5均不存在障礙物,且左右兩側(cè)障礙物距離圖像中心距離的差的絕對(duì)值為2個(gè)列間距,無(wú)人機(jī)轉(zhuǎn)向的旋轉(zhuǎn)速度為較高旋轉(zhuǎn)速度
以上所述的基于光流的無(wú)人機(jī)避障方法,包括以下步驟:
901、將圖像平分為左右兩部分,分別計(jì)算二者的光流平均值,將二者光流平均值之差比上二者光流平均值之和的值記為α,α的取值范圍為[-1,1];
901、當(dāng)α的絕對(duì)值小于設(shè)定的閾值TS時(shí),無(wú)人機(jī)不發(fā)生任何偏轉(zhuǎn),保持直行;
902、當(dāng)α的絕對(duì)值大于等于TS時(shí),則無(wú)人機(jī)在保持前進(jìn)的同時(shí),進(jìn)行方向矯正:如果α大于TS,無(wú)人機(jī)向右偏轉(zhuǎn),使左側(cè)光流變小,直至α的絕對(duì)值小于TS之后才停止調(diào)節(jié);如果α小于-TS,無(wú)人機(jī)通過(guò)左轉(zhuǎn)降低右側(cè)光流的值,直至α的絕對(duì)值小于TS之后才停止調(diào)節(jié)。
以上所述的基于光流的無(wú)人機(jī)避障方法,無(wú)人機(jī)避障系統(tǒng)包括地面控制站和受控的無(wú)人機(jī),地面控制站與無(wú)人機(jī)建立通信連接,接收無(wú)人機(jī)單目攝像頭拍攝的視頻流進(jìn)行處理,并將避障運(yùn)算得到的控制信息發(fā)送給無(wú)人機(jī)。
本發(fā)明僅需要一個(gè)攝像頭即可完成避障,不需要安裝復(fù)雜的傳感器,價(jià)格低廉,容易應(yīng)用到各種無(wú)人機(jī)中,對(duì)無(wú)人機(jī)的機(jī)體結(jié)構(gòu)、載重、體積、成本等影響遠(yuǎn)小于雙目避障、激光雷達(dá)避障等方法。
[附圖說(shuō)明]
下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
圖1是本發(fā)明實(shí)施例無(wú)人機(jī)避障方法的系統(tǒng)圖。
圖2是本發(fā)明實(shí)施例無(wú)人機(jī)避障方法的流程圖。
[具體實(shí)施方式]
下面結(jié)合附圖,對(duì)本發(fā)明的實(shí)施例作進(jìn)一步的詳細(xì)說(shuō)明。
本發(fā)明實(shí)施例按照?qǐng)D1對(duì)本發(fā)明中所涉及的系統(tǒng)平臺(tái)進(jìn)行整體搭建,采用了地面控制站控制的方式實(shí)現(xiàn)無(wú)人機(jī)的自主避障,主要包括開(kāi)發(fā)平臺(tái)、無(wú)人機(jī)平臺(tái)和避障系統(tǒng)。在開(kāi)發(fā)平臺(tái)方面,使用的是運(yùn)行Ubuntu14.0系統(tǒng)的筆記本電腦,并在上面運(yùn)行ROS(Robot Operating System)開(kāi)源架構(gòu)作為主要開(kāi)發(fā)環(huán)境,避障系統(tǒng)就是運(yùn)行在該架構(gòu)上的。該開(kāi)發(fā)平臺(tái)充當(dāng)?shù)孛婵刂普镜淖饔茫?fù)責(zé)與無(wú)人機(jī)建立通信連接,接收無(wú)人機(jī)攝像頭拍攝的視頻流并進(jìn)行處理,并負(fù)責(zé)將避障系統(tǒng)計(jì)算得到的控制信息發(fā)送給無(wú)人機(jī)。在無(wú)人機(jī)平臺(tái)方面,選擇了AR.Drone2.0四旋翼無(wú)人機(jī),該無(wú)人機(jī)提供了內(nèi)部飛控系統(tǒng)的接口,這樣就可以不必關(guān)心無(wú)人機(jī)內(nèi)環(huán)控制,而專注于用光流信息計(jì)算出控制信息。在避障系統(tǒng)方面,主要由光流計(jì)算和避障算法等程序構(gòu)成。
本發(fā)明實(shí)施例利用圖2所示的避障系統(tǒng)框架開(kāi)發(fā)無(wú)人機(jī)的避障模塊,利用無(wú)人機(jī)上搭載的單目攝像頭采集運(yùn)動(dòng)圖像,并發(fā)送給地面控制站,然后經(jīng)過(guò)光流計(jì)算和避障算法的處理,得到控制信息,再通過(guò)地面控制站發(fā)送給無(wú)人機(jī),控制飛行,實(shí)現(xiàn)避障。
具體控制步驟如下:
步驟(1):利用無(wú)人機(jī)上的單目攝像頭實(shí)時(shí)采集運(yùn)動(dòng)信息,得到無(wú)人機(jī)飛行過(guò)程中前方場(chǎng)景的每一幀圖像,并通過(guò)WiFi發(fā)送給地面控制站,地面控制站每接收一幀圖像,立即進(jìn)行下一步的處理;
步驟(2):首先對(duì)原始圖像做灰度化等預(yù)處理,然后利用SIFT特征提取圖像中的特征點(diǎn),如果提取的特征點(diǎn)數(shù)量太少,則放棄該幀圖像,具體做法是,設(shè)定特征點(diǎn)數(shù)量閾值,建議特征點(diǎn)數(shù)量閾值為50,如果特征點(diǎn)數(shù)量小于50,則放棄該幀圖像,直接處理下一幀圖像,直到提取出有足夠特征點(diǎn)的圖像。然后設(shè)置3層金字塔結(jié)構(gòu)對(duì)圖像進(jìn)行尺度變換,再自頂向下利用LK算法迭代計(jì)算每一個(gè)特征點(diǎn)的光流;金字塔層數(shù)會(huì)影響算法的速度和精確度,層次越多則允許的特征點(diǎn)運(yùn)動(dòng)就越遠(yuǎn),有助于減少誤差,但同時(shí)會(huì)增加運(yùn)算量。在本發(fā)明實(shí)施例中,使用的地面控制站只是普通的筆記本電腦(intel i5-3210M CPU,2.50GHz,4G內(nèi)存),建議層數(shù)為3層,如果使用GPU或高端電腦,可以增加層數(shù)。
步驟(3):對(duì)計(jì)算得到的光流場(chǎng)進(jìn)行閾值過(guò)濾,把結(jié)果異常的光流過(guò)濾出來(lái)。首先使用最值過(guò)濾,將光流值明顯過(guò)大的特征點(diǎn)去除掉。最值過(guò)濾需要設(shè)置最值過(guò)濾閾值,該值取決于選用的光流計(jì)算算法計(jì)算出的光流值整體情況,在本發(fā)明的實(shí)施例中,使用的是經(jīng)典LK算法,建議最值過(guò)濾閾值為15;然后使用均值過(guò)濾,計(jì)算剩余特征點(diǎn)的光流的平均值,分別將每一個(gè)特征點(diǎn)的光流和平均值進(jìn)行比較,將二者比值過(guò)大的特征點(diǎn)去除掉,均值過(guò)濾需要設(shè)置一個(gè)均值過(guò)濾閾值,均值過(guò)濾閾值決定了距離平均值偏差多大的點(diǎn)是允許接受的點(diǎn),太大或太小都會(huì)導(dǎo)致嚴(yán)重的誤差,本發(fā)明實(shí)施例中,建議均值過(guò)濾閾值為5。
如果通過(guò)閾值過(guò)濾掉的特征點(diǎn)達(dá)到一定比例,則該幀圖像的光流場(chǎng)不能用于下面的障礙物檢測(cè)和避障算法,而是忽略該幀圖像(在本發(fā)明實(shí)施例中,該比例閾值為25%),并統(tǒng)計(jì)連續(xù)忽略次數(shù),若連續(xù)3次忽略圖像,則無(wú)人機(jī)立即懸停,等到光流計(jì)算穩(wěn)定后再繼續(xù)飛行。
步驟(4):將圖像分成五行,按照視野分別劃分成頂部區(qū)域、上部區(qū)域、中間區(qū)域、下部區(qū)域、底部區(qū)域。然后分別計(jì)算中間區(qū)域和底部區(qū)域的光流平均值,利用中間區(qū)域和底部區(qū)域的光流比值判斷是否存在障礙物。一般,當(dāng)中間區(qū)域和底部區(qū)域的光流比值大于0.6時(shí)即可認(rèn)為前方存在障礙物,需要無(wú)人機(jī)做出規(guī)避動(dòng)作;這種做法的理論機(jī)理在于投影原理:距離攝像頭越遠(yuǎn),投影就越靠近中心,越近則越靠近邊緣;越接近攝像頭高度,投影越靠近中心,太低或太高都只會(huì)投影到邊緣。所以底部區(qū)域總是離無(wú)人機(jī)最近的底部區(qū)域的物體投影,中間區(qū)域則是很遠(yuǎn)地方的投影或正前方物體的投影。根據(jù)光流特點(diǎn),距離近的光流大,距離遠(yuǎn)的光流小,當(dāng)離正前方障礙物很遠(yuǎn)時(shí),中間區(qū)域的光流要遠(yuǎn)小于底部區(qū)域的光流,隨著距離的不斷拉近,中間區(qū)域的光流逐漸變大,底部區(qū)域則基本不變。這樣,通過(guò)中間區(qū)域與底部區(qū)域的光流比值可以得到正前方障礙物的相對(duì)距離??紤]到必須留出足夠遠(yuǎn)的反應(yīng)距離,當(dāng)中間區(qū)域與底部區(qū)域的光流比值大于0.6的時(shí)候,就可以認(rèn)為近距離存在障礙物,此時(shí)無(wú)人機(jī)必須做出相應(yīng)的規(guī)避動(dòng)作。
步驟(5):進(jìn)一步,將圖像分成8列,分別代表視野的8個(gè)方位,然后按照上一步的障礙物檢測(cè)算法分別計(jì)算每一列的中間區(qū)域和底部區(qū)域的光流比值,根據(jù)每一列的中間區(qū)域和底部區(qū)域的光流比值判斷該列是否存在障礙物,進(jìn)而得到障礙物的空間分布信息(這里設(shè)定了一個(gè)閾值為0.6,若每一列的中間區(qū)域和底部區(qū)域的光流比值大于0.6則可以判定存在障礙物);
步驟(6):根據(jù)上一步得到的障礙物存在情況,采用“只顧眼前”的局部貪心思想和“兼顧整體”的全局平衡思想來(lái)指導(dǎo)避障:在前進(jìn)時(shí)只關(guān)心正前方一段距離內(nèi)是否存在障礙物,如果沒(méi)有障礙物,就繼續(xù)“貪心”前進(jìn),同時(shí)沿著能使障礙物左右均衡分布和全局光流左右平衡的方向輕微調(diào)整飛行方向。具體實(shí)施如下:如果前方存在障礙物,則進(jìn)入步驟(7),如果前方任何一列均不存在障礙物,進(jìn)入步驟(8);
步驟(7):按照障礙物平衡策略控制無(wú)人機(jī)做出避障動(dòng)作,具體策略如下:根據(jù)某列是否存在障礙物劃分安全區(qū)域,相鄰兩列都不存在障礙物則可以得到一個(gè)更大的安全區(qū)域,然后,如果正前方區(qū)域存在障礙物,則無(wú)人機(jī)立即停下,并在左右兩側(cè)選擇一個(gè)最大的安全區(qū)域轉(zhuǎn)向后再繼續(xù)飛行,如果找不到安全區(qū)域則直接轉(zhuǎn)向90度;如果正前方?jīng)]有障礙物,無(wú)人機(jī)在繼續(xù)保持前進(jìn)的同時(shí),沿著能使障礙物更加均衡地分布在無(wú)人機(jī)兩側(cè)的方向轉(zhuǎn)動(dòng)。障礙物平衡策略不僅給出了旋轉(zhuǎn)的方向,而且給出了旋轉(zhuǎn)的速度和前進(jìn)的平動(dòng)速度:障礙物的分布越密集,前進(jìn)的速度就越小,轉(zhuǎn)向的安全區(qū)域離中心越遠(yuǎn),無(wú)人機(jī)的轉(zhuǎn)速就越大。這里為無(wú)人機(jī)設(shè)置了4級(jí)平動(dòng)速度和3級(jí)轉(zhuǎn)速,分別對(duì)應(yīng)了8種障礙物分布情況。
將步驟(5)得到的8列圖像從左到右依次標(biāo)記為1-8,則對(duì)應(yīng)的9種障礙物分布情況如下:
(a)列1-8均不存在障礙物。此時(shí)平動(dòng)速度為最快的第4級(jí),也是實(shí)際無(wú)人機(jī)飛行的最大速度,旋轉(zhuǎn)速度為0(各級(jí)速度的快慢可以根據(jù)實(shí)際對(duì)快慢的承受程度來(lái)確定,本發(fā)明實(shí)施例中設(shè)置的平動(dòng)4級(jí)速度為無(wú)人機(jī)飛控系統(tǒng)所允許最大速度的0.1倍)。
(b)列1或列8存在障礙物,其他各列不存在障礙物。此時(shí)由于存在碰撞到障礙物的風(fēng)險(xiǎn),故應(yīng)該在原來(lái)速度的基礎(chǔ)上降低速度以保證安全,這種情況下的平動(dòng)速度為3級(jí)(本發(fā)明實(shí)施例中設(shè)置的平動(dòng)3級(jí)速度為無(wú)人機(jī)飛控系統(tǒng)所允許最大速度的0.08倍)。
(c)列2或7存在障礙物,列3-6不存在障礙物。此時(shí)相比(b)而言,障礙物更靠近中間,發(fā)生碰撞的可能性升高,故平動(dòng)速度為2級(jí)(本發(fā)明實(shí)施例中設(shè)置的平動(dòng)2級(jí)速度為無(wú)人機(jī)飛控系統(tǒng)所允許最大速度的0.06倍)。
(d)列3或列6存在障礙物,列4-5不存在障礙物。此時(shí)相比(c)而言,障礙物進(jìn)一步靠近中間,發(fā)生碰撞的可能性進(jìn)一步變大,平動(dòng)速度為1級(jí)(本發(fā)明實(shí)施例中設(shè)置的平動(dòng)1級(jí)速度為無(wú)人機(jī)飛控系統(tǒng)所允許最大速度的0.05倍)。
(e)列4或列5存在障礙物。由于列4和列5為中間列,這兩列存在障礙物則表示無(wú)人機(jī)的正前方存在障礙物,此時(shí)無(wú)法繼續(xù)直行,必須停下旋轉(zhuǎn),改變方向繞行,故平動(dòng)速度為0,然后根據(jù)前面所述的障礙物平衡策略選擇一個(gè)方向旋轉(zhuǎn),旋轉(zhuǎn)速度為3級(jí)(本發(fā)明實(shí)施例中,旋轉(zhuǎn)3級(jí)速度為無(wú)人機(jī)飛控系統(tǒng)所允許最大轉(zhuǎn)速的0.1倍)。
(f)列4和列5不存在障礙物,且左右兩側(cè)障礙物平衡分布。這里所說(shuō)的平衡分布是指障礙物與正中心(以列4和列5的分界線作為中心)的距離相等,如列3存在障礙物,則左側(cè)離中心距離為1,列7存在障礙物,則右側(cè)離中心距離為2,再比如左側(cè)列1-4均不存在障礙物,則左側(cè)離中心距離為4。按此計(jì)算,如果左右兩側(cè)的這個(gè)距離相等,即障礙物平衡分布,則旋轉(zhuǎn)速度為0。
(g)列4和列5不存在障礙物,且左右兩側(cè)障礙物距離中心的距離的差的絕對(duì)值為1。此時(shí)障礙物沒(méi)有達(dá)到平衡分布,旋轉(zhuǎn)速度為1級(jí)(本發(fā)明實(shí)施例中,旋轉(zhuǎn)1級(jí)速度為無(wú)人機(jī)飛控系統(tǒng)所允許最大轉(zhuǎn)速的0.01倍)。注意此條規(guī)則只是用來(lái)確定旋轉(zhuǎn)速度的大小,并不影響平動(dòng)速度,實(shí)際上平動(dòng)速度已經(jīng)在規(guī)則(a)-規(guī)則(d)中確定了。
(h)列4和列5不存在障礙物,且左右兩側(cè)障礙物距離中心的距離的差的絕對(duì)值為2。此時(shí)障礙物沒(méi)有達(dá)到平衡分布,旋轉(zhuǎn)速度為2級(jí)(本發(fā)明實(shí)施例中,旋轉(zhuǎn)2級(jí)速度為無(wú)人機(jī)飛控系統(tǒng)所允許最大轉(zhuǎn)速的0.05倍)。
步驟(8):按照左右光流平衡策略微調(diào)無(wú)人機(jī)的飛行方向,具體策略如下:以無(wú)人機(jī)為中心,將圖像平分為左右兩部分,分別計(jì)算二者的光流平均值,將二者之差比上二者之和,其值取值范圍為[-1,1],可將該值記為α,當(dāng)α的絕對(duì)值小于給定閾值TS時(shí),不發(fā)生任何偏轉(zhuǎn),保持直行,該閾值TS規(guī)定了所能接受的左右光流偏差范圍,本發(fā)明中取值為0.3;當(dāng)α絕對(duì)值大于等于TS時(shí),則無(wú)人機(jī)在保持前進(jìn)的同時(shí),進(jìn)行方向矯正:如果α值大于TS,說(shuō)明左側(cè)光流遠(yuǎn)大于右側(cè)光流,此時(shí)無(wú)人機(jī)向右偏轉(zhuǎn),使左側(cè)光流變小,這樣α值就可以變小,直至絕對(duì)值小于TS之后才停止調(diào)節(jié);反過(guò)來(lái),如果α值小于-TS,說(shuō)明右側(cè)光流遠(yuǎn)大于左側(cè)光流,此時(shí)無(wú)人機(jī)通過(guò)左轉(zhuǎn)降低右側(cè)光流的值,直至其絕對(duì)值小于TS之后才停止調(diào)節(jié)。總的來(lái)說(shuō),左右光流平衡策略就是在保持無(wú)人機(jī)前飛平動(dòng)速度不變的同時(shí),向能使α絕對(duì)值趨于0的方向旋轉(zhuǎn)。
其中和分別代表成像面上左右兩側(cè)的水平方向的光流的平均值;k是一個(gè)系數(shù)因子,通過(guò)對(duì)左右兩側(cè)光流的差值的放大或縮小,來(lái)改變左右光流平衡調(diào)節(jié)的靈敏性,在本發(fā)明實(shí)現(xiàn)中,K的取值為左右兩側(cè)光流之和,即這樣就可以實(shí)現(xiàn)步驟901中所述將左右光流差值歸一化到[-1,1]區(qū)間;BearingToSteer是最終由左右光流信息轉(zhuǎn)化得到的無(wú)人機(jī)避障所需的飛行控制信息,即步驟901中所述的變量α。
步驟(9):考慮到速度控制為純開(kāi)環(huán)系統(tǒng),尤其是在長(zhǎng)時(shí)間的情況下,速度控制會(huì)出現(xiàn)比較嚴(yán)重的漂移現(xiàn)象,故在本發(fā)明的實(shí)現(xiàn)中,在步驟7或步驟8得到控制信息之后,還使用了飛行控制領(lǐng)域常用的PID控制調(diào)節(jié)原理進(jìn)行了參數(shù)整定,來(lái)減少誤差,然后才通過(guò)無(wú)人機(jī)預(yù)留的通信接口將調(diào)節(jié)之后的信息發(fā)送給無(wú)人機(jī)自身的飛控系統(tǒng),無(wú)人機(jī)內(nèi)部自帶的飛控系統(tǒng)在得到這些參數(shù)后經(jīng)內(nèi)環(huán)調(diào)節(jié)轉(zhuǎn)化為電機(jī)輸入量,調(diào)整自身姿態(tài),達(dá)到飛行控制的目的。
本發(fā)明以上實(shí)施例“只顧眼前”的局部貪心思想的實(shí)質(zhì)是:在前進(jìn)時(shí)只需要關(guān)心正前方一段距離內(nèi)是否存在障礙物,只要暫時(shí)并不影響飛行,就不進(jìn)行規(guī)避。這種思想的特點(diǎn)在于無(wú)人機(jī)不需要時(shí)時(shí)計(jì)算障礙物離自己的實(shí)際距離,只需要在一個(gè)距離范圍內(nèi)檢測(cè)到障礙物即可,極大的減少了計(jì)算量,降低了誤判率。判斷“暫時(shí)不影響飛行”的方法是,根據(jù)無(wú)人機(jī)安全距離的實(shí)際要求來(lái)決定。在本發(fā)明中,根據(jù)前面步驟4來(lái)做為判斷依據(jù)的:即分別計(jì)算中間區(qū)域和底部區(qū)域的光流平均值,利用中間區(qū)域和底部區(qū)域的光流比值判斷是否影響飛行。這里需要設(shè)置一個(gè)閾值(本發(fā)明建議給出的閾值在0.5-0.8之間取值,魯棒性比較好),當(dāng)比值大于這個(gè)閾值的時(shí)候,就可以認(rèn)為前方障礙物離無(wú)人機(jī)已經(jīng)足夠近了,即前方“存在”了障礙物,影響了飛行;當(dāng)比值小于這個(gè)閾值時(shí),障礙物離無(wú)人機(jī)比較遠(yuǎn),就可以認(rèn)為前方“不存在”障礙物,不影響飛行。
“兼顧整體”的全局平衡思想的內(nèi)容是:如果“眼前”沒(méi)有障礙物,在“貪心”前進(jìn)的同時(shí),總是沿著能使障礙物左右均衡分布和全局光流左右平衡的方向輕微調(diào)整飛行軌跡,對(duì)應(yīng)的飛行策略分別被稱為障礙物平衡策略和左右光流平衡策略。這種思想的特點(diǎn)在于彌補(bǔ)了局部貪心由于“只顧眼前”而喪失對(duì)遠(yuǎn)處障礙物的整體把握的缺陷,在沒(méi)有增加很多計(jì)算量的同時(shí),可以對(duì)遠(yuǎn)處障礙物做出提前性的預(yù)警反應(yīng)。障礙物平衡策略和左右光流平衡策略都是基于這種全局平衡思想。
本發(fā)明以上實(shí)施例的有益效果在于,僅需要一個(gè)攝像頭即可完成避障,不需要安裝復(fù)雜的傳感器,價(jià)格低廉,容易應(yīng)用到各種無(wú)人機(jī)中,對(duì)無(wú)人機(jī)的機(jī)體結(jié)構(gòu)、載重、體積、成本等影響遠(yuǎn)小于雙目避障、激光雷達(dá)避障等方法。
現(xiàn)有避障無(wú)人機(jī)都是針對(duì)某一款無(wú)人機(jī)而量身打造一個(gè)避障系統(tǒng),不具備批量應(yīng)用能力。本發(fā)明以上實(shí)施例利用無(wú)人機(jī)中普遍配備的單目攝像頭來(lái)完成避障,不依賴于特殊的傳感器或者特殊的機(jī)體構(gòu)造與布局,通用性非常強(qiáng),甚至可以讓那些已經(jīng)定型出廠的無(wú)人機(jī)在不經(jīng)過(guò)任何改裝的情況下也具備避障能力。
對(duì)于使用者而言,避障不再是無(wú)人機(jī)的“天生”特性,而由使用者自己決定,因?yàn)楸景l(fā)明的系統(tǒng)可以讓一個(gè)已經(jīng)定型出廠的普通無(wú)人機(jī)在不經(jīng)過(guò)任何改裝的情況下快速具備避障能力,而不受限于廠商。
對(duì)于無(wú)人機(jī)廠商而言,不需要再為了避障而反復(fù)設(shè)計(jì)無(wú)人機(jī)的結(jié)構(gòu)、布局,甚至在其他功能上做出妥協(xié),因?yàn)楸苷弦呀?jīng)與無(wú)人機(jī)完全獨(dú)立開(kāi)來(lái),廠商可以把更多的精力和資金專注于無(wú)人機(jī)的其他功能。
本發(fā)明具有非常廣闊的市場(chǎng)空間和應(yīng)用價(jià)值:
首先,由于光流避障方法有著占用資源小,造價(jià)低的特點(diǎn),十分適合作為軍事上的無(wú)人偵察機(jī)導(dǎo)航系統(tǒng)。擁有這樣的導(dǎo)航系統(tǒng)可以使飛機(jī)的尺寸大大的減小,進(jìn)入到更多的場(chǎng)景中去。另外光流方法可以支持飛機(jī)在復(fù)雜的陌生環(huán)境中穿越障礙飛行,造價(jià)低的特點(diǎn)也使得成本消耗少,可以大量的推廣使用。
不僅是在軍事上,本發(fā)明在民用方面光流方法也有著很大的優(yōu)勢(shì)。例如在森林防火方面,在這種天然復(fù)雜未知的環(huán)境中,使用光流避障的無(wú)人機(jī)有著更大的優(yōu)勢(shì)。它的體積小,可以穿越更多的叢林,機(jī)身可以安裝更多的傳感器用來(lái)感應(yīng)火勢(shì)和報(bào)警。還有在意外災(zāi)害的事故現(xiàn)場(chǎng),人們無(wú)法進(jìn)入的場(chǎng)景都可以使用無(wú)人機(jī)進(jìn)行偵查和報(bào)警。
除此之外,由于本發(fā)明的天然的優(yōu)勢(shì)就在于為無(wú)人機(jī)省下巨大的額外空間,使得它還可以在無(wú)人機(jī)航拍、無(wú)人機(jī)“空中快遞”等領(lǐng)域發(fā)揮重要的作用。
本發(fā)明基于光流的障礙物檢測(cè)和無(wú)人機(jī)單目視覺(jué)避障算法僅利用一個(gè)攝像頭就可以實(shí)現(xiàn)無(wú)人機(jī)的避障功能,不依賴于特殊的傳感器或者特殊的機(jī)體構(gòu)造與布局,對(duì)無(wú)人機(jī)自身的要求非常低,十分適合批量應(yīng)用,可以在不同結(jié)構(gòu)、不同型號(hào)的無(wú)人機(jī)上使用相同的避障系統(tǒng)。
基于光流的障礙物檢測(cè)和無(wú)人機(jī)單目視覺(jué)避障算法極大的降低了避障對(duì)無(wú)人機(jī)自身硬件的要求,可以讓一個(gè)已經(jīng)定型出廠的普通無(wú)人機(jī)在不經(jīng)過(guò)任何改裝的情況下快速具備避障能力,而不受限于廠商。為無(wú)人機(jī)的擁有者對(duì)無(wú)人機(jī)進(jìn)行實(shí)際改造和功能擴(kuò)展提供了很大的可能。
最后所應(yīng)說(shuō)明的是,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非限制。盡管參照實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。