• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ArcGIS的農(nóng)用機器人定位及路徑跟蹤

      2016-09-19 08:14:19孟珠李袁晨晨
      關鍵詞:客戶機窗體控件

      孟珠李, 焦 俊, 朱 誠, 王 強, 古 冉, 袁晨晨

      (安徽農(nóng)業(yè)大學信息與計算機學院,安徽 合肥 230036)

      ?

      基于ArcGIS的農(nóng)用機器人定位及路徑跟蹤

      孟珠李, 焦俊, 朱誠, 王強, 古冉, 袁晨晨

      (安徽農(nóng)業(yè)大學信息與計算機學院,安徽合肥230036)

      為了實時獲取農(nóng)用機器人在農(nóng)田中的精確位置,并跟蹤其運行路徑,設計了基于ArcGIS的農(nóng)用機器人定位及路徑跟蹤系統(tǒng)。利用3G網(wǎng)絡實現(xiàn)機器人與服務器之間的通信,運用ArcGISEngine組件處理空間數(shù)據(jù)、顯示機器人的運行路徑,并存儲機器人在運行過程中的位置信息。系統(tǒng)采用VisualC#.NET編程實現(xiàn),實驗結果證明本系統(tǒng)精確可靠。

      ArcGISEngine;定位;路徑跟蹤;3G通信;VisualC#.NET

      地理信息系統(tǒng)(Geographic Information System,簡稱GIS)是由計算機硬件、軟件、地理數(shù)據(jù)以及系統(tǒng)管理人員組合而成,是對任一模式下的地理信息進行高效獲取、更新、操作、存儲、分析及顯示的集成的計算機技術系統(tǒng)[1-3]。隨著近30年的驚人發(fā)展,GIS在農(nóng)業(yè)上的應用成為當今農(nóng)業(yè)科學中一個新的重要研究領域[4]。

      農(nóng)業(yè)機器人是一種把農(nóng)產(chǎn)品作為操作對象、兼有人類四肢行動功能和部分信息感知、可重復編程的半自動化或柔性自動化設備[5-7]。智能型農(nóng)業(yè)機器人在廣闊的農(nóng)田中越來越多地替代手工勞動完成各種農(nóng)業(yè)活動,農(nóng)業(yè)機器人可以便捷的與計算機技術和地理信息系統(tǒng)相結合,科學耕種農(nóng)田,規(guī)劃路徑防止破壞農(nóng)作物。

      農(nóng)業(yè)機器人在農(nóng)田中對農(nóng)作物耕作時,需要人們實時定位監(jiān)控機器人的運行路徑,隨時掌握農(nóng)業(yè)機器人在耕作時的位置,及時反饋使管理人員科學管理機器人耕作過程以防止機器人破壞農(nóng)作物。因此,需要對農(nóng)業(yè)機器人的關鍵技術進行學習研究,處理空間數(shù)據(jù)、設計系統(tǒng)功能、構建相關數(shù)據(jù)庫,實現(xiàn)空間數(shù)據(jù)的多功能操作處理及數(shù)據(jù)存儲[9];并且通過農(nóng)業(yè)機器人與ArcGIS信息傳輸技術相結合,實現(xiàn)農(nóng)業(yè)機器人在農(nóng)田中的定位監(jiān)控[10]。

      1 系統(tǒng)設計

      系統(tǒng)的開發(fā)方法是結合ArcGIS工具軟件與可視化開發(fā)軟件Visual C#.NET設計實現(xiàn)的。首先需要獲取地圖數(shù)據(jù)并使用ArcGIS工具軟件處理,制成地圖文檔;基于ArcGIS Engine組件的開發(fā),在Visual C#.NET中添加ArcGIS控件和ArcGIS Engine庫引用,在基于Windows窗體應用程序中設計開發(fā),實現(xiàn)地圖圖層坐標的實時顯示;在此基礎上添加基于C#語言的3G通信,使農(nóng)業(yè)機器人定位及運行軌跡信息通過3G模塊通信傳輸?shù)降貓D圖層中并用點或線標注出來。系統(tǒng)總體開發(fā)框架如圖1所示。

      圖1 系統(tǒng)總體開發(fā)框架

      系統(tǒng)設計思路:

      1) 獲取農(nóng)田衛(wèi)星底圖,在ArcMap中開發(fā)地圖,添加底圖數(shù)據(jù)并編輯配準,制成農(nóng)田地圖文檔。

      2) 在基于ArcGIS Engine開發(fā)中設計windows窗體加載地圖文檔,添加工具控件實現(xiàn)對圖層的放大、縮小、漫游等管理功能;設計實現(xiàn)在地圖文檔中實時顯示鼠標指向圖層任意位置的當前坐標。

      3) 農(nóng)業(yè)機器人運行后使用3G功能通信獲得運行點或線位置信息,將3G功能加入地圖信息項目中,實現(xiàn)定位點在地圖圖層中的標注顯示。

      2 系統(tǒng)實現(xiàn)

      2.1地圖數(shù)據(jù)的處理

      地圖數(shù)據(jù)的獲取及處理為基礎工作,是為了在基于ArcGIS Engine開發(fā)中提供圖層數(shù)據(jù)。使用地圖下載軟件獲取地圖數(shù)據(jù),并為了使地圖圖層信息化,每一點的坐標都賦予了準確的經(jīng)緯度,使用ArcMap軟件對下載的地圖數(shù)據(jù)進行圖像配準。圖像配準過程為:添加多個特殊點坐標、查看鏈接表并糾正殘差、校正并保存。由于該ArcMap軟件自動配置坐標系統(tǒng)為WGS_1984_Web_Mercator,因此能實現(xiàn)圖像隨坐標系統(tǒng)的配準。這樣便使原本無意義的地圖數(shù)據(jù)變成有意義的地圖圖層文檔。

      2.2ArcGIS Engine實現(xiàn)過程

      1) 加載ArcGIS控件和ArcGIS Engine庫引用。在Visual C#.NET中加入ArcGIS控件“AxPageLayoutControl” 、“ArcMapControl”、“AxToolbarControl”、“AxTOCControl”和“ESRI LicenseControl”,再加入相關的ArcGIS Engine庫引用如“ESRI.ArcGIS.Carto”、“ESRI.ArcGIS.Display”、“ESRI.ArcGIS.Geometry”、“ESRI.ArcGIS.System”、“ESRI.ArcGIS.SystemUI”和“ESRI.ArcGIS.Utility”,實現(xiàn)基于.NET的ArcGIS Engine的開發(fā),即可在.NET窗體中添加相關控件;在程序中也可加入相關引用。

      2) 加載地圖文檔。新建Windows 窗體項目,在窗體中添加LicenseControl和AxMapControl控件,再放置一個名為“打開文件”的button控件,編寫程序實現(xiàn)將地圖數(shù)據(jù)加載到AxMapControl控件中。關鍵代碼如下:

      private void loadMapDocument()

      {

      openFileDialog1.Title = "打開Map 地圖";

      openFileDialog1.Filter = "map documents (*.mxd, *.mxt, *.pmf)|*.mxd;*.mxt;*.pmf";

      openFileDialog1.ShowDialog();

      }

      運行調(diào)試該項目,單擊“打開文件”按鈕,選中要打開的地圖文檔,結果如圖2所示。

      圖2 加載Map文檔

      3) 添加管理功能。在上述Form1窗體設計的基礎上添加AxToolbarControl和AxTOCControl控件,并將“Buddy控件”設置為axMapControl1以便與地圖控件圖層相連接,在AxToolbarControl屬性框中添加全圖、添加數(shù)據(jù)、放大、縮小、漫游等管理工具。

      為了使圖層信息的經(jīng)緯度更加清晰的呈現(xiàn),在地圖信息系統(tǒng)中加入實時顯示鼠標指向的坐標信息,為下面添加農(nóng)業(yè)機器人運行點或線做準備。在Form1窗體中加入label文本記錄鼠標指向Map文檔的當前坐標。在代碼窗口中添加OnMouseMove事件的相關代碼如下:

      private void axMapControl1_OnMouseMove(object sender, AxESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseMoveEvent e)

      {

      Label1.Text = " 當前坐標 X = " + e.mapX.ToString() + " Y = " + e.mapY.ToString() + " " + this.axMapControl1.MapUnits;

      }

      運行調(diào)試,結果如圖3所示。

      圖3 顯示鼠標指向Map文檔的當前坐標

      2.3運動機器人定位

      在系統(tǒng)基本框架建立的基礎上添加運行點在地圖圖層中的定位顯示,首先設計3G功能通信,將農(nóng)業(yè)機器人運行點的經(jīng)緯度以坐標形式傳輸,設計數(shù)據(jù)庫以存儲歷史坐標信息;再把3G功能添加到地圖信息項目中;最后使傳輸進項目中的坐標數(shù)據(jù)轉換為點在地圖圖層中顯示。

      1) 3G功能模塊加載定位坐標信息于數(shù)據(jù)庫。將3G功能以C#語言編程設計,3G功能模塊分為客戶機和服務器,客戶機即為機器人運行主機端,而服務器為監(jiān)控機器人軌跡的監(jiān)控終端PC機,在服務器中設置好IP地址和端口,啟動服務器與客戶機連接;當農(nóng)用機器人運行時產(chǎn)生位置數(shù)據(jù)載入客戶機中,通過3G網(wǎng)絡發(fā)送到服務器監(jiān)控終端中,同樣,服務器也能發(fā)送理想軌跡位置數(shù)據(jù)使客戶機接收,完成后期使機器人按照規(guī)定軌跡運行。

      服務器窗體設計:新建Windows 窗體項目、在窗體中添加啟動按鈕連接客戶端、放置2個richTextBox分別用于顯示發(fā)送及接收到的數(shù)據(jù) 。關鍵代碼如下:

      public void AcceptMessage()

      {

      this.label1.Text = "與客戶 " + clientSocket.RemoteEndPoint.ToString() + " 成功建立連接。";

      }

      private void richTextBox2_KeyPress(object sender, KeyPressEventArgs e)

      {

      if (e.KeyChar == (char)13)

      {

      richTextBox1.Text = "服務器:" + richTextBox2.Text + richTextBox1.Text;

      wReader.WriteLine(richTextBox2.Text);

      }

      }

      客戶機窗體設計:新建客戶機窗體項目、在窗體中添加IP及端口參數(shù)連接服務器 、放置2個richTextBox分別用于顯示接收及發(fā)送的數(shù)據(jù) 。關鍵代碼如下:

      public void AcceptMessage(){

      richTextBox1.Text = sTemp + " " + richTextBox1.Text;

      }

      private void richTextBox2_KeyPress(object sender, KeyPressEventArgs e)

      {

      if (e.KeyChar == (char)13)

      {

      richTextBox1.Text = "客戶機:" + richTextBox2.Text + richTextBox1.Text;

      wReader.WriteLine(richTextBox2.Text);

      }

      }

      在完成服務器和客戶機的設計后,同時運行調(diào)試,首先啟動服務器,在客戶機中建立與服務器的連接,連接成功后如圖4所示,分別在服務器和客戶機中發(fā)送數(shù)據(jù),觀察結果,服務器窗口和客戶機窗口分別如圖5和圖6。

      圖4 連接成功

      圖5 服務器窗口

      圖6 客戶機窗口

      2) 添加數(shù)據(jù)庫控件存儲數(shù)據(jù)。新建圖層信息數(shù)據(jù)庫,建坐標信息表用于存儲運動點的經(jīng)緯度及編號,然后在服務器設計窗體中添加工具和代碼實現(xiàn)發(fā)送數(shù)據(jù)到客戶機相連的數(shù)據(jù)庫中,在客戶機中建立與數(shù)據(jù)庫的連接并在設計窗體中,加入工具DataGridView用于顯示存入數(shù)據(jù)庫中的數(shù)據(jù)表,最后將客戶機窗體加入到系統(tǒng)項目中,添加啟動按鈕。客戶機設計窗體關鍵代碼如下:

      public void AcceptMessage()

      {

      string sql1 = string.Format(@"insert into 坐標信息 values( ‘{0}’,‘{1}’,‘{2}’)", Class1.point.ToString(), Class1.經(jīng)度X.ToString(), Class1.緯度Y.ToString());

      string sql2 = "select * from 坐標信息";

      SqlDataAdapter sdaa = new SqlDataAdapter(sql2, conn);

      sdaa.Fill(ds);

      dataGridView1.DataSource = ds.Tables[0].DefaultView;

      }

      啟動3G功能窗口,接收服務器發(fā)送的機器人運行點坐標并存儲在數(shù)據(jù)庫中,運行結果如圖7所示。

      圖7 調(diào)試結果圖

      3) 在圖層中顯示運動路徑。為了在圖層中顯示機器人運動路徑,需要將機器人運動信息轉化為線在圖層中顯示。在系統(tǒng)項目窗體中添加發(fā)送按鈕,實現(xiàn)數(shù)據(jù)轉化為點在圖層中顯示功能,再編輯按鈕代碼,將數(shù)據(jù)庫中的數(shù)據(jù)以點在圖層中顯示,再編寫代碼新建一個圖層顯示傳來的連續(xù)點數(shù)據(jù)。關鍵代碼如下:

      private void button4_Click(object sender, EventArgs e)

      {

      da.Fill(ds); //讀取數(shù)據(jù)庫中數(shù)據(jù)

      IPoint point;

      for (int i = 0; i < 7; i++)

      {

      point = new PointClass();

      point.SpatialReference = this.axMapControl1.SpatialReference;

      point.X = (Double)ds.Tables[0].Rows[i][1];

      point.Y = (Double)ds.Tables[0].Rows[i][2];

      point.PutCoords(point.X,point.Y);

      IMap pMap = this.axMapControl1.Map;

      pGraphicsContainer = pMap as IGraphicsContainer;

      IActiveView pActiveView = pMap as IActiveView;

      }

      }

      運行調(diào)試,啟動客戶機,點擊發(fā)送按鈕,發(fā)送數(shù)據(jù)到地圖圖層中,結果如圖8所示。

      圖8 在圖層中顯示定位點

      4 結 論

      本系統(tǒng)設計實現(xiàn)了基于ArcGIS的農(nóng)用機器人定位技術,運用基于ArcGIS Engine組件開發(fā)方式和3G功能通信定位監(jiān)控農(nóng)用機器人運行過程,通過Visual C#.NET語言編程實現(xiàn)了農(nóng)業(yè)機器人在地圖圖層中運行軌跡的顯示及歷史數(shù)據(jù)的存儲,使用戶便捷清晰的查看農(nóng)用機器人的運行過程并及時糾正機器人位置以防破壞農(nóng)作物生長。

      [1]張靜. 基于救援機器人的礦井GIS技術研究[D]. 西安科技大學, 2010.

      [2]池建.精通ArcGIS地理信息系統(tǒng)[M].北京:清華大學出版社:10-100.

      [3]閻波杰.基于ArcGIS Engine地理信息系統(tǒng)的二次開發(fā)[D].西安科技大學, 2006.

      [4]周海燕. 溫室移動機器人變量施藥智能檢測及決策系統(tǒng)研究[D]. 江蘇大學, 2013.

      [5]焦俊, 江朝暉, 金瑞春,等. 農(nóng)用機器人轉向系統(tǒng)自適應內(nèi)??刂芠J]. 農(nóng)業(yè)機械學報, 2011, 42(10):186-191.

      [6]田素博. 國內(nèi)外農(nóng)業(yè)機器人的研究進展[J]. 農(nóng)業(yè)機械化與電氣化, 2007(2):3-5.

      [7]焦俊, 操俊, 潘中,等. 基于物聯(lián)網(wǎng)的農(nóng)田環(huán)境在線監(jiān)測系統(tǒng)[J]. 農(nóng)業(yè)工程, 2014, 4(6):18-23.

      [8]鄭玉龍.基于機器視覺的農(nóng)業(yè)機器人自定位技術研究[D].南京農(nóng)業(yè)大學,2012.

      [9]金理行. 基于GIS的空間數(shù)據(jù)庫系統(tǒng)設計與實現(xiàn)[J]. 商業(yè)文化月刊, 2008(4):93-95.

      [10]胥芳, 張立彬. 農(nóng)業(yè)機器人視覺傳感系統(tǒng)的實現(xiàn)與應用研究進展[J]. 農(nóng)業(yè)工程學報, 2002(4):180-184.

      (責任編輯:何學華,吳曉紅)

      Localization and Path Tracking of Agricultural Robot System Based on ArcGIS

      MENG Zhu-li, JIAO Jun, ZHU Cheng, WANG Qiang,GU Ran, YUAN Chen-chen

      (School of Information and Computer, Anhui Agriculture University, Hefei,Anhui 230036, China)

      In order to realize a real-time acquisition of the robot's precise position in the farmland, and track its running path, the localization and path tracking of agricultural robot system based on ArcGIS was designed, in which 3G network was used to build the communication between the robot and the server, while the ArcGIS Engine component was adopted to deal with spatial data and display the running path. Meanwhile, the information of robot's position during its movement was stored. The system was achieved by means of Visual C#.NET, which proved to be precise and reliable by the experimental results.

      ArcGIS Engine; Localization; path tracking;3G communication;Visual C#.NET

      2015-06-19

      安徽省教育廳質(zhì)量工程基金項目(KJ2014A074,2014jyxm091,2014tszy090)基金

      孟珠李(1993-),女,安徽蚌埠人,在讀碩士,研究方向:農(nóng)業(yè)信息化。

      P208

      A

      1672-1098(2016)03-0038-05

      猜你喜歡
      客戶機窗體控件
      Reducing the global cancer burden with gastrointestinal screening: China’s 30 years practice
      試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應用
      檔案天地(2019年5期)2019-06-12 05:12:02
      關于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      基于LayeredWindow的異形窗體局部刷新
      中文信息(2014年2期)2014-03-06 23:49:14
      巧設WPS窗體控件讓表格填寫更規(guī)范
      就這樣玩會VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      瘦客戶機:安全與便捷的選擇
      基于Web數(shù)據(jù)提高訪問速度的方法
      WinCE.net下圖形用戶界面的開發(fā)
      NEC推低安裝成本瘦客戶機
      河池市| 师宗县| 平湖市| 九龙城区| 莱芜市| 原平市| 曲松县| 顺平县| 当雄县| 通河县| 中方县| 宣威市| 沅陵县| 广元市| 库尔勒市| 朝阳县| 务川| 正镶白旗| 枣庄市| 宝丰县| 当涂县| 漳平市| 山东省| 麻城市| 卢湾区| 永吉县| 黑山县| 邳州市| 深州市| 科技| 中宁县| 油尖旺区| 临猗县| 晋江市| 鸡泽县| 威信县| 肥城市| 八宿县| 新宾| 汨罗市| 舟曲县|