CN116839609A - 全覆盖路径规划方法、装置及计算机可读存储介质 - Google Patents
全覆盖路径规划方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116839609A CN116839609A CN202310648226.1A CN202310648226A CN116839609A CN 116839609 A CN116839609 A CN 116839609A CN 202310648226 A CN202310648226 A CN 202310648226A CN 116839609 A CN116839609 A CN 116839609A
- Authority
- CN
- China
- Prior art keywords
- search
- path
- planning
- borrowing
- single area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 162
- 230000008569 process Effects 0.000 claims abstract description 85
- 239000013598 vector Substances 0.000 claims description 31
- 238000004364 calculation method Methods 0.000 claims description 25
- 230000002093 peripheral effect Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004888 barrier function Effects 0.000 claims description 6
- 238000004140 cleaning Methods 0.000 description 30
- 241001417527 Pempheridae Species 0.000 description 20
- 230000009286 beneficial effect Effects 0.000 description 17
- 230000008901 benefit Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000001788 irregular Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000010408 sweeping Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 235000014676 Phragmites communis Nutrition 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 244000273256 Phragmites communis Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000428 dust Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012417 linear regression Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011012 sanitization Methods 0.000 description 2
- 239000002689 soil Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004659 sterilization and disinfection Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3446—Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Navigation (AREA)
Abstract
本申请提供了全覆盖路径规划方法、装置及计算机可读存储介质,该方法包括:S1:获取单区域的所有节点的位置信息和单区域的边界信息,并令i=1;S2:基于单区域的未遍历的节点的位置信息和单区域的边界信息,进行第i次搜索规划;S3:检测是否存在未遍历的节点;如果存在,则执行S4;如果不存在,则执行S5;S4:进行第i次借道规划,对i进行加一操作,执行S2;S5:基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取目标车辆在单区域的全覆盖路径,结束路径规划过程。通过融合及改进多类规划方案(搜索规划和借道规划),自动化生成符合多种目标车辆的运动学约束且在单区域内实现高覆盖率的路径规划结果。
Description
技术领域
本申请涉及自动驾驶和路径规划的技术领域,尤其涉及全覆盖路径规划方法、装置及计算机可读存储介质。
背景技术
现有全覆盖路径规划技术主要应用于室内扫地机及室外自动驾驶清扫车两大领域,当用于自动驾驶清扫车领域时,大多在单个区域内采用回形、弓型或类似的变种方案进行全覆盖路径规划,这类方案大多数情况各自都存在一些缺陷。
弓型搜索全覆盖方案,基于无人车朝向或固定方向进行直线搜索,直到遇到障碍物或地图边界后调整90度方向进行横向规划一段距离后,再调整90度方向后进行直线搜索,通过变更搜索方向及碰撞检测的方式循环遍历,以此形成“弓型”全覆盖路径。弓型搜索全覆盖路径覆盖率高,但针对大型自动驾驶清扫车,其规划路线一方面不符合无人车运动学约束,另一方面自动驾驶清扫车若转弯半径过大时,若按照符合转弯半径的弓型搜索,其“弓型路径”将无法实现全覆盖,中间会存在间隔空隙,无法真正应用于自动驾驶清扫车的实际应用。
回字型搜索全覆盖方案,主要利用地图边界形状,通过边界轮廓点内部平移、缩放、膨胀等方式,进行内螺旋搜索获得螺旋回形全覆盖路径或者在获得多层内部与边界形状相似的等距环绕路径后将多个回形路径通过曲线规划连接,形成可供无人车运行的全覆盖路径。一方面,回形搜索面临着在内部狭窄空间搜索时,会生成不符合自动驾驶清扫车运动学约束的路径;另一方面,若需要保证运动学约束的进行回环搜索,又会导致漏扫空间增大,需要额外补扫操作;又一方面,回形搜索依赖边界信息,若边界凹凸不平,容易导致输出路径不符合车辆运动学约束。
基于此,本申请提供了全覆盖路径规划方法、装置及计算机可读存储介质,以改进现有技术。
发明内容
本申请的目的在于提供全覆盖路径规划方法、装置及计算机可读存储介质,采用混合规划的方式,针对车辆在单区域的自动驾驶过程进行全覆盖路径规划。
本申请的目的采用以下技术方案实现:
第一方面,本申请提供了一种全覆盖路径规划方法,用于对目标车辆在内部无障碍物的单区域的自动驾驶过程进行全覆盖路径规划,所述方法包括:
S1:获取所述单区域的所有节点的位置信息和所述单区域的边界信息,并令i=1;
S2:基于所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,进行第i次搜索规划以得到第i搜索路径,并将所述第i搜索路径上的节点标记为已遍历;
S3:检测是否存在未遍历的节点;如果存在,则执行S4;如果不存在,则执行S5;
S4:进行第i次借道规划以得到第i借道路径,所述第i借道路径用于将所述第i搜索路径的终点连接至一个未遍历的节点,并将所述第i借道路径上的节点标记为已遍历,以及对i进行加一操作,执行S2;
S5:基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取所述目标车辆在所述单区域的全覆盖路径,结束路径规划过程。
该技术方案的有益效果在于:结合自动驾驶车辆的业务需求,提出一种基于单区域混合规划的全覆盖路径规划方法,通过融合及改进多类规划方案(搜索规划和借道规划),自动化生成符合多种目标车辆(例如可以包括大型自动驾驶清扫车辆)运动学约束且在单区域内实现高覆盖率的路径规划结果,解决单一弓型、回形等规划方案针对大型自动驾驶清扫车不符合运动学约束及漏扫率高等问题,并可依据业务需求实现不同的全覆盖规划效果。
首先,获取单区域内所有节点的位置信息以及单区域的边界信息,例如可以获取单区域的全覆盖地图,再利用全覆盖地图定位其中的所有节点,在之后的路径规划过程中,需要遍历所有节点才能结束。其次,基于单区域中未遍历的节点进行搜索规划,得到搜索路径,并将搜索路径上的节点标记为已遍历。在每次搜索规划结束后,检测所有节点是否都已遍历;如果存在未遍历的节点,则判定针对单区域的全覆盖路径规划未完成,由于本次搜索规划过程已经结束,因此需要基于当前搜索路径的终点进行借道规划,得到借道路径,并将借道路径上的节点标记为已遍历,之后进入下一次搜索规划过程;如果所有节点都已遍历,则判定针对单区域的全覆盖路径规划已完成,可以基于上面规划得到的所有搜索路径和所有借道路径获取全覆盖路径,结束目标车辆在该单区域的路径规划过程。
上述路径规划过程包含交替进行的搜索规划过程和借道规划过程,利用先后规划得到的第一搜索路径、第一借道路径、第二搜索路径、第二借道路径、第三搜索路径、第三借道路径……遍历单区域中的所有节点,每个搜索路径的终点可以作为对应借道路径的起点,本次借道路径的终点可以作为下一次搜索路径的起点,实现搜索路径和借道路径之间的连续性。全覆盖路径用于对目标车辆在单区域内部的自动驾驶过程进行自动导航。
其中,每次搜索规划过程可以使用相同的搜索模板或者不同的搜索模板,输出符合运动学约束的回形搜索路径、弓形搜索路径或者其他形状的搜索路径。当使用多个搜索模板时,相比于使用传统的单一搜索模板或随机搜索模板的搜索规划,一方面可以增加限制性条件(即搜索限制条件),从而满足运动学约束条件,另一方面多搜索模板的搜索方式成功率可以稳定在较高水平。
通过借道路径实现相邻两次搜索路径之间的连接,确保每个节点都能够被遍历到,因此可以降低大型清扫车辆的漏扫率。
在一些可选的实施方式中,所述第i搜索路径满足以下条件:
当i=1时,所述第i搜索路径的起点是所述单区域的长边的任意一个端点;
当i>1时,所述第i搜索路径的起点是所述第i-1借道路径的终点。
该技术方案的有益效果在于:初始状态下,可以选择单区域的长边的端点作为第一搜索路径的起点,方便目标车辆从单区域外部到达该指定起点位置,并从该指定起点位置开始遍历单区域中的节点。其中,单区域的长边是指长度方向的侧边,即使是不规则形状的单区域也可以指定其所对应的长度方向。
在之后的路径规划过程中,则可以选择上一次借道路径的终点作为本次搜索路径的起点,使得本次搜索路径能够接续之前所规划的借道路径。
在一些可选的实施方式中,获取所述第i搜索路径的过程包括:
S21:基于所述目标车辆的位置信息和朝向信息、所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,从多个搜索模板中确定其中一个搜索模板作为第i次搜索规划所使用的搜索模板,并令j=1;
S22:针对所述第i搜索路径的第j节点,利用第i次搜索规划所使用的搜索模板进行搜索,检测是否能够搜索到满足预设的搜索限制条件的第j+1节点;如果能够搜索到,则执行S23;如果不能搜索到,则执行S24;
S23:基于所述第j+1节点,更新所述第i搜索路径,并对j进行加一操作,执行S22;
S24:检测是否存在第i次搜索规划未使用过的搜索模板;如果存在,则执行S25;如果不存在,则执行S26;
S25:从第i次搜索规划未使用过的搜索模板中确定其中一个搜索模板,用以对第i次搜索规划所使用的搜索模板进行更新,执行S22;
S26:结束第i次搜索规划并输出所述第i搜索路径。
该技术方案的有益效果在于:采用多个搜索模板进行搜索规划,并结合搜索限制条件不允许存在非法的横跨节点进行搜索,则可输出符合运动学约束的搜索路径。相比较基于传统的单一搜索模板或随机搜索模板的搜索规划,一方面保证运动学约束,另一方面成功率固定较高。
在一些可选的实施方式中,所述单区域的主方向平行于所述单区域的行驶路面,以所述单区域的主方向为直线搜索方向,以平行于所述行驶路面且垂直于主方向的方向为横跨搜索方向;
所述搜索限制条件包括:
横跨搜索下一个节点是未遍历过的节点,或者,直线搜索下一个节点是未遍历过的节点。
该技术方案的有益效果在于:针对搜索规划过程,必要的限制条件是,横跨搜索或者直线搜索得到的下一个节点是未遍历过的节点。如果横跨搜索以及直线搜索得到的下一个节点都是已遍历的节点,则结束本次搜索规划过程。这样做的好处是,禁止非法跨越未遍历的节点,确保每个节点都能够被覆盖到,当应用于清扫车时能够降低漏扫率。
在一些可选的实施方式中,所述搜索限制条件还包括以下至少一种:
横跨搜索下一个节点与当前节点之间的距离小于预设距离阈值;
直线搜索下一个节点与当前节点之间的距离小于所述预设距离阈值;
横跨搜索下一条线段与当前线段之间的角度小于预设角度阈值;
直线搜索下一条线段与当前线段之间的角度小于所述预设角度阈值;
横跨搜索下一条线段的节点数量与当前线段的节点数量之间的差值小于预设数量阈值;
搜索得到的下一条线段、当前线段与上一条线段之间满足所述目标车辆对应的预设曲率约束条件。
该技术方案的有益效果在于:设置距离、角度、数量变化、曲率约束等搜索限制条件,使得搜索得到的下一个节点满足距离、角度、数量变化、曲率约束对应的要求,针对不同的目标车辆可以设置不同的预设距离阈值、预设角度阈值、预设数量阈值、预设曲率约束条件,所规划得到的搜索路径更适用于特定的目标车辆的自动驾驶过程,满足实际应用中的性能需求和成本需求。
在一些可选的实施方式中,获取所述第i借道路径的过程包括:
从所述单区域的未遍历的节点中确定至少一个候选节点;
获取每个候选节点对应的借道路径;
从所有候选节点对应的借道路径中确定其中一个借道路径作为所述第i借道路径。
该技术方案的有益效果在于:将借道规划过程分为三个阶段,首先确定至少一个候选节点,其次获取每个候选节点对应的借道路径,最后从至少一个借道路径中选择其中一个作为本次借道路径。这样做的好处是,针对每个候选节点分别进行借道路径规划,从借道路径的维度判断各候选节点的优劣,从而最终从至少一个候选节点中确定一个候选节点作为本次借道路径的终点,并将其对应的借道路径作为本次借道规划过程的结果,方便根据实际应用中的需求选择出合适的借道路径。
在一些可选的实施方式中,所述从所述单区域的未遍历的节点中确定至少一个候选节点,包括:
基于所述单区域的未遍历的节点,获取一个或多个不存在重合节点的未遍历的直线段;
将所有未遍历的直线段的两个端点作为所述至少一个候选节点。
该技术方案的有益效果在于:候选节点不仅是从未遍历的节点之中选择,并且分别是各个未遍历的直线段的端点,相比于将所有未遍历的节点均作为候选节点来说,候选节点数量的减少能够大大减少运算量,提高了借道规划效率,从整体上提高了全覆盖路径规划效率。另外,这种候选节点的选择方式符合借道路径规划的技术规律,即以全覆盖所有节点为目标的前提下,不存在一个直线段的中间节点比端点更适合借道的情况。
在一些可选的实施方式中,所述获取每个候选节点对应的借道路径,包括:
对所述第i搜索路径的终点进行八邻域搜索,以将所述第i搜索路径的终点分别连接至每个候选节点,从而得到每个候选节点对应的借道路径。
该技术方案的有益效果在于:通过八邻域搜索方式,可以实现借道路径的不断延伸,从而到达每个候选节点。
在一些可选的实施方式中,所述从所有候选节点对应的借道路径中确定其中一个借道路径作为所述第i借道路径,包括:
利用最小代价函数的预设计算公式,计算每个候选节点对应的借道路径的最小代价;
从所有候选节点对应的借道路径中确定最小代价的最小值对应的借道路径作为所述第i借道路径。
该技术方案的有益效果在于:计算每个候选节点对应的借道路径的最小代价,意味着每个借道路径所对应的最少耗费,从这些最小耗费中取最小值,将该最小值对应的借道路径作为本次借道路径,计算方式简单,计算时间短,计算效率高,所耗费的计算资源少。
在一些可选的实施方式中,所述方法还包括:
基于所述单区域的边界信息,进行溜边规划,以得到溜边规划路径;
所述基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取所述目标车辆在所述单区域的全覆盖路径,包括:
基于搜索规划得到的所有搜索路径、借道规划得到的所有借道路径以及溜边规划得到的溜边规划路径,获取所述目标车辆在所述单区域的全覆盖路径。
该技术方案的有益效果在于:采用搜索规划、借道规划和溜边规划的混合规划方式对目标车辆在单区域的自动驾驶过程进行全覆盖路径规划,兼具规划效率高、漏扫率低、符合运动学约束的优点。当应用于(自动驾驶)清扫车时,可以将溜边规划路径安排在最后,使得清扫车在遍历了所有节点后再进行溜边行驶,这样做的好处是,溜边规划路径能够让清扫车到达每个边线和每个角落,如果之前的清扫过程中部分待清扫的物体被清扫车清扫至边线和角落,则可以在溜边行驶的过程中进行清理,避免残留物体导致清扫不彻底的情况。由于清扫车可能应用于室内或者室外,待清扫的物体可能是灰尘、泥土、树叶等,质量较轻、受力时容易改变位置,因此这种结合了溜边规划的混合规划过程更加符合实际应用中的清扫需求。
在一些可选的实施方式中,获取所述单区域的过程包括:
获取预设区域的矢量地图;
对所述预设区域的矢量地图进行区域划分,以得到内部无障碍物的多个单区域地图;
将每个单区域地图对应的区域作为一个所述单区域。
该技术方案的有益效果在于:内部无障碍物的多个单区域地图是指每个单区域地图的内部均无障碍物。矢量地图是一组数据,这些数据是对空间图像对象进行矢量化处理后获得的,并由步行的GIS专家在地面上进行了验证。矢量地图将使用户可以处理每个对象:街道、房屋、河流、通道等,补充对象的属性并形成自己的图层。这样做的好处是,将预设区域的矢量地图进行划分从而得到各单区域地图,从而得到预设区域内的每个单区域,区域划分方式例如可以采用智能划分方式或者人工划分方式。智能划分方式可以利用区域划分模型,该区域划分模型例如可以是预先训练得到的。
在一些可选的实施方式中,获取所述单区域的所有节点的位置信息的过程包括:
基于所述单区域的边界信息,确定所述单区域的主方向;
确定所述单区域的中心点,以得到所述中心点的位置信息;
基于所述单区域的主方向、所述中心点的位置信息以及预设间隔,拓展得到所述单区域的所有节点,以获取所述单区域的所有节点的位置信息。
该技术方案的有益效果在于:将全覆盖节点定位过程分为三个阶段,首先确定单区域的主方向,其次确定单区域的中心点,最后基于主方向和中心点以及预设间隔,拓展得到所有节点,这种全覆盖节点定位过程采用各自独立的方式获取主方向和中心点,避免两个耦合过程之间引入的叠加误差。预设间隔例如可以利用清扫车的清扫宽度计算得到。
在一些可选的实施方式中,所述单区域的边界信息包括所述单区域的外围轮廓曲线;
所述基于所述单区域的边界信息,确定所述单区域的主方向,包括:
对所述单区域的外围轮廓曲线进行直线拟合,以得到多条直线段,每条直线段都是有向线段;
基于多条直线段,确定所述单区域的主方向。
该技术方案的有益效果在于:对单区域的外围轮廓曲线进行直线拟合,以得到多条有向线段形式的直线段,利用这些直线段来确定单区域的主方向。采用线性回归的思想,把通常是不规则曲线的外围轮廓曲线转化为一段段有向直线段来参与后续的主方向计算过程,计算方式简单,在数据量大的情况下依然运行速度很快,容易理解,结果具有很好的可解释性,有利于决策分析。
在一些可选的实施方式中,所述基于多条直线段,确定所述单区域的主方向,包括:
获取每条直线段的长度和角度,所述直线段的角度用于指示所述直线段与预设方向之间的夹角;
按照角度将每条直线段分类至一个角度区间;
计算每个角度区间中的所有直线段的长度之和;
将长度之和最大的角度区间作为目标角度区间,对所述目标角度区间中的所有直线段对应的向量进行加权平均,以确定所述单区域的主方向。
该技术方案的有益效果在于:一方面,由于目标角度区间中的直线段的长度之和最大,意味着目标车辆在该目标角度区间的行驶距离最长,在目标车辆匀速行驶的前提下在该目标角度区间的行驶时长也最长,基于目标角度区间的直线段来确定主方向,所得到的主方向准确且合理。另一方面,相对于将所有直线段对应的向量直接进行加权平均来说,利用角度区间筛选出长度之和最大的目标角度区间,仅仅对目标角度区间中的直线段对应的向量进行加权平均,由于参与加权平均的向量数量大大减少,因此能够大大减少加权平均的计算量,计算效率高。
在一些可选的实施方式中,所述基于所述单区域的主方向、所述中心点的位置信息以及预设间隔,拓展得到所述单区域的所有节点,以获取所述单区域的所有节点的位置信息,包括:
基于所述中心点的位置信息,构建过所述中心点且垂直于所述主方向的垂直线,所述中心点将所述垂直线划分为两条射线;
利用所述单区域的边界信息进行边界约束,以所述中心点为起点,分别沿每条射线的延伸方向以所述预设间隔拓展得到多个第一类点,并获取所有第一类点的位置信息;
利用所述单区域的边界信息进行边界约束,分别以所述中心点和每个第一类点为起点,分别沿所述主方向以及所述主方向的反方向以所述预设间隔拓展得到多个第二类点,并获取所有第二类点的位置信息;
将所述中心点以及所有拓展得到的第一类点、第二类点作为所述单区域的节点,以得到所述单区域的所有节点的位置信息。
该技术方案的有益效果在于:采用主方向及其垂直线的方向分别进行拓展以得到所有节点,拓展方式简单,拓展效率高,拓展得到的所有节点用于全覆盖路径规划过程,能够准确指导目标车辆对单区域的所有节点实现全覆盖。在第一类点的拓展过程中,以单区域的边界为边界,以中心点为起点,以两条射线的延伸方向为拓展方向,以预设间隔为间隔;在第二类点的拓展过程中,以单区域的边界为边界,以中心点以及第一类点为起点,以主方向及其反方向为拓展方向,以预设间隔为间隔。
第二方面,本申请提供了一种全覆盖路径规划装置,用于对目标车辆在内部无障碍物的单区域的自动驾驶过程进行全覆盖路径规划,所述装置包括处理器,所述处理器被配置成实现以下步骤:
S1:获取所述单区域的所有节点的位置信息和所述单区域的边界信息,并令i=1;
S2:基于所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,进行第i次搜索规划以得到第i搜索路径,并将所述第i搜索路径上的节点标记为已遍历;
S3:检测是否存在未遍历的节点;如果存在,则执行S4;如果不存在,则执行S5;
S4:进行第i次借道规划以得到第i借道路径,所述第i借道路径用于将所述第i搜索路径的终点连接至一个未遍历的节点,并将所述第i借道路径上的节点标记为已遍历,以及对i进行加一操作,执行S2;
S5:基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取所述目标车辆在所述单区域的全覆盖路径,结束路径规划过程。
在一些可选的实施方式中,所述第i搜索路径满足以下条件:
当i=1时,所述第i搜索路径的起点是所述单区域的长边的任意一个端点;
当i>1时,所述第i搜索路径的起点是所述第i-1借道路径的终点。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取所述第i搜索路径:
S21:基于所述目标车辆的位置信息和朝向信息、所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,从多个搜索模板中确定其中一个搜索模板作为第i次搜索规划所使用的搜索模板,并令j=1;
S22:针对所述第i搜索路径的第j节点,利用第i次搜索规划所使用的搜索模板进行搜索,检测是否能够搜索到满足预设的搜索限制条件的第j+1节点;如果能够搜索到,则执行S23;如果不能搜索到,则执行S24;
S23:基于所述第j+1节点,更新所述第i搜索路径,并对j进行加一操作,执行S22;
S24:检测是否存在第i次搜索规划未使用过的搜索模板;如果存在,则执行S25;如果不存在,则执行S26;
S25:从第i次搜索规划未使用过的搜索模板中确定其中一个搜索模板,用以对第i次搜索规划所使用的搜索模板进行更新,执行S22;
S26:结束第i次搜索规划并输出所述第i搜索路径。
在一些可选的实施方式中,所述单区域的主方向平行于所述单区域的行驶路面,以所述单区域的主方向为直线搜索方向,以平行于所述行驶路面且垂直于主方向的方向为横跨搜索方向;
所述搜索限制条件包括:
横跨搜索下一个节点是未遍历过的节点,或者,直线搜索下一个节点是未遍历过的节点。
在一些可选的实施方式中,所述搜索限制条件还包括以下至少一种:
横跨搜索下一个节点与当前节点之间的距离小于预设距离阈值;
直线搜索下一个节点与当前节点之间的距离小于所述预设距离阈值;
横跨搜索下一条线段与当前线段之间的角度小于预设角度阈值;
直线搜索下一条线段与当前线段之间的角度小于所述预设角度阈值;
横跨搜索下一条线段的节点数量与当前线段的节点数量之间的差值小于预设数量阈值;
搜索得到的下一条线段、当前线段与上一条线段之间满足所述目标车辆对应的预设曲率约束条件。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取所述第i借道路径:
从所述单区域的未遍历的节点中确定至少一个候选节点;
获取每个候选节点对应的借道路径;
从所有候选节点对应的借道路径中确定其中一个借道路径作为所述第i借道路径。
在一些可选的实施方式中,所述处理器被配置成采用以下方式确定所述至少一个候选节点:
基于所述单区域的未遍历的节点,获取一个或多个不存在重合节点的未遍历的直线段;
将所有未遍历的直线段的两个端点作为所述至少一个候选节点。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取每个候选节点对应的借道路径:
对所述第i搜索路径的终点进行八邻域搜索,以将所述第i搜索路径的终点分别连接至每个候选节点,从而得到每个候选节点对应的借道路径。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取所述第i借道路径:
利用最小代价函数的预设计算公式,计算每个候选节点对应的借道路径的最小代价;
从所有候选节点对应的借道路径中确定最小代价的最小值对应的借道路径作为所述第i借道路径。
在一些可选的实施方式中,所述处理器还被配置成实现以下步骤:
基于所述单区域的边界信息,进行溜边规划,以得到溜边规划路径;
所述基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取所述目标车辆在所述单区域的全覆盖路径,包括:
基于搜索规划得到的所有搜索路径、借道规划得到的所有借道路径以及溜边规划得到的溜边规划路径,获取所述目标车辆在所述单区域的全覆盖路径。
在一些可选的实施方式中,所述处理器还被配置成实现以下步骤:
获取预设区域的矢量地图;
对所述预设区域的矢量地图进行区域划分,以得到内部无障碍物的多个单区域地图;
将每个单区域地图对应的区域作为一个所述单区域。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取所述单区域的所有节点的位置信息:
基于所述单区域的边界信息,确定所述单区域的主方向;
确定所述单区域的中心点,以得到所述中心点的位置信息;
基于所述单区域的主方向、所述中心点的位置信息以及预设间隔,拓展得到所述单区域的所有节点,以获取所述单区域的所有节点的位置信息。
在一些可选的实施方式中,所述单区域的边界信息包括所述单区域的外围轮廓曲线;
所述处理器被配置成采用以下方式确定所述单区域的主方向:
对所述单区域的外围轮廓曲线进行直线拟合,以得到多条直线段,每条直线段都是有向线段;
基于多条直线段,确定所述单区域的主方向。
在一些可选的实施方式中,所述处理器被配置成采用以下方式确定所述单区域的主方向:
获取每条直线段的长度和角度,所述直线段的角度用于指示所述直线段与预设方向之间的夹角;
按照角度将每条直线段分类至一个角度区间;
计算每个角度区间中的所有直线段的长度之和;
将长度之和最大的角度区间作为目标角度区间,对所述目标角度区间中的所有直线段对应的向量进行加权平均,以确定所述单区域的主方向。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取所述单区域的所有节点的位置信息:
基于所述中心点的位置信息,构建过所述中心点且垂直于所述主方向的垂直线,所述中心点将所述垂直线划分为两条射线;
利用所述单区域的边界信息进行边界约束,以所述中心点为起点,分别沿每条射线的延伸方向以所述预设间隔拓展得到多个第一类点,并获取所有第一类点的位置信息;
利用所述单区域的边界信息进行边界约束,分别以所述中心点和每个第一类点为起点,分别沿所述主方向以及所述主方向的反方向以所述预设间隔拓展得到多个第二类点,并获取所有第二类点的位置信息;
将所述中心点以及所有拓展得到的第一类点、第二类点作为所述单区域的节点,以得到所述单区域的所有节点的位置信息。
第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项方法的步骤或者实现上述任一项装置的功能。
附图说明
下面结合附图和实施方式对本申请进一步说明。
图1示出了本申请实施例提供的一种全覆盖路径规划方法的流程示意图。
图2示出了本申请实施例提供的一种第i次搜索规划的流程示意图。
图3示出了本申请实施例提供的另一种第i次搜索规划的流程示意图。
图4示出了本申请实施例提供的一种八邻域搜索示意图。
图5示出了本申请实施例提供的一种全覆盖参考点地图的示意图。
图6示出了本申请实施例提供的一种直线段的角度及长度直方图。
图7示出了本申请实施例提供的另一种全覆盖路径规划方法的流程示意图。
图8示出了本申请实施例提供的一种全覆盖路径的示意图。
图9示出了本申请实施例提供的一种全覆盖路径规划装置的结构框图。
图10示出了本申请实施例提供的一种程序产品的结构示意图。
具体实施方式
下面将结合本申请的说明书附图以及具体实施方式,对本申请中的技术方案进行描述,需要说明的是,在不相冲突的前提下,以下描述的各实施方式之间或各技术特征之间可以任意组合形成新的实施方式。
在本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,a和b和c,其中a、b和c可以是单个,也可以是多个。值得注意的是,“至少一项(个)”还可以解释成“一项(个)或多项(个)”。
还需说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施方式或设计方案不应被解释为比其他实施方式或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
(方法实施例)
参见图1,图1示出了本申请实施例提供的一种全覆盖路径规划方法的流程示意图。
本申请实施例提供了一种全覆盖路径规划方法,用于对目标车辆在内部无障碍物的单区域的自动驾驶过程进行全覆盖路径规划,所述方法包括:
S1:获取所述单区域的所有节点的位置信息和所述单区域的边界信息,并令i=1;
S2:基于所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,进行第i次搜索规划以得到第i搜索路径,并将所述第i搜索路径上的节点标记为已遍历;
S3:检测是否存在未遍历的节点;如果存在,则执行S4;如果不存在,则执行S5;
S4:进行第i次借道规划以得到第i借道路径,所述第i借道路径用于将所述第i搜索路径的终点连接至一个未遍历的节点,并将所述第i借道路径上的节点标记为已遍历,以及对i进行加一操作,执行S2;
S5:基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取所述目标车辆在所述单区域的全覆盖路径,结束路径规划过程。
由此,结合自动驾驶车辆的业务需求,提出一种基于单区域混合规划的全覆盖路径规划方法,通过融合及改进多类规划方案(搜索规划和借道规划),自动化生成符合多种目标车辆(例如可以包括大型自动驾驶清扫车辆)运动学约束且在单区域内实现高覆盖率的路径规划结果,解决单一弓型、回形等规划方案针对大型自动驾驶清扫车不符合运动学约束及漏扫率高等问题,并可依据业务需求实现不同的全覆盖规划效果。
首先,获取单区域内所有节点的位置信息以及单区域的边界信息,例如可以获取单区域的全覆盖地图,再利用全覆盖地图定位其中的所有节点,在之后的路径规划过程中,需要遍历所有节点才能结束。其次,基于单区域中未遍历的节点进行搜索规划,得到搜索路径,并将搜索路径上的节点标记为已遍历。在每次搜索规划结束后,检测所有节点是否都已遍历;如果存在未遍历的节点,则判定针对单区域的全覆盖路径规划未完成,由于本次搜索规划过程已经结束,因此需要基于当前搜索路径的终点进行借道规划,得到借道路径,并将借道路径上的节点标记为已遍历,之后进入下一次搜索规划过程;如果所有节点都已遍历,则判定针对单区域的全覆盖路径规划已完成,可以基于上面规划得到的所有搜索路径和所有借道路径获取全覆盖路径,结束目标车辆在该单区域的路径规划过程。
上述路径规划过程包含交替进行的搜索规划过程和借道规划过程,利用先后规划得到的第一搜索路径、第一借道路径、第二搜索路径、第二借道路径、第三搜索路径、第三借道路径……遍历单区域中的所有节点,每个搜索路径的终点可以作为对应借道路径的起点,本次借道路径的终点可以作为下一次搜索路径的起点,实现搜索路径和借道路径之间的连续性。全覆盖路径用于对目标车辆在单区域内部的自动驾驶过程进行自动导航。
其中,每次搜索规划过程可以使用相同的搜索模板或者不同的搜索模板,输出符合运动学约束的回形搜索路径、弓形搜索路径或者其他形状的搜索路径。当使用多个搜索模板时,相比于使用传统的单一搜索模板或随机搜索模板的搜索规划,一方面可以增加限制性条件(即搜索限制条件),从而满足运动学约束条件,另一方面多搜索模板的搜索方式成功率可以稳定在较高水平。
通过借道路径实现相邻两次搜索路径之间的连接,确保每个节点都能够被遍历到,因此可以降低大型清扫车辆的漏扫率。
本申请实施例对目标车辆不作限定,目标车辆例如可以是自动驾驶车辆,具体而言,可以是清扫车或者其他用途的车辆,例如消毒车、巡检车、消防车等有全覆盖需求的车辆。该目标车辆可以乘坐有人员,也可以是无人车。
本申请实施例对单区域内的节点数量不作限定,单区域内的节点数量例如可以是10个、100个、1000个、10000个、100000个等。
本申请实施例对位置信息不作限定,其例如可以采用二维坐标数据或者三维坐标数据。当采用三维坐标数据时,对应的坐标系例如可以是绝对坐标系或者相对坐标系。
绝对坐标系例如可以是笛卡尔坐标系(直角坐标系和斜角坐标系的统称)、极坐标系、圆柱坐标系、球坐标系,或者大地测量领域中的大地坐标系(用经度、纬度表示)、高斯平面直角坐标系,或者在地理信息系统中的栅格坐标系、八叉树坐标系等,以及计算机领域中的屏幕坐标系等。
相对坐标系例如可以采用直角坐标系或者其他坐标系。
本申请实施例对边界信息不作限定,边界信息例如可以是轮廓线数据、轮廓点数据等。
本申请实施例中,对节点的标记方式例如可以采用设置标记字段的方式,每个节点的标记字段对应的数值是未遍历或者已遍历。检测是否存在未遍历的节点时,可以通过检测标记字段的数值来检测每个节点是否被遍历,如果有节点的标记字段的数值为未遍历,则判定存在未遍历的节点。
或者,对节点的标记方式例如可以采用列表方式,将未遍历的节点放入未遍历列表,将已遍历的节点放入已遍历列表,未遍历列表中的节点如果被遍历则自动进入已遍历列表。检测是否存在未遍历的节点时,可以通过读取未遍历列表来获取未遍历的节点,当未遍历列表不为空时,则判定存在未遍历的节点。
本申请实施例中,每个搜索路径的起点即该搜索路径的第一节点,每个搜索路径的终点即该搜索路径的最后一个节点;每个借道路径的起点即该借道路径的第一节点,每个借道路径的终点即该借道路径的最后一个节点。
本申请实施例中,将第i-1次搜索规划作为第i次搜索规划的上一次搜索规划,将第i+1次搜索规划作为第i次搜索规划的下一次搜索规划。作为一个示例,第2次搜索规划是第3次搜索规划的上一次搜索规划,第4次搜索规划是第3次搜索规划的下一次搜索规划。
本申请实施例中,将第i-1次借道规划作为第i次借道规划的上一次借道规划,将第i+1次借道规划作为第i次借道规划的下一次借道规划。作为一个示例,第2次借道规划是第3次借道规划的上一次借道规划,第4次借道规划是第3次借道规划的下一次借道规划。
本申请实施例中,针对不同的目标车辆可以有不同的全覆盖路径,换句话说,不同的目标车辆对应不同的全覆盖路径。这是因为不同的车辆之间的车辆尺寸、最小转弯半径等车辆参数不同,路径规划过程中的运动学约束条件、搜索限制条件往往会发生变化,因此对应的全覆盖路径也会发生变化。
当车辆用于不同用途(例如清扫或者消毒)、或者需要满足的业务需求不同(例如要求消毒物质的分布浓度较高或者较低)时,同一目标车辆也可以对应多种全覆盖路径。
本申请实施例中,运动学约束条件指的是一个动态系统的运动必须符合的约束条件,即使得自动驾驶车辆可以正常行驶的条件。从而,运动学约束能够保证自动驾驶车辆安全正常行驶。
在一些可选的实施方式中,所述第i搜索路径满足以下条件:
当i=1时,所述第i搜索路径的起点是所述单区域的长边的任意一个端点;
当i>1时,所述第i搜索路径的起点是所述第i-1借道路径的终点。
由此,初始状态下,可以选择单区域的长边的端点作为第一搜索路径的起点,方便目标车辆从单区域外部到达该指定起点位置,并从该指定起点位置开始遍历单区域中的节点。其中,单区域的长边是指长度方向的侧边,即使是不规则形状的单区域也可以指定其所对应的长度方向。
在之后的路径规划过程中,则可以选择上一次借道路径的终点作为本次搜索路径的起点,使得本次搜索路径能够接续之前所规划的借道路径。
参见图2,图2示出了本申请实施例提供的一种第i次搜索规划的流程示意图。
在另一些可选的实施方式中,获取所述第i搜索路径的过程包括:
S21:基于所述目标车辆的位置信息和朝向信息、所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,从多个搜索模板中确定其中一个搜索模板作为第i次搜索规划所使用的搜索模板,并令j=1;
S22:针对所述第i搜索路径的第j节点,利用第i次搜索规划所使用的搜索模板进行搜索,检测是否能够搜索到满足预设的搜索限制条件的第j+1节点;如果能够搜索到,则执行S23;如果不能搜索到,则执行S24;
S23:基于所述第j+1节点,更新所述第i搜索路径,并对j进行加一操作,执行S22;
S24:检测是否存在第i次搜索规划未使用过的搜索模板;如果存在,则执行S25;如果不存在,则执行S26;
S25:从第i次搜索规划未使用过的搜索模板中确定其中一个搜索模板,用以对第i次搜索规划所使用的搜索模板进行更新,执行S22;
S26:结束第i次搜索规划并输出所述第i搜索路径。
由此,采用多个搜索模板进行搜索规划,并结合搜索限制条件不允许存在非法的横跨节点进行搜索,则可输出符合运动学约束的搜索路径。相比较基于传统的单一搜索模板或随机搜索模板的搜索规划,一方面保证运动学约束,另一方面成功率固定较高。
本申请实施例中,针对每个搜索模板,可以按照内螺旋回形方向进行搜索,也可以按照弓形、几形、S形、L形、N形、Z形等方向进行搜索。
本申请实施例中,朝向信息例如可以采用目标车辆的朝向与单区域的主方向之间的夹角来表示。
作为一个示例,步骤S21中可以优先选择少掉头的搜索规划方案,即基于目标车辆的位置和朝向选择一个搜索模板来做全覆盖,也可以优先选择距离短的搜索规划方案,可以根据实际应用中的需求来设定。
参见图3,图3示出了本申请实施例提供的另一种第i次搜索规划的流程示意图。
在一些可选的实施方式中,获取所述第i搜索路径的过程包括:
S31:令j=1;
S32:针对所述第i搜索路径的第j节点,利用预设的(单一)搜索模板进行搜索,检测是否能够搜索到满足预设的搜索限制条件的第j+1节点;如果能够搜索到,则执行S33;如果不能搜索到,则执行S34;
S33:基于所述第j+1节点,更新所述第i搜索路径,并对j进行加一操作,执行S32;
S34:结束第i次搜索规划并输出所述第i搜索路径。
由此,采用单一搜索模板进行搜索规划,并结合搜索限制条件不允许存在非法的横跨节点进行搜索,则可输出符合运动学约束的搜索路径,且搜索效率高。
在一些可选的实施方式中,所述单区域的主方向平行于所述单区域的行驶路面,以所述单区域的主方向为直线搜索方向,以平行于所述行驶路面且垂直于主方向的方向为横跨搜索方向;
所述搜索限制条件包括:
横跨搜索下一个节点是未遍历过的节点,或者,直线搜索下一个节点是未遍历过的节点。
由此,针对搜索规划过程,必要的限制条件是,横跨搜索或者直线搜索得到的下一个节点是未遍历过的节点。如果横跨搜索以及直线搜索得到的下一个节点都是已遍历的节点,则结束本次搜索规划过程。这样做的好处是,禁止非法跨越未遍历的节点,确保每个节点都能够被覆盖到,当应用于清扫车时能够降低漏扫率。
本申请实施例中,所述单区域的行驶路面是指目标车辆在单区域内部的行驶路面。该行驶路面可以平行于水平面,也可以倾斜于水平面。其中,水平面是指相对完全静止的水所形成的平面,亦指跟这个平面平行的面。
在一些可选的实施方式中,所述搜索限制条件还包括以下至少一种:
横跨搜索下一个节点与当前节点之间的距离小于预设距离阈值;
直线搜索下一个节点与当前节点之间的距离小于所述预设距离阈值;
横跨搜索下一条线段与当前线段之间的角度小于预设角度阈值;其中,下一条线段是指从当前节点指向下一个节点的线段,当前线段是指从上一个节点指向当前节点的线段;
直线搜索下一条线段与当前线段之间的角度小于所述预设角度阈值;
横跨搜索下一条线段的节点数量与当前线段的节点数量之间的差值小于预设数量阈值;
搜索得到的下一条线段、当前线段与上一条线段之间满足所述目标车辆对应的预设曲率约束条件。
由此,设置距离、角度、数量变化、曲率约束等搜索限制条件,使得搜索得到的下一个节点满足距离、角度、数量变化、曲率约束对应的要求,针对不同的目标车辆可以设置不同的预设距离阈值、预设角度阈值、预设数量阈值、预设曲率约束条件,所规划得到的搜索路径更适用于特定的目标车辆的自动驾驶过程,满足实际应用中的性能需求和成本需求。
本申请实施例对预设距离阈值不作限定,其例如可以是0.3m、0.5m、1m、1.5m、2m、3m、5m、8m等。
本申请实施例对预设角度阈值不作限定,其例如可以是50度、80度、100度、110度、130度、150度等。
本申请实施例中,预设曲率约束条件例如可以是:基于目标车辆的最小转弯半径,搜索得到的下一条线段、当前线段与上一条线段组成的路径能够满足目标车辆的通过需求。
在一个具体应用中,多个搜索模板的数量是8个,即第一搜索模板至第八搜索模板。在所有节点中选择一个长边端点作为搜索起点,按照8个搜索模板的预设方向进行搜索,具体搜索模板方式如下,其中@为起点:
A、第一搜索模板对应的搜索方式1:
左上->下->右下->上四个方向循环搜索环绕(逆时针)
B、第二搜索模板对应的搜索方式2:
左下->上->右上->下四个方向循环搜索环绕(顺时针)
C、第三搜索模板对应的搜索方式3:
右上->下->左下->上四个方向循环搜索环绕(顺时针)
D、第四搜索模板对应的搜索方式4:
右下->上->左上->下四个方向循环搜索环绕(逆时针)
E、第五搜索模板对应的搜索方式5:
上->右上->下->左下四个方向循环搜索环绕(顺时针)
F、第六搜索模板对应的搜索方式6:
下->右下->上->左上四个方向循环搜索环绕(逆时针)
G、第七搜索模板对应的搜索方式7:
下->左下->上->右上四个方向循环搜索环绕(顺时针)
H、第八搜索模板对应的搜索方式8:
上->左上->下->右下四个方向循环搜索环绕(逆时针)
在获取到每个搜索路径的起点及构建上述8种搜索方式后,基于全覆盖参考线段进行搜索,其中左上为沿着全覆盖参考线段顶部(索引值为0)左向(从小到大)跨线边缘搜索,左下为为沿着全覆盖参考线段底部(索引值为线段size-1)左向(从小到大)跨线边缘搜索,上下搜索为沿着当前全覆盖参考线段上下搜索。
其中,全覆盖参考线段是指基于全覆盖节点(即单区域的所有节点)生成的不存在重合节点的路径线段。作为一个示例,这些全覆盖参考线段可以平行于单区域的主方向。
搜索限制条件例如可以包括:
1、横跨搜索及直线搜索下一个节点与当前节点的距离必须小于3m(可依据间隔而定,防止跨线搜索);
2、横跨搜索及直线搜索下一个节点与当前节点的角度差小于110°(可依据车辆最大转角而定,防止产生小转角,输出不符合运动学约束的路径段);
3、横跨搜索的下一条线段的点数与当前线段点数的差值小于5(保证不存在较大的长短线段横跨搜索,限制条件皆为参数可调整);
4、横跨搜索或直线搜索下一个节点为未过的遍历节点。
按照上述8种搜索模板进行搜索,并结合搜索限制条件不允许存在非法的横跨覆盖点进行搜索,可输出符合运动学约束的回形覆盖路径。基于此带运动学约束及多搜索模板的回形搜索方案,在边界凹凸不平以及内部狭窄区域时,可能会因为运动学约束,而无法进一步搜索出符合运动学约束的路径问题,此时将引入借道规划方案进行结合,输出符合运动学约束的全覆盖路径。
在上述搜索规划失败(即搜索不到满足搜索限制条件的节点)时,会检索剩余未遍历的覆盖点,调用多种借道规划方案,输出多条可符合运动学约束的借道路径以连接搜索路径的终点,连接过后再进行上述的搜索规划,失败再进行借道规划,以此循环直到所有的节点都被遍历完成,则完成所有节点的全覆盖。
在一些可选的实施方式中,获取所述第i借道路径的过程包括:
当所述单区域的未遍历的节点的数量是1个时,获取该未遍历的节点对应的借道路径作为所述第i借道路径;
当所述单区域的未遍历的节点的数量大于1个时,从所述单区域的未遍历的节点中确定多个候选节点;获取每个候选节点对应的借道路径;从所有候选节点对应的借道路径中确定其中一个借道路径作为所述第i借道路径。
在另一些可选的实施方式中,获取所述第i借道路径的过程包括:
从所述单区域的未遍历的节点中确定至少一个候选节点;
获取每个候选节点对应的借道路径;
从所有候选节点对应的借道路径中确定其中一个借道路径作为所述第i借道路径。
由此,将借道规划过程分为三个阶段,首先确定至少一个候选节点,其次获取每个候选节点对应的借道路径,最后从至少一个借道路径中选择其中一个作为本次借道路径。这样做的好处是,针对每个候选节点分别进行借道路径规划,从借道路径的维度判断各候选节点的优劣,从而最终从至少一个候选节点中确定一个候选节点作为本次借道路径的终点,并将其对应的借道路径作为本次借道规划过程的结果,方便根据实际应用中的需求选择出合适的借道路径。
在一些可选的实施方式中,所述从所述单区域的未遍历的节点中确定至少一个候选节点,包括:
基于所述单区域的未遍历的节点,获取一个或多个不存在重合节点的未遍历的直线段;
将所有未遍历的直线段的两个端点作为所述至少一个候选节点。
由此,候选节点不仅是从未遍历的节点之中选择,并且分别是各个未遍历的直线段的端点,相比于将所有未遍历的节点均作为候选节点来说,候选节点数量的减少能够大大减少运算量,提高了借道规划效率,从整体上提高了全覆盖路径规划效率。另外,这种候选节点的选择方式符合借道路径规划的技术规律,即以全覆盖所有节点为目标的前提下,不存在一个直线段的中间节点比端点更适合借道的情况。
本申请实施例中,一个或多个不存在重合节点的未遍历的直线段是指这些未遍历的直线段之间不存在重合节点。
作为一个示例,可以沿单区域的主方向获取这些未遍历的直线段。
在一些可选的实施方式中,所述获取每个候选节点对应的借道路径,包括:
对所述第i搜索路径的终点进行八邻域搜索,以将所述第i搜索路径的终点分别连接至每个候选节点,从而得到每个候选节点对应的借道路径。
由此,通过八邻域搜索方式,可以实现借道路径的不断延伸,从而到达每个候选节点。
参见图4,图4示出了本申请实施例提供的一种八邻域搜索示意图。基于当前节点,搜寻(平行于主方向的)左右两条全覆盖参考线段中距离最近的节点作为左右节点,并基于左右节点及当前节点所在全覆盖参考线段上下index±1(一种代码示例,在编程语言中,index是索引的意思)即可获得左下、左上、右下、右上、上、下、左、右8个方向的节点,并结合当前目标车辆的朝向,过滤不符合运动学约束的节点。
本申请实施例中,可以基于八邻域搜索,采用不限于A*、Hybrid A*、样条曲线等算法结合全覆盖参考线段进行借道规划。样条曲线是经过一系列给定点的光滑曲线。样条曲线不仅通过各有序型值点,并且在各型值点处的一阶和二阶导数连续,也即该曲线具有连续的、曲率变化均匀的特点。样条曲线例如是Reed Sheep曲线、Dubins曲线、非均匀有理B样条曲线(NURBS)等。
作为一个示例,A*算法对应的搜索最小代价函数如下:
FCost=WDis·Dis+Wtheta·Δθ+Fh;
其中,各参数的含义如下:
Dis:当前节点到候选节点距离,距离越大,分值越高,求最优距离;
Δθ:当前节点朝向与下一个节点朝向差,差值越大,分值越高,求少转弯;
Fh:启发性函数,为对角线距离,加快搜索效率;
WDis、Wtheta:权重值。
其中,当前节点朝向是指上一个节点指向当前节点的方向,下一个节点朝向是指当前节点指向下一个节点的方向。
A*算法当寻路到达候选节点时判断搜索到候选节点。
或者,可以应用Hybrid A*算法经由Reed Sheep曲线连接候选节点。Reeds Shepp曲线是Reeds和Shepp二人在1990年的论文《Optimal paths for a car that goes bothforwards and backwards》中提出的,相比于Dubins曲线只允许车辆向前运动,ReedsShepp曲线既允许车辆向前运动,也允许车辆向后运动。Dubins曲线是在满足曲率约束和规定的始端和末端的切线方向的条件下,连接两个二维平面(即X-Y平面)的最短路径,并假设车辆行驶的道路只能向前行进。
在一些可选的实施方式中,所述从所有候选节点对应的借道路径中确定其中一个借道路径作为所述第i借道路径,包括:
利用最小代价函数的预设计算公式,计算每个候选节点对应的借道路径的最小代价;
从所有候选节点对应的借道路径中确定最小代价的最小值对应的借道路径作为所述第i借道路径。
由此,计算每个候选节点对应的借道路径的最小代价,意味着每个借道路径所对应的最少耗费,从这些最小耗费中取最小值,将该最小值对应的借道路径作为本次借道路径,计算方式简单,计算时间短,计算效率高,所耗费的计算资源少。
作为一个示例,最小代价函数的预设计算公式例如是:
其中,各参数的含义如下:
Fn:借道路径总分值,分值越小,路径越优;
SDis:路径总长度,长度越短,路径越优;
SΔθ:总角度差,遍历路径所有节点的角度差,角度变化越小,路径越优;
Penaltypath_error:路径规划失败惩罚值;
Penaltytheta_error:路径规划失败,节点直连,角度偏差过大惩罚值;
Penaltydis_error:路径规划失败,节点直连,距离偏差过大惩罚值;
WS、WΔθ:权重值。
在一些可选的实施方式中,在完成上述的借道规划过程后,重新进行上述的基于多搜索模板的回型搜索规划过程,回型搜索失败后又进行借道规划,以此往复,最终可获得单区域内部的全覆盖规划路径,作为目标车辆在单区域的全覆盖路径。
在一些可选的实施方式中,所述方法还包括:
基于所述单区域的边界信息,进行溜边规划,以得到溜边规划路径;
所述基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取所述目标车辆在所述单区域的全覆盖路径,包括:
基于搜索规划得到的所有搜索路径、借道规划得到的所有借道路径以及溜边规划得到的溜边规划路径,获取所述目标车辆在所述单区域的全覆盖路径。
由此,采用搜索规划、借道规划和溜边规划的混合规划方式对目标车辆在单区域的自动驾驶过程进行全覆盖路径规划,兼具规划效率高、漏扫率低、符合运动学约束的优点。当应用于(自动驾驶)清扫车时,可以将溜边规划路径安排在最后,使得清扫车在遍历了所有节点后再进行溜边行驶,这样做的好处是,溜边规划路能够让清扫车到达每个边线和每个角落,如果之前的清扫过程中部分待清扫的物体被清扫车清扫至边线和角落,则可以在溜边行驶的过程中进行清理,避免残留物体导致清扫不彻底的情况。由于清扫车可能应用于室内或者室外,待清扫的物体可能是灰尘、泥土、树叶等,质量较轻、受力时容易改变位置,因此这种结合了溜边规划的混合规划过程更加符合实际应用中的清扫需求。
本申请实施例对所采用的溜边规划方式不作限定,其例如可以采用基于语义代价地图的沿边路径规划方法,或者采用其他基于区域边界的路径规划方法。
在一些可选的实施方式中,获取所述单区域的过程包括:
获取预设区域的矢量地图;
对所述预设区域的矢量地图进行区域划分,以得到内部无障碍物的多个单区域地图;
将每个单区域地图对应的区域作为一个所述单区域。
由此,内部无障碍物的多个单区域地图是指每个单区域地图的内部均无障碍物。矢量地图是一组数据,这些数据是对空间图像对象进行矢量化处理后获得的,并由步行的GIS专家在地面上进行了验证。
矢量地图将使用户可以处理每个对象:街道、房屋、河流、通道等,补充对象的属性并形成自己的图层。这样做的好处是,将预设区域的矢量地图进行划分从而得到各单区域地图,从而得到预设区域内的每个单区域,区域划分方式例如可以采用智能划分方式或者人工划分方式。智能划分方式可以利用区域划分模型,该区域划分模型例如可以是预先训练得到的。
在一些可选的实施方式中,获取所述单区域的所有节点的位置信息的过程包括:
基于所述单区域的边界信息,确定所述单区域的主方向;
确定所述单区域的中心点,以得到所述中心点的位置信息;
基于所述单区域的主方向、所述中心点的位置信息以及预设间隔,拓展得到所述单区域的所有节点,以获取所述单区域的所有节点的位置信息。
由此,将全覆盖节点定位过程分为三个阶段,首先确定单区域的主方向,其次确定单区域的中心点,最后基于主方向和中心点以及预设间隔,拓展得到所有节点,这种全覆盖节点定位过程采用各自独立的方式获取主方向和中心点,避免两个耦合过程之间引入的叠加误差。预设间隔例如可以利用清扫车的清扫宽度计算得到。
本申请实施例对单区域的中心点的计算方式不作限定,其例如可以通过区域点均值方式计算单区域的中心点;或者,可以通过单区域的图像的矩来计算单区域的中心点,应用图像的一阶矩和零阶矩互补性计算出单区域的重心,作为单区域的中心点。
图像的矩(image moments)主要表征了图像区域的几何特征,又称为几何矩,由于其具有旋转、平移、尺度等特性的不变特征,所以又称其为不变矩。
参见图5,图5示出了本申请实施例提供的一种全覆盖参考点地图的示意图。openspace是指开放空间,vehicle是指目标车辆。
在一些可选的实施方式中,所述方法还包括:
基于所述单区域的所有节点的位置信息,生成所述单区域的全覆盖参考点地图。
该全覆盖参考点地图包括单区域的所有全覆盖参考点(即节点)和单区域的边界。基于上述全覆盖参考点地图,可清晰的获取到单区域内部,所有覆盖参考点及边界的信息,通过溜边规划以及单区域内部基于混合规划的全覆盖路径规划,可实现单区域高覆盖率的全覆盖路径的输出,此处单区域内部基于混合规划的全覆盖路径规划是指基于单区域内部的全覆盖参考点,使用基于混合规划的全覆盖路径规划输出全覆盖路径。
在一些可选的实施方式中,所述方法还包括:
基于所述单区域的全覆盖参考点地图,生成所述单区域的多个全覆盖参考线段。
在一些可选的实施方式中,所述基于所述单区域的边界信息,确定所述单区域的主方向,包括:
以所述单区域的长边方向作为所述单区域的主方向。
在另一些可选的实施方式中,所述单区域的边界信息包括所述单区域的外围轮廓曲线;
所述基于所述单区域的边界信息,确定所述单区域的主方向,包括:
对所述单区域的外围轮廓曲线进行直线拟合,以得到多条直线段,每条直线段都是有向线段;
基于多条直线段,确定所述单区域的主方向。
由此,对单区域的外围轮廓曲线进行直线拟合,以得到多条有向线段形式的直线段,利用这些直线段来确定单区域的主方向。采用线性回归的思想,把通常是不规则曲线的外围轮廓曲线转化为一段段有向直线段来参与后续的主方向计算过程,计算方式简单,在数据量大的情况下依然运行速度很快,容易理解,结果具有很好的可解释性,有利于决策分析。
本申请实施例中,单区域的外围轮廓曲线例如可以是线性外围轮廓曲线或者非线性外围轮廓曲线。针对单区域的非线性外围轮廓曲线,通过霍夫变换、最小二乘法等方法进行直线拟合,可以得到多条直线段。
在一些可选的实施方式中,所述基于多条直线段,确定所述单区域的主方向,包括:
获取每条直线段的长度和角度,所述直线段的角度用于指示所述直线段与预设方向之间的夹角;
按照角度将每条直线段分类至一个角度区间;
计算每个角度区间中的所有直线段的长度之和;
将长度之和最大的角度区间作为目标角度区间,对所述目标角度区间中的所有直线段对应的向量进行加权平均,以确定所述单区域的主方向。
由此,一方面,由于目标角度区间中的直线段的长度之和最大,意味着目标车辆在该目标角度区间的行驶距离最长,在目标车辆匀速行驶的前提下在该目标角度区间的行驶时长也最长,基于目标角度区间的直线段来确定主方向,所得到的主方向准确且合理。另一方面,相对于将所有直线段对应的向量直接进行加权平均来说,利用角度区间筛选出长度之和最大的目标角度区间,仅仅对目标角度区间中的直线段对应的向量进行加权平均,由于参与加权平均的向量数量大大减少,因此能够大大减少加权平均的计算量,计算效率高。
本申请实施例对角度区间不作限定,预先将360度划分为N个角度区间,N例如可以是3、4、6、8、9、10、12、18、36、72等。
参见图6,图6示出了本申请实施例提供的一种直线段的角度及长度直方图。作为一个示例,以构建直方图的形式将所有直线段按照角度划分成36个角度区间,每个角度空间对应的角度范围为10度,并基于长度大小,为每个角度区间的直线段进行加权处理(权重与直线段的长度成正比)。
在另一些可选的实施方式中,所述基于多条直线段,确定所述单区域的主方向,包括:
获取每条直线段的长度和角度,所述直线段的角度用于指示所述直线段与预设方向之间的夹角;
按照角度将每条直线段分类至一个角度区间;
基于每条直线段的长度,获取每条直线段的长度权重;
计算每个角度区间中的所有直线段的长度权重之和;
将长度权重之和最大的角度区间作为目标角度区间,对所述目标角度区间中的所有直线段对应的向量进行加权平均,以确定所述单区域的主方向。
在一些可选的实施方式中,所述基于所述单区域的主方向、所述中心点的位置信息以及预设间隔,拓展得到所述单区域的所有节点,以获取所述单区域的所有节点的位置信息,包括:
基于所述中心点的位置信息,构建过所述中心点且垂直于所述主方向的垂直线,所述中心点将所述垂直线划分为两条射线;
利用所述单区域的边界信息进行边界约束,以所述中心点为起点,分别沿每条射线的延伸方向以所述预设间隔拓展得到多个第一类点,并获取所有第一类点的位置信息;
利用所述单区域的边界信息进行边界约束,分别以所述中心点和每个第一类点为起点,分别沿所述主方向以及所述主方向的反方向以所述预设间隔拓展得到多个第二类点,并获取所有第二类点的位置信息;
将所述中心点以及所有拓展得到的第一类点、第二类点作为所述单区域的节点,以得到所述单区域的所有节点的位置信息。
由此,采用主方向及其垂直线的方向分别进行拓展以得到所有节点,拓展方式简单,拓展效率高,拓展得到的所有节点用于全覆盖路径规划过程,能够准确指导目标车辆对单区域的所有节点实现全覆盖。在第一类点的拓展过程中,以单区域的边界为边界,以中心点为起点,以两条射线的延伸方向为拓展方向,以预设间隔为间隔;在第二类点的拓展过程中,以单区域的边界为边界,以中心点以及第一类点为起点,以主方向及其反方向为拓展方向,以预设间隔为间隔。
本申请实施例中,预设间隔例如可以基于清扫车的清扫宽度来设定,标准为两条全覆盖参考线段之间的间隔为清扫车的清扫宽度,因此遍历完所有全覆盖参考线段也就完成了单区域内部的全覆盖清扫。
在另一些可选的实施方式中,所述基于所述单区域的主方向、所述中心点的位置信息以及预设间隔,拓展得到所述单区域的所有节点,以获取所述单区域的所有节点的位置信息,包括:
基于所述中心点的位置信息,构建过所述中心点且垂直于所述主方向的垂直线,并且构建过所述中心点且平行于所述主方向的平行线;
采用平移的方式对所述垂直线进行拓展,以构建平行于所述垂直线的垂直线组(该垂直线组包含所述垂直线),且使所述垂直线组中任意两个相邻垂直线之间的距离为预设间隔;
采用平移的方式对所述平行线进行拓展,以构建平行于所述平行线的平行线组(该平行线组包含所述平行线),且使所述平行线组中任意两个相邻平行线之间的距离为预设间隔;
将所有垂直线和所有平行线的交点作为所述单区域的节点,以得到所述单区域的所有节点的位置信息。
参见图7和图8,图7示出了本申请实施例提供的另一种全覆盖路径规划方法的流程示意图,图8示出了本申请实施例提供的一种全覆盖路径的示意图。
在一个具体应用场景中,本申请实施例提供了一种全覆盖路径规划方法,所述方法包括:
S101:获取内部无障碍物的单区域;
S102:获取所述单区域的所有节点的位置信息;
S103:对目标车辆在所述单区域的自动驾驶过程进行全覆盖路径规划,以得到所述目标车辆在所述单区域的全覆盖路径。
其中,获取所述单区域(即步骤S101)的过程包括:
获取预设区域的矢量地图;
对所述预设区域的矢量地图进行区域划分,以得到内部无障碍物的多个单区域地图;
将每个单区域地图对应的区域作为一个所述单区域。
其中,获取所述单区域的所有节点的位置信息(即步骤S102)的过程包括:
对所述单区域的外围轮廓曲线进行直线拟合,以得到多条直线段,每条直线段都是有向线段;
获取每条直线段的长度和角度,所述直线段的角度用于指示所述直线段与预设方向之间的夹角;
按照角度将每条直线段分类至一个角度区间;
计算每个角度区间中的所有直线段的长度之和;
将长度之和最大的角度区间作为目标角度区间,对所述目标角度区间中的所有直线段对应的向量进行加权平均,以确定所述单区域的主方向;
确定所述单区域的中心点,以得到所述中心点的位置信息;
基于所述中心点的位置信息,构建过所述中心点且垂直于所述主方向的垂直线,所述中心点将所述垂直线划分为两条射线;
利用所述单区域的边界信息进行边界约束,以所述中心点为起点,分别沿每条射线的延伸方向以所述预设间隔拓展得到多个第一类点,并获取所有第一类点的位置信息;
利用所述单区域的边界信息进行边界约束,分别以所述中心点和每个第一类点为起点,分别沿所述主方向以及所述主方向的反方向以所述预设间隔拓展得到多个第二类点,并获取所有第二类点的位置信息;
将所述中心点以及所有拓展得到的第一类点、第二类点作为所述单区域的节点,以得到所述单区域的所有节点的位置信息;
基于所述单区域的所有节点的位置信息,生成所述单区域的全覆盖参考点地图。
其中,获取所述目标车辆在所述单区域的全覆盖路径(即步骤S103)的过程包括:
S1:获取所述单区域的所有节点的位置信息和所述单区域的边界信息,并令i=1;
S2:基于所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,进行第i次搜索规划以得到第i搜索路径,并将所述第i搜索路径上的节点标记为已遍历;
S3:检测是否存在未遍历的节点;如果存在,则执行S4;如果不存在,则执行S5;
S4:进行第i次借道规划以得到第i借道路径,所述第i借道路径用于将所述第i搜索路径的终点连接至一个未遍历的节点,并将所述第i借道路径上的节点标记为已遍历,以及对i进行加一操作,执行S2;
S5:基于所述单区域的边界信息,进行溜边规划,以得到溜边规划路径;基于搜索规划得到的所有搜索路径、借道规划得到的所有借道路径以及溜边规划得到的溜边规划路径,获取所述目标车辆在所述单区域的全覆盖路径,结束路径规划过程。
其中,所述第i搜索路径满足以下条件:
当i=1时,所述第i搜索路径的起点是所述单区域的长边的任意一个端点;
当i>1时,所述第i搜索路径的起点是所述第i-1借道路径的终点。
其中,获取所述第i搜索路径的过程包括:
S21:基于所述目标车辆的位置信息和朝向信息、所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,从多个搜索模板中确定其中一个搜索模板作为第i次搜索规划所使用的搜索模板,并令j=1;
S22:针对所述第i搜索路径的第j节点,利用第i次搜索规划所使用的搜索模板进行搜索,检测是否能够搜索到满足预设的搜索限制条件的第j+1节点;如果能够搜索到,则执行S23;如果不能搜索到,则执行S24;
S23:基于所述第j+1节点,更新所述第i搜索路径,并对j进行加一操作,执行S22;
S24:检测是否存在第i次搜索规划未使用过的搜索模板;如果存在,则执行S25;如果不存在,则执行S26;
S25:从第i次搜索规划未使用过的搜索模板中确定其中一个搜索模板,用以对第i次搜索规划所使用的搜索模板进行更新,执行S22;
S26:结束第i次搜索规划并输出所述第i搜索路径。
其中,所述单区域的主方向平行于所述单区域的行驶路面,以所述单区域的主方向为直线搜索方向,以平行于所述行驶路面且垂直于主方向的方向为横跨搜索方向;所述搜索限制条件包括:
横跨搜索下一个节点是未遍历过的节点,或者,直线搜索下一个节点是未遍历过的节点;
横跨搜索下一个节点与当前节点之间的距离小于预设距离阈值;
直线搜索下一个节点与当前节点之间的距离小于所述预设距离阈值;
横跨搜索下一条线段与当前线段之间的角度小于预设角度阈值;
直线搜索下一条线段与当前线段之间的角度小于所述预设角度阈值;
横跨搜索下一条线段的节点数量与当前线段的节点数量之间的差值小于预设数量阈值;
搜索得到的下一条线段、当前线段与上一条线段之间满足所述目标车辆对应的预设曲率约束条件。
其中,获取所述第i借道路径的过程包括:
基于所述单区域的未遍历的节点,获取一个或多个不存在重合节点的未遍历的直线段;
将所有未遍历的直线段的两个端点作为所述至少一个候选节点;
对所述第i搜索路径的终点进行八邻域搜索,以将所述第i搜索路径的终点分别连接至每个候选节点,从而得到每个候选节点对应的借道路径;
利用最小代价函数的预设计算公式,计算每个候选节点对应的借道路径的最小代价;
从所有候选节点对应的借道路径中确定最小代价的最小值对应的借道路径作为所述第i借道路径。
采用上述全覆盖路径规划方法,一方面,可以输出符合各种大小的自动驾驶清扫车(车辆)运动学约束的全覆盖规划路径结果(即全覆盖路径);另一方面,该全覆盖路径的覆盖率高、转弯更少、效率更高。该全覆盖路径规划方法是一种基于搜索规划+借道路径规划+溜边规划的混合规划方法,结合了以下几个方法:
1、全覆盖参考点地图生成方法;
2、基于全覆盖参考点与多搜索模板的内螺旋回型方向搜索规划方法;
3、基于全覆盖参考点的借道规划方法;
4、溜边规划方法;
5、混合路径规划最优筛选方法。
(装置实施例)
本申请实施例提供了一种全覆盖路径规划装置,用于对目标车辆在内部无障碍物的单区域的自动驾驶过程进行全覆盖路径规划,所述装置包括处理器,所述处理器被配置成实现以下步骤:
S1:获取所述单区域的所有节点的位置信息和所述单区域的边界信息,并令i=1;
S2:基于所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,进行第i次搜索规划以得到第i搜索路径,并将所述第i搜索路径上的节点标记为已遍历;
S3:检测是否存在未遍历的节点;如果存在,则执行S4;如果不存在,则执行S5;
S4:进行第i次借道规划以得到第i借道路径,所述第i借道路径用于将所述第i搜索路径的终点连接至一个未遍历的节点,并将所述第i借道路径上的节点标记为已遍历,以及对i进行加一操作,执行S2;
S5:基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取所述目标车辆在所述单区域的全覆盖路径,结束路径规划过程。
在一些可选的实施方式中,所述第i搜索路径满足以下条件:
当i=1时,所述第i搜索路径的起点是所述单区域的长边的任意一个端点;
当i>1时,所述第i搜索路径的起点是所述第i-1借道路径的终点。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取所述第i搜索路径:
S21:基于所述目标车辆的位置信息和朝向信息、所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,从多个搜索模板中确定其中一个搜索模板作为第i次搜索规划所使用的搜索模板,并令j=1;
S22:针对所述第i搜索路径的第j节点,利用第i次搜索规划所使用的搜索模板进行搜索,检测是否能够搜索到满足预设的搜索限制条件的第j+1节点;如果能够搜索到,则执行S23;如果不能搜索到,则执行S24;
S23:基于所述第j+1节点,更新所述第i搜索路径,并对j进行加一操作,执行S22;
S24:检测是否存在第i次搜索规划未使用过的搜索模板;如果存在,则执行S25;如果不存在,则执行S26;
S25:从第i次搜索规划未使用过的搜索模板中确定其中一个搜索模板,用以对第i次搜索规划所使用的搜索模板进行更新,执行S22;
S26:结束第i次搜索规划并输出所述第i搜索路径。
在一些可选的实施方式中,所述单区域的主方向平行于所述单区域的行驶路面,以所述单区域的主方向为直线搜索方向,以平行于所述行驶路面且垂直于主方向的方向为横跨搜索方向;
所述搜索限制条件包括:
横跨搜索下一个节点是未遍历过的节点,或者,直线搜索下一个节点是未遍历过的节点。
在一些可选的实施方式中,所述搜索限制条件还包括以下至少一种:
横跨搜索下一个节点与当前节点之间的距离小于预设距离阈值;
直线搜索下一个节点与当前节点之间的距离小于所述预设距离阈值;
横跨搜索下一条线段与当前线段之间的角度小于预设角度阈值;
直线搜索下一条线段与当前线段之间的角度小于所述预设角度阈值;
横跨搜索下一条线段的节点数量与当前线段的节点数量之间的差值小于预设数量阈值;
搜索得到的下一条线段、当前线段与上一条线段之间满足所述目标车辆对应的预设曲率约束条件。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取所述第i借道路径:
从所述单区域的未遍历的节点中确定至少一个候选节点;
获取每个候选节点对应的借道路径;
从所有候选节点对应的借道路径中确定其中一个借道路径作为所述第i借道路径。
在一些可选的实施方式中,所述处理器被配置成采用以下方式确定所述至少一个候选节点:
基于所述单区域的未遍历的节点,获取一个或多个不存在重合节点的未遍历的直线段;
将所有未遍历的直线段的两个端点作为所述至少一个候选节点。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取每个候选节点对应的借道路径:
对所述第i搜索路径的终点进行八邻域搜索,以将所述第i搜索路径的终点分别连接至每个候选节点,从而得到每个候选节点对应的借道路径。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取所述第i借道路径:
利用最小代价函数的预设计算公式,计算每个候选节点对应的借道路径的最小代价;
从所有候选节点对应的借道路径中确定最小代价的最小值对应的借道路径作为所述第i借道路径。
在一些可选的实施方式中,所述处理器还被配置成实现以下步骤:
基于所述单区域的边界信息,进行溜边规划,以得到溜边规划路径;
所述基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取所述目标车辆在所述单区域的全覆盖路径,包括:
基于搜索规划得到的所有搜索路径、借道规划得到的所有借道路径以及溜边规划得到的溜边规划路径,获取所述目标车辆在所述单区域的全覆盖路径。
在一些可选的实施方式中,所述处理器还被配置成实现以下步骤:
获取预设区域的矢量地图;
对所述预设区域的矢量地图进行区域划分,以得到内部无障碍物的多个单区域地图;
将每个单区域地图对应的区域作为一个所述单区域。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取所述单区域的所有节点的位置信息:
基于所述单区域的边界信息,确定所述单区域的主方向;
确定所述单区域的中心点,以得到所述中心点的位置信息;
基于所述单区域的主方向、所述中心点的位置信息以及预设间隔,拓展得到所述单区域的所有节点,以获取所述单区域的所有节点的位置信息。
在一些可选的实施方式中,所述单区域的边界信息包括所述单区域的外围轮廓曲线;
所述处理器被配置成采用以下方式确定所述单区域的主方向:
对所述单区域的外围轮廓曲线进行直线拟合,以得到多条直线段,每条直线段都是有向线段;
基于多条直线段,确定所述单区域的主方向。
在一些可选的实施方式中,所述处理器被配置成采用以下方式确定所述单区域的主方向:
获取每条直线段的长度和角度,所述直线段的角度用于指示所述直线段与预设方向之间的夹角;
按照角度将每条直线段分类至一个角度区间;
计算每个角度区间中的所有直线段的长度之和;
将长度之和最大的角度区间作为目标角度区间,对所述目标角度区间中的所有直线段对应的向量进行加权平均,以确定所述单区域的主方向。
在一些可选的实施方式中,所述处理器被配置成采用以下方式获取所述单区域的所有节点的位置信息:
基于所述中心点的位置信息,构建过所述中心点且垂直于所述主方向的垂直线,所述中心点将所述垂直线划分为两条射线;
利用所述单区域的边界信息进行边界约束,以所述中心点为起点,分别沿每条射线的延伸方向以所述预设间隔拓展得到多个第一类点,并获取所有第一类点的位置信息;
利用所述单区域的边界信息进行边界约束,分别以所述中心点和每个第一类点为起点,分别沿所述主方向以及所述主方向的反方向以所述预设间隔拓展得到多个第二类点,并获取所有第二类点的位置信息;
将所述中心点以及所有拓展得到的第一类点、第二类点作为所述单区域的节点,以得到所述单区域的所有节点的位置信息。
参见图9,图9示出了本申请实施例提供的一种全覆盖路径规划装置的结构框图。
全覆盖路径规划装置例如可以包括至少一个存储器210、至少一个处理器220以及连接不同平台系统的总线230。
存储器210可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)211和/或高速缓存存储器212,还可以进一步包括只读存储器(ROM)213。
其中,存储器210还存储有计算机程序,计算机程序可以被处理器220执行,使得处理器220实现上述任一项方法的功能,其具体实施例与上述方法实施例中记载的实施例、所达到的技术效果一致,部分内容不再赘述。
存储器210还可以包括具有至少一个程序模块215的实用工具214,这样的程序模块215包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例的每一个或某种组合中可能包括网络环境的实现。
相应的,处理器220可以执行上述计算机程序,以及可以执行实用工具214。
处理器220可以采用一个或多个应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
总线230可以为表示几类总线结构的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构的任意总线结构的局域总线。
全覆盖路径规划装置也可以与一个或多个外部设备240例如键盘、指向设备、蓝牙设备等通信,还可与一个或者多个能够与该全覆盖路径规划装置交互的设备通信,和/或与使得该全覆盖路径规划装置能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入输出接口250进行。并且,全覆盖路径规划装置还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与全覆盖路径规划装置的其它模块通信。应当明白,尽管图中未示出,可以结合全覆盖路径规划装置使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
(介质实施例)
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项方法的步骤或者实现上述任一项装置的功能,其具体实施例与上述方法实施例中记载的实施例、所达到的技术效果一致,部分内容不再赘述。
参见图10,图10示出了本申请实施例提供的一种程序产品的结构示意图。
所述程序产品用于实现上述任一项方法。程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本申请实施例中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言诸如Java、C++等,还包括常规的过程式程序设计语言诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本申请从使用目的上,效能上,进步及新颖性等观点进行阐述,已符合专利法所强调的功能增进及使用要件,本申请以上的说明书及说明书附图,仅为本申请的较佳实施例而已,并非以此局限本申请,因此,凡一切与本申请构造,装置,特征等近似、雷同的,即凡依本申请专利申请范围所作的等同替换或修饰等,皆应属本申请的专利申请保护的范围之内。
Claims (17)
1.一种全覆盖路径规划方法,其特征在于,用于对目标车辆在内部无障碍物的单区域的自动驾驶过程进行全覆盖路径规划,所述方法包括:
S1:获取所述单区域的所有节点的位置信息和所述单区域的边界信息,并令i=1;
S2:基于所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,进行第i次搜索规划以得到第i搜索路径,并将所述第i搜索路径上的节点标记为已遍历;
S3:检测是否存在未遍历的节点;如果存在,则执行S4;如果不存在,则执行S5;
S4:进行第i次借道规划以得到第i借道路径,所述第i借道路径用于将所述第i搜索路径的终点连接至一个未遍历的节点,并将所述第i借道路径上的节点标记为已遍历,以及对i进行加一操作,执行S2;
S5:基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取所述目标车辆在所述单区域的全覆盖路径,结束路径规划过程。
2.根据权利要求1所述的全覆盖路径规划方法,其特征在于,所述第i搜索路径满足以下条件:
当i=1时,所述第i搜索路径的起点是所述单区域的长边的任意一个端点;
当i>1时,所述第i搜索路径的起点是所述第i-1借道路径的终点。
3.根据权利要求1所述的全覆盖路径规划方法,其特征在于,获取所述第i搜索路径的过程包括:
S21:基于所述目标车辆的位置信息和朝向信息、所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,从多个搜索模板中确定其中一个搜索模板作为第i次搜索规划所使用的搜索模板,并令j=1;
S22:针对所述第i搜索路径的第j节点,利用第i次搜索规划所使用的搜索模板进行搜索,检测是否能够搜索到满足预设的搜索限制条件的第j+1节点;如果能够搜索到,则执行S23;如果不能搜索到,则执行S24;
S23:基于所述第j+1节点,更新所述第i搜索路径,并对j进行加一操作,执行S22;
S24:检测是否存在第i次搜索规划未使用过的搜索模板;如果存在,则执行S25;如果不存在,则执行S26;
S25:从第i次搜索规划未使用过的搜索模板中确定其中一个搜索模板,用以对第i次搜索规划所使用的搜索模板进行更新,执行S22;
S26:结束第i次搜索规划并输出所述第i搜索路径。
4.根据权利要求3所述的全覆盖路径规划方法,其特征在于,所述单区域的主方向平行于所述单区域的行驶路面,以所述单区域的主方向为直线搜索方向,以平行于所述行驶路面且垂直于主方向的方向为横跨搜索方向;
所述搜索限制条件包括:
横跨搜索下一个节点是未遍历过的节点,或者,直线搜索下一个节点是未遍历过的节点。
5.根据权利要求4所述的全覆盖路径规划方法,其特征在于,所述搜索限制条件还包括以下至少一种:
横跨搜索下一个节点与当前节点之间的距离小于预设距离阈值;
直线搜索下一个节点与当前节点之间的距离小于所述预设距离阈值;
横跨搜索下一条线段与当前线段之间的角度小于预设角度阈值;
直线搜索下一条线段与当前线段之间的角度小于所述预设角度阈值;
横跨搜索下一条线段的节点数量与当前线段的节点数量之间的差值小于预设数量阈值;
搜索得到的下一条线段、当前线段与上一条线段之间满足所述目标车辆对应的预设曲率约束条件。
6.根据权利要求1所述的全覆盖路径规划方法,其特征在于,获取所述第i借道路径的过程包括:
从所述单区域的未遍历的节点中确定至少一个候选节点;
获取每个候选节点对应的借道路径;
从所有候选节点对应的借道路径中确定其中一个借道路径作为所述第i借道路径。
7.根据权利要求6所述的全覆盖路径规划方法,其特征在于,所述从所述单区域的未遍历的节点中确定至少一个候选节点,包括:
基于所述单区域的未遍历的节点,获取一个或多个不存在重合节点的未遍历的直线段;
将所有未遍历的直线段的两个端点作为所述至少一个候选节点。
8.根据权利要求6所述的全覆盖路径规划方法,其特征在于,所述获取每个候选节点对应的借道路径,包括:
对所述第i搜索路径的终点进行八邻域搜索,以将所述第i搜索路径的终点分别连接至每个候选节点,从而得到每个候选节点对应的借道路径。
9.根据权利要求6所述的全覆盖路径规划方法,其特征在于,所述从所有候选节点对应的借道路径中确定其中一个借道路径作为所述第i借道路径,包括:
利用最小代价函数的预设计算公式,计算每个候选节点对应的借道路径的最小代价;
从所有候选节点对应的借道路径中确定最小代价的最小值对应的借道路径作为所述第i借道路径。
10.根据权利要求1所述的全覆盖路径规划方法,其特征在于,所述方法还包括:
基于所述单区域的边界信息,进行溜边规划,以得到溜边规划路径;
所述基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取所述目标车辆在所述单区域的全覆盖路径,包括:
基于搜索规划得到的所有搜索路径、借道规划得到的所有借道路径以及溜边规划得到的溜边规划路径,获取所述目标车辆在所述单区域的全覆盖路径。
11.根据权利要求1所述的全覆盖路径规划方法,其特征在于,获取所述单区域的过程包括:
获取预设区域的矢量地图;
对所述预设区域的矢量地图进行区域划分,以得到内部无障碍物的多个单区域地图;
将每个单区域地图对应的区域作为一个所述单区域。
12.根据权利要求1所述的全覆盖路径规划方法,其特征在于,获取所述单区域的所有节点的位置信息的过程包括:
基于所述单区域的边界信息,确定所述单区域的主方向;
确定所述单区域的中心点,以得到所述中心点的位置信息;
基于所述单区域的主方向、所述中心点的位置信息以及预设间隔,拓展得到所述单区域的所有节点,以获取所述单区域的所有节点的位置信息。
13.根据权利要求12所述的全覆盖路径规划方法,其特征在于,所述单区域的边界信息包括所述单区域的外围轮廓曲线;
所述基于所述单区域的边界信息,确定所述单区域的主方向,包括:
对所述单区域的外围轮廓曲线进行直线拟合,以得到多条直线段,每条直线段都是有向线段;
基于多条直线段,确定所述单区域的主方向。
14.根据权利要求13所述的全覆盖路径规划方法,其特征在于,所述基于多条直线段,确定所述单区域的主方向,包括:
获取每条直线段的长度和角度,所述直线段的角度用于指示所述直线段与预设方向之间的夹角;
按照角度将每条直线段分类至一个角度区间;
计算每个角度区间中的所有直线段的长度之和;
将长度之和最大的角度区间作为目标角度区间,对所述目标角度区间中的所有直线段对应的向量进行加权平均,以确定所述单区域的主方向。
15.根据权利要求12所述的全覆盖路径规划方法,其特征在于,所述基于所述单区域的主方向、所述中心点的位置信息以及预设间隔,拓展得到所述单区域的所有节点,以获取所述单区域的所有节点的位置信息,包括:
基于所述中心点的位置信息,构建过所述中心点且垂直于所述主方向的垂直线,所述中心点将所述垂直线划分为两条射线;
利用所述单区域的边界信息进行边界约束,以所述中心点为起点,分别沿每条射线的延伸方向以所述预设间隔拓展得到多个第一类点,并获取所有第一类点的位置信息;
利用所述单区域的边界信息进行边界约束,分别以所述中心点和每个第一类点为起点,分别沿所述主方向以及所述主方向的反方向以所述预设间隔拓展得到多个第二类点,并获取所有第二类点的位置信息;
将所述中心点以及所有拓展得到的第一类点、第二类点作为所述单区域的节点,以得到所述单区域的所有节点的位置信息。
16.一种全覆盖路径规划装置,其特征在于,用于对目标车辆在内部无障碍物的单区域的自动驾驶过程进行全覆盖路径规划,所述装置包括处理器,所述处理器被配置成实现以下步骤:
S1:获取所述单区域的所有节点的位置信息和所述单区域的边界信息,并令i=1;
S2:基于所述单区域的未遍历的节点的位置信息和所述单区域的边界信息,进行第i次搜索规划以得到第i搜索路径,并将所述第i搜索路径上的节点标记为已遍历;
S3:检测是否存在未遍历的节点;如果存在,则执行S4;如果不存在,则执行S5;
S4:进行第i次借道规划以得到第i借道路径,所述第i借道路径用于将所述第i搜索路径的终点连接至一个未遍历的节点,并将所述第i借道路径上的节点标记为已遍历,以及对i进行加一操作,执行S2;
S5:基于搜索规划得到的所有搜索路径和借道规划得到的所有借道路径,获取所述目标车辆在所述单区域的全覆盖路径,结束路径规划过程。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-15任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310648226.1A CN116839609A (zh) | 2023-06-01 | 2023-06-01 | 全覆盖路径规划方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310648226.1A CN116839609A (zh) | 2023-06-01 | 2023-06-01 | 全覆盖路径规划方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116839609A true CN116839609A (zh) | 2023-10-03 |
Family
ID=88167969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310648226.1A Pending CN116839609A (zh) | 2023-06-01 | 2023-06-01 | 全覆盖路径规划方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116839609A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117270547A (zh) * | 2023-11-23 | 2023-12-22 | 苏州派特纳智能科技有限公司 | 晶面养护路线规划方法、养护机器人和可存储介质 |
-
2023
- 2023-06-01 CN CN202310648226.1A patent/CN116839609A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117270547A (zh) * | 2023-11-23 | 2023-12-22 | 苏州派特纳智能科技有限公司 | 晶面养护路线规划方法、养护机器人和可存储介质 |
CN117270547B (zh) * | 2023-11-23 | 2024-02-09 | 苏州派特纳智能科技有限公司 | 晶面养护路线规划方法、养护机器人和可存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109839935B (zh) | 多agv的路径规划方法及设备 | |
Maboudi et al. | A Review on Viewpoints and Path Planning for UAV-Based 3-D Reconstruction | |
CN110132291A (zh) | 用于港口的栅格地图生成方法、系统、设备及存储介质 | |
CN113984080B (zh) | 一种适用于大型复杂场景下的分层局部路径规划方法 | |
US20240370032A1 (en) | System and method for surface feature detection and traversal | |
CN112486178A (zh) | 一种基于有向d*算法的动态路径规划方法 | |
Büchner et al. | Learning and aggregating lane graphs for urban automated driving | |
CN116501064A (zh) | 一种光伏电站清扫机器人的路径规划及避障方法 | |
Fermin-Leon et al. | TIGRE: Topological graph based robotic exploration | |
CN116839609A (zh) | 全覆盖路径规划方法、装置及计算机可读存储介质 | |
WO2023137938A1 (zh) | 虚拟角色的路径规划方法及装置、电子设备、存储介质 | |
CN109855640B (zh) | 一种基于自由空间与人工蜂群算法的路径规划方法 | |
CN116764225B (zh) | 一种高效寻路的处理方法、装置、设备及介质 | |
Varga et al. | Developing an autonomous valet parking system in simulated environment | |
CN115639827B (zh) | 一种结构化环境下机器人路径规划方法和系统 | |
CN116753960A (zh) | 一种基于bim-机械狗的室内实测实量智能化采集方法及系统 | |
Moreira | Deep Reinforcement Learning for Automated Parking | |
CN112631300B (zh) | 一种光伏阵列智能清洗机器人的路径规划方法 | |
CN114264313A (zh) | 基于势能的车道级路径规划方法、系统、设备及存储介质 | |
Bigaj et al. | A memetic algorithm based procedure for a global path planning of a movement constrained mobile robot | |
CN114510053A (zh) | 机器人规划路径校验方法、装置、存储介质及电子设备 | |
CN117516558A (zh) | 路网生成方法、装置、计算机设备和计算机可读存储介质 | |
Yu | The Impact of Path Planning Model Based on Improved Ant Colony Optimization Algorithm on Green Traffic Management. | |
CN116642510A (zh) | 一种基于改进a星算法的车辆导航方法 | |
CN118518135A (zh) | 驾驶路径规划方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |