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