本發(fā)明屬于農(nóng)業(yè)植物保護的信息處理
技術(shù)領(lǐng)域:
:,特別涉及一種無人機植保作業(yè)的電子圍欄監(jiān)控方法。
背景技術(shù):
::隨著科技的快速發(fā)展以及人們環(huán)保意識、安全意識的不斷提高,無人機在國內(nèi)逐漸用于各個
技術(shù)領(lǐng)域:
:。植保無人機在水田、高稈作物間作業(yè)和應(yīng)對爆發(fā)性病蟲害等方面已經(jīng)表現(xiàn)出突出的優(yōu)勢,而且可以應(yīng)對農(nóng)村勞動力減少的問題,近幾年發(fā)展迅猛。輕型植保無人直升機具有作業(yè)效率高、無需專用起降機場、減少人身藥害的幾率、減輕農(nóng)民勞動強度、節(jié)省農(nóng)藥使用量、降低農(nóng)藥殘留等優(yōu)點。從世界范圍來看,農(nóng)業(yè)航空較發(fā)達的國家主要有美國、俄羅斯、澳大利亞、加拿大、巴西、日本、韓國等。這些國家在無人機監(jiān)管方面,已經(jīng)做了很多的工作,獲得了較好的成就。比如日本,農(nóng)業(yè)植保無人機和無人機操作手都需要在網(wǎng)上統(tǒng)一注冊,實現(xiàn)統(tǒng)一管理。國內(nèi)外對于無人機的監(jiān)控,大多采用地面站的形式。地面站功能復(fù)雜,集飛行控制和監(jiān)視于一體,但終端比較大,不適于普通用戶。為了方便于普通用戶,降低使用成本,需開發(fā)一套簡潔的無人機飛行監(jiān)視系統(tǒng),運行于瀏覽器之上,用戶只要能上網(wǎng)就可以對無人機進行管理和監(jiān)視。近年來,無人機安全事故經(jīng)常見諸報端,對于植保無人機來說,安全問題尤其重要。因此,在植保無人機飛行監(jiān)視方面,既需要實現(xiàn)無人機飛行軌跡可視化,又需要對無人機飛行異常狀況及時預(yù)警,以確保植保無人機工作在允許飛行范圍之內(nèi)。為保證植保無人機的飛行安全和執(zhí)行植保作業(yè)的質(zhì)量,有必要研究并實現(xiàn)一套高效實用的無人機植保作業(yè)電子圍欄系統(tǒng),能夠?qū)崟r檢測無人機是否越界,并在有越界風(fēng)險時及時發(fā)出預(yù)警。本方法根據(jù)植保無人機作業(yè)過程中的實際需求,保證植保無人機的飛行安全和執(zhí)行植保作業(yè)的質(zhì)量,研究并實現(xiàn)一套高效可靠的無人機植保作業(yè)電子圍欄算法,當(dāng)無人機越界或者有越界的可能時,能夠發(fā)出警報。與本發(fā)明相近的幾個產(chǎn)品和發(fā)明:(1)周志文、謝斐、孫曉輝等研究并實現(xiàn)了一種基于電子圍欄的監(jiān)控方法及系統(tǒng),該系統(tǒng)公開了一種基于電子圍欄的監(jiān)控方法及系統(tǒng),在電子地圖上標(biāo)記監(jiān)控目標(biāo)的起始點;根據(jù)所述起始點在電子地圖上設(shè)置相應(yīng)的電子圍欄;獲取所述監(jiān)控目標(biāo)的位置信息,并根據(jù)所述位置信息判斷所述監(jiān)控目標(biāo)是否超出設(shè)定的電子圍欄;如果所述監(jiān)控目標(biāo)超出預(yù)先設(shè)定電子圍欄范圍,則對所述監(jiān)控目標(biāo)的監(jiān)控者進行提醒,當(dāng)被監(jiān)控目標(biāo)離開或者進入預(yù)設(shè)范圍時,第一時間通知目標(biāo)監(jiān)控者已離開或進入正常位置并提供被監(jiān)控者所處的位置,從而方便監(jiān)控者的查找被監(jiān)控目標(biāo)的位置。其方法僅對監(jiān)視是否在邊界之內(nèi)給出判別,如果越出邊界,則給出提醒。其不足之處在于,當(dāng)監(jiān)視目標(biāo)有越界趨勢時,沒有給出預(yù)警。為了保證植保無人機執(zhí)行飛行作業(yè)時的安全,在無人機有越界趨勢,就給出預(yù)警,而不能僅僅當(dāng)無人機已經(jīng)越界才給出提醒。(2)丁元沅設(shè)計并實現(xiàn)了無人機安全運營的機載自主監(jiān)視及報警系統(tǒng)和方法,該系統(tǒng)包括一套地面系統(tǒng)和一套機載系統(tǒng)。其中機載系統(tǒng)中包含機載數(shù)據(jù)庫、機載自主監(jiān)視、機載報警系統(tǒng),還包括數(shù)據(jù)接口通過空地C2數(shù)據(jù)鏈上傳更新的實時安全約束條件以及隨之更新的應(yīng)急回收程序的預(yù)定航跡;地面系統(tǒng)包括無人機空地C2數(shù)據(jù)鏈通訊、圖形化用戶界面顯示無人機報警信息和自主控制命令,同時為地面操作人員集成及編輯更新的安全約束條件,并根據(jù)更新的安全約束條件修改和優(yōu)化無人機應(yīng)急回收程序的預(yù)定航跡。無人機通過所述機載數(shù)據(jù)庫中存儲的安全邊界數(shù)據(jù),根據(jù)危險程度觸發(fā)不同等級的報警信息以及自主控制指令,并通過空地C2數(shù)據(jù)鏈實時下傳到地面系統(tǒng)及操作人員。該發(fā)明根據(jù)安全約束條件和規(guī)則構(gòu)造多維度的“虛擬圍欄”,對飛行狀態(tài)進行實時監(jiān)控并在危險狀況觸發(fā)時提供相應(yīng)告警,以確保無人機在安全邊界內(nèi)飛行。其技術(shù)特點是無人機作業(yè)邊界數(shù)據(jù)是無人機機載的,由無人機自主發(fā)出警報。其不足之處在于該發(fā)明只能用于無人機飛行現(xiàn)場監(jiān)控,無法實現(xiàn)遠程監(jiān)控。技術(shù)實現(xiàn)要素:本發(fā)明的目的是提出一種無人機植保作業(yè)的電子圍欄監(jiān)控方法,其特征在于,農(nóng)業(yè)植保作業(yè)地塊具有邊界屬性,為了保證植保無人機在執(zhí)行植保作業(yè)時的安全與效率,植保無人機飛行時不應(yīng)越過該邊界;因此對無人機植保作業(yè)采用電子圍欄予以監(jiān)控,具體包括:1)動態(tài)生成安全邊界;2)基于無人機電臺與4G模塊的雙鏈路通訊系統(tǒng);3)無人機越界以及越界趨勢的判斷,提高無人機越界檢測的效率;所述步驟1)動態(tài)生成安全邊界,系統(tǒng)采用了電子圍欄軟件系統(tǒng),動態(tài)實時生成無人機植保作業(yè)的安全邊界;系統(tǒng)設(shè)計為多用戶平臺,在監(jiān)視某一架無人機執(zhí)行某一植保作業(yè)時,在電子地圖上應(yīng)顯示該作業(yè)邊界和該無人機的飛行軌跡,在此基礎(chǔ)上,能夠最大限度和快速地檢測該無人機是否越界或者是否有越界趨勢,如果發(fā)現(xiàn)已經(jīng)越界或者有即將越界的可能,應(yīng)及時的報警。所述步驟2)基于無人機電臺與4G模塊的雙鏈路通訊系統(tǒng),系統(tǒng)設(shè)計了雙通訊鏈路以最大限度保障通訊安全,第一條通訊鏈路由無人機與地面控制站之間的通訊電臺組成,該通訊鏈路開發(fā)了較為完備的通訊協(xié)議;第二條通訊鏈路是無人機與遠程無人機監(jiān)視服務(wù)器之間的4G通訊鏈路,本系統(tǒng)集成開發(fā)了GPS/北斗雙模定位信息傳送模塊,用以將無人機實時飛行位置信息發(fā)送至無人機監(jiān)視服務(wù)器。所述步驟3)無人機越界以及越界趨勢的判斷,為了獲得現(xiàn)場快速響應(yīng),提升無人機飛行安全以及無人機監(jiān)視系統(tǒng)的實用性和準(zhǔn)確性,系統(tǒng)采用了基于步驟2)的兩種通訊方法的電子圍欄軟件系統(tǒng),前端使用JavaScript、Jquery和BMapLib的Web技術(shù),利用開源的Django框架,實現(xiàn)了無人機飛行狀態(tài)的實時可視化、無人機作業(yè)邊界的可視化以及安全邊界的動態(tài)實時生成、無人機越界以及越界趨勢檢測等功能,最大限度地為植保無人機安全飛行作業(yè)提供了全面的支撐。所述電子圍欄系統(tǒng)設(shè)計和開發(fā)(1)無人機通訊協(xié)議及其解析采用成都縱橫自動化技術(shù)有限公司出產(chǎn)的無人機自動駕駛儀發(fā)送到地面站的遙測數(shù)據(jù)包,該數(shù)據(jù)包為二進制字節(jié)流,具有完整的消息結(jié)構(gòu),包中含有兩種消息,分別為遙測數(shù)據(jù)和飛控系統(tǒng)狀態(tài)數(shù)據(jù),兩種消息長度都為變長,消息包中包含多個變量,每一個變量的數(shù)據(jù)類型與長度固定;所述遙測數(shù)據(jù)包名為TELEMETRY_HI_RES,以下簡稱THR;系統(tǒng)狀態(tài)數(shù)據(jù)包名SYSTEM_STATUS,以下簡稱SS;數(shù)據(jù)解析時將連續(xù)的二進制字節(jié)流,按照變量一個一個拆開,然后將其從二進制轉(zhuǎn)為整數(shù)、ASCII碼或者僅轉(zhuǎn)為程序可讀的二進制數(shù)據(jù),在表2中,海拔高度HMSL,變量類型為INT32,所以在第16字節(jié)處,取連續(xù)的32位,即4字節(jié),然后將這4字節(jié)數(shù)據(jù)轉(zhuǎn)為INT數(shù)據(jù)類型;(2)無人機4G通訊鏈路集成與開發(fā)無人機信息經(jīng)由4G網(wǎng)絡(luò)發(fā)送到遠程服務(wù)器,該通訊鏈路使用ARM作為智能網(wǎng)關(guān),并集成了植保無人機飛控模塊、北斗/GPS模塊以及4G模塊;系統(tǒng)數(shù)據(jù)采集軟件能夠?qū)崟r采集飛控模塊中無人機的飛行信息、北斗/GPS信息以及4G模塊SIM信息,并將這些信息打包后通過4G模塊發(fā)送到遠程服務(wù)器端;(3)無人機飛行狀態(tài)采集系統(tǒng)硬件集成智能網(wǎng)關(guān)集成了北斗/GPS、ARM本地終端、4G通信模塊和電源管理與程序下載模塊;智能網(wǎng)關(guān)是個域網(wǎng)(WPAN)與廣域網(wǎng)(WLAN)之間的橋梁,主要功能是完成ARM與4G網(wǎng)絡(luò)之間的信息交互;iARM本地終端,ARM本地終端是智能網(wǎng)關(guān)的數(shù)據(jù)與控制核心,通過串口分別與飛控模塊、北斗/GPS模塊、4G模塊通信模塊相連,完成WPAN與WLAN之間的數(shù)據(jù)指令透傳;ARM終端收到數(shù)據(jù)后,進行數(shù)據(jù)校驗解析,即預(yù)定的通信協(xié)議對緩沖區(qū)中以0x7E開始和以0x7E結(jié)束的完整數(shù)據(jù)幀進行解封裝,解析出外接模塊中發(fā)送的命令字和有效數(shù)據(jù),根據(jù)命令格式判斷接收數(shù)據(jù)的類型為數(shù)據(jù)幀還是應(yīng)答幀,并根據(jù)命令執(zhí)行相應(yīng)的處理,包括數(shù)據(jù)幀的存儲、丟棄和應(yīng)答幀的應(yīng)答;ii北斗/GPS模塊,本系統(tǒng)中采用上海司南衛(wèi)星導(dǎo)航技術(shù)有限公司的北斗/GPS模塊進行開發(fā),以M300為標(biāo)準(zhǔn)基站,M600位移動站,M300接收機是高精度多模多頻板卡,根據(jù)不同的需求配置不同的北斗/GPS板卡,數(shù)據(jù)通信方式采用無線電網(wǎng)絡(luò)方式,天線為圓盤天線,用于接收衛(wèi)星信號,獲取基站坐標(biāo)和設(shè)置差分數(shù)據(jù)輸出;iii4G通信模塊,本系統(tǒng)采用4G通信模塊將無人機狀態(tài)信息、位置信息以及SIM信息發(fā)送到遠程服務(wù)器端;采用TCP/UDP透明數(shù)據(jù)傳輸?shù)墓I(yè)級無線終端設(shè)備,內(nèi)嵌自主知識產(chǎn)權(quán)的TCP/IP協(xié)議棧,為用戶提供高速,穩(wěn)定可靠,數(shù)據(jù)終端永遠在線,多種協(xié)議轉(zhuǎn)換、虛擬專用網(wǎng)絡(luò)的系統(tǒng)應(yīng)用;(4)地面站數(shù)據(jù)接收解析轉(zhuǎn)發(fā)程序包括:數(shù)據(jù)的轉(zhuǎn)發(fā)受到網(wǎng)速的限制,為網(wǎng)址數(shù)據(jù)擁塞引入隊列,并將本程序設(shè)計為多線程并發(fā)程序;本程序分為三個線程,分別為串口數(shù)據(jù)接收與解析線程,THR數(shù)據(jù)轉(zhuǎn)發(fā)線程,SS數(shù)據(jù)轉(zhuǎn)發(fā)線程;其中串口數(shù)據(jù)接收與解析線程中又分為THR解析和SS解析;此外,程序還有兩個重要的隊列數(shù)據(jù)結(jié)構(gòu),分別為THR隊列和SS隊列;服務(wù)器端數(shù)據(jù)接收解析程序,針對成都縱橫自動化技術(shù)有限公司出產(chǎn)的無人機自動駕駛儀發(fā)送到地面站的遙測數(shù)據(jù)包,本程序?qū)⒂删W(wǎng)絡(luò)傳來的二進制原始數(shù)據(jù),分兩種消息解析,將二進制數(shù)據(jù)中的每一個變量一個一個解析,最終將解析后的數(shù)據(jù)存入數(shù)據(jù)庫;(5)植保無人機電子圍欄算法電子圍欄系統(tǒng)由安全邊界生成算法、無人機相對位置射線檢測法以及越界檢測算法三部分組成,其中,射線法用于判斷點與多邊形的相對位置,是本系統(tǒng)算法的核心;越界檢測算法用于預(yù)測無人機將要越界的位置,并計算當(dāng)前位置與越界位置之間的距離;安全邊界算法用于加速本算法,無人機在安全邊界之內(nèi),則不需進行越界檢測;該電子圍欄算法包括:(5.1)作業(yè)邊界的獲取包括:作業(yè)邊界用來表示農(nóng)業(yè)植保作業(yè)地塊范圍,它是任意多邊形,多邊形指不產(chǎn)生自交的多邊形,在現(xiàn)實中的地塊是不可能產(chǎn)生自交的,多邊形僅需存儲多邊形的邊界點GPS坐標(biāo)即可;(5.2)安全邊界生成算法植保無人機飛行于多邊形作業(yè)地塊邊界之中,當(dāng)無人機有越界趨勢的時候,根據(jù)越界檢測算法,發(fā)出越界預(yù)警;然而,只有當(dāng)無人機飛行于靠近邊界的位置時,才可能有越界的趨勢,所以當(dāng)無人機沒有靠近邊界時,并沒有進行越界檢測的必要;因此,需根據(jù)原始邊界生成一個安全邊界,當(dāng)無人機飛行于安全邊界之內(nèi)時,無需進行越界檢測;農(nóng)用地塊邊界的形狀一般為多邊形,即可能為凸多邊形,也可能為凹多邊形,但不會是自交多邊形。為了生成安全邊界,對于凸多邊形,用邊界點的坐標(biāo)之和除以點數(shù),得到凸多邊形的類似中心點,然后使邊界點向中心點的方向內(nèi)縮一定比例,即可產(chǎn)生向內(nèi)縮小的多邊形;然而對于凹多邊形,用該方法產(chǎn)生的中心點有可能落在多邊形之外,因此不適用;為了生成凸多邊形和凹多邊形都可以適用的內(nèi)縮算法,所述多邊形內(nèi)縮算法的核心是平行線算法,而平行線算法主要在于計算線段的單位法向量,法向量方向即線段的平移方向;(5.3)安全邊界的有效性及動態(tài)重構(gòu)如果邊界上的某一端點與相鄰邊距離小于該邊的平行線距離,即多邊形的某一內(nèi)角或者外角的角度十分小,可能導(dǎo)致生成的內(nèi)縮多邊形發(fā)生畸變,嚴(yán)重時會導(dǎo)致安全邊界超出原邊界,如果安全邊界超出原邊界,則安全邊界無效;此時,減小平移倍數(shù),重新生成安全邊界,可解決此問題,但如果平移倍數(shù)已經(jīng)最小,生成的安全邊界仍無效,則放棄安全邊界;則考慮安全邊界的動態(tài)重構(gòu),算法默認的內(nèi)縮距離與原始地塊邊界的面積大小有關(guān),但根據(jù)地塊面積大小來限定安全邊界的內(nèi)縮距離是不合適的,當(dāng)無人機飛行速度較快時,越界的可能較大,需要進行越界檢測的范圍就越大,對應(yīng)著安全邊界也就越小;當(dāng)飛行速度較慢時,越界可能較小,需要進行越界檢測的范圍就越小,對應(yīng)著安全邊界就越大;為此,電子圍欄算法中的安全邊界以根據(jù)無人機飛行速度動態(tài)改變,以增強安全邊界的適應(yīng)性與高效性。算法將無人機的飛行速度分為五級,當(dāng)速度級別改變時,動態(tài)重構(gòu)安全邊界。每一速度級別對應(yīng)著一個平移距離,速度越大,平移距離越大,需進行越界檢測的范圍就越大,對應(yīng)生成的安全邊界就越??;本算法通過動態(tài)的生成安全邊界,提高無人機越界檢測的效率;(5.4)無人機相對位置射線檢測法射線法是通過由點p引一條水平射線,計算水平射線與多邊形交點個數(shù)的奇、偶來判斷的,如果是奇數(shù)則在內(nèi),偶數(shù)則在外;特殊情況需要特殊處理,其處理規(guī)則如下:對于多邊形的水平邊不作考慮;對于多邊形的頂點和射線相交時,如果該頂點是其所屬的邊上縱坐標(biāo)較大的頂點,則計數(shù),否則忽略;在電子圍欄算法中,多次運用了射線法判斷點與多邊形的位置關(guān)系;無人機在執(zhí)行作業(yè)時,飛行于作業(yè)邊界的概率較大,越界的概率較??;在作業(yè)邊界之中時,由于安全邊界覆蓋了原始地塊邊界中的大部分面積,所以無人機飛行于安全邊界之中的概率較大,飛行于兩邊界之間的概率較小。所述地面站數(shù)據(jù)接收解析轉(zhuǎn)發(fā)程序的流程如下:S1.判斷數(shù)據(jù)包的前兩字節(jié)是否為0xB5和0x62,如是則為所需的數(shù)據(jù)包。然后記錄數(shù)據(jù)中的地址、數(shù)據(jù)長度等信息;S2.判斷MSGID,如果為0x4A,則為THR消息,如果為0x48,則為SS消息;S3.進入THR解析或者SS解析;S4.進入數(shù)據(jù)解析后,將連續(xù)的二進制字節(jié)流,按照變量一個一個拆開,然后將其從二進制轉(zhuǎn)為整數(shù)、ASCII碼或者僅轉(zhuǎn)為程序可讀的二進制數(shù)據(jù);S5.解析后的數(shù)據(jù)轉(zhuǎn)為JSON格式;S6.將JSON數(shù)據(jù)存入隊列,等待轉(zhuǎn)發(fā)進程轉(zhuǎn)發(fā)。所述服務(wù)器端數(shù)據(jù)接收解析程序的流程如下:S1.接收到數(shù)據(jù)包,主程序新建一個接收線程為其服務(wù);S2.判斷數(shù)據(jù)包的前兩字節(jié)是否為0xB5和0x62,如是則為所需的數(shù)據(jù)包。然后記錄數(shù)據(jù)中的地址、數(shù)據(jù)長度等信息;S3.判斷MSGID,如果為0x4A,則為THR消息,如果為0x48,則為SS消息;S4.進入THR解析或者SS解析;S5.進入數(shù)據(jù)解析后,將連續(xù)的二進制字節(jié)流,按照變量一個一個拆開,然后將其從二進制轉(zhuǎn)為整數(shù)、ASCII碼或者僅轉(zhuǎn)為程序可讀的二進制數(shù)據(jù);S6.解析后的數(shù)據(jù)存入數(shù)據(jù)庫。本發(fā)明的有益效果是1.本發(fā)明設(shè)計實現(xiàn)了雙通訊鏈路,較好地保障了當(dāng)其中一條數(shù)據(jù)鏈路發(fā)生問題時,立即切換到另一條鏈路獲取植保無人機飛行狀態(tài)數(shù)據(jù);2.可靠的植保無人機越界判定和越界預(yù)警,利用射線檢測法,可以檢測無人機與某一任意一般多邊形的相對位置,即無人機是在多邊形內(nèi)還是在多邊形外。系統(tǒng)經(jīng)過理論證明與實際測試表明,射線檢測法可以實現(xiàn)可靠的無人機越界判定??梢栽跓o人機尚未越界但有越界趨勢時,及時發(fā)出預(yù)警,提醒用戶及時改變無人機飛行方向。3.實現(xiàn)高效的無人機越界檢測,在檢測一臺無人機飛行狀況時,首先檢測無人機與安全邊界的相對位置,如果無人機飛行于安全邊界之內(nèi),就不做越界檢測,因而使得本發(fā)明大大的減少了計算量,提升了算法的效率。附圖說明圖1為4G網(wǎng)絡(luò)通信框圖。圖2為智能網(wǎng)關(guān)硬件框圖。圖3為4GDTU設(shè)計原理框圖。圖4為4GDTU配置流程圖。圖5為地面站數(shù)據(jù)解析與轉(zhuǎn)發(fā)程序結(jié)構(gòu)示意圖。圖6為服務(wù)器端數(shù)據(jù)接收解析程序結(jié)構(gòu)示意圖。圖7為電子圍欄系統(tǒng)流程圖。圖8為安全邊界生成算法流程圖。圖9為射線法示意圖。圖10為安全邊界動態(tài)生成示意圖。圖11為無人機飛行于安全邊界之中的狀態(tài)。圖12為無人機已經(jīng)越界的狀態(tài)。圖13為無人機飛行于兩邊界之間且有越界趨勢的狀態(tài)。圖14為無人機飛行于兩邊界之間但沒有越界趨勢的狀態(tài)。具體實施方式本發(fā)明提出一種無人機植保作業(yè)的電子圍欄監(jiān)控方法,農(nóng)業(yè)植保作業(yè)地塊具有邊界屬性,為了保證植保無人機在執(zhí)行植保作業(yè)時的安全與效率,植保無人機飛行時不應(yīng)越過該邊界;因此對無人機植保作業(yè)采用電子圍欄予以監(jiān)控,具體包括:1)動態(tài)生成安全邊界,系統(tǒng)采用了電子圍欄軟件系統(tǒng),動態(tài)實時生成無人機植保作業(yè)的安全邊界;系統(tǒng)設(shè)計為多用戶平臺,在監(jiān)視某一架無人機執(zhí)行某一植保作業(yè)時,在電子地圖上應(yīng)顯示該作業(yè)邊界和該無人機的飛行軌跡,在此基礎(chǔ)上,能夠最大限度和快速地檢測該無人機是否越界或者是否有越界趨勢,如果發(fā)現(xiàn)已經(jīng)越界或者有即將越界的可能,應(yīng)及時的報警;2)基于無人機電臺與4G模塊的雙鏈路通訊系統(tǒng);系統(tǒng)設(shè)計了雙通訊鏈路以最大限度保障通訊安全,第一條通訊鏈路由無人機與地面控制站之間的通訊電臺組成,該通訊鏈路開發(fā)了較為完備的通訊協(xié)議;第二條通訊鏈路是無人機與遠程無人機監(jiān)視服務(wù)器之間的4G通訊鏈路,本系統(tǒng)集成開發(fā)了GPS/北斗雙模定位信息傳送模塊,用以將無人機實時飛行位置信息發(fā)送至無人機監(jiān)視服務(wù)器。3)無人機越界以及越界趨勢的判斷,為了獲得現(xiàn)場快速響應(yīng),提升無人機飛行安全以及無人機監(jiān)視系統(tǒng)的實用性和準(zhǔn)確性,系統(tǒng)開發(fā)了基于步驟2)的兩種通訊方法的電子圍欄軟件系統(tǒng),前端使用Jquery和BMapLib等JavaScript框架技術(shù),利用開源的Django框架,實現(xiàn)了無人機飛行狀態(tài)的實時可視化、無人機作業(yè)邊界的可視化以及安全邊界的動態(tài)實時生成、無人機越界以及越界趨勢檢測等功能,最大限度地為植保無人機安全飛行作業(yè)提供了全面的支撐,提高無人機越界檢測的效率;下面結(jié)合附圖、實施例予以說明。所述電子圍欄系統(tǒng)設(shè)計和開發(fā)(1)無人機通訊協(xié)議及其解析采用成都縱橫自動化技術(shù)有限公司出產(chǎn)的無人機自動駕駛儀發(fā)送到地面站的遙測數(shù)據(jù)包,該數(shù)據(jù)包為二進制字節(jié)流,具有完整的消息結(jié)構(gòu),包中含有兩種消息,分別為遙測數(shù)據(jù)和飛控系統(tǒng)狀態(tài)數(shù)據(jù),兩種消息長度都為變長,消息包中包含多個變量,每一個變量的數(shù)據(jù)類型與長度固定,數(shù)據(jù)包結(jié)構(gòu)如表1所示。遙測數(shù)據(jù)包名為TELEMETRY_HI_RES,以下簡稱THR;系統(tǒng)狀態(tài)數(shù)據(jù)包名SYSTEM_STATUS,以下簡稱SS;THR數(shù)據(jù)舉例如表2所示。數(shù)據(jù)解析時將連續(xù)的二進制字節(jié)流,按照變量一個一個拆開,然后將其從二進制轉(zhuǎn)為整數(shù)、ASCII碼或者僅轉(zhuǎn)為程序可讀的二進制數(shù)據(jù),在表2中,海拔高度HMSL,變量類型為INT32,所以在第16字節(jié)處,取連續(xù)的32位,即4字節(jié),然后將這4字節(jié)數(shù)據(jù)轉(zhuǎn)為INT數(shù)據(jù)類型。表1數(shù)據(jù)包結(jié)構(gòu)表2THR數(shù)據(jù)說明(2)無人機4G通訊鏈路集成與開發(fā)無人機信息經(jīng)由4G網(wǎng)絡(luò)發(fā)送到遠程服務(wù)器,該通訊鏈路使用ARM作為智能網(wǎng)關(guān),并集成了植保無人機飛控模塊、北斗/GPS模塊以及4G模塊;系統(tǒng)數(shù)據(jù)采集軟件能夠?qū)崟r采集飛控模塊中無人機的飛行信息、北斗/GPS信息以及4G模塊SIM信息,并將這些信息打包后通過4G模塊發(fā)送到遠程服務(wù)器端,(整條通信鏈路示意圖如圖1所示)。(3)無人機飛行狀態(tài)采集系統(tǒng)硬件集成智能網(wǎng)關(guān)集成了北斗/GPS、ARM本地終端、4G通信模塊和電源管理與程序下載模塊;智能網(wǎng)關(guān)是個域網(wǎng)(WPAN)與廣域網(wǎng)(WLAN)之間的橋梁,主要功能是完成ARM與4G網(wǎng)絡(luò)之間的信息交互,本發(fā)明基于當(dāng)前廣泛流行的Android系統(tǒng)進行控制顯示終端設(shè)計,使用支持組件重用和替換的應(yīng)用框架,使用開源的SQLite結(jié)構(gòu)數(shù)據(jù)庫,具有良好的兼容性和可拓展性。智能網(wǎng)關(guān)包含本地終端,能夠完成存儲與顯示接收到的無人機狀態(tài)信息、地理位置信息以及SIM信息,智能網(wǎng)關(guān)的硬件結(jié)構(gòu)圖如圖2的智能網(wǎng)關(guān)硬件框圖所示。iARM本地終端ARM本地終端是智能網(wǎng)關(guān)的數(shù)據(jù)與控制核心,通過串口分別與飛控模塊、北斗/GPS模塊、4G模塊通信模塊相連,完成WPAN與WLAN之間的數(shù)據(jù)指令透傳。同時,本地終端能夠解析數(shù)據(jù)包與指令包,將無人機飛行狀態(tài)信息以及位置信息存儲在數(shù)據(jù)庫中,并在液晶屏上顯示。用戶可以查詢歷史數(shù)據(jù)。本地終端選用Cortex-A9內(nèi)核的Itop-4412開發(fā)板為硬件平臺,以Android4.0.3為系統(tǒng)開發(fā)軟件。軟件采用多線程編程、C語言靜態(tài)庫、SQLite3數(shù)據(jù)庫等實現(xiàn)功能。ARM終端收到數(shù)據(jù)后,進行數(shù)據(jù)校驗解析,即預(yù)定的通信協(xié)議對緩沖區(qū)中以0x7E開始和以0x7E結(jié)束的完整數(shù)據(jù)幀進行解封裝,解析出外接模塊中發(fā)送的命令字和有效數(shù)據(jù),根據(jù)命令格式判斷接收數(shù)據(jù)的類型為數(shù)據(jù)幀還是應(yīng)答幀,并根據(jù)命令執(zhí)行相應(yīng)的處理,包括數(shù)據(jù)幀的存儲、丟棄和應(yīng)答幀的應(yīng)答.ARM終端對收到的數(shù)據(jù)進行校驗解析,采用占用內(nèi)存較少的嵌入式數(shù)據(jù)庫SQLite3,解決嵌入式內(nèi)存小運行速度慢的難題,在使用時通過Android系統(tǒng)下驅(qū)動的方式進行打開,創(chuàng)建需要的數(shù)據(jù)庫表和主鍵,存儲數(shù)據(jù)處理線程中外接模塊傳回來的數(shù)據(jù),按照查詢條件進行條件查詢并將查詢結(jié)果返回,完成數(shù)據(jù)的存儲處理;對于SQLite3的操作,Android提供了SQLitData-base和SQLitOpenHelper兩個類;SQLitOpenHelper提供兩個方法onCreat和nUpgrade對SQLite數(shù)據(jù)庫進行創(chuàng)建和更新,提供getWritableDatabase或getReadableDatabase方法來獲得數(shù)據(jù)庫對象;SQLitDatabase類則提供一些方法,能夠創(chuàng)建、刪除、執(zhí)行SQL指令、完成常規(guī)的數(shù)據(jù)庫管理任務(wù),如execSQL能執(zhí)行SQL語句,insert能夠插入表項,update能夠更新表項。用戶通過嵌入式終端的客戶端,采用SQLite數(shù)據(jù)庫進行存取操作,利用了Android中的TableLayout進行表中對應(yīng)字段的顯示,同時利用游標(biāo)cursor進行表中字段的查詢,可以實現(xiàn)對數(shù)據(jù)庫的訪問,實現(xiàn)對各個外接模塊監(jiān)測數(shù)據(jù)的讀取顯示操作。ii北斗/GPS模塊本系統(tǒng)中采用上海司南衛(wèi)星導(dǎo)航技術(shù)有限公司的北斗/GPS模塊進行開發(fā),以M300為標(biāo)準(zhǔn)基站,M600位移動站,M300接收機是高精度多模多頻板卡,根據(jù)不同的需求配置不同的北斗/GPS板卡,數(shù)據(jù)通信方式采用無線電網(wǎng)絡(luò)方式,天線為圓盤天線,用于接收衛(wèi)星信號,如果采用電臺模式(即通過無線電臺發(fā)射差分數(shù)據(jù)),用其一個串口連接發(fā)射電臺后,由電臺電源線統(tǒng)一供電,電源電壓要求12V/DC-14V/DC,電流要求不小于5A,發(fā)射電臺天線為鞭狀天線。如果采用網(wǎng)絡(luò)模式(通過網(wǎng)絡(luò)模塊或者參考站軟件等),則要用一個串口連接網(wǎng)絡(luò)模塊(或者計算機),接收機可通過數(shù)據(jù)線單獨供電,電源電壓要求11-16V/DC,電流要求不小于1A。ii-1獲取基站坐標(biāo)首先,確保接收機搜星已經(jīng)完成,請求基準(zhǔn)站接收機的bestpos數(shù)據(jù),命令如下:fixnone//清除之前的參考坐標(biāo)logbestposaontime1//設(shè)置定位數(shù)據(jù)以1Hz輸出即可接收到數(shù)據(jù)示例如下:#BESTPOSA,COM1,0,60.0,FINESTEERING,1728,439514.900,00000000,0000,1114;SOL_COMPUTED,SINGLE,31.17424185363,119.38763111459,50.2311,0.0000,WGS84,0.2436,0.7712,1.0611,"0000",99.000,1.000,19,19,19,19,0,0,0,0*55c94c5c其中以方框里的黑體部分數(shù)據(jù)表示的三組數(shù)據(jù)分別是緯度坐標(biāo)、經(jīng)度坐標(biāo)和高程,其中緯度和經(jīng)度的格式是dd.ddddddddddd,即單位為度。然后,將bestpos數(shù)據(jù)中的經(jīng)、緯度坐標(biāo)組成基站坐標(biāo)的命令:fixposition31.17424185363119.3876311145950.2311//約束基準(zhǔn)站坐標(biāo)saveconfig//保存設(shè)置ii-2設(shè)置差分數(shù)據(jù)輸出從com1發(fā)送設(shè)置命令,從com3輸出差分數(shù)據(jù),設(shè)置命令如下:Unlogall//清除之前的設(shè)置fixposition31.17424185363119.3876311145950.2311//約束基準(zhǔn)站坐標(biāo)comcom338400//設(shè)置com3端口波特率為38400logcom3rtcm1004bontime1//設(shè)置GPS觀測數(shù)據(jù)從com3以1HZ輸出logcom3rtcm1104bontime1//設(shè)置BDS觀測數(shù)據(jù)從com3以1HZ輸出logcom3rtcm1012bontime1//設(shè)置GLO觀測數(shù)據(jù)從com3以1HZ輸出logcom3rtcm1005bontime5//設(shè)置基準(zhǔn)站位置信息以0.2HZ輸出saveconfig//保存設(shè)置M600為雙天線定位定向型接收機,分為主站和從站,主站用于實現(xiàn)RTK定位功能,從站用于實現(xiàn)移動定位功能,能都實現(xiàn)RTK定位(厘米級精度)。iii4G通信模塊本系統(tǒng)采用4G通信模塊將無人機狀態(tài)信息、位置信息以及SIM信息發(fā)送到遠程服務(wù)器端,本系統(tǒng)采用型號為CM510-21TDTU設(shè)備(廈門才茂公司)提供高速、永遠在線、TCP/UDP透明數(shù)據(jù)傳輸?shù)墓I(yè)級無線終端設(shè)備,內(nèi)嵌自主知識產(chǎn)權(quán)的TCP/IP協(xié)議棧,為用戶提供高速,穩(wěn)定可靠,數(shù)據(jù)終端永遠在線,多種協(xié)議轉(zhuǎn)換、虛擬專用網(wǎng)絡(luò)的系統(tǒng)應(yīng)用。DTU原理框圖參見圖3所示4GDTU設(shè)計原理框圖;DTU模塊與ARM網(wǎng)關(guān)連接好后,用配置軟件進行配置,首先打開串口,若打開失敗則檢查設(shè)備硬件問題或者串口線連接等問題,若成功打開后根據(jù)日志提示進行下一步操作,即給設(shè)備重新上電,之后進行AT指令測試,此操作需要等待2-5分鐘,若長時間沒有響應(yīng)則要檢查SIM是否插錯或者欠費等情況,若正常的話會提示AT指令測試成功,可進入配置狀態(tài),此時可以進行串口參數(shù)和服務(wù)器的固定IP地址以及端口號等信息配置并保存,保存成功后需要打開服務(wù)器端軟件,設(shè)置好對應(yīng)的IP地址和端口號,并且使該端口號進入到監(jiān)聽狀態(tài),之后回到配置軟件點擊進入通信狀態(tài),之后設(shè)備會自動重新啟動,指示燈藍燈常亮,表明進入通信狀態(tài),則配置成功。配置流程圖如圖44GDTU配置流程圖所示。(4)無人機飛行狀態(tài)采集系統(tǒng)軟件本系統(tǒng)的數(shù)據(jù)解析程序?qū)Τ啥伎v橫自動化技術(shù)有限公司出產(chǎn)的無人機自動駕駛儀發(fā)送到地面站的遙測數(shù)據(jù)包。4.1地面站數(shù)據(jù)接收解析轉(zhuǎn)發(fā)程序因為數(shù)據(jù)發(fā)送頻率較快,而數(shù)據(jù)的轉(zhuǎn)發(fā)可能受到網(wǎng)速的限制,為網(wǎng)址數(shù)據(jù)擁塞引入隊列,并將本程序設(shè)計為多線程并發(fā)程序。本程序分為三個線程,分別為串口數(shù)據(jù)接收與解析線程,THR數(shù)據(jù)轉(zhuǎn)發(fā)線程,SS數(shù)據(jù)轉(zhuǎn)發(fā)線程。其中串口數(shù)據(jù)接收與解析線程中又分為THR解析和SS解析。此外,程序還有兩個重要的隊列數(shù)據(jù)結(jié)構(gòu),分為別THR隊列和SS隊列。圖5為地面站數(shù)據(jù)解析與轉(zhuǎn)發(fā)程序結(jié)構(gòu),地面站數(shù)據(jù)接收解析轉(zhuǎn)發(fā)程序的流程如下:S1.判斷數(shù)據(jù)包的前兩字節(jié)是否為0xB5和0x62,如是則為所需的數(shù)據(jù)包。然后記錄數(shù)據(jù)中的地址、數(shù)據(jù)長度等信息;S2.判斷MSGID,如果為0x4A,則為THR消息,如果為0x48,則為SS消息;S3.進入THR解析或者SS解析;S4.進入數(shù)據(jù)解析后,將連續(xù)的二進制字節(jié)流,按照變量一個一個拆開,然后將其從二進制轉(zhuǎn)為整數(shù)、ASCII碼或者僅轉(zhuǎn)為程序可讀的二進制數(shù)據(jù);S5.解析后的數(shù)據(jù)轉(zhuǎn)為JSON格式;S6.將JSON數(shù)據(jù)存入隊列,等待轉(zhuǎn)發(fā)進程轉(zhuǎn)發(fā)。4.2服務(wù)器端數(shù)據(jù)接收解析程序本程序針對成都縱橫自動化技術(shù)有限公司出產(chǎn)的無人機自動駕駛儀發(fā)送到地面站的遙測數(shù)據(jù)包。本程序?qū)⒂删W(wǎng)絡(luò)傳來的二進制原始數(shù)據(jù),分兩種消息解析,將二進制數(shù)據(jù)中的每一個變量一個一個解析,最終將解析后的數(shù)據(jù)存入數(shù)據(jù)庫。因為服務(wù)器同時接收到的連接請求可能很多,因此使用多線程socket監(jiān)聽。每當(dāng)有一個新的連接,服務(wù)器就產(chǎn)生一個新的socket線程為之服務(wù)。每一個線程,又分為THR數(shù)據(jù)解析入庫,和SS數(shù)據(jù)解析入庫。圖6為服務(wù)器端數(shù)據(jù)接收解析程序結(jié)構(gòu),服務(wù)器端數(shù)據(jù)接收解析程序的流程如下:S1.接收到數(shù)據(jù)包,主程序新建一個接收線程為其服務(wù);S2.判斷數(shù)據(jù)包的前兩字節(jié)是否為0xB5和0x62,如是則為所需的數(shù)據(jù)包。然后記錄數(shù)據(jù)中的地址、數(shù)據(jù)長度等信息;S3.判斷MSGID,如果為0x4A,則為THR消息,如果為0x48,則為SS消息;S4.進入THR解析或者SS解析。S5.進入數(shù)據(jù)解析后,將連續(xù)的二進制字節(jié)流,按照變量一個一個拆開,然后將其從二進制轉(zhuǎn)為整數(shù)、ASCII碼或者僅轉(zhuǎn)為程序可讀的二進制數(shù)據(jù);S6.解析后的數(shù)據(jù)存入數(shù)據(jù)庫。(5)植保無人機電子圍欄算法電子圍欄系統(tǒng)由安全邊界生成算法、無人機相對位置射線檢測法以及越界檢測算法三部分組成,其中,射線法用于判斷點與多邊形的相對位置,是本系統(tǒng)算法的核心;越界檢測算法用于預(yù)測無人機將要越界的位置,并計算當(dāng)前位置與越界位置之間的距離;安全邊界算法用于加速本算法,無人機在安全邊界之內(nèi),則不需進行越界檢測。表3子算法列表(5.1)作業(yè)邊界的獲取包括:作業(yè)地塊邊界的表示和獲取,作業(yè)邊界用來農(nóng)業(yè)植保作業(yè)地塊范圍,它可以是任意一般多邊形。一般多邊形指不產(chǎn)生自交的多邊形,在現(xiàn)實中的地塊是不可能產(chǎn)生自交的。多邊形僅需存儲多邊形的邊界點GPS坐標(biāo)即可。本方法使用JavaScript語言實現(xiàn),運行于前端瀏覽器。在監(jiān)視某一作業(yè)的某一架無人機的飛行情況時,首先從Web服務(wù)器中獲取該邊界的信息,即邊界的所有端點。如圖7所示.植保無人機電子圍欄系統(tǒng)控制流程,其步驟如下:S1.獲取基于GPS坐標(biāo)的作業(yè)邊界,生成多邊形邊界polygon;S2.由安全邊界算法,根據(jù)polygon生成安全邊界polygon_s,安全邊界polygon_s為邊界polygon的同心等比縮??;S3.獲取植保無人機飛行數(shù)據(jù),需要無人機至少兩點位置數(shù)據(jù);S4.根據(jù)射線法,判斷植保無人機與邊界polygon以及安全邊界polygon_s的相對位置,通過判斷,如果:(i)植保無人機在安全邊界之內(nèi),則不需越界預(yù)警;(ii)植保無人機在外邊界之外,則已越界,拋出異常;(iii)植保無人機在兩個邊界之間,則根據(jù)當(dāng)前方向,判斷無人機可能越界的位置;若無人機位置與可能越界的位置之間的距離小于警戒距離,則發(fā)出預(yù)警。(5.2)安全邊界生成算法植保無人機飛行于多邊形作業(yè)地塊邊界之中,當(dāng)無人機有越界趨勢的時候,根據(jù)越界檢測算法,發(fā)出越界預(yù)警。然而,只有當(dāng)無人機飛行于靠近邊界的位置時,才可能有越界的趨勢,所以當(dāng)無人機沒有靠近邊界時,并沒有進行越界檢測的必要。因此,需根據(jù)原始邊界生成一個安全邊界,當(dāng)無人機飛行于安全邊界之內(nèi)時,無需進行越界檢測。農(nóng)用地塊邊界的形狀一般為多邊形,即可能為凸多邊形,也可能為凹多邊形,但不會是自交多邊形。為了生成安全邊界,對于凸多邊形,用邊界點的坐標(biāo)之和除以點數(shù),得到凸多邊形的類似中心點,然后使邊界點向中心點的方向內(nèi)縮一定比例,即可產(chǎn)生向內(nèi)縮小的多邊形。然而對于凹多邊形,用該方法產(chǎn)生的中心點有可能落在多邊形之外,因此不適用。為了生成凸多邊形和凹多邊形都可以適用的內(nèi)縮算法,所述多邊形內(nèi)縮算法的核心是平行線算法。而平行線算法主要在于計算線段的單位法向量,法向量方向即線段的平移方向。本文引入了平行線算法。該方法根據(jù)線段的方向,可以在線段的某一側(cè)生成一條平行線。把該算法擴展到多邊形上,在順時針或逆時針方向上的每一條邊都利用該方法,可得到多邊形每一條邊的向內(nèi)的平行線,然后把相鄰的邊的平行線產(chǎn)生交點連接起來,即可得到內(nèi)縮多邊形。已知線段兩端點P1(x1,y1)和P2(x2,y2),n=(A,B)是P1P2線段的法線向量,則向量P1P2和法向量n之間的乘積為0,即:(x2-x1,y2-y1)*(A,B)=0,整理得A(x2-x1)+B(y2-y1)=0,又由于可得P1P2的長度length=sqrt((x2-x1)^2+(y2-y1)^2),則可得單位法向量A=-(y2-y1)/length,B=(x2-x1)/length。將直線向法向量的方向平移,即可得到平行線。利用生成的法向量平移直線時,平行線與原線的距離為坐標(biāo)系上的單位1,即端點在平移的時候,平移一個單位距離。在平移端點時,可以乘以一個倍數(shù),增加或者減少平移的距離。用到GPS坐標(biāo)點時,一個單位的平移距離,對于農(nóng)用地塊來說過大。經(jīng)緯度坐標(biāo)在精確到0.00001時,精度可以近似為1米。因此在讀取每一條邊的端點信息的時候,將坐標(biāo)點乘以10的5次方。此時,一個單位的平移距離可以近似為1米。然后根據(jù)地塊的面積大小,乘以一個倍數(shù),這個倍數(shù)為面積的開方,即可得到一個比較合適的內(nèi)縮距離。根據(jù)植保無人機的飛行特點,農(nóng)用地塊邊界的安全邊界平移距離應(yīng)該在10米到50米之間,因此這個倍數(shù)可以限制在10-50之間。算法要求原始邊界的點按順序排列,可以是逆時針排序,也可以是順時針排序。計算平移方向時,如果點是按照逆時針排列的,每一條邊的平移方向都會是向著多邊形內(nèi)平移;如果點是按照順時針排列的,每一條邊的平移方向都會是向外平移,此時將平移方向取負,即可得到向內(nèi)的平行線。如圖8所示的安全邊界生成算法流程,安全邊界生成算法步驟如下:(1)讀取原始多邊形的每一條邊;(2)生成每一條邊的兩端點平移方向,即線段法線方向;(3)平移每一條邊的兩端點,連接平移后的兩端點,生成平移后的線段;(4)將線段擴展成直線,求相鄰直線產(chǎn)生的交點;(5)連接各個交點,生成內(nèi)縮多邊形。(5.3)安全邊界的有效性如果邊界上的某一端點與相鄰邊距離小于該邊的平行線距離,即多邊形的某一內(nèi)角或者外角的角度十分小,可能導(dǎo)致生成的內(nèi)縮多邊形發(fā)生畸變,嚴(yán)重時會導(dǎo)致安全邊界超出原邊界。如果安全邊界超出原邊界,則安全邊界無效。此時,減小平移倍數(shù),重新生成安全邊界,可解決此問題。但如果平移倍數(shù)已經(jīng)最小,生成的安全邊界仍無效,則放棄安全邊界。(5.4)安全邊界的動態(tài)重構(gòu)安全邊界生成的關(guān)鍵是找到一個合適的邊界內(nèi)縮距離。在沒有無人機飛行數(shù)據(jù)時,算法默認的內(nèi)縮距離與原始地塊邊界的面積大小有關(guān),地塊面積越大,內(nèi)縮距離越大;地塊面積越小,內(nèi)縮距離越小。但根據(jù)地塊面積大小來限定安全邊界的內(nèi)縮距離是不合適的,當(dāng)無人機飛行速度較快時,越界的可能較大,需要進行越界檢測的范圍就越大,對應(yīng)著安全邊界也就越小;當(dāng)飛行速度較慢時,越界可能較小,需要進行越界檢測的范圍就越小,對應(yīng)著安全邊界就越大。為此,電子圍欄算法中的安全邊界可以根據(jù)無人機飛行速度動態(tài)改變,以增強安全邊界的適應(yīng)性與高效性。算法將無人機的飛行速度分為五級,當(dāng)速度級別改變時,動態(tài)重構(gòu)安全邊界。每一速度級別對應(yīng)著一個平移距離,速度越大,平移距離越大,需進行越界檢測的范圍就越大,對應(yīng)生成的安全邊界就越小。本算法通過動態(tài)的生成安全邊界,提高無人機越界檢測的效率。(5.5)射線檢測算法在地理信息系統(tǒng)、圖形圖像處理和游戲制作等領(lǐng)域,經(jīng)常需要判斷某點是否在某一個任意多邊形內(nèi)。我們選擇較為高效、可靠的射線法來解決這個問題。(i)射線法(如圖9所示)是通過由點p引一條水平射線,計算水平射線與多邊形交點個數(shù)的奇、偶來判斷的,如果是奇數(shù)則在內(nèi),偶數(shù)則在外。其中,一般情況包括;圖9中的(a),點在多邊形內(nèi),與邊的交點個數(shù)為1;(b)點在多邊形內(nèi),與邊交點個數(shù)為3;(c)點在多邊形外,交點個數(shù)為0;(d)點在多邊形外,交點個數(shù)為4。特殊情況包括圖9中的(e)和(f),需要特殊處理,其處理規(guī)則如下:對于多邊形的水平邊不作考慮;對于多邊形的頂點和射線相交時,如果該頂點是其所屬的邊上縱坐標(biāo)較大的頂點,則計數(shù),否則忽略。(ii)射線法的應(yīng)用場景,在電子圍欄算法中,多次運用了射線法判斷點與多邊形的位置關(guān)系;無人機在執(zhí)行作業(yè)時,飛行于作業(yè)邊界的概率較大,越界的概率較小;在作業(yè)邊界之中時,由于安全邊界覆蓋了原始地塊邊界中的大部分面積,所以無人機飛行于安全邊界之中的概率較大,飛行于兩邊界之間的概率較小。所以首先判斷無人機是否安全邊界之中,如果是,則不做下一步處理,否則繼續(xù)判斷是否在原始邊界中,如果是,則進行越界檢測,否則就已經(jīng)越界。在這一過程中,可能用到一到兩次射線法。本算法能夠通過射線法,判定無人機與作業(yè)邊界、安全邊界的相對位置,實現(xiàn)無人機越界的判定。(6)越界檢測算法本算法主要解決的問題是,能夠通過判斷射線與線段相交判定法,判定無人機是否有越界的趨勢;當(dāng)無人機飛行于原始地塊邊界與安全邊界之間時,就需要進行越界檢測。越界檢測是根據(jù)無人機當(dāng)前的飛行方向與速度,判斷在一定時間內(nèi)有無越界的可能。越界檢測算法的核心是計算射線與線段是否會相交。(i)越界趨勢的判定原理已知線段AB和線段CD,其中A(ax,ay),B(bx,by),C(cx,cy),D(dx,dy)將線段AB延方向AB伸展為射線,計算線段CD和射線AB是否會相交。算法的基本思想是,先求解兩線所在的直線之間的交點,再判斷交點是否在線段CD和射線AB上。上式中,分母為兩線的斜率變形式,若分母為0,則兩線平行。r為兩直線的交點在有向線段CD上的位置,r=0則交點與C重合,r=1則交點與D重合;s為兩直線的交點在有向線段AB上的位置,s=0則交點與A重合,s=1則交點與B重合;ax,ay;bx,by;cxcy;dx,dy分別為線段AB和線段CD端點A(ax,ay),B(bx,by),C(cx,cy),D(dx,dy)的坐標(biāo)。為判斷射線AB與線段CD是否存在交點,首先判斷D是否為0,如果為0,則兩線平行,如果D=0,M1=0,則兩線重合;如果兩直線不平行,則兩直線有交點,首先判斷交點是否在線段CD上,即s在0到1之間,如果是,則繼續(xù)判斷交點是否在AB的正方向上,即r大于0。(ii)無人機越界趨勢的判定無人機在飛行時,每秒會回傳GPS信息。在判斷無人機飛行方向時,需要最新的GPS坐標(biāo)和次新的GPS坐標(biāo),由這兩個坐標(biāo)得到無人機剛剛飛過的路徑,從而得到無人機的飛行速度與方向。最新數(shù)據(jù)與次新數(shù)據(jù)之間的時間差不能過大,否則得到飛行方向與速度無效。由無人機最新飛行路徑,向飛行方向延伸,發(fā)出射線AB。此外還需要植保作業(yè)邊界數(shù)據(jù),每一對相鄰的端點組成的線段CD。然后用上述方法計算射線與線段是否有交點。如果飛行路徑射線與某一邊界存在交點,則計算交點與無人機之間的距離,如果距離小于警戒距離,則發(fā)出預(yù)警。警戒距離為無人機飛行速度乘以警戒時間,算法暫定警戒時間為10秒。實施例1,安全邊界動態(tài)生成根據(jù)圖7所示算法生成植保無人機安全邊界(如圖10所示);圖10中a圖所示的外邊界為地塊的原始邊界(北京市海淀區(qū)某果園),內(nèi)邊界為安全邊界,這兩個多邊形邊界是相似且同心的。當(dāng)無人機飛行安全邊界之中,沒有越界趨勢無需進行越界檢測;當(dāng)無人機飛行于兩邊界之中時,無人機可能有越界趨勢,需進行越界檢測;當(dāng)無人機在原始邊界之外時,無人機就已經(jīng)越界了。當(dāng)無人機加快飛行速度,安全邊界縮小。在圖10的b圖中,最小的多邊形框是最新生成的安全邊界。綜上所述,電子圍欄系統(tǒng)的安全邊界,可以根據(jù)無人機的飛行速度動態(tài)實時修正,可見電子圍欄算法具有高度的動態(tài)性,同時提升了算法的效率。實施例2,無人機的電子圍欄系統(tǒng)本系統(tǒng)算法基于JavaScript語言實現(xiàn),運行于前端瀏覽器。通過Ajax技術(shù),每秒鐘從服務(wù)器獲取一次無人機飛行數(shù)據(jù)更新,然后通過電子圍欄算法檢測無人機飛行越界狀態(tài)。本文選擇實驗果園進行植保無人機飛行測試,結(jié)果表明,即使使用較低配置的服務(wù)器仍然能夠同時處理2000個并發(fā)請求,可以滿足多個電子圍欄系統(tǒng)的工作需求。如圖11所示的無人機飛行于安全邊界之中,本文開發(fā)的電子圍欄系統(tǒng)通過射線法檢測到無人機飛行于安全邊界之中,無人機沒有越界趨勢,不再做進一步的越界檢測。該策略大大降低了計算量,提高了系統(tǒng)工作效率,進一步提升了系統(tǒng)性能。圖12無人機已經(jīng)越界,當(dāng)系統(tǒng)通過射線法檢測到植保無人機沒有在安全邊界之中,則利用射線法檢測無人機是否在原始地塊邊界之中。如圖12所示,算法檢測到無人機沒有在原始地塊邊界之中,即無人機已經(jīng)越界,系統(tǒng)給出提示,并拋出異常。圖13無人機飛行于兩邊界之間且有越界趨勢,當(dāng)系統(tǒng)發(fā)現(xiàn)無人機飛行于原始作業(yè)邊界與安全邊界之間時,就需要進行越界檢測。通過計算無人機的飛行方向與速度,發(fā)現(xiàn)無人機距離其正對的邊界小于警戒距離,則發(fā)出越界預(yù)警(如圖13外邊界所示),無人機距離其正對的邊界(如圖13中內(nèi)邊界所示)小于警戒距離,發(fā)出預(yù)警,并在該邊界上閃爍提示。圖14無人機飛行于兩邊界之間但沒有越界趨勢,另一類情況,無人機飛行于原始作業(yè)邊界與安全邊界之間,但無人機并沒有向越界的方向飛行。如圖14所示,無人機距離其正對的邊界(圖中上邊界)大于警戒距離,無人機沒有暫時沒有越界可能,無需預(yù)警。綜上所述,電子圍欄算法首先通過原始地塊邊界和安全邊界,將無人機的位置分為安全、越界、待檢測三類,而僅第三類才需要進行下一步的運算,可見電子圍欄算法是十分高效的。其次,在越界檢測時,又根據(jù)無人機的飛行方向與速度,依次排查每一條邊,以精確判斷無人機有無即將越界的可能,可見電子圍欄算法是十分可靠的。系統(tǒng)經(jīng)過實際植保無人機飛行測試,結(jié)果表明,無人機植保作業(yè)電子圍欄系統(tǒng)可以實現(xiàn)高效、可靠的無人機越界預(yù)警功能。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3