本發(fā)明涉及無人機(jī)控制技術(shù)領(lǐng)域,特別是涉及一種基于云計(jì)算的無人機(jī)監(jiān)控系統(tǒng)及監(jiān)控方法。
背景技術(shù):
無人駕駛飛機(jī)簡稱“無人機(jī)”,是利用無線電遙控設(shè)備和自備的程序控制裝置操縱的不載人飛機(jī)。機(jī)上無駕駛艙,但安裝有自動(dòng)駕駛儀、程序控制裝置等設(shè)備。地面、艦艇上或母機(jī)遙控站人員通過雷達(dá)等設(shè)備,對(duì)其進(jìn)行跟蹤、定位、遙控、遙測(cè)和數(shù)字傳輸。可在無線電遙控下像普通飛機(jī)一樣起飛或用助推火箭發(fā)射升空,也可由母機(jī)帶到空中投放飛行?;厥諘r(shí),可用與普通飛機(jī)著陸過程一樣的方式自動(dòng)著陸,也可通過遙控用降落傘或攔網(wǎng)回收??煞锤彩褂枚啻巍V泛用于空中偵察、監(jiān)視、通信、反潛、電子干擾等。
近幾年國內(nèi)外的無人機(jī)市場(chǎng)有了高速的發(fā)展,國內(nèi)外已經(jīng)有公司利用無人機(jī)進(jìn)行物流等方面的應(yīng)用,而無人機(jī)的管理卻相對(duì)比較缺乏和混亂。如,目前隨著農(nóng)業(yè)航空技術(shù)革新,植保無人機(jī)相對(duì)其它植保器械優(yōu)勢(shì)明顯,無人機(jī)開始在農(nóng)業(yè)植保領(lǐng)域迅速發(fā)展。據(jù)統(tǒng)計(jì),2014年我國植保無人機(jī)保有量為695架,總作業(yè)面積426萬畝;2015年我國植保無人機(jī)保有量為2324架(31個(gè)省統(tǒng)計(jì)),總作業(yè)面積1152.8萬畝,增長幅度分別為234%、170.6%。有專家預(yù)計(jì)到2020年,中國植保無人機(jī)需求量是10萬架,無人機(jī)植保從業(yè)人員需求量是40萬人。
但是,目前國內(nèi)植保無人機(jī)技術(shù)和產(chǎn)品性能參差不齊,眾多產(chǎn)品中絕少有能夠滿足大面積高強(qiáng)度植保噴灑要求,與此同時(shí),國內(nèi)并沒有功能完備的監(jiān)控管理系統(tǒng)。總的來說,由于國內(nèi)尚未形成標(biāo)準(zhǔn)統(tǒng)一、功能一體化的無人機(jī)監(jiān)控管理領(lǐng)域的相關(guān)技術(shù),缺少對(duì)植保無人機(jī)的大業(yè)務(wù)量、大作業(yè)范圍、長時(shí)間、自主化等特性進(jìn)行綜合、全面、有效的作業(yè)監(jiān)控、告警管理與決策分析的完善方案。
同時(shí)針對(duì)如何從大規(guī)模的無人機(jī)數(shù)據(jù)中快速地搜索滿足用戶要求的數(shù)據(jù)是當(dāng)前無人機(jī)監(jiān)控處理系統(tǒng)亟待解決的問題,因此有必要建立一種數(shù)據(jù)搜索的緩存方法解決該瓶頸問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)中存在的技術(shù)缺陷,而提供一種基于云計(jì)算的無人機(jī)監(jiān)控系統(tǒng)及監(jiān)控方法。
為實(shí)現(xiàn)本發(fā)明的目的所采用的技術(shù)方案是:
一種基于云計(jì)算的無人機(jī)監(jiān)控系統(tǒng),
數(shù)據(jù)展示層,其包括人機(jī)信息交互模塊和作業(yè)信息交互模塊,
數(shù)據(jù)采集層,其用以采集無人機(jī)的數(shù)據(jù)并發(fā)送作業(yè)指令,
數(shù)據(jù)管理層,其用以收集并分析處理作業(yè)信息、無人機(jī)的數(shù)據(jù)并轉(zhuǎn)發(fā)或生成所述的作業(yè)指令。
所述的人機(jī)信息交互模塊為web瀏覽器,所述的信息交互模塊為app應(yīng)用或客戶端。
所述的數(shù)據(jù)管理層采用mysql+hbase+redis+ram多級(jí)緩存存儲(chǔ)方式進(jìn)行數(shù)據(jù)的存儲(chǔ)和查詢,redis構(gòu)成二級(jí)緩存,mysql和hbase構(gòu)成三層數(shù)據(jù)存儲(chǔ)。
數(shù)據(jù)采集層通過負(fù)載均衡的方式部署多套并行的采集接口,對(duì)應(yīng)的redis集群構(gòu)成二級(jí)緩存,對(duì)應(yīng)的mysql和hbase構(gòu)成三級(jí)數(shù)據(jù)存儲(chǔ)。
所述的數(shù)據(jù)采集層為tcp服務(wù)接口,所述的tcp服務(wù)接口用以實(shí)現(xiàn)數(shù)據(jù)管理層和數(shù)據(jù)展示層及無人機(jī)的通訊。
一種監(jiān)控方法,包括以下步驟,
1)作業(yè)信息交互模塊接收輸入指令并發(fā)送至數(shù)據(jù)管理層,
2)數(shù)據(jù)管理層查詢受控?zé)o人機(jī)的狀態(tài)數(shù)據(jù)并對(duì)指令進(jìn)行解析,若指令不正確,則將無效指令存儲(chǔ),若指令正確則將指令發(fā)送至無人機(jī);
3)無人機(jī)收到指令并進(jìn)行相應(yīng)指令操作,同時(shí)將數(shù)據(jù)反饋至數(shù)據(jù)采集層,所述的數(shù)據(jù)包括飛行數(shù)據(jù)、基礎(chǔ)任務(wù)數(shù)據(jù)和作業(yè)任務(wù)數(shù)據(jù);
4)數(shù)據(jù)管理層接收數(shù)據(jù)并對(duì)采集后的大規(guī)模海量數(shù)據(jù)的存儲(chǔ)、查詢和管理分析。
所述的數(shù)據(jù)管理層采用mysql+hbase+redis+ram多級(jí)緩存存儲(chǔ)方式進(jìn)行數(shù)據(jù)的存儲(chǔ)和查詢,redis構(gòu)成二級(jí)緩存,mysql和hbase構(gòu)成三層數(shù)據(jù)存儲(chǔ),當(dāng)寫入數(shù)據(jù)的時(shí)候首先刪除redis相同數(shù)據(jù)緩存,然后采用直接寫入到三層存儲(chǔ)系統(tǒng);當(dāng)讀取數(shù)據(jù)的時(shí)候首先逐級(jí)查看數(shù)據(jù)是否在內(nèi)存和緩存到redis中,如果沒有,則從三級(jí)緩存mysql或hbase中讀取數(shù)據(jù)到redis上,然后再進(jìn)行處理返回結(jié)果給用戶。
將提取后的數(shù)據(jù)保存到redis數(shù)據(jù)庫,如果失敗,則將數(shù)據(jù)先保存至緩存隊(duì)列重新保存直至數(shù)據(jù)庫成功。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
(1)高可靠性?;谠朴?jì)算的無人機(jī)監(jiān)控處理平臺(tái)提供了最可靠、最安全的數(shù)據(jù)存儲(chǔ)中心,用戶不用再擔(dān)心數(shù)據(jù)丟失等麻煩。
(2)通用性。基于云計(jì)算的無人機(jī)監(jiān)控處理平臺(tái)支持多種異構(gòu)無人機(jī)產(chǎn)品的接入,能做到統(tǒng)一規(guī)范的管理。
(3)超強(qiáng)的計(jì)算能力?;谠朴?jì)算的無人機(jī)監(jiān)控處理平臺(tái)利用云計(jì)算的集群能力,將復(fù)雜繁瑣的處理過程分解,從而實(shí)現(xiàn)提高整體計(jì)算能力的目的。
(4)數(shù)據(jù)共享。采用云計(jì)算的無人機(jī)監(jiān)控平臺(tái),可以實(shí)現(xiàn)接入數(shù)據(jù)的按需共享,為農(nóng)業(yè)植保大數(shù)據(jù)提供有力支撐。
(5)快速訪問。采用多層緩存機(jī)制,針對(duì)無人機(jī)數(shù)據(jù)讀多寫少的特點(diǎn),充分利用了redis內(nèi)存數(shù)據(jù)庫本身的特點(diǎn),從而加快數(shù)據(jù)訪問速度。
附圖說明
圖1為存儲(chǔ)架構(gòu)圖;
圖2為基于云計(jì)算的無人機(jī)監(jiān)控處理架構(gòu)圖;
圖3app發(fā)送自主指令數(shù)據(jù)到無人機(jī);
圖4無人機(jī)發(fā)送數(shù)據(jù)到監(jiān)控平臺(tái)的流程。
具體實(shí)施方式
以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖所示,本發(fā)明公開了一種基于云計(jì)算的無人機(jī)監(jiān)控系統(tǒng),其基于linux系統(tǒng),包括,數(shù)據(jù)展示層,其包括人機(jī)信息交互模塊和作業(yè)信息交互模塊;數(shù)據(jù)采集層,其用以采集無人機(jī)的數(shù)據(jù)并發(fā)送作業(yè)指令;數(shù)據(jù)管理層,其用以收集并分析處理作業(yè)信息、無人機(jī)的數(shù)據(jù)并轉(zhuǎn)發(fā)或生成所述的作業(yè)指令。
其中,數(shù)據(jù)采集層包括對(duì)無人機(jī)飛行狀態(tài)數(shù)據(jù)、無人機(jī)作業(yè)任務(wù)數(shù)據(jù)和無人機(jī)基礎(chǔ)數(shù)據(jù)信息的監(jiān)測(cè)采集,并將采集的數(shù)據(jù)保存進(jìn)數(shù)據(jù)管理層的數(shù)據(jù)庫中,以提供給上層各個(gè)管理模塊進(jìn)行調(diào)用與分析管理,數(shù)據(jù)采集層主要通過負(fù)載均衡的方式部署多套采集接口,形成多個(gè)并行的采集數(shù)據(jù)入口。數(shù)據(jù)管理層負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行緩存歸檔、分析處理得出統(tǒng)計(jì)結(jié)果、提供告警、運(yùn)行監(jiān)控的管理操作,如通過角點(diǎn)和經(jīng)緯度坐標(biāo)預(yù)判是否進(jìn)入限制區(qū)域,從而自動(dòng)發(fā)送返航和禁飛指令;數(shù)據(jù)展現(xiàn)層能夠讓用戶查看了解無人機(jī)的運(yùn)行狀況,并進(jìn)行適當(dāng)?shù)倪h(yuǎn)程控制。
其中,所述的人機(jī)信息交互模塊為web瀏覽器,數(shù)據(jù)展現(xiàn)層即監(jiān)控平臺(tái)上層的展示界面,由于系統(tǒng)基于b/s模式實(shí)現(xiàn),展示界面直接基于瀏覽器頁面的形式展現(xiàn)系統(tǒng)中所有無人機(jī)的運(yùn)行狀態(tài),進(jìn)而能夠調(diào)控和管理無人機(jī),展示界面包括位置監(jiān)控、作業(yè)管理、地塊管理、無人機(jī)設(shè)備管理、用戶權(quán)限管理、統(tǒng)計(jì)分析。同時(shí),所述的信息交互模塊為app應(yīng)用或客戶端,用戶使用app登錄后,綁定飛機(jī)通過app發(fā)送一鍵起飛、一鍵降落、一鍵作業(yè)等全自主指令。
其中,所述的數(shù)據(jù)管理層采用mysql+hbase+redis+ram多級(jí)緩存存儲(chǔ)方式進(jìn)行數(shù)據(jù)的存儲(chǔ)和查詢,redis構(gòu)成二級(jí)緩存,mysql和hbase構(gòu)成三層數(shù)據(jù)存儲(chǔ),進(jìn)一步地,數(shù)據(jù)采集層通過負(fù)載均衡的方式部署多套并行的采集接口,對(duì)應(yīng)的redis集群構(gòu)成二級(jí)緩存,對(duì)應(yīng)的mysql和hbase集群構(gòu)成三級(jí)數(shù)據(jù)存儲(chǔ)。無人機(jī)不同類型數(shù)據(jù)信息在數(shù)據(jù)結(jié)構(gòu)上并不相同,二級(jí)緩存分流存放,三級(jí)緩存中mysql和hbase分類存儲(chǔ)信息,分類存儲(chǔ)可以解決讀取數(shù)據(jù)時(shí),結(jié)構(gòu)相對(duì)一致,不需要進(jìn)行適配過程,從而提高速度。其中,所述的數(shù)據(jù)采集層為tcp服務(wù)接口,所述的tcp服務(wù)接口用以實(shí)現(xiàn)數(shù)據(jù)管理層和數(shù)據(jù)展示層及無人機(jī)的通訊,如,無人機(jī)定時(shí)反饋位置信息及飛行狀態(tài)等,實(shí)現(xiàn)基于云端的計(jì)算和控制。
具體來說,redis是內(nèi)存級(jí)數(shù)據(jù)庫,mysql是結(jié)構(gòu)性數(shù)據(jù)庫,hbase是非結(jié)構(gòu)性數(shù)據(jù)庫。根據(jù)各數(shù)據(jù)庫特點(diǎn),mysql一般存儲(chǔ)包含屬性信息的基本信息數(shù)據(jù),使用數(shù)據(jù)時(shí)更方便。而hbase存儲(chǔ)類似日志、圖片、視頻等文件數(shù)據(jù),三者并不是簡單的并存,采用分層設(shè)計(jì),因?yàn)閞edis的讀取速度明顯快于后兩者,充當(dāng)緩存區(qū)使用,后兩者主要做數(shù)據(jù)的持久化保存。hbase目前有備份數(shù)據(jù)和日志存儲(chǔ)兩種功能,后期增加無人機(jī)視覺功能,所以需要保存圖片和視頻數(shù)據(jù),而系統(tǒng)需要計(jì)算和分析的數(shù)據(jù)主要存放在mysql中。
本發(fā)明基于云計(jì)算的無人機(jī)監(jiān)控處理采用分布式形式部署,同時(shí)采用“mysql+hbase+redis+ram(內(nèi)存)”多級(jí)緩存存儲(chǔ)方式進(jìn)行數(shù)據(jù)的存儲(chǔ)和查詢,非常適合要求較快響應(yīng)時(shí)間和每秒讀寫次數(shù)高的請(qǐng)求操作和統(tǒng)計(jì)分析需求。
關(guān)于hbase中的幾個(gè)重要說明:
(1)hbase組件:在hbase存儲(chǔ)系統(tǒng)中包括hmaster,hregionserver和client。其中hmaster負(fù)責(zé)hbase系統(tǒng)中數(shù)據(jù)表的創(chuàng)建、刪除等操作。hregionserver上存儲(chǔ)具體表的數(shù)據(jù),包括表的多個(gè)hregion。
(2)hregion:每個(gè)表分成多個(gè)hregion,每個(gè)hregion包含多個(gè)store,每個(gè)store對(duì)應(yīng)于一個(gè)列簇(columnfamily),每個(gè)store包含一個(gè)memstore和多個(gè)storefile。
(3)compact和split:在hbase系統(tǒng)運(yùn)行過程中,會(huì)產(chǎn)生多個(gè)hfile文件,當(dāng)hfile文件個(gè)數(shù)超過一定數(shù)目的時(shí)候,hbase集群會(huì)執(zhí)行compact。當(dāng)hfile文件大小超過一定的閥值時(shí)執(zhí)行split操作。
關(guān)于hbase一個(gè)重要的特性就是一旦hfile寫入hdfs集群中時(shí),hfile文件不再改變。
采用redis作為二級(jí)緩存,當(dāng)讀取數(shù)據(jù)的時(shí)候首先查看數(shù)據(jù)是否在內(nèi)存,如無再查看緩存到redis中,如果沒有,則從三級(jí)緩存mysql或hbase集群中讀取數(shù)據(jù)到redis上,然后再進(jìn)行處理返回結(jié)果給用戶;當(dāng)再次讀取相同數(shù)據(jù)時(shí),會(huì)減少下一級(jí)的查詢過程,數(shù)據(jù)訪問速度明顯提升。當(dāng)寫入數(shù)據(jù)的時(shí)候首先會(huì)根據(jù)特別字段,比如id等主鍵,刪除redis相同數(shù)據(jù)緩存,然后采用直接寫入到三層存儲(chǔ)系統(tǒng)。通過采用該存儲(chǔ)方案可以有效的減少讀取數(shù)據(jù)讀取i/o數(shù)目,從而有效的提高系統(tǒng)的性能。
本發(fā)明采用上述結(jié)構(gòu)后,結(jié)構(gòu)合理,使用方便,監(jiān)控平臺(tái)采用基于分布式的監(jiān)控管理架構(gòu),實(shí)現(xiàn)監(jiān)控系統(tǒng)的負(fù)載均衡,便于監(jiān)控系統(tǒng)的規(guī)模擴(kuò)展。
基于上述監(jiān)控系統(tǒng),本發(fā)明的監(jiān)控方法,包括以下步驟,
1、用戶通過作業(yè)信息交互模塊,如app發(fā)送一鍵起飛、一鍵降落、一鍵作業(yè)等全自主指令,通過tcp方式建立連接,將指令發(fā)送到tcp服務(wù)接口,數(shù)據(jù)采集層接收輸入指令并發(fā)送至數(shù)據(jù)管理層,
2、數(shù)據(jù)管理層查詢受控?zé)o人機(jī)的狀態(tài)數(shù)據(jù)并對(duì)指令進(jìn)行解析,若指令不正確,則執(zhí)行無效協(xié)議持久化,將無效指令存儲(chǔ)方便以后查看,若指令正確則將指令將協(xié)議數(shù)據(jù)通過移動(dòng)網(wǎng)絡(luò)的4g模塊轉(zhuǎn)發(fā)給指定的無人機(jī);
3、無人機(jī)收到指令并進(jìn)行相應(yīng)指令操作,同時(shí)將數(shù)據(jù)通過移動(dòng)網(wǎng)絡(luò)的4g模塊反饋至數(shù)據(jù)采集層,所述的數(shù)據(jù)包括飛行數(shù)據(jù)、基礎(chǔ)任務(wù)數(shù)據(jù)和作業(yè)任務(wù)數(shù)據(jù);發(fā)送過程為通過tcp方式建立連接,將飛行數(shù)據(jù)發(fā)送到監(jiān)控平臺(tái)tcp數(shù)據(jù)服務(wù)接口,
4、數(shù)據(jù)管理層接收數(shù)據(jù)并對(duì)采集后的大規(guī)模海量數(shù)據(jù)的存儲(chǔ)、查詢和管理分析。其中,數(shù)據(jù)管理層收到飛行數(shù)據(jù)后按照定義規(guī)則進(jìn)行解析,如果飛行數(shù)據(jù)格式不正確,則執(zhí)行無效協(xié)議持久化,將無效協(xié)議保存,方便后期查看;否則提取協(xié)議中的數(shù)據(jù)信息,將提取后的數(shù)據(jù)保存到數(shù)據(jù)庫,如果失敗,則將數(shù)據(jù)先保存至緩存隊(duì)列,再次保存直至保存到數(shù)據(jù)庫成功。其中,飛行數(shù)據(jù)格式的判斷和對(duì)數(shù)據(jù)格式及內(nèi)容的翻譯,如格式不正確則不做處理僅做存檔,如指令內(nèi)容為無效指令,同樣做存儲(chǔ)處理而不執(zhí)行。
其中,所述的數(shù)據(jù)管理層采用mysql+hbase+redis+ram多級(jí)緩存存儲(chǔ)方式進(jìn)行數(shù)據(jù)的存儲(chǔ)和查詢,redis構(gòu)成二級(jí)緩存,mysql+hbase構(gòu)成三級(jí)數(shù)據(jù)存儲(chǔ),當(dāng)寫入數(shù)據(jù)的時(shí)候首先刪除redis相同數(shù)據(jù)緩存,然后采用直接寫入到三級(jí)數(shù)據(jù)存儲(chǔ)系統(tǒng);通過采用該存儲(chǔ)方案可以有效的減少讀取數(shù)據(jù)讀取i/o數(shù)目,從而有效的提高系統(tǒng)的性能。查詢步驟為:客戶端發(fā)送查詢請(qǐng)求,系統(tǒng)獲取查詢請(qǐng)求并判斷數(shù)據(jù)是否在ram中,如果在ram中則返回?cái)?shù)據(jù),否則判斷數(shù)據(jù)是否緩存到redis中,如果沒有,則根據(jù)數(shù)據(jù)類型從三級(jí)緩存mysql或hbase集群中讀取數(shù)據(jù)到redis上,然后再進(jìn)行處理返回結(jié)果給用戶;當(dāng)再次讀取相同數(shù)據(jù)時(shí),數(shù)據(jù)訪問速度明顯提升。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出的是,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。