本发明涉及农业机器人领域,具体为一种割草机路径规划方法。
背景技术:
1、割草机路径规划技术是一种专门用于设计割草机运行路径的方法,目的是在有效覆盖所有割草区域的同时,减少重复工作和空驶,从而提高割草效率。
2、目前,有多种割草机路径规划的技术,其中最常见的是基于预设路径的割草机路径规划。这种技术的主要优点是简单易行,只需要预设一条或多条路径,然后让割草机按照预设路径进行割草。然而,这种技术的缺点也很明显,首先,预设路径往往不能很好地适应复杂多变的割草环境,导致割草机在某些区域重复割草或者遗漏某些区域。其次,这种技术无法根据实时环境信息进行调整,因此不能很好地应对环境变化。并且现在的割草机规划路径的覆盖率低,割草机转弯的次数比较多,造成割草效率低下,成本增高。尤其有些割草机路径规划算法具有避障功能,需要大量的计算资源,因此对硬件设备的要求较高。
3、此外,还有一些基于机器学习的割草机路径规划技术。这种技术的主要优点是能够根据历史割草数据学习最优的割草路径,从而避免重复工作和遗漏。然而,这种技术也有一些缺点,首先,机器学习模型可能过拟合或者欠拟合,导致规划的路径不准确。其次,这种技术需要大量的历史数据作为训练集,因此不适用于数据量较小的场景。
技术实现思路
1、为解决割草机规划路径的覆盖率低,割草机转弯的次数比较多,当障碍物较多时,割草效率低下,成本高的问题。本发明提供了一种割草机路径规划方法。
2、本发明的目的在于提供一种割草机路径规划方法,以解决上述背景技术中提出的问题。本方法是在全局信息已知的情况下,涉及一种结合牛耕式运动的全覆盖路径规划方法。该方法能够用于割草机在任意地块下的全覆盖路径规划,并且能够避障。
3、为了解决上述技术问题,本发明提供如下技术方案:
4、一种割草机路径规划方法,该路径规划方法包括:
5、s100:定义地块区域边界,基于栅格地图把地块区域内部划分为障碍物区域和非障碍物区域;
6、s200:确定作业起始点,以该点为起点,以地块区域边界中最长边的斜率作为第一斜率,以障碍物区域边界做参考,平行于障碍物区域边界绕过障碍物或者在快碰到障碍物区域边界时转弯一定角度避开障碍物区域,在非障碍物区域内做牛耕式运动的全覆盖路径规划做为第一斜率路径;
7、s300:计算生成的第一斜率路径的总体代价,如果总体代价超过预设值进行下一步运算,否则保持第一斜率路径;
8、s400:当第一斜率路径总体代价超过预设值时,根据地块区域边界和非障碍物区域边界在x方向和y方向上的最大值和最小值,计算边距规范指标和覆盖率指数;
9、s500:在边距规范指标和覆盖率指数最大时,以第一斜率路径确定初始解,所述的初始解包括:第一斜率在x、y方向的偏移量为0,第一斜率的偏移角度为0,基于模拟退火算法生成新解,所述的新解包括:第一斜率在x、y方向的偏移量,第一斜率的偏移角度,基于metropolis准则ap做判断,如果ap大于随机数u(0,1),则接受新解;否则保持初始解;当保持初始解时,继续保持第一斜率路径,当接受新解时,更新为第二斜率路径。
10、优选的,所述的步骤s100后面,还包括步骤s101:对障碍物区域边界和地块区域边界做膨胀化处理,设置安全距离。
11、优选的,所述的步骤s101中,安全距离需增加车辆尺寸。
12、优选的,所述的步骤s200中,在快碰到障碍物区域边界时转弯90度避开障碍物区域。
13、优选的,所述的步骤s200中,如何判断路径是否与障碍物区域边界相交,是通过路径对应的线段和障碍物区域边界的任意一条边对应的线段是否相交做出判断,具体判断过程通过以下两种判断方式共同判断完成;
14、①叉积计算路径所处的线段与障碍物区域边界的任意一条边对应的线段是否相交;
15、val(p1,p2,p0)=(p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y)
16、式中为叉积计算公式,p1、p2、p0为坐标系的三个点,p1.x、p0.x、p2.x、p1.y、p0.y、p2.y分别为p1、p2、p0三个点的横纵坐标,如果val等于0,这表示点p1、p2、p0共线;如果val大于0,这表示三个点按逆时针方向排列;如果叉积val小于0表示三个点顺时针方向排列,
17、temp=val(p3,p4,p5)*val(p3,p4,p6),
18、式中p3,p4,p5,p6为两条线段的端点,如果temp小于0,表示两条路径相交否则不相交;
19、②计算两条线段之间交点的方法二;
20、a.首先,定义点坐标:
21、x1,y1:线段1的起点坐标
22、x2,y2:线段1的终点坐标
23、x3,y3:线段2的起点坐标
24、x4,y4:线段2的终点坐标
25、b.然后,计算参数t,这个参数被定义为t=lamta/(1 lamta),其中lamta是一个中间变量;
26、c.计算lamta,它的数学表达式如下:
27、lamta=((x2-x1)*(y3-y1)-(x3-x1)*(y2-y1))/((x2-x1)*(y3-y4)-(x3-x4)*(y2-y1))
28、d.最后,计算交点坐标,表示为(x,y),其数学表达式如下:
29、x=x3 t*(x4-x3)
30、y=y3 t*(y4-y3)
31、这个方法计算两条线段的交点,两条线段的交点,如果线段不相交,将无法计算出结果。
32、优选的,所述的步骤s300中,w=w1m1 w2m2 w3m3 w1w2m4 w4m5
33、式中w为总体代价,w1、w2、w3,w4分别为转弯次数、障碍物数量、地块大小、其他因素的代价,m1、m2、m3、m4、m5为各个因素的权重。
34、优选的,所述的步骤s400中,先获取地块区域边界在x方向和y方向的最大值和最小值、非障碍物区域边界在x方向和y方向上的最大值和最小值;
35、计算边距规范指标,数学表示如下:
36、
37、其中:
38、ssi为边距规范指标,xboxmax、xboxmin、yboxmax、yboxmin,分别表示地块区域边界在x方向和y方向的最大值,最小值;xmax、xmin、ymax、ymin分别表示非障碍物区域边界在x方向和y方向上的最大值和最小值;
39、边距规范指标计算完成的同时也生成了路径节点密度和地块边距均匀性;
40、覆盖率指数的数学公式可以表示为:
41、optimizationindex=a*nodesinterm b*minbbareaterm-c*equalmarginsterm;
42、其中:
43、optimizationindex:覆盖率指数;
44、a、b、c:权重参数,控制各项对指数的影响程度;
45、nodesinterm:路径节点密度;
46、minbbareaterm:最小外包矩形面积,minbbareaterm=(xmax-xmin)*(ymax-ymin);
47、equalmarginsterm:地块边距均匀性。
48、优选的,所述的步骤s500中,模拟退火参数包括,t:当前温度,tmin:温度下限,算法停止的条件,alpha:温度下降率,numiterations:每个温度下的迭代次数;
49、根据第一斜率定义初始解:currentsol,参数值包括旋转角度theta=0、x轴偏移shiftx=0和y轴偏移shifty=0;
50、模拟退火主循环:在每个温度t下进行多次迭代,每次尝试生成新解:newsol,并接受或拒绝新解,可以是随机生成的或者在邻域内变化的解;
51、接受新解的条件是基于metropolis准则ap:
52、
53、其中:
54、optimizationindexcurrent表示初始解的覆盖率指数,newsol.getoptimizationindex表示新解的覆盖率指数,如果ap大于随机数u(0,1),则接受新解;否则保持初始解;
55、新解的参数值包括optimaltheta、optimalshiftx和optimalshifty,其中optimalshiftx、optimalshifty,optimaltheta分别为第一斜率在x、y方向的偏移量,第一斜率的偏移角度;第一斜率的偏移角度,可以求反正切值求得即optimaltheta=arctan(yi optimalshifty)/(xj optimalshiftx),其中,xi、xj、yi、yj为地块边界最长边两个端点的x方向和y方向上的坐标值。
56、与现有技术相比,本发明所达到的有益效果是:基于本发明算法生成的全覆盖路径规划,总体代价小,割草机转弯的次数少,覆盖率高,生成路径运算量小,路径生成速度快,而且能够避障,设置安全距离同时考虑了车辆尺寸,生成的路径运行安全性高,避免了割草作业中的重复工作和遗漏,割草效率低高,成本大大降低。该方法能够用于割草机在任意地块下的全覆盖路径规划,并且能够避障。