一种果园履带机器人路径规划方法技术

技术编号:15328571 阅读:141 留言:0更新日期:2017-05-16 12:26
本发明专利技术公开了一种果园履带机器人路径规划方法,利用C#结合ArcGIS Engine二次开发编程实现农用机器人基于A*和B样条算法的路径规划软件平台,首先需要绘制用于农用机器人路径规划的地图;再基于ArcGIS Engine组件和C#语言的Windows桌面应用软件的开发;在此基础上编写A*算法以实现机器人最短路径规划及B样条曲线算法平滑路径,进而实现农用机器人最优路径规划。本发明专利技术实现了基于A*与B样条算法的农用机器人路径规划,实现了农用机器人根据最优路径运行,从而提高农业作业的高效化和智能化。

Path planning method for orchard caterpillar robot

The invention discloses a method of path planning for orchard tracked robot, using C# to realize agricultural robot path planning platform software A* and B spline algorithm based on ArcGIS Engine two development program, first of all need to draw a map for agricultural robot path planning; re development of Windows desktop application software ArcGIS Engine components and C# language based on; on the basis of preparation of the A* algorithm to achieve the shortest path planning of robot and B spline curve is used to smooth the path, so as to realize the agricultural robot optimal path planning. The invention realizes the path planning of the agricultural robot based on A* and B spline algorithm, realizes the operation of the agricultural robot according to the optimal path, thereby improving the efficiency and intelligence of the agricultural operation.

