System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于路径规划,具体涉及一种盐场履带式活碴机全覆盖路径规划及避障方法。
技术介绍
1、海盐是重要的海洋化学资源,同时也是我们日常生活和工业生存所不可缺少的盐类。在传统的制海盐工艺中,活碴是非常重要的一个环节。当前在海盐的晾晒过程中,主要是以人力或者是人工驾驶活碴机进行作业为主。由于大面积的海盐田和频繁的活碴需求,往往需要花费大量的人力成本,造成资源浪费。
2、履带式活碴机在盐场的无人活碴作业可以归类为一种全覆盖式的路径规划问题,但是考虑到无人驾驶的安全性,需要活碴机同时具有实时避障以处理紧急情况的能力。由于履带式车辆存在转弯难度较大的问题,为了尽量避免180度的转弯,可以采用内螺旋路径规划算法进行该类情况的全覆盖路径规划。但是使用简单的内螺旋路径规划算法解决该领域的问题时仍存在着一些弊端:在盐田存在盐堆等障碍物的情况下,简单的内螺旋算法容易陷入死区,造成路径无法全覆盖的问题;此外还存在生成的路径不平滑,从而不利于实际活碴机的行驶以及无法实时避障应对紧急情况的问题。
技术实现思路
1、本专利技术的目的在于提供一种盐场履带式活碴机全覆盖路径规划及避障方法,将内螺旋路径规划算法和a*算法与dwa算法相结合,该路径规划方法解决现有技术中所存在的弊端。
2、为实现上述目的,本专利技术所采取的技术方案为:
3、一种盐场履带式活碴机全覆盖路径规划及避障方法,所述盐场履带式活碴机全覆盖路径规划及避障方法,包括:
4、步骤s1、获取盐场的栅格地
5、步骤s2、运用内螺旋路径规划算法以及a*算法进行全局的全覆盖路径规划,得到全局规划路径,包括:
6、步骤s21、读取盐场的栅格地图以及活碴机的初始位置;
7、步骤s22、判断盐场是否已经全覆盖,若是则退出循环执行步骤s27,否则执行步骤s23;
8、步骤s23、判断活碴机是否进入死区,若进入死区则执行步骤s24,否则执行步骤s26;
9、步骤s24、对死区栅格的周边栅格从内层向外层依次判断是否有未经过栅格,若有,则活渣机跳出死区,执行步骤s25;若没有,则执行步骤s22;
10、步骤s25、调用a*算法,起点设为死区栅格,终点设为距离死区栅格直线距离最近的未经过栅格,获得死区栅格到该未经过栅格的路径,并将获得路径所经过栅格的x、y坐标按顺序加入到globe_path集合中,之后设置a*算法的终点所在的栅格为当前栅格,且当前栅格为找到的未经过栅格,执行步骤s22;
11、步骤s26、根据当前栅格的周边栅格的状态确定活碴机的运动状态,所述运动状态包括右转、前进、左转和后退四种,且四种运动状态的优先级从高到低分别为右转、前进、左转、后退,并根据运动状态移动一格,将原来栅格的x、y坐标加入到globe_path集合中去,并将原来栅格的状态修改为已经过,执行步骤s22;
12、步骤s27、调用a*算法,起点设为完成全覆盖路径规划的终点,终点设为活碴机的初始位置,获得全覆盖路径规划终点栅格到活碴机初始位置栅格的路径,并将获得路径所经过栅格的x、y坐标按顺序加入到globe_path集合中去,得到最终的全局规划路径的节点集合globe_path;
13、步骤s3、提取出规划所得到的全局规划路径的关键节点;
14、步骤s4、将全局规划路径的关键节点作为dwa算法的子目标点进行局部路径规划,得到活渣机的最终路径。
15、以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
16、作为优选,所述栅格地图中栅格的边长为max{l,w},其中l表示活碴机的长度,w表示活碴机的宽度,并且栅格地图中栅格值为0表示未经过、栅格值为1表示障碍物、栅格值为2表示已经过。
17、作为优选,所述a*算法的执行步骤如下:
18、(1)创建开放列表和关闭列表,初始化起点和终点,将起点添加到开放列表中,并计算其代价函数值;
19、(2)判断开放列表是否为空,若开放列表为空则执行步骤(1),若开放列表不为空则执行步骤(3);
20、(3)选择开放列表中代价函数值最小的节点作为当前节点;
21、(4)将当前节点从开放列表中移除,并将其添加到关闭列表;
22、(5)判断当前节点是否为终点,若是终点则执行步骤(8),否则执行步骤(6);
23、(6)分别计算出当前节点和其八个邻接子节点组成的向量与当前节点和终点组成的向量之间的夹角并排序,将夹角最大的三个邻接子节点的搜索方向进行删除,并根据剩余的五个邻接子节点的搜索方向进行五向搜索;
24、(7)分别对符合要求的邻接子节点进行以下操作,若邻接子节点在关闭列表中则忽略,若邻接子节点不在开放列表中则将其添加到开放列表中并计算其代价函数值,若邻接子节点在开放列表中则更新其最小的代价函数值,执行步骤(2),所述代价函数值由a*算法的代价函数计算得到;
25、(8)输出规划得到的路径。
26、作为优选,所述a*算法的代价函数如下:
27、
28、式中,f(n)表示当前节点n的代价函数值;g(n)表示当前节点n距离起点的实际代价,即路径长度;h(n)表示当前节点n距离终点的估计代价,即两点之间的曼哈顿距离;o(n)表示当前节点n距离障碍物的最短距离;d表示当前节点n到终点的直线距离;d表示起点到终点的直线距离。
29、作为优选,所述步骤s3中,提取出规划所得到的全局规划路径的关键节点,包括:
30、步骤s31、读取全局规划路径的节点集合globe_path{pi,i=1,2,…,n},其中p1表示全局规划路径的起点,pn表示全局规划路径的终点,创建一个只含有初始值p1和pn的关键节点集合key_point{p1,pk},n表示全局规划路径的节点总数;
31、步骤s32、删除全局规划路径的节点集合globe_path中同一行或者同一列上的中间节点,只保留路径的起点、转折点以及终点,并在删除中间节点后,将全局规划路径的节点集合globe_path中剩余的节点设置为新节点集合globe_path_new{pi,i=1,2,…,m},m为剩余节点总数;
32、步骤s33、以新节点集合globe_path_new中的节点p1为起点,将p1和p2节点连接成直线段,如果障碍物到直线段p1p2的最短距离r12大于最小安全距离r,则将p1和p3节点连接成直线段,以此类推,直到障碍物到直线段p1px的最短距离r1x小于最小安全距离r,此时仅保留p1和px-1节点,删除所有中间节点,并将px-1节点加入到关键点集合key_point中;
33、步骤s34、继续以节点px-本文档来自技高网...
【技术保护点】
1.一种盐场履带式活碴机全覆盖路径规划及避障方法,其特征在于,所述盐场履带式活碴机全覆盖路径规划及避障方法,包括:
2.根据权利要求1所述的盐场履带式活碴机全覆盖路径规划及避障方法,其特征在于,所述栅格地图中栅格的边长为max{L,W},其中L表示活碴机的长度,W表示活碴机的宽度,并且栅格地图中栅格值为0表示未经过、栅格值为1表示障碍物、栅格值为2表示已经过。
3.根据权利要求1所述的盐场履带式活碴机全覆盖路径规划及避障方法,其特征在于,所述A*算法的执行步骤如下:
4.根据权利要求1或3所述的盐场履带式活碴机全覆盖路径规划及避障方法,其特征在于,所述A*算法的代价函数如下:
5.根据权利要求1所述的盐场履带式活碴机全覆盖路径规划及避障方法,其特征在于,所述步骤S3中,提取出规划所得到的全局规划路径的关键节点,包括:
6.根据权利要求1所述的盐场履带式活碴机全覆盖路径规划及避障方法,其特征在于,所述步骤S4中,将全局规划路径的关键节点作为DWA算法的子目标点进行局部路径规划,得到活渣机的最终路径,包括:
7.
...【技术特征摘要】
1.一种盐场履带式活碴机全覆盖路径规划及避障方法,其特征在于,所述盐场履带式活碴机全覆盖路径规划及避障方法,包括:
2.根据权利要求1所述的盐场履带式活碴机全覆盖路径规划及避障方法,其特征在于,所述栅格地图中栅格的边长为max{l,w},其中l表示活碴机的长度,w表示活碴机的宽度,并且栅格地图中栅格值为0表示未经过、栅格值为1表示障碍物、栅格值为2表示已经过。
3.根据权利要求1所述的盐场履带式活碴机全覆盖路径规划及避障方法,其特征在于,所述a*算法的执行步骤如下:
4.根据权利要求1或3所述的盐场履带式活碴机全...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。