本發(fā)明涉及無人機控制技術(shù)領(lǐng)域,具體涉及一種基于視覺定位降落末端的無人機降落方法。
背景技術(shù):
近幾年,微型無人機由于其體積小、重量輕、隱蔽性好等特點被廣泛應(yīng)用于攝像、監(jiān)控、偵查、追蹤、測繪等各個領(lǐng)域,并開啟了無人機技術(shù)爆炸的時代。而動態(tài)追蹤拍攝時微小平臺(如汽車頂)回收拍攝裝備、快遞行業(yè)定點投送物品等民用無人機使用的新需求,都對微型無人機的自動降落技術(shù)提出了新挑戰(zhàn)。
2016年國際消費類電子產(chǎn)品展覽會(International Consumer Electronics Show,簡稱CES)上,大疆、零度、億航等知名無人機公司展出的新型無人機都將無人機自動降落作為必備技能,其中Parrot公司推出的新型無人機Disco提出“一鍵回家”的超簡化無人機自動降落操作更是吸睛無數(shù)。
由于GPS的精度等級仍無法滿足無人機高精度降落的要求,通過設(shè)計具有標志性特征的降落場地來達到精確降落的潮流越來越明顯。開源飛控PixHawk展示了一種基于紅外降落標志物,無人機可通過搭載相應(yīng)的紅外攝像降落模塊引導(dǎo)自身進行厘米級別的精確降落。亞馬遜也展示了其利用標志性降落板給用戶無人機送貨上門的方案。
但以上降落場地往往只為一架飛機設(shè)計,無法同時降落多架飛機,而且無人機只有到達降落場地上方很小的范圍內(nèi)時才能對自身進行相對定位。
技術(shù)實現(xiàn)要素:
針對上述現(xiàn)有技術(shù)中存在的問題,本發(fā)明的目的在于,提供一種基于視覺定位降落末端的無人機降落方法,利用無人機上的機載相機對拍攝到的機場圖像進行處理,擬采用多個、多層次帶有ID標識的識別物,建立了一個可容納成百上千無人機降落需求的大型無人機機場,同時本方法成本極低,適用于單個、多個無人機降落使用。
為了實現(xiàn)上述任務(wù),本發(fā)明采用以下技術(shù)方案:
一種基于視覺定位降落末端的無人機降落方法,包括以下步驟:
步驟一,建立無人機機場
步驟S10,設(shè)置停機位Marker,停機位Marker的設(shè)計規(guī)則是:
停機位Marker均是由N*N個方格區(qū)域構(gòu)成的正方形結(jié)構(gòu);在每一個停機位Marker中,最外圈的方格區(qū)域內(nèi)至少2/3填充為黑色,其余的方格區(qū)域為黑色或白色;
步驟S11,在停機位Marker內(nèi)設(shè)置嵌套Marker,嵌套Marker與停機位Marker的設(shè)計規(guī)則相同,不同的是嵌套Marker的規(guī)格較Marker小,并且嵌套Marker有多種規(guī)格,分布在停機位Marker的內(nèi)部;
步驟S12,建立無人機機場,機場是由N*N個方格區(qū)域構(gòu)成的正方形結(jié)構(gòu),機場的最外圈方格區(qū)域均為黑色,而其余區(qū)域均為白色;在機場的白色區(qū)域內(nèi)有序或無序地分布有多個所述的停機位Marker,停機位Marker之間不重疊;
步驟二,無人機的降落過程
步驟S20,無人機接收到降落指令,降落指令包含所有無人機機場的GPS位置信息、每個無人機機場內(nèi)停機位Marker的位置信息、無人機所需要降落的無人機機場ID、無人機所需要降落的停機位Marker的ID;
步驟S21,利用無人機機場的GPS位置信息將無人機引導(dǎo)至機場上方,待無人機到達機場上方后,以固定的速率邊下降邊采集機場的圖像,并對采集到的每一幀圖像進行步驟S210至S213的處理:
步驟S210,邊緣檢測和輪廓提取
將采集的圖像轉(zhuǎn)化為灰度圖,利用Canny算子得到二值化的邊緣分布圖,利用腐蝕、膨脹算法進行噪點濾除,然后提取圖像的輪廓信息,輪廓信息包含機場內(nèi)所有停機位Marker以及機場的輪廓;
步驟S211,篩選無人機機場
在輪廓信息中濾除以下兩類輪廓:
第一類:面積小于2/3無人機機場面積的輪廓;
第二類:內(nèi)部無子輪廓的輪廓;
濾除以上兩類輪廓后,選取外部為凸四邊形的無人機機場作為候選機場;
步驟S212,將候選機場映射到方形區(qū)域中,利用k-means算法將候選機場的像素分為黑白兩類,從而得到候選機場的二值化圖像;利用二值化圖像進行編碼,得到一個N*N的二值矩陣,對于二值矩陣,首先判斷二值矩陣的最外圈是否為全零,如果非全零則丟棄;然后將二值矩陣除了最外圈的二進制編碼轉(zhuǎn)換為無符號整型;
步驟S213,根據(jù)每一個候選機場的無符號整型進行碼值計算,得到每一個候選機場的ID,將候選機場的ID與無人機接收到的降落指令中需要降落的無人機機場ID進行匹配,選擇ID匹配成功的候選機場作為待降落機場;
步驟S22,待降落機場找到后,停止對無人機采集到的圖像進行步驟S210至S213的處理,此時無人機飛行至待降落機場的上方;
步驟S23,無人機到達待降落機場上方后,以固定的速率邊下降邊采集待降落機場的圖像,并對采集到的每一幀圖像進行以下處理:
步驟S230,將采集的圖像轉(zhuǎn)化為灰度圖,利用Canny算子得到二值化的邊緣分布圖,利用腐蝕、膨脹算法進行噪點濾除,然后提取圖像的輪廓信息;
步驟S231,篩選停機位Marker
在輪廓信息中濾除以下兩類輪廓:
第一類:面積小于2/3停機位Marker的輪廓;
第二類:內(nèi)部無子輪廓的輪廓;
濾除以上兩類輪廓后,選取外部為凸四邊形的停機位Marker作為候選停機位Marker;
步驟S232,將候選停機位Marker映射到方形區(qū)域中,利用k-means算法將候選停機位Marker的像素分為黑白兩類,從而得到候選停機位Marker的二值化圖像;利用二值化圖像進行編碼,得到一個N*N的二值矩陣,對于二值矩陣,首先判斷二值矩陣的最外圈是否為全零,如果非全零則丟棄;然后將二值矩陣除了最外圈的二進制編碼轉(zhuǎn)換為無符號整型;
步驟S233,根據(jù)每一個候選停機位Marker的無符號整型進行碼值計算,得到每一個候選停機位Marker的ID,將候選停機位Marker的ID與無人機接收到的降落指令中需要降落的候選停機位Marker的ID進行匹配,選擇ID匹配成功的候選停機位Marker待降落停機位Marker;
步驟S24,無人機根據(jù)待降落停機位Marker的位置信息飛行至待降落停機位Marker上方位置后進行降落。
進一步地,所述的停機位Marker內(nèi)還設(shè)置有衛(wèi)星Marker,衛(wèi)星Marker與停機位Marker的設(shè)計規(guī)則相同,不同的是衛(wèi)星Marker的面積小于構(gòu)成嵌套Marker的方格區(qū)域面積的1/3。
本發(fā)明與現(xiàn)有技術(shù)相比具有以下技術(shù)特點:
1.本發(fā)明提供的降落方法,無人機在降落過程中根據(jù)ID值確定停機方位,且保持不變,不受外界因素的影響。
2.本發(fā)明提供的無人機機場,由于每個無人機都能夠利用整個機場提供的所有標識信息給自身定位,因此在數(shù)米甚至數(shù)百米的距離上就能給自身定位,同時小尺度的Marker可為無人機降落末端提供毫米級的定位精度。依靠整個過程的精確定位信息,無人機可高效、安全、高精度地降落到目標停機位;
3.本發(fā)明提供的無人機機場可為多個不同的無人機提供降落服務(wù),統(tǒng)一的框架可低成本地實現(xiàn)在整個無人機調(diào)度中全自主飛行降落,具有很好的推廣前景。
附圖說明
圖1為停機位Marker的結(jié)構(gòu)示意圖;
圖2為無人機降落過程的流程圖;
圖3為一個無人機機場的結(jié)構(gòu)示意圖;
具體實施方式
遵從上述技術(shù)方案,如附圖所示,本發(fā)明提供一種基于視覺定位降落末端的無人機降落方法,包括以下步驟:
步驟一:建立無人機機場
本發(fā)明的無人機機場是由多個Marker(也可采用其他具有標志性的地標)組成,每個停機位Marker都具有有鮮明的特征,并可通過明暗條紋進行二進制編碼,通過解讀編碼可以獲取其ID信息;無人機通過機載圖像設(shè)備獲取視野中的停機位Marker,通過二進制編碼計算每個停機位Marker的ID并校驗,通過與對應(yīng)的全局坐標系下的三維點進行擬合計算位姿,從而很好地估計自身位置,以進行精確降落。
停機位Marker均是由N*N(N為整數(shù))個完全相同的方格區(qū)域構(gòu)成的正方形結(jié)構(gòu);在每一個停機位Marker中,最外圈的方格區(qū)域內(nèi)至少2/3填充為黑色(或者全部填充為黑色),這樣才能保證最外圈的方格區(qū)域為黑色,這是停機位Marker的重要標志;其余的方格區(qū)域為黑色或白色,這是為了保證嵌套性的特點;本方案中所提及的停機位Marker以及無人機機場均處于一個平面當中,并且均只有黑白二色,以便于圖像處理。整個機場嵌套的多個獨立的停機位,每一個停機位Marker均可以用于引導(dǎo)一架無人機停在其上,停機位Marker為正方形結(jié)構(gòu),可看作是由N*N各方格區(qū)域拼成的。
除了停機位Marker,在其內(nèi)部還設(shè)置有嵌套Marker,用于末端輔助降落,確保降落精度與穩(wěn)定性;
步驟S11,在停機位Marker內(nèi)設(shè)置嵌套Marker,嵌套Marker與停機位Marker的設(shè)計規(guī)則相同,這里的規(guī)則相同是指嵌套Marker也是由N*N個方格區(qū)域構(gòu)成的正方形結(jié)構(gòu),且在其外圈的方格區(qū)域也至少填充2/3黑色,其余的方格區(qū)域為黑色或白色;不同的是嵌套Marker的規(guī)格較Marker小,且每個嵌套Marker和對應(yīng)的停機位Marker的ID值是不相同的;嵌套Marker有多種規(guī)格,在保證原有停機位Marker的編碼規(guī)則不改變的情況下,分布在停機位Marker的內(nèi)部;這里的多種規(guī)格是指嵌套Marker的大小不一樣,即邊長不一樣,并且每個嵌套Marker內(nèi)部的黑色、白色區(qū)域分布也是不同的,這樣每個嵌套Marker的ID互不相同。嵌套Marker分布在停機位Marker中。
優(yōu)選地,在停機位Marker內(nèi)部還可以設(shè)置衛(wèi)星Marker,衛(wèi)星Marker與停機位Marker的設(shè)計規(guī)則相同(也可以看作是停機位Marker的縮小版),不同的是衛(wèi)星Marker的面積小于構(gòu)成嵌套Marker的方格區(qū)域面積的1/3,以免影響到嵌套Marker發(fā)揮其作用。它的主要作用是在降落過程中避免無人機受風(fēng)動影響偏離停機位;衛(wèi)星Marker最好分布在停機位Marker的內(nèi)圈位置。衛(wèi)星Marker分布在停機位Marker中時,衛(wèi)星Marker可以部分或全部與停機位Marker的最外圈(黑色圈)重疊,如圖1所示;當嵌套Marker與停機位Marker上的黑色區(qū)域有重疊時,嵌套Marker重疊部分的邊緣留有白色間隙,以便于計算和區(qū)分。
總而言之,停機位Marker、嵌套Marker、衛(wèi)星Marker一樣都是由N*N的方格區(qū)域構(gòu)成的,且最外圈均為或至少2/3填充黑色,區(qū)別是它們的ID、面積各不相同,其中衛(wèi)星Marker的面積最小,嵌套Marker的面積次之。
步驟S12,建立無人機機場,如圖3所示,機場是由N*N個方格區(qū)域構(gòu)成的正方形結(jié)構(gòu),機場的最外圈方格區(qū)域均為黑色,而其余區(qū)域均為白色;在機場的白色區(qū)域內(nèi)有序或無序地分布有多個所述的停機位Marker(停機位Marker和無人機機場必須構(gòu)成可以識別的二維碼標志物,使得無人機可以在整個場地內(nèi)定位),停機位Marker之間不重疊,但停機位Marker可部分與機場最外圈的黑色方格區(qū)域重疊,并且重疊部分的邊緣留有白色間隙以便于區(qū)分。機場內(nèi)的不同停機位Marker的朝向可以相同,也可以不同,按實際需求設(shè)計分布。停機位Marker的分布直接影響著機場的ID值,機場的ID是識別機場的重要標志。
無人機機場可以在同一大片區(qū)域內(nèi)間隔分布多個,用于大規(guī)模無人機的停放。
步驟二:無人機的降落過程
步驟S20,無人機接收到地面控制中心(或控制設(shè)備)的降落指令,降落指令包含所有無人機機場的GPS位置信息、每個無人機機場內(nèi)停機位Marker的位置信息(ID值,相對于無人機機場的坐標等)、無人機所需要降落的無人機機場ID、無人機所需要降落的停機位Marker的ID;
本方案中利用GPS進行輔助性地定位,因為GPS受到天氣、所處區(qū)域的影響較大,導(dǎo)致在不同情況下GPS的精度有差異,不能滿足無人機精確降落的需求。為此,本方案中只利用GPS對無人機進行大致位置的引導(dǎo),當無人機的圖像設(shè)備可以拍攝并解析地面的無人機機場圖像后,即可通過二維碼標志物引導(dǎo)無人機精確降落。
步驟S21,利用無人機機場的GPS位置信息將無人機引導(dǎo)至機場上方(具體高度根據(jù)相機的內(nèi)參和機場大小而定,一般為15倍機場的大小),待無人機到達機場上方后,以固定的速率邊下降邊采集機場的圖像,并對采集到的每一幀圖像進行步驟S210至S213的處理:
步驟S210,邊緣檢測和輪廓提取
將采集的圖像轉(zhuǎn)化為灰度圖,利用Canny算子得到二值化的邊緣分布圖,利用腐蝕、膨脹算法進行噪點濾除,然后提取圖像的輪廓信息,輪廓信息包含機場內(nèi)所有停機位Marker以及機場的輪廓;
步驟S211,篩選無人機機場
在輪廓信息中濾除以下兩類輪廓:
第一類:面積小于2/3無人機機場面積的輪廓,因為這個輪廓大小不符合無人機機場的面積,可能為地面其他物體,需要濾除;(無人機由自身攜帶的超聲波設(shè)備得到其所在高度,根據(jù)這個高度和拍攝到的圖像的面積,根據(jù)相機模型計算出圖像對應(yīng)的三維空間的面積)
第二類:內(nèi)部無子輪廓的輪廓;這里的自輪廓即為停機位Marker的輪廓,由于一個正確的無人機機場內(nèi)部必然包含停機位Marker,因此當某一個輪廓內(nèi)部沒有子輪廓時,說明該輪廓并不是機場。
濾除以上兩類輪廓后,選取外部為凸四邊形的無人機機場(輪廓)作為候選機場;由于在一片區(qū)域中無人機機場可能有多個,因此篩選出來的候選機場也可能有多個;
步驟S212,將候選機場映射到方形區(qū)域中(機載相機拍攝到的圖像可能會產(chǎn)生畸變,映射是為了還原其原來的圖像的形狀),利用k-means算法將候選機場的像素分為黑白兩類(當每個方塊的黑色面積大于這個方塊面積的2/3,則劃分為黑色,白色亦是如此),從而得到候選機場的二值化圖像;利用二值化圖像進行編碼,得到一個N*N的二值矩陣,對于二值矩陣,首先判斷二值矩陣的最外圈是否為全零,如果非全零則丟棄;然后將二值矩陣除了最外圈(即里面的(N-2)*(N-2)區(qū)域)的二進制編碼轉(zhuǎn)換為無符號整型;
步驟S213,根據(jù)每一個候選機場的無符號整型進行碼值計算,由于機場有四個朝向,因此分別計算四個朝向的碼值并選取4個朝向中碼值最小值作為ID;從而得到每一個候選機場的ID,將候選機場的ID與無人機接收到的降落指令中需要降落的無人機機場ID進行匹配,選擇ID匹配成功的候選機場作為待降落機場;
步驟S22,待降落機場找到后,停止對無人機采集到的圖像進行步驟S210至S213的處理,此時無人機根據(jù)待降落機場在地面的位置信息、無人機當前的高度以及無人機采集的機場的圖像信息,確定待降落機場相對于無人機的位置,然后調(diào)整自身姿態(tài)并飛行至待降落機場的上方;
當無人機到達停機位上方后,將能夠識別停機位Marker并給自身定位,此時無人機可調(diào)整Yaw方向(圍繞Y方向旋轉(zhuǎn),即偏航角)并最終降落到相應(yīng)位置,具體過程如下:
步驟S23,無人機到達待降落機場上方后,以固定的速率邊下降邊采集待降落機場的圖像,并對采集到的每一幀圖像進行以下處理:
步驟S230,將采集的圖像轉(zhuǎn)化為灰度圖,利用Canny算子得到二值化的邊緣分布圖,利用腐蝕、膨脹算法進行噪點濾除,然后提取圖像的輪廓信息;
步驟S231,篩選停機位Marker
在輪廓信息中濾除以下兩類輪廓:
第一類:面積小于2/3停機位Marker的輪廓;
第二類:內(nèi)部無子輪廓的輪廓;
濾除以上兩類輪廓后,選取外部為凸四邊形的停機位Marker作為候選停機位Marker;(這里的濾除過程的原理與前面相同)
步驟S232,將候選停機位Marker映射到方形區(qū)域中,利用k-means算法將候選停機位Marker的像素分為黑白兩類,從而得到候選停機位Marker的二值化圖像;利用二值化圖像進行編碼,得到一個N*N的二值矩陣,對于二值矩陣,首先判斷二值矩陣的最外圈是否為全零,如果非全零則丟棄;然后將二值矩陣除了最外圈的二進制編碼轉(zhuǎn)換為無符號整型;
步驟S233,根據(jù)每一個候選停機位Marker的無符號整型進行碼值計算,得到每一個候選停機位Marker的ID,將候選停機位Marker的ID與無人機接收到的降落指令中需要降落的候選停機位Marker的ID進行匹配,選擇ID匹配成功的候選停機位Marker待降落停機位Marker;
步驟S24,無人機根據(jù)待降落停機位Marker的位置信息飛行至待降落停機位Marker上方位置后進行降落。
在精確降落過程中,無人機以中速進行降落并計算無人機的實時位姿,提取降落停機位Marker的4個角點對應(yīng)的坐標,并與圖像像素點對應(yīng)。結(jié)合相機內(nèi)參,利用PnP算法可得到相機的姿態(tài)。根據(jù)無人機與相機的相對位置關(guān)系可推導(dǎo)得到無人機位姿。
在無人機降落到一定的位置時,停機位Marker已經(jīng)不能完全呈現(xiàn)在相機平面內(nèi),此時,嵌套Marker起作用,此時無人機只需要按照步驟S210-S213(或者S230-S233)中的ID解析算法,進行嵌套Marker的ID匹配即可(該停機位Marker內(nèi)的嵌套Marker)。此時無人機開始減速下降,在下降過程中就容易受到風(fēng)的影響,當無人機被吹離降落點時,無人機通過對拍攝到的衛(wèi)星Marker的ID來解析其偏離方向并進行修正。