【技术实现步骤摘要】
一种果园履带机器人路径规划方法
本专利技术涉及机器人算法领域,具体是一种果园履带机器人路径规划方法。
技术介绍
传统的农业机械在农作过程中存在误操作、能源利用率低及作业人员重负荷等问题。针对以上问题进行路径规划已经成为发展智能化农业机械的重要研究内容。路径规划是指根据某种最优原则(如:工作代价最小,行走路线最短,行走时间最短),在工作空间中寻找一条从起始位置到目标位置的、避开障碍物的最优路径。而针对农用机器人的路径规划是指合理而高效的搜寻一条在农田环境内除障碍物及农作物以外的最优无碰撞路径。路径规划的核心是算法的设计,目前路径规划算法已经得到了广泛的发展。基于遗传算法的路径规划是一种局部路径规划,适用于变化的环境,实时性较好,但规划速度较慢及占用存储空间较多;蚁群算法有很好的稳定性及适应性,能够找到全局最优解,与遗传算法相比,搜索时间显著减少,但在处理较大区域的路径规划时,会出现停滞现象或陷入局部最优解;而最基础的Dijkstra算法适用于小范围的路径搜索计算,较易实现,但遍历计算节点多,效率低。
技术实现思路
本专利技术的目的是提供一种果园履带机器人路径规划方法,以解决现有技术机器人路径算法存在的问题。为了达到上述目的,本专利技术所采用的技术方案为:一种果园履带机器人路径规划方法,其特征在于:利用C#结合ArcGISEngine二次开发编程实现农用机器人基于A*和B样条算法的路径规划软件平台,首先需要绘制用于农用机器人路径规划的地图;再基于ArcGISEngine组件和C#语言的Windows桌面应用软件的开发;在此基础上编写A*算法以实现机器人最短路径规划及B样条曲线算法平滑路径,进而实现农用机器人最优路径规划,最后利用Socket网络编程及3G模块传输,将规划好的路径传输到农用机器人上,使机器人按该最优路径运行,具体过程如下:(1)、地图数据的处理:地图数据的获取及处理为基础工作,是为了在基于ArcGISEngine开发中提供图层数据;首先使用地图下载软件获取地图数据,并使用ArcMap软件对下载的地图数据进行图像配准;再绘制道路shp图,利用ArcToolbox工具箱中的数据管理工具--要素--要素转点工具将道路图转化为道路关键点shp图,两图通过Id属性相关联;由此即完成对地图数据的处理,建立了用于路径规划的地图;(2)、基于ArcGISEngine的开发:2.1)加载地图文档:在VisualStudio2010软件中新建基于C#语言的Windows桌面应用程序,并加入ArcGIS控件和ArcGISEngine库引用,由此便可开发基于ArcGISEngine的程序,在窗体中添加LicenseControl和AxMapControl控件,再放置一个名为打开文件的button控件,编写程序实现将地图数据加载到AxMapControl控件中;2.2)添加选取路径起点及终点功能:在窗体中添加选取起点和选取终点的button控件,并添加axMapControl1_OnMouseDown事件,编程使当按下选取起点或终点按钮时,利用ITextElement类的createTextElement方法绘制起点或终点,并将该起点或终点通过axMapControl1.ActiveView.GraphicsContainer.AddElement和axMapControl1.Refresh方法绘制到地图控件中;2.3)创建地图矩阵:在对路径进行A*算法规划之前需要创建所需路径,即地图矩阵;首先获取加载的地图的图层信息ILayer接口,由于IFeatureLayer是ILayer的子类,IFeature是IFeatureLayer中的一个要素,获得IFeatureLayer后,可以从IFeatureLayer中得到IFeatureClass,再利用游标IFeatureCursor就可以把IFeature一个个遍历出来,即可把道路图层中的每一条道路和道路关键点图层中的每一点取出以备创建地图矩阵;在获得点集和道路线集之后,利用ArcGISEngine提供的IRelationalOperator接口的Contain方法,判定点是否在道路线上,若在,则该点与此道路线上的所有点都是连通的,矩阵中的值为1,若不在,则在矩阵中设定为0。由此,即可创建出地图矩阵;(3)、A*及B样条算法的实现:在完成基于ArcGISEngine的开发后,即获得了实现A*及B样条算法的数据来源,首先依据地图矩阵进行A*算法寻路,得到最短路径后再进行B样条曲线算法优化路径,使路径更加光滑平稳以便农用机器人顺畅运行,过程如下:3.1)A*算法寻路:根据实现A*算法的流程需要,首先创建开启和关闭列表分别用于存放未被查询和已被查询过的节点,对于开启列表的每一节点在地图矩阵中查找与其相通且距离最短的相邻节点,加入到关闭列表中;将相邻节点的父节点设为当前节点,并记录该相邻节点的G和F值;判断当终点节点加入到开启列表时,结束算法,路径已被找到;3.2)B样条算法光滑路径:得到最短路径后,采用三次B样条曲线生成算法,产生出连续、平滑的路径曲线,以优化最短路径;首先得到最短路径中的路径点作为型值点,进而求出控制点,每相邻的两型值点之间用一条B样条曲线连接,而每段B样条曲线由4个控制点组成,即可通过B样条算法方程求出优化曲线的路径点。本专利技术中采用的A*算法适合完全已知的环境信息,算法精巧、高效,在给定的代价函数和环境表示下,只要路径存在,便定能找到一条最短路径。本专利技术实现了基于A*与B样条算法的农用机器人路径规划。首先分析研究路径规划算法,使用Matlab仿真论证了A*及B样条算法在路径规划上的可行性;并使用VisualC#.NET与ArcGISEngine结合编程设计实现了基于A*与B样条算法的农用机器人路径规划的软件平台,以供农用机器人路径规划使用,实现农用机器人根据最优路径运行,从而提高农业作业的高效化和智能化。附图说明图1为基于A*算法的模拟果园路径规划图。图2为基于三次B样条曲线平滑A*算法已规划出的路径图。图3为A*算法执行流程图。图4为路径规划软件平台示意图。图5为A*算法寻路示意图。图6为三次B样条曲线光滑路径示意图。具体实施方式本专利技术原理包括:一、A*算法原理:A*算法是一种经典的启发式搜索算法,是基于Dijkstra算法基础上的最佳优先搜索算法。A*算法的最主要特征是在搜索选择下一节点时引入了已知的路径节点信息,计算所有候选节点到目标节点的代价,本专利技术选取最短距离作为代价,以此为据进而优先选择具有最短距离的节点作为下一个路径节点,直到搜索到目标节点。建立A*算法的关键是确立如下形式的启发函数:f(n)=g(n)+h(n)(1)其中,f(n)为经过候选节点n的最低代价解的估计代价值,g(n)为从起始节点到当前节点n的实际花费的代价,用起点到当前节点的欧氏距离来表示;而h(n)为从当前节点n到目标节点的估计代价,在实验中将h(n)定义为当前节点到目标节点的欧氏距离。假设在地图中,选定起始节点S(Sx,Sy),目标节点T(Tx,Ty),当前节点C(Cx,Cy),那么启发式A*算法的估价函数即可表示为:A*算法流程及仿真:A*算法原理简单的说就是从起始点,每走本文档来自技高网...

【技术保护点】
一种果园履带机器人路径规划方法,其特征在于:利用C#结合ArcGIS Engine二次开发编程实现农用机器人基于A*和B样条算法的路径规划软件平台,首先需要绘制用于农用机器人路径规划的地图;再基于ArcGIS Engine组件和C#语言的Windows桌面应用软件的开发;在此基础上编写A*算法以实现机器人最短路径规划及B样条曲线算法平滑路径,进而实现农用机器人最优路径规划,最后利用Socket网络编程及3G模块传输,将规划好的路径传输到农用机器人上,使机器人按该最优路径运行,具体过程如下:(1)、地图数据的处理:地图数据的获取及处理为基础工作,是为了在基于ArcGIS Engine开发中提供图层数据;首先使用地图下载软件获取地图数据,并使用ArcMap软件对下载的地图数据进行图像配准;再绘制道路shp图,利用ArcToolbox工具箱中的数据管理工具‑‑要素‑‑要素转点工具将道路图转化为道路关键点shp图,两图通过Id属性相关联;由此即完成对地图数据的处理,建立了用于路径规划的地图;(2)、基于ArcGIS Engine的开发:2.1)加载地图文档:在Visual Studio2010软件中新建基于C#语言的Windows桌面应用程序,并加入ArcGIS控件和ArcGIS Engine库引用,由此便可开发基于ArcGIS Engine的程序,在窗体中添加LicenseControl和AxMapControl控件,再放置一个名为打开文件的button控件,编写程序实现将地图数据加载到AxMapControl控件中;2.2)添加选取路径起点及终点功能:在窗体中添加选取起点和选取终点的button控件,并添加axMapControl1_OnMouseDown事件,编程使当按下选取起点或终点按钮时,利用ITextElement类的cre ateTextElement方法绘制起点或终点,并将该起点或终点通过axMapControl1.ActiveView.GraphicsCont ainer.AddElement和axMapControl1.Refresh方法绘制到地图控件中;2.3)创建地图矩阵:在对路径进行A*算法规划之前需要创建所需路径,即地图矩阵;首先获取加载的地图的图层信息ILayer接口,由于IFeatureLayer是ILayer的子类,IFeature是IFeatureLayer中的一个要素,获得IFeatureLayer后,可以从IFeatureLayer中得到IFeatureClass,再利用游标IFeatureCursor就可以把IFeature一个个遍历出来,即可把道路图层中的每一条道路和道路关键点图层中的每一点取出以备创建地图矩阵;在获得点集和道路线集之后,利用ArcGIS Engine提供的IRelationalOperator接口的Contain方法,判定点是否在道路线上,若在,则该点与此道路线上的所有点都是连通的,矩阵中的值为1,若不在,则在矩阵中设定为0,由此,即可创建出地图矩阵;(3)、A*及B样条算法的实现:在完成基于ArcGIS Engine的开发后,即获得了实现A*及B样条算法的数据来源,首先依据地图矩阵进行A*算法寻路,得到最短路径后再进行B样条曲线算法优化路径,使路径更加光滑平稳以便农用机器人顺畅运行,过程如下:3.1)A*算法寻路:根据实现A*算法的流程需要,首先创建开启和关闭列表分别用于存放未被查询和已被查询过的节点,对于开启列表的每一节点在地图矩阵中查找与其相通且距离最短的相邻节点,加入到关闭列表中;将相邻节点的父节点设为当前节点,并记录该相邻节点的G和F值;判断当终点节点加入到开启列表时,结束算法,路径已被找到;3.2)B样条算法光滑路径:得到最短路径后,采用三次B样条曲线生成算法,产生出连续、平滑的路径曲线,以优化最短路径;首先得到最短路径中的路径点作为型值点,进而求出控制点,每相邻的两型值点之间用一条B样条曲线连接,而每段B样条曲线由4个控制点组成,即可通过B样条算法方程求出优化曲线的路径点。...

【技术特征摘要】
1.一种果园履带机器人路径规划方法,其特征在于:利用C#结合ArcGISEngine二次开发编程实现农用机器人基于A*和B样条算法的路径规划软件平台,首先需要绘制用于农用机器人路径规划的地图;再基于ArcGISEngine组件和C#语言的Windows桌面应用软件的开发;在此基础上编写A*算法以实现机器人最短路径规划及B样条曲线算法平滑路径,进而实现农用机器人最优路径规划,最后利用Socket网络编程及3G模块传输,将规划好的路径传输到农用机器人上,使机器人按该最优路径运行,具体过程如下:(1)、地图数据的处理:地图数据的获取及处理为基础工作,是为了在基于ArcGISEngine开发中提供图层数据;首先使用地图下载软件获取地图数据,并使用ArcMap软件对下载的地图数据进行图像配准;再绘制道路shp图,利用ArcToolbox工具箱中的数据管理工具--要素--要素转点工具将道路图转化为道路关键点shp图,两图通过Id属性相关联;由此即完成对地图数据的处理,建立了用于路径规划的地图;(2)、基于ArcGISEngine的开发:2.1)加载地图文档:在VisualStudio2010软件中新建基于C#语言的Windows桌面应用程序,并加入ArcGIS控件和ArcGISEngine库引用,由此便可开发基于ArcGISEngine的程序,在窗体中添加LicenseControl和AxMapControl控件,再放置一个名为打开文件的button控件,编写程序实现将地图数据加载到AxMapControl控件中;2.2)添加选取路径起点及终点功能:在窗体中添加选取起点和选取终点的button控件,并添加axMapControl1_OnMouseDown事件,编程使当按下选取起点或终点按钮时,利用ITextElement类的createTextElement方法绘制起点或终点,并将该起点或终点通过axMapControl1.ActiveView.GraphicsContain...

【专利技术属性】
技术研发人员:张筱丹张政云焦俊辜丽川乔焰孟珠李王超古冉姚辰松
申请(专利权)人:安徽农业大学
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1