AGV路径优化与效率提高的路径生成方法与流程

文档序号:32949489发布日期:2023-01-14 12:46阅读:123来源:国知局
AGV路径优化与效率提高的路径生成方法与流程
agv路径优化与效率提高的路径生成方法
技术领域
1.本发明属于agv路线规划技术领域,具体涉及agv路径优化与效率提高的路径生成方法。


背景技术:

2.a*(a-star)算法是一种agv在静态路网中求解最短路径的方法。其最短路径计算公式表示为:f(n)=g(n)+h(n),其中f(n)是节点n从初始点到目标点的估价函数,g(n)是在状态空间中从初始节点到n节点的实际代价,h(n)是从n到目标节点最佳路径的估计代价。在网格寻路的传统a-star仅仅只有对距离的代价限定却没有对转向的代价限定。出来的结果虽然距离的路径代价是最短的但是会存在多个拐点,在有多个拐点的情况下无疑是会增加无人载具的拐弯次数,却兼顾不了时间的最优性。并且当所在点与终点共线的时候,传统的a-star算法还是会继续往下检索,这个做法虽然可以得到最后的最优路径却因为检索次数过多而忽略了寻路的效率。


技术实现要素:

3.本发明的目的在于克服现有的静态路网中求解最短路径方法存在没有兼顾agv在静态路网中因拐弯次数没有达到计算出时间的最优性以及路径计算检索时间长存在的问题,提供一种减少agv在静态路网中拐弯次数以及节省路径计算搜索时间以便agv可直线到达终点的agv路径优化与效率提高的路径生成方法。
4.为了达到上述目的,本发明采用以下技术方案:
5.agv路径优化与效率提高的路径生成方法,agv的路径网络包括若干路径点和若干行驶路径,路径点之间通过行驶路径连接,并规划agv的任务终点位置,所述方法包括以下步骤:
6.a.agv读取当前位置作为起始点,以起始点作为参数创建pathnode类的对象,pathnode内包含用于记录起始点的位置信息以及起始点对应的终点代价h值、起点代价g值和转向代价e值,新建一个pathnode类对象cur作为寻路中转点,把start的值赋给cur。
7.b开始寻点:在cur寻点的次数等于以cur为起点的路径数,每搜寻到一个点就把cur点放入transfer数组,当transfer内含有本次搜索到的点时,则会再搜索新的匹配的点,再新建pathnode类对象newpn,把搜索到新的匹配的点代入,计算各cur点对应的终点代价h值、起点代价g值和转向代价e值。
8.c.计算转向代价e值:把无人载具的角度与cur到newpn路径的角度作比较,如果是同角度则代价为0,若两个角度相差90
°
则判断为需要拐弯,若newpn靠近终点则代价为n1,反之为newpn远离终点则代价则为n2,若两个角度相差180
°
,则判定需要掉头,掉头至靠近终点的newpn的代价为n3,掉头至远离终点的newpn的代价为n4,直到newpn与总终点在同一直线上,将上述转向代价的标准减半。
9.d.计算终点代价h值和起点代价g值:起点代价g值为起点到newpn的路径距离,终
点代价h为newpn到终点的路径距离。
10.f.根据f(n)=g(n)+h(n)+e(n),将g值、e值与h值相加起来得出总代价f,把newpn放入到已建的unlocklist,再把unlocklist内的所有以总代价f的形式进行升序排列,把f最小的放在第一位,使cur等于unlocklist[0],把cur往已建path内放置,然后把cur又重新赋值成其父节点,重复此操作直到cur没有父节点得到的path就是终点到起点最短路径的点集合,把path倒序得到起点到终点的最短路径点的集合,得到起点到终点的路径集合。
[0011]
与现有技术相比,本发明的agv路径优化与效率提高的路径生成方法,通过增加转向代价e值计算,较好地减少路径寻路过程中的拐点次数,从而使agv运行长期保持在直线上,使得实际运行时的转向次数减少,提高了agv路径搜寻过程运行计算的效率。
[0012]
进一步的,在计算e值的过程中,若newpn可以直达总终点会把在newpn到总终点中间的所有点按顺序的放入tempunlockpointlist,把cur赋值成为tempunlockpointlist的最后一个值;通过这样设置,在计算e的过程中输出的tempunlockpointlist使得算法的效率提高,减少工控机对算力的要求,减少了对重复步骤的执行,以毫秒数量级减少寻路时间,提高。
[0013]
进一步的,在步骤c中,若newpn能直线达总终点,则此newpn的代价减少n1,若newpn与总终点在同一直线上但不能直线达总终点,则此newpn的代价增加n5,其中n5远大于n1;通过这样设置,若newpn与总终点在同一直线上但不能直线达总终点,则使newpn的代价会增加到一个很大的值使得系统寻路过程中不会选择这个点,较好地避免系统重复选择这个若newpn点。
[0014]
进一步的,在步骤f中,当起点与终点相邻时,把终点赋值给unlocklist[0];通过这样设置,较好地保证系统规划的路径是agv在起点直接达到终点。
[0015]
进一步的,n1=100,n2=200,n3=300,n4=400。
附图说明
[0016]
图1为本发明的agv路径优化与效率提高的路径生成方法的流程图
[0017]
图2为图1流程图中转向代价黑盒的流程图
[0018]
图3为图1流程图中起点代价黑盒和终点代价黑盒的流程图
[0019]
图4为使用agv路径优化与效率提高的路径生成方法的路径生成图
具体实施方式
[0020]
以下结合附图说明本发明的技术方案:
[0021]
参见图1至图4,本发明的agv路径优化与效率提高的路径生成方法,在寻路开始之前,会创造一个起点、路径映射的字典,agv的路径网络形成包括若干路径点和若干行驶路径,路径点之间通过行驶路径连接,并规划agv的任务终点位置,字典的key是地图内点的id号,value是以key为起点发散出去的路径id号集合。并且新建locklist和unlocklist分别存放确认好的点和检索过的点。所述方法包括以下步骤:
[0022]
a.agv读取当前位置的二维码位置作为起始点,以起始点作为参数创建pathnode类的对象,pathnode内包含用于记录起始点的位置信息以及起始点对应的终点代价h值、起点代价g值和转向代价e值,新建一个pathnode类对象cur作为寻路中转点,把start的值赋
给cur。
[0023]
b开始寻点:在cur寻点的次数等于以cur为起点的路径数,每搜寻到一个点就把cur点放入transfer数组(此数组可以为了防止重复搜索到与上一次搜索的点,需要把以cur为起点的路径的终点全部搜索到),当transfer内含有本次搜索到的点时,则会再搜索新的匹配的点,再新建pathnode类对象newpn,把搜索到新的匹配的点代入,计算各cur点对应的终点代价h值、起点代价g值和转向代价e值。
[0024]
c.计算转向代价e值:其中e值的计算需要得到无人载具此时在地图上的绝对角度,并且要先把此角度归一化一次,得到0
°
、90
°
、180
°
和270
°
中的其中一个角度,把无人载具的角度与cur到newpn路径的角度作比较,如果是同角度则代价为0,若两个角度相差90
°
则判断为需要拐弯,若newpn靠近终点则代价为n1,反之为newpn远离终点则代价则为n2,若两个角度相差180
°
,则判定需要掉头,掉头至靠近终点的newpn的代价为n3,掉头至远离终点的newpn的代价为n4,直到newpn与总终点在同一直线上,将上述转向代价的标准减半,即原来n1的降至n1/2、n2的降至n2/2、n3的降至n3/2、n4的降至n4/2。
[0025]
d.计算终点代价h值和起点代价g值:起点代价g值为起点到newpn的路径距离,终点代价h为newpn到终点的路径距离,路径距离在地图上体现出来是有拐角的,为x方向的差距加上y方向的差距,xy方向的单位路径代价值为xy方向的单位路径长度,例如1100mm的路径,代价值就是1100。
[0026]
f.根据f(n)=g(n)+h(n)+e(n),将g值、e值与h值相加起来得出总代价f,把newpn放入到已建的unlocklist,再把unlocklist内的所有以总代价f的形式进行升序排列,把f最小的放在第一位,使cur等于unlocklist[0],把cur往已建path内放置,然后把cur又重新赋值成其父节点,重复此操作直到cur没有父节点得到的path就是终点到起点最短路径的点集合,把path倒序得到起点到终点的最短路径点的集合,得到起点到终点的路径集合。
[0027]
与现有技术相比,本发明的agv路径优化与效率提高的路径生成方法,通过增加转向代价e值计算,较好地减少路径寻路过程中的拐点次数,从而使agv运行长期保持在直线上,使得实际运行时的转向次数减少,提高了agv路径搜寻过程运行计算的效率。
[0028]
在一种实施例中,在计算e值的过程中,若newpn可以直达总终点会把在newpn到总终点中间的所有点按顺序的放入tempunlockpointlist,把cur赋值成为tempunlockpointlist的最后一个值,这个最后的一个值即是agv行驶终点,这就节省了在newpn又再一次往不同方向检索的时间,把newpn与tempunlockpointlist进行缝合,当cur是总终点的时候,则可以把cur往path内放置,然后把cur又重新赋值成其父节点,重复此操作直到cur没有父节点(cur为起点)得到的path就是终点到起点最短路径的点集合,把path倒序得到起点到终点的最短路径点的集合。使用path内的点在路径字典内寻找对应的路径放入pathidforastar,得到起点到终点的路径集合,这个路径集合就是我们需要的总路径;通过这样设置,在计算e的过程中输出的tempunlockpointlist使得算法的效率提高,减少工控机对算力的要求,减少了对重复步骤的执行,以毫秒数量级减少寻路时间,较好地提高寻路效率。
[0029]
在一种实施例中,在步骤c中,若newpn能直线达总终点,则此newpn的代价减少n1,其中n1=100。再判断完此代价的时候还会判断此newpn是否能直线达总终点,判断直达的过程其实也是一个寻路的过程,只是此过程并不会往其他点发散,只会一直沿着往终点的
方向发散,若newpn可以通过这一方向发散寻找到终点,代表此点可以以直线的方式达到终点,则此newpn的代价减100,否则,若newpn与总终点在同一直线上但不能直线达总终点,则使newpn的代价会增加到一个很大的值使得系统寻路过程中不会选择这个点,较好地避免系统重复选择这个若newpn点。
[0030]
在一种实施例中,在步骤f中,当起点与终点相邻时,把终点赋值给unlocklist[0];通过这样设置,较好地保证系统规划的路径是agv在起点直接达到终点。当起点是终点隔壁的一个点,但是起点到终点路径长度比起点到另一个检索点的路径长度长的时候,需要做一个限制,直接把终点赋值给unlocklist[0],这是为了防止不必要的寻路,从而提高寻路效率。在上述过程都执行完以后则需要把cur在unlocklist内移除,这一步骤的目的是为了不扰乱下一次unlocklist的排序,可以顺利把下一个f最小的newpn放在unlocklist的第一位。
[0031]
在一种实施例中,n1=100,n2=200,n3=300,n4=400,n5数值例如是10000或无穷大。
[0032]
根据上述说明书的揭示和教导,本发明所属领域的技术人员还可以对上述实施方式进行变更和修改。因此,本发明并不局限于上面揭示和描述的具体实施方式,对本发明的一些修改和变更也应当落入本发明的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1