CN113375686A - 路径规划的方法、装置以及智能输送系统 - Google Patents
路径规划的方法、装置以及智能输送系统 Download PDFInfo
- Publication number
- CN113375686A CN113375686A CN202110456952.4A CN202110456952A CN113375686A CN 113375686 A CN113375686 A CN 113375686A CN 202110456952 A CN202110456952 A CN 202110456952A CN 113375686 A CN113375686 A CN 113375686A
- Authority
- CN
- China
- Prior art keywords
- node
- expansion
- expanded
- nodes
- curvature
- 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
Images
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/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/343—Calculating itineraries, i.e. routes leading from a starting point to a series of categorical destinations using a global route restraint, round trips, touristic trips
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G1/00—Storing articles, individually or in orderly arrangement, in warehouses or magazines
- B65G1/02—Storage devices
- B65G1/04—Storage devices mechanical
- B65G1/0492—Storage devices mechanical with cars adapted to travel in storage aisles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G1/00—Storing articles, individually or in orderly arrangement, in warehouses or magazines
- B65G1/02—Storage devices
- B65G1/04—Storage devices mechanical
- B65G1/137—Storage devices mechanical with arrangements or automatic control means for selecting which articles are to be removed
- B65G1/1373—Storage devices mechanical with arrangements or automatic control means for selecting which articles are to be removed for fulfilling orders in warehouses
-
- 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)
- Mechanical Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供路径规划的方法、装置以及智能输送系统,所述方法包括:从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点;从备选扩展节点集合中选择新的待扩展节点,重复上述过程直至搜索到目的节点,其中,所述备选扩展节点集合包括所述至少一个扩展节点;根据所有的待扩展节点和所述目的节点得到规划路径。本申请的实施例通过螺旋线形式向外扩展获取扩展节点,与相关技术的九宫格全方位确定扩展节点或者采用圆弧向外确定扩展节点的方式相比,本申请实施例得到的规划路径的曲率不存在突变更易被小车执行,提升了规划路径的实现效果。
Description
技术领域
本申请涉及路径规划领域,具体而言本申请实施例涉及路径规划的方法、装置以及智能输送系统。
背景技术
移动设备属于可自主移动的装置,例如,移动设备包括在仓库等场所工作的自动引导小车,也包括在公园或者其他场所行驶的无人驾驶车。
移动设备的路径规划既包括由移动设备根据其自身感知的局部地图信息,规划出的局部规划路径,也包括由控制端或者上位机根据预先获取的全局地图信息为被控制的移动设备规划出一条从起始点到目的点的全局规划路径。
相关技术的路径规划方法包括启发式路径规划方法(例如,A*算法、混合A*)和非启发式路径规划方法(例如,RRT算法)。由于相关技术的路径规划方法获得的规划路径的平滑性较差导致规划得到路径并不利于移动设备执行,此外相关技术的路径规划方法还存在路径规划速度慢,从而降低了路径规划效果。
因此如何改善路径规划的效果成了亟待解决的技术问题。
发明内容
本申请实施例的目的在于提供路径规划的方法、装置以及智能输送系统,采用本申请的路径规划方法中的螺旋线向外扩展获取扩展节点的方案可提升规划得到路径的平滑性。
第一方面,本申请的一些实施例提供一种路径规划的方法,所述方法包括:从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点;从备选扩展节点集合中选择一个或多个扩展节点作为新的待扩展节点,重复上述过程直至搜索到目的节点,其中,所述备选扩展节点集合包括所述至少一个扩展节点;根据所有的待扩展节点和所述目的节点得到规划路径。
本申请的实施例通过螺旋线形式向外扩展获取扩展节点,与相关技术的九宫格全方位确定扩展节点或者采用圆弧向外确定扩展节点的方式相比,本申请实施例得到的规划路径的曲率不存在突变更易被小车执行,提升了规划路径的实现效果。
在一些实施例中,所述从备选扩展节点集合中选择新的待扩展节点,包括:确定所述备选扩展节点集合中各扩展节点的代价值,其中,所述代价值用于表征从所述扩展节点到达所述目的节点的代价;将与最小代价值对应的扩展节点作为所述新的待扩展节点。
本申请的实施例以代价函数来控制搜索方向,相对于RRT的随机扩展更有方向性,成功率更高,鲁棒性更强。
在一些实施例中,所述从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点,包括:从所述待扩展节点开始,根据不同曲率值对应的螺旋线向外扩展获取多个扩展节点。
本申请的一些实施例通过不同曲率的螺旋线向外扩展获取多个扩展节点,相比于相关技术采用圆弧向外扩展节点的方式相比,本申请的螺旋线的曲率更加连续,曲线更加平滑,因此规划的路径更利于移动设备执行。
在一些实施例中,所述方法还包括:确定曲率变化范围;在所述曲率变化范围进行采样,获取所述不同曲率值。
本申请的实施例可以通过移动设备的特征(例如电机特性)或者项目特征(例如,项目对路径平滑性的要求),凭借经验或者标注等方式获取单位行驶路程内的曲率变化范围并最终确定曲率变化范围,因此可以保证扩展节点对应的曲率位于移动设备可接受范围内,更利于移动设备执行规划的路径。
在一些实施例中,所述从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点,包括:根据所述待扩展节点与障碍物的距离确定所述螺旋线的扩展长度;根据所述扩展长度的螺旋线向外扩展获取所述至少一个扩展节点。
本申请的实施例由于根据待扩展节点与障碍物的距离来动态确定各次向外扩展对应的扩展长度(或称为扩展步长),相比于每次扩展长度相同的相关技术本申请一些实施例采用了跳点法,能快速跳过大片的空旷区域,因此搜索速度得到了大幅提高。
在一些实施例中,所述从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点,包括:根据所述待扩展节点与障碍物之间的距离确定所述螺旋线的扩展长度,其中,所述扩展长度与所述距离成正比;根据所述待扩展节点的曲率和所述扩展长度确定曲率变化范围,其中,所述扩展长度越大则确定的所述曲率变化范围越大;对所述曲率变化范围进行采样,获取多个不同的曲率值;确定所述多个不同的曲率值中各曲率值对应的所述扩展长度的螺旋线的终点,得到多个扩展节点。
本申请的一些实施例在待扩展节点向外扩展时均需要考虑当前节点与障碍物的距离确定扩展步长,并根据扩展长度s确定本次向外扩展时的曲率变化范围,且本次向外扩展对应的扩展长度越大则确定的曲率变化范围越大。可以理解的是,采用这些实施例既节约了路径规划时间也保证了选取的扩展节点的质量。本申请根据障碍物情况确定扩展长度可以在路径规划时跨越更大范围的空旷区减少路径规划的数据处理量,本申请根据扩展长度调整扩展曲率的变化范围,还可以在向外扩展跨越更大范围时提升数据处理速度。
在一些实施例中,所述曲率变化范围的计算公式为:
kappa_min=k_curr+s*dk_min
kappa_max=k_curr+s*dk_max
其中,kappa_min表征向外扩展本次选择的所述待扩展节点得到的候选扩展节点的最小曲率值,kappa_max表征所述候选扩展节点的最大曲率值,k_curr为所述本次选择的待扩展节点的曲率值,dk_min表征单位行程内曲率最小变化值,dk_max表征所述单位路程内曲率最大变化值,s表征所述扩展长度。
本申请的一些实施例提供一种根据待扩展节点的曲率、单位行程内的曲率变化范围和扩展长度来确定曲率变化范围的计算公式,既保证了曲率变化范围在移动设备可接受的方位内,也在扩展长度增加时相应扩展曲率变化范围,以提升数据处理的速度。
在一些实施例中,所述对所述曲率变化范围进行采样,获取多个不同的曲率值包括:对所述曲率变化范围均匀采样得到所述多个不同的曲率值。
本申请的实施例采用均匀采样的方式从曲率范围内获得与扩展节点对应的各曲率值,这既保证了扩展节点的曲率值在可接受的范围内,又保证了扩展节点的曲率均匀覆盖该范围。
在一些实施例中,所述确定所述多个不同的曲率值中各曲率值对应的所述扩展长度的螺旋线的终点,得到多个扩展节点,包括:以折线逼近螺旋线的迭代方式确定所述各曲率值对应的螺旋线终点,得到所述多个扩展节点。
由于螺旋线模型中包含的积分结果不是初等函数,因此本申请的实施例采取离散累加的方式,以折线逼近螺旋线方式确定螺旋线的终点,减少了计算量,并使得螺旋线的模型得以实现。
在一些实施例中,第一扩展节点的代价值与所述第一扩展节点相对于所述待扩展节点的曲率变化的绝对值相关,其中,所述第一扩展节点为所述备选扩展节点集合中的任意一个扩展节点。
与现有的启发式路径规划算法的代价函数并未考虑曲率变化带来代价变化的方案相比,本申请的一些实施例在计算扩展节点的代价值时还考虑了曲率变化绝对值的大小,可以结合曲率变化情况来衡量扩展节点的质量,最终提升得到的规划路径的可执行性。
在一些实施例中,所述代价值还与所述第一扩展节点到障碍物的第一距离,所述第一扩展节点到起始点的路程和所述第一扩展节点到所述目的点的第二距离相关。
本申请的一些实施例通过包括多个距离或者路程的代价函数可以从更多方面评估扩展节点的好坏程度,进而提升从扩展节点中选择出的待扩展节点的质量。
在一些实施例中,所述代价值是通过对所述曲率变化的绝对值、所述第一距离、所述路程以及所述第二距离的加权求和表征的。
本申请的实施例为各影响因素(即曲率变化的绝对值、扩展节点到障碍物的距离、扩展节点到起始节点的路程以及扩展节点到目的节点的距离)赋予不同的权重值(即加权),可以针对不同的项目或者移动设备的不同特性来调整各影响因素的重要程度,进而为特定项目或者移动设备筛选出质量更符合场景要求的待扩展节点。
在本申请的一些实施例中,所述备选扩展节点集合中的节点存储在第一列表中;所述从备选扩展节点集合中选择一个或多个扩展节点作为新的待扩展节点,包括:将所述第一列表中的各节点按照代价值升序排列,并将列表头的节点作为所述新的待扩展节点;将所述新的待扩展节点移动至第二列表;所述根据所有的待扩展节点和所述目的节点得到规划路径,包括:连接所述第二列表中的节点和所述目的节点组成所述规划路径
本申请的一些实施例通过两个列表分别缓存扩展节点和待扩展节点,并根据第二列表中的节点和目的节点得到规划路径,提升了获取规划路径的速度。
第二方面,本申请的一些实施例提供一种路径规划的装置,所述装置包括:扩展节点获取模块,被配置为从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点;选择模块,被配置为从备选扩展节点集合中选择一个或多个扩展节点作为新的待扩展节点,重复上述过程直至搜索到目的节点,其中,所述备选扩展节点集合包括所述至少一个扩展节点;路径生成模块,被配置为根据所有的待扩展节点和所述目的节点得到规划路径。
第三方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现上述第一方面或第一方面的任意可能的实现方式中的方法。
第四方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现第一方面或第一方面的任意可能的实现方式中的方法。
第五方面,本申请的一些实施例提供一种智能输送系统,所述智能输送系统包括:控制端,被配置为:从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点,其中,所述待扩展节点包括起始节点;从备选扩展节点集合中选择新的待扩展节点,重复上述过程直至搜索到目的节点,其中,所述备选扩展节点集合包括所述至少一个扩展节点;根据所有的待扩展节点和所述目的节点得到全局规划路径;向移动设备发送所述全局规划路径;移动设备,被配置为:接收所述全局规划路径;根据所述控制端生成的全局规划路径从所述起始节点移动至所述目的节点。
第六方面,本申请提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例的路径规划的方法的应用场景示意图;
图2为相关技术的代价地图;
图3为相关技术对待扩展节点向外扩展获取扩展节点的示意图之一;
图4为相关技术对待扩展节点向外扩展获取扩展节点的示意图之二;
图5为本申请实施例的采用螺旋线形式对待扩展节点向外扩展获取扩展节点的示意图;
图6为本申请实施例提供的路径规划的方法流程图之一;
图7为本申请实施例提供的路径规划的方法流程图之二;
图8为利用本申请的路径规划的方法得到一段规划路径的示意图;
图9为本申请实施例提供的路径规划的装置的组成框图;
图10为本申请实施例提供的智能输送系统的组成框图;
图11为本申请实施例提供的电子设备的组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1为本申请实施例技术方案的应用场景之一,在图1的仓库场景中包括控制端100、输送装置200(例如,自动引导小车)以及输送装置的工作区域300,其中,输送装置200属于移动设备的一类。
控制端100通过有线或者无线网络与输送装置200连接,以实现两者的相互通信。例如,在一些实施例中,控制端100可以向输送装置200发送由其生成的全局规划路径,相应的输送装置200在收到全局规划路径后按照规划路径从工作区域的起始点S(对应于起始节点)运动至目标点D(对应于目的节点)。
如图1所示,为了完成路径规划相关的算法可以将搜寻路径的工作区域300划分成多个方形(包括长方形或者正方形)的格子,即将该工作区域300的环境地图栅格化,这样可以简化搜索区域,方便在搜索区域中的方形栅格内标注障碍物分布得到代价地图。由于将输送装置的工作区域300(也就是搜索路径的区域)简化为方格区域,因此可以对应采用2维数组表征各个栅格对应的节点。因此,通过图1计算出从搜索区域的起始点S到目标点D需要走过哪些方格,就找到了路径。一旦路径找到了,移动设备(例如,输送装置)就可以从一个方格的中心(即当前节点)移动到另一个方格的中心(由当前节点扩展得到的下一节点),直至到达目的节点对应的目标点D。图2是将一个移动设备的工作区域中标注障碍物后得到的代价地图。在图2中黑色方格表示栅格内有障碍物分布,因此这些黑色栅格不可达,图2的空白方格表示无障碍物分布,因此这些栅格均可达。不难理解的是,通过图2可以得到各栅格对应的节点与障碍物的距离。
需要说明的是,本申请的实施例也将搜索区域(即移动设备的运行区域或工作区域)划分得到多个方格并将每个方格的中心点作为节点(nodes),例如,这些节点包括:对应于起始点的起始节点、待扩展节点、扩展节点以及对应于目标点的目的节点等。但是本申请的实施例并不限定把搜索区域划分为正方形这一种情况,在本申请的另一些实施例中也可以将搜索区域划为其他多边形而不是正方形(例如可以是六边形,矩形),甚至可以是任意多变形,而本申请实施例对应的节点可以放在任意多边形里面,可以放在多变形的中心,也可以放在多边形的边上,本申请实施例对此不作限制。本申请实施例所述的移动设备既包括在仓库内运送货物的自动引导小车,也包括在酒店等其他场所自主移动的移动机器人,或者在户外行驶的无人驾驶车等,本申请实施例不限定移动设备的工作场所也不限定移动设备的具体类别。
下面结合图3和图4示例性阐述相关技术的路径规划在节点向外扩展时存在的缺陷。
图3是采用现有技术的A*算法向外扩展待扩展节点X0的方法,图3的A*算法以当前节点作为起点X0(即本次的待扩展节点),同时向上、下、左、右、左上、左下、右上以及右下八个方向外扩展得到八个扩展节点(即与图3的八个栅格一一对应的八个扩展节点)。
图4是现有技术的混合A*算法以不同圆弧向外扩展待扩展节点X0得到扩展节点的示意图,图4将待扩展节点X0向六个方向外扩得到六个扩展节点X1、X2、X3、X4、X5和X6。
采用图3和图4的A*算法和混合A*算法对应的向外扩展方式得到的规划路径的缺陷至少在于路径形式全部以直线或者圆弧连接导致规划路径不够平滑,且图3和图4在每次向外扩展时的扩展长度固定,导致路径搜索速度过慢。
现有技术的RRT是指以当前点开始,随机地向四周延伸,并将延伸点加入树型中。当树中某一延伸点距离目的节点足够近时认为规划成功。这种方案问题在于向四周探索时采取了随机延伸,导致搜索无方向,算法耗时不稳定;另一方面由于延伸时未考虑移动设备的运动模型,导致路径不平滑,存在较多折点,无法被移动设备执行。
与图3向八个方向向外扩展获取扩展节点和与图4向六个方向向外扩展获取扩展节点的方式不同,本申请实施例的是以螺旋线形式向外扩展获取扩展节点(即获取待扩展节点的下一节点),如图5所示(由本次选择的待扩展节点X0通过一段螺旋线向外扩展获取一个扩展节点X1),因此采用本申请实施例的螺旋线向外扩展规划得到的路径更平滑因此更利于移动设备执行。本申请的另一些实施例还基于跳点法改变各次向外扩展对应的扩展步长(即螺旋线的扩展长度),因此与相关技术相比本申请的一些实施例在保证得到的规划路径平滑性的基础上还进一步提升了路径搜索的速度。
本申请的实施例可用于解决移动设备(例如,自动引导小车AGV或者无人驾驶车)在行走过程中的实时路径规划问题(对应于局部路径规划),也可用于解决移动设备在行驶之前的全局路径规划问题。例如,控制端在输送装置执行具体的货物配送任务之前会为相应的输送装置预先规划全局路径,并在分配任务的同时或之后将规划的全局路径发送给输送装置,之后输送装置按照全局规划路径完成从起始点至目的点的货物配送。可以理解的是,当本申请的实施例用于全局路径规划时,需要控制端预先根据障碍物分布特征获取类似图2的代价地图,而当本申请的实施例用于局部路径规划时则需要移动设备实时获取障碍物分布特征后生成类似图2的代价地图。需要说明的是,根据障碍物分布特征获取代价地图的过程属于现有技术,为避免重复在此不做过多赘述。
下面结合图6示例性阐述本申请的路径规划方法。结合上述描述可以理解的是,本申请实施例图6的路径规划方法可由移动设备执行,即由移动设备执行图6的路径规划过程生成局部规划路径。另外,图6的路径规划方法也可以由控制端执行,即由控制端执行图6的路径规划过程得到全局规划路径,之后控制端需要将全局规划路径发送至相应的移动设备,以使移动设备从起始点沿着规划路径上的节点到达目标点。
如图6所示,本申请的一些实施例提供一种路径规划的方法,该方法包括:S101,从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点;S102,从备选扩展节点集合中选择新的待扩展节点,重复上述过程直至搜索到目的节点,其中,所述备选扩展节点集合包括所述至少一个扩展节点;S103,根据所有的待扩展节点和所述目的节点得到规划路径。与图3的九宫格全方位确定扩展节点或者图4的采用圆弧向外确定扩展节点的方式相比,由于本申请图6的实施例采用了螺旋线形式向外扩展得到扩展节点,因此基于这些扩展节点得到的规划路径的曲率不存在突变更易被移动设备执行,提升了规划路径的实现效果。
本申请一些实施例中,S101包括:从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点,并将所述至少一个扩展节点存入开启列表openlist中,其中,所述openlist列表用于存储备选扩展节点集合中的各扩展节点;相应的S102包括:从openlist中存储的备选扩展节点集合中选择新的待扩展节点。需要说明的是,在本申请的一些实施例中,上述步骤涉及的待扩展节点、扩展节点和备选扩展节点集合中的各扩展节点分别表示在栅格地图中的不同位置。
需要说明的是,在本申请的一些实施例中,S101涉及的待扩展节点包括起始节点。S102涉及的备选扩展节点集合中的元素包括通过本次向外扩展(即向外扩展本次选择的待扩展节点)、以及之前已经向外扩展(即向外扩展历次选择的待扩展节点)得到的所有扩展节点中去掉待扩展节点后的剩余节点。可以理解的是,在本申请的一些实施例中备选扩展节点集合的获取方式包括:每次向外扩展得到的扩展节点均要添加到备选扩展节点集合中,且选择了新的待扩展节点后,要将该待扩展节点从备选扩展节点集合中删除。
下面示例阐述上述步骤。
作为一个示例,S101包括:从所述待扩展节点开始,根据不同曲率值对应的螺旋线向外扩展获取多个扩展节点。例如,S101包括:确定曲率变化范围;在所述曲率变化范围进行采样,获取所述不同曲率值。例如,本申请实施例的待扩展节点是从开启列表openlist移动至关闭列表closelist中的节点,这些节点包括起始节点,其中,这个起始节点对于全局路径规划可以是指为自动引导小车分配的具体输送任务对应的起始点,而对于局部路径规划该起始节点是指由自动引导小车自身设置的局部路径规划的起始位置点。
为了使用跳点法减少搜索路径的时间,作为一个示例S101包括:根据所述待扩展节点与障碍物的距离确定所述螺旋线的扩展长度;根据所述扩展长度的螺旋线向外扩展获取所述至少一个扩展节点。
需要说明的是,如果每次向外扩展的扩展步长(或称为螺旋线的扩展长度)都相同,则S101确定的曲率变化范围仅与单位行程内的曲率变化范围相关,其中,单位行程内的曲率变化范围是通过移动设备的特征(例如,电机特性)或者项目特征(例如,项目对规划路径平滑性的要求),并根据经验方式获取。如果每次向外扩展的扩展长度不同(例如,根据待扩展节点与障碍物的距离确定各次向外扩展的扩展长度),则S101确定的曲率变化范围既与单位行程内的曲率变化范围相关也与扩展长度相关,例如,扩展长度越大则对应确定的曲率变化范围越大。
为了进一步提升数据处理速度,作为一个示例,S101可以包括:根据所述待扩展节点与障碍物之间的距离确定所述螺旋线的扩展长度,其中,所述扩展长度与所述距离成正比;根据所述待扩展节点的曲率和所述扩展长度确定曲率变化范围,其中,所述扩展长度越大则确定的所述曲率变化范围越大;对所述曲率变化范围进行采样,获取多个不同的曲率值;确定所述多个不同的曲率值中各曲率值对应的所述扩展长度的螺旋线的终点,得到多个扩展节点。例如,根据所述待扩展节点与最近障碍物之间的距离确定本次向外扩展对应的扩展步长。本申请的实施例根据障碍物情况确定扩展步长可以在路径规划时跨越更大范围的空旷区,减少了路径规划的数据处理量,同时根据扩展长度调整本次扩展对应的曲率变化范围,可以提升搜索速度。
作为本申请的一个示例,确定曲率变化范围的公式如下:
kappa_min=k_curr+s*dk_min
kappa_max=k_curr+s*dk_max
其中,kappa_min表征向外扩展本次选择的待扩展节点得到的候选扩展节点(或称为下一节点)的最小曲率值,kappa_max表征向外扩展本次选择的待扩展节点得到的候选扩展节点(或称为下一节点)的最大曲率值,k_curr表征本次向外扩展选择的待扩展节点的曲率值(例如,S101涉及的待扩展节点),dk_min表征单位行程内曲率最小变化值,dk_max表征所述单位路程内曲率最大变化值,dk_min和dk_max表征曲率对位移s的一阶导数,且dk_min和dk_max的具体取值可以凭借经验获取,也可以通过标注方式获取,s表征本次向外扩展的扩展步长。需要说明的是,在本申请的一些实施例中,S101可以进一步包括:从由上述公式确定的最大曲率值和最小曲率值对应的曲率范围内选择全部或者部分曲率值(例如,均匀采样的方式获得部分曲率值)对应的下一节点(或称为候选扩展节点)作为本次向外扩展得到的扩展节点。也就是说,候选扩展节点是本次向外扩展待扩展节点有可能被选为扩展节点的节点,作为一个示例,可以将与对曲率范围采样得到的多个离散采样点对应的候选扩展节点作为本次向外扩展待扩展节点得到的扩展节点。
本申请的一些实施例提供一种根据待扩展节点的曲率、单位行程内的曲率变化范围和扩展长度来综合确定扩展步长不同时各次向外扩展的曲率变化范围的计算公式,以便于量化扩展节点的曲率取值范围,提升了曲率变化范围估计的准确性和客观性。
为了在曲率范围内筛选出多个曲率值,在一些实施例中,S101还包括对所述曲率变化范围均匀采样得到所述多个不同的曲率值。
由于螺旋线模型中包含的积分结果不是初等函数,因此为了根据所述扩展长度和采样曲率值实现螺旋线的模型得到扩展节点的坐标和朝向,在本申请的一些实施例中,S101还包括:以折线逼近螺旋线的迭代方式确定所述各曲率值对应的螺旋线终点,得到所述多个扩展节点。本申请的实施例采取离散累加的方式,以折线逼近螺旋线,减少了计算量,并使得螺旋线的模型得以实现。
需要说明的是,作为一个示例,S101获取螺旋线终点也就是获得螺旋线终点对应的坐标和移动设备在终点处的朝向信息。
为了改善现有的启发式路径规划方法在确定代价函数时,由于未考虑曲率变化代价导致得到的规划路径的平滑性差的问题,本申请一些实施例的代价函数还与任意一个扩展节点相对于待扩展节点的曲率变化的绝对值相关,在本申请的一些实施例中,第一扩展节点的代价值与曲率变化的绝对值正相关,其中,第一扩展节点为备选扩展节点集合中的任意一个节点。这与相关技术的代价函数并未考虑曲率变化会带来代价变化的方案相比,可以结合曲率变化情况来衡量扩展节点的质量,最终提升得到的规划路径的可执行性。
为了进一步提升从扩展节点中筛选新的待扩展节点的质量,本申请一些实施例的代价函数既与曲率变化的绝对值有关,也与扩展节点到障碍物的距离,到起始节点的路程和到目的节点的距离相关。需要说明的是,本申请中所述的两个节点之间的距离是指连接两个节点之间的直线的长度,而两节点之间的路程指代连接两个节点之间的螺旋线的长度。
需要说明的是,代价值用于表征从起始节点经过扩展节点到达目的节点的最低代价的估计值,在一些实施例中,代价值包括第一代价值和第二代价值,其中,第一代价值即计算从起始节点到扩展节点的实际代价得到的代价值,第二代价值即计算从扩展节点到目的节点的估计代价得到的代价值。
通过本申请的一些实施例提供的代价函数得到代价值可以从更多方面评估扩展节点的好坏程度,进而提升从扩展节点中选择出的新的待扩展节点的质量,最终提升得到的规划路径的质量。本申请的另一些实施例还为各影响因素(即曲率变化的绝对值、扩展节点到障碍物的距离、扩展节点到起始节点的路程以及扩展节点到目的节点的距离)赋予不同的权重值(即加权),可以针对不同的项目或者移动设备的不同特性来调整各影响因素的重要程度,进而为特定项目或者移动设备筛选出质量更符合要求的待扩展节点。
在一些实施例中S102包括:从备选扩展节点集合中选择一个或多个扩展节点作为新的待扩展节点,根据新的待扩展节点继续采用螺旋线形式向外扩展得到对应于新的待扩展节点的扩展节点。例如,从所述备选扩展节点集合中的选择一个目标扩展节点继续向外扩展,所述一个目标扩展节点可以是从备选扩展节点集合中选择的代价函数值(或简称代价值)最小的节点;在另一些实施例中,S102包括从备选扩展节点集合中选择多个扩展节点作为待扩展节点继续向外扩展,例如该多个扩展节点可以是代价值小于代价阈值的节点。
在一些实施例中,S102可以包括:根据代价函数确定所述备选扩展节点集合中各扩展节点的代价值;将与最小代价值对应的扩展节点作为所述新的待扩展节点点。S102的重复执行上述过程即以新的待扩展节点继续以螺旋线形式向外扩展获得该新的待扩展节点的扩展节点,直至得到的扩展节点中包括了目的节点为止。
需要说明的是,S102记载的搜索到目的节点即向外扩展待扩展节点得到的至少一个扩展节点中包括了目的节点。
在本申请的一些实施例中,S103的规划路径是通过连接待扩展节点(其中,待扩展节点包括起始节点)和目的节点得到的一条路径,对于如何从所有的待扩展节点中选择父节点属于现有技术(例如,可以参考现有的A*或者混合A*路径规划算法),为避免重复在此不做过多赘述。正如上文所述,S103的规划路径既可以是由控制端生成的全局规划路径也可以是由移动设备生成的局部规划路径。可以理解的是,如果S103得到的全局规划路径则控制端需要把全局规划路径发送至移动设备,以控制移动设备按照全局规划路径从起始节点移动至目的节点,如果S103是局部规划路径则移动设备会按照局部规划路径完成局部范围内的移动。需要说明的是,S103涉及的待扩展节点包括新的待扩展节点。
在本申请的一些实施例中,备选扩展节点集合中的节点存储在第一列表中,相应的S102包括:将所述第一列表中的各节点按照代价值升序排列,并将列表头的节点作为所述新的待扩展节点;将所述新的待扩展节点移动至第二列表;S103包括:连接所述第二列表中的节点和所述目的节点组成所述规划路径。也就是说,在一些实施例中将备选扩展节点集合中的节点存储在第一列表(例如,开启列表)中,相应的S102获取新的待扩展节点的过程可以包括:将第一列表中的节点按照代价值升序排列并将列表头的节点作为新的待扩展节点,之后再将新的待扩展节点移动至第二列表中(例如,关闭列表),可以理解的是,位于列表头的节点代价值最小,即在一些实施例中S102将代价值最小的节点作为新的待扩展节点;相应的S103包括连接第二列表(例如,关闭列表)中的各节点和目的节点得到规划路径。
下面结合开启列表openlist、关闭列表closelist以及代价地图,示例性阐述本申请实施例的全局路径规划方法。
如图7所示,本申请一些实施例的全局路径规划方法包括:
S601,选择一个待扩展节点。
具体地,从关闭列表closelist中选择一个节点作为待扩展节点。关于关闭列表的中存储的节点在实现路径规划中的具体功能,可以参考现有技术中A*路径规划算法中的相关描述,为避免重复在此不做过多赘述。
S602,根据螺旋线和跳点法获取待扩展节点的扩展节点,并将得到的扩展节点存入开启列表openlist中,以使扩展节点的状态被记录下来,并由此计算其代价函数。例如,扩展节点的状态信息包括曲率、机器人的朝向、代价、链接关系以及机器人的位姿等信息。
对于开启列表中存储的扩展节点在实现路径规划中的功能,以及开启列表与关闭列表之间的节点存取关系可以参考现有技术中A*路径规划算法中的相关描述,为避免重复在此不做过多赘述。
作为一个示例,S602包括:
第一步,计算扩展长度。
根据本次循环选择的待扩展节点与最近障碍物之间的距离确定扩展长度,具体地,如果本次循环选择的待扩展节点和最近障碍物之间的距离越大则对应的扩展长度也越大,反之则扩展长度越小。作为一个示例,可以根据有符号的欧几里得距离图ESDF(Euclidean Signed Distance Field)确定本次循环选择的待扩展节点和最近障碍物之间的距离。为了实现该实例,可以采用现有技术的方法根据障碍物分布特征获取有符号的欧几里得距离图ESDF。需要说明的是,获取ESDF图的方式属于现有技术,为避免重复在此不做过多赘述。
可以理解的是,与现有技术的A*路径规划算法和混合A*路径规划算法不同的是,本申请实施例的扩展长度与障碍物的分布特征相关,因此当障碍物分布稀疏或者与本次循环选择的待扩展节点与最近障碍物之间的距离越大则本次向外扩展可以跨越很大空间跳过很多节点(即跳过很多栅格),节省了路径规划时间。
下面示例性阐述获取扩展长度的过程。首先,获得当前节点(即本次向外扩展过程选择的待扩展节点)在ESDF图中的值,即获取当前节点与最近障碍物的距离,例如,在有符号的欧几里得距离ESDF图中已经预先存储了当前节点与最近的障碍物的距离d。随后,根据以下公式计算本次向外扩展对应的扩展长度s:“s=k*d+b”,其中,k和b为线性模型的参数,根据经验值得到。在一些示例中,会将扩展长度s设定在某一区间(例如,将扩展长度s值限制在0.1m到1m之间)。需要说明的是,在本申请的另一些实施例中也可以不采用线性函数计算扩展长度,而只要本次向外扩展的扩展长度和本次选择的待扩展节点与最近的障碍物之间的距离满足正相关即可。
由于本申请的实施例可以实现当障碍物稀疏时或者本次向外扩展选择的待扩展节点与最近障碍物距离较远时,对应本次向外扩展的扩展长度也较大,因此在本次向外扩展时跳过一片空旷地区域(即与现有等长的扩展长度相比,本申请的根据障碍物分布特征确定扩展步长可以跳过某些栅格对应的节点),加快搜索速度。
第二步,计算曲率范围。
获得当前节点(即本次循环选择的待扩展节点)的曲率、扩展长度s、单位行程内曲率最小变化值和单位行程内曲率最大变化值后,根据以下公式确定曲率变化范围,即确定曲率最大值和曲率最小值:
kappa_min=k_curr+s*dk_min (1)
kappa_max=k_curr+s*dk_max (2)
其中,式中各项的含义如下:
kappa_min:表征向外扩展本次选择的待扩展节点得到的下一节点(即候选扩展节点)的最小曲率值。
dk_min:表征单位行程内曲率最小变化值,其中,单位行程内曲率的最小变化值可以根据移动设备的特征(例如电机特征)确定,也可以根据项目对路径的平滑性的要求确定。
kappa_max:表征向外扩展本次选择的待扩展节点得到的下一节点(即候选扩展节点)的最大曲率值。
dk_max:表征单位行程内曲率最大变化值,其中,单位行程内曲率的最大变化值可以根据移动设备的特征(例如电机特征)确定,也可以根据项目对平滑性的要求确定。
k_curr:当前节点(即本次向外扩展选择的待扩展节点)的曲率值。
需要说明的是,为了获取当前节点的曲率值,需要初始化本次全局路径规划或者局部路径规划对应的起始节点处的曲率值(例如,将初始节点处的曲率值初始化为0),之后各次向外扩展的待扩展节点的曲率值可以根据该点的上一个节点递推而来。例如,当待扩展节点不是起始节点时,这个待扩展节点的上一节点的曲率值是通过如下方式得到的:根据上述公式(1)和(2)确定出曲率范围后,对曲率范围采样、并计算采样得到的各曲率取值对应的代价值后,选择最小的代价值对应的曲率值得到。
可以理解的是,上述确定曲率变化范围的公式表征了本申请实施例的曲率的变化范围与行走的路程为线性关系。因此,在已知本次向外扩展对应的扩展长度s的情况下,可根据单位行程内曲率的最大和最小变化值(即dk_min和dk_max)计算整个扩展长度s内的曲率最大和最小变化值(即s*dk_min和s*dk_max),得到变化范围后再与本次向外扩展对应的待扩展节点的曲率值k_curr相加即得到曲率变化范围(即得到由kappa_min到kappa_max限定的曲率范围)。
第三步,在曲率变化范围内采样,得到与至少一个扩展节点中各扩展节点对应的目标曲率值。其中,一个扩展节点对应一个采样得到的目标曲率值。
具体地,根据第二步得到曲率变化范围后,在曲率变化范围内均匀采样得到一组等间隔的曲率(K1,K2,K3…Kn),然后分别将这些曲率作为n个扩展节点的目标曲率,在本次向外扩展选择的待扩展节点与n个扩展节点之间进行拟合计算(即执行下一步骤得到n条螺旋线的终点,即得到n各扩展节点)。例如,在本次向外扩展选择的待扩展节点与n个扩展节点之间进行拟合计算即根据已经获取的扩展长度s和获取的n个目标曲率值,获取n条螺旋线的终点坐标和移动设备在各终点处的朝向信息。其中,n为大于等于1的自然数。
第四步,根据第一步确定的螺旋线长度和第三步采样得到的n个曲率值确定n个终点,得到n个扩展节点(即获取n个扩展节点的坐标和移动设备在扩展节点处的朝向信息)。也就是说,遍历所有的n个采样曲率,每个曲率都会作为终点曲率被计算一条螺旋线,因此有n个采样曲率值,就有n条螺旋线。
下面示例性阐述根据扩展长度s和n个曲率采样值确定n条螺旋线对应的n个终点的计算过程。
当得到当前节点与n个扩展节点的曲率后,以螺旋线模型进行拟合计算得到n个终点。其中,螺旋线模型是指:曲线的曲率变化与行走路程成正比(即单位行程内曲率的变化即求曲率对位移的一阶导数:ψ=dk/ds,且ψ为恒定值),螺旋线扩展的方式在数学上的描述是:
k=k0+ψ(s1-s0) (6)
其中,θ0为已知的当前节点的朝向角度,θend为目标朝costobs,costs,costk,costh向角度(即到达扩展节点后移动设备的朝向角度);s0为从起始节点到当前节点之间螺旋线的长度和(即从起始节点至当前节点的各次向外扩展的扩展长度的和),s1为从起始节点到扩展节点之间的螺旋线的长度和(即从起始节点至扩展节点的各次向外扩展的扩展长度的和),其中,s0会存储在待扩展节点中,s1为s0和本次向外扩展计算的待扩展长度的和;x0和y0为已知的本次循环选择的待扩展节点的横坐标和纵坐标,x和y为本次向外扩展得到的扩展节点的横坐标和纵坐标;k0为本次向外扩展选择的待扩展节点的曲率值,k为扩展节点的曲率值,其中k为采样得到的n个曲率值中的一个。具体地,存储在待扩展节点中的s0值是通过叠加从起始节点至待扩展节点对应的每次向外扩展的扩展长度的和得到的。
需要说明的是,在利用上述公式(3)—(6)确定n个终点以得到n个扩展节点时的计算方式是从下到上的。具体地,从采样得到的n个曲率值中任意一个曲率值选择一个曲率值作为公式(6)中的曲率k,先通过公式(6)计算ψ的值(用于折线逼近螺旋线的迭代过程),之后在根据k值和公式(5)的表达式积分计算θend,之后再根据计算得到的θend和公式(4)和公式(3)分别计算横坐标x和纵坐标y。
由于上述公式(3)-公式(6)的积分结果不是初等函数,因此本申请的一些实施例采取离散累加的方式,以折线逼近螺旋线确定n个终点,对应的每次迭代的计算公式如下:
xt+1=xt+Δs*cosθtcosθt
yt+1=yt+Δs*sinθt
θt+1=θt+Δs*kt
kt+1=kt+Δs*ψ
其中,t代表当前迭代次数,Δs是通过第一步计算得到的本次向外扩展的扩展长度除以总迭代次数得到的,t的取值范围即总迭代次数可以根据实际需要预先设定。计算方式同样是从下到上:先计算k,再计算θ,再计算x,y。
下面以迭代次数等于10示例性阐述折线逼近螺旋线确定终点的计算过程。
设置最大迭代次数为10次(即t的最大取值为10),需要说明的是经过10次迭代后得到的曲率值与上述采样得到的n个曲率值中的之一对应。
设置最大迭代次数为10次
t=0:(x0,y0,θ0,k0)为当前节点的状态信息值
t=1:先计算k1=k0+Δsψ
再根据k0计算θ1=θ0+Δs*k0
再根据θ0计算x1=x0+Δs*cosθ0,y1=y0+Δs*sinθ0
t=2:先计算k2=k1+Δs*ψ
再根据k1计算θ2=θ1+Δs*k1
再根据θ1计算x2=x1+Δs*cosθ1,y2=y1+Δs*sinθ1
t=3依次类推..
直到t=10,结束并输出(x10、y10、θ10k10)作为螺旋线终点的值,即得到n个扩展节点中的一个扩展节点,其中,k10与采样得到n个曲率值的其中之一的对应,Δs是通过第一步计算得到的本次向外扩展的扩展长度除以总迭代次数10得到的。通过以上述迭代的方式求取n条螺旋线对应的n个终点的近似解,并以n个终点作为n个扩展节点放入开启列表openlist中。
S603,判断是否达到目的节点(例如,判断扩展节点中是否包括目的节点)或者超过设定的迭代次数,如果是,则路径规划结束,否则执行S604。
S604,根据代价函数计算各扩展节点的代价值。具体地,根据预先获取的代价地图确定各扩展节点的代价值,并对代价值按照从小到大的次序排列。
代价函数是用于衡量节点的好坏程度的,通常由多个部分加权得到。例如,在本申请的一些实施例中代价函数的计算共包含4项:扩展节点到最近障碍物的距离、扩展节点到起始节点的路程、扩展节点与本次待扩展节点相比曲率变化的绝对值、扩展节点到目的节点的距离。
作为本申请的一个示例,代价函数cost的计算公式如下:
cost=ωo *costobs+ωs *costs+ωk *costk+ωh *costh (7)
costk=Δk/(kmax-kmin) (8)
其中,ωo、ωs、ωk、ωh为预先确定的四个权重系数,costobs表征扩展节点到最近障碍物的距离,costs表征扩展节点到起始节点的路程s,costh表征扩展节点到目的节点的距离,costk表征曲率代价,Δk为扩展节点的曲率与其对应的待扩展节点的曲率之差的绝对值,kmax和kmin由移动设备自身的物理特性得到,分别表示移动设备所允许的最大曲率和最小曲率。可以理解是,上述公式(8)确定曲率代价的计算公式之所以除以(kmax-kmin)是为了将曲率代价值归一化到(0,1)区间。
需要说明的是,如何根据代价地图获取扩展节点到最近障碍物的距离并获取扩展节点到目的节点的距离,可以参考现有混合A*算法或者A*,为避免重复在此不做过多赘述。
S605,在计算完所有扩展节点的代价后,则开启列表中的扩展节点以代价升序排列,队列头的节点代价最低,因此被弹出队列成为新的待扩展节点,相应的下一次向外扩展对应的待扩展节点的曲率值(即下一次向外扩展的当前节点的曲率值)也就确定了。此后,算法回到S602将新的待扩展节点作为新一轮循环选择的待扩展节点重复上述过程,直到目的节点被找到或者迭代次数到达上限。可以理解的是,对于全局路径规划目的节点指代与具体货物输送任务对应的目标点,而对于局部路径规划该目的节点可以是由移动设备自身设置的移动结束点。
下面示例性阐述采用本申请的螺旋线和跳点法改进混合A*全局路径规划算法得到的路径规划方法。
第一步,把起始节点加入开启列表open list。
第二步,重复如下过程:
a.遍历开启列表open list(该列表用于存储备选扩展节点集合中的各节点),根据代价函数(如上述公式(7))查找代价值F(对应于cost)值最小的扩展节点,把它作为当前要处理的节点(即作为本次向外扩展的待扩展节点)。
b.把这个待扩展节点移到关闭列表close list。
c.对当前要处理的节点采用本申请实施例的跳点(即根据障碍物情况确定每次扩展的扩展步长)确定扩展长度并确定各扩展节点对应的螺旋线的曲率值进行向外扩展获取至少一个扩展节点,并对至少一个扩展节点中的每一个扩展节点根据代价地图分别作出如下判断:
如果它是不可抵达的或者它在关闭列表close list中,忽略它。否则,做如下操作:
如果它不在开启列表open list中,把它加入开启列表open list,并且把当前要处理的节点对应的方格设置为它的父亲(或者描述为把当前方格要处理的节点设置为父节点),记录该方格或者节点的代价值。
如果它已经在open list中,检查这条路径(即经由当前方格到达它那里)是否更好,用G值(即起始节点到当前的节点的路程)作参考。更小的G值表示这是更好的路径。如果是这样,把它的父亲设置为当前要处理的节点所在的方格,并重新计算它的G和F值。如果开启列表open list是按F值排序,改变后需要重新排序。
d.停止,当把目的节点加入到了开启列表open list中,此时路径已经找到了,或者查找目的节点失败,并且open list是空的,此时没有路径。
第三步,保存路径。从目的节点开始沿着父节点(来自于待扩展节点,具体过程参考上文)移动直至起始节点,这就是本申请改进混合A*后规划全局路径的一个具体示例。
图8为采用本申请的路径规划方法得到的一段规划路径,其中在这条路径上包括起始节点101,也是首次向外扩展的待扩展节点,通过第一次向外扩展(简称外扩)后得到三个扩展节点,即第一扩展节点111、第二扩展节点112以及第三扩展节点113。图8中连接起始节点和第一扩展节点111、第二扩展节点112以及第三扩展节点113,这三个扩展节点的三条螺旋线的长度相等且是根据起始节点101与最近障碍物的距离确定的,此外,连接起始节点101和这三个扩展节点的曲率也是在确定的曲率范围内三次均匀采样得到的。结合图8不难发现,采用本申请的实施例向外扩展方法各次向外扩展对应的扩展长度不同,具体地,图8的第一次扩展和第二次扩展对应的扩展步长较大(即螺旋线的长度较长),且扩展的节点数量较多(结合上述一些实施例扩展曲率范围与扩展长度成正比),而第三次扩展对应的扩展长度较短,这是由于第三次向外扩展对应的待扩展节点与最近障碍物的距离较近所以扩展长度变小,且第三次向外扩展对应的扩展节点的数目也较少,如图8的第三次向外扩展仅得到一个扩展节点。
需要说明的是,如果图8是改进混合A*得到的,则图8中的起始节点以及各次从扩展节点中选择的新的待扩展节点均是存放在关闭列表closelist中的节点。具体地,图8起始节点101和第二扩展节点112均是存放在closelist中,结合图8可以看出第二扩展节点112是从第一次向外扩展得到的三个节点中选择的代价最小的新的待扩展节点(即本次向外扩展的当前节点),第二次向外扩展是以第二扩展节点112作为待扩展节点进行再次向外扩展的。此外,图8的中的位于各次扩展路径上的各扩展节点之外的小的节点是与栅格对应的节点,这些节点可以是存储于openlist中的节点。
结合图8不难理解,与相关技术每次扩展步长相等的方案相比本申请每次扩展步长不同(即图8的三段粗线对应的长度不同),对于障碍物分布稀疏的地方对应的扩展步长较长,有效提升了路径搜索的速度。另外,图8根据螺旋线形式向外扩展得到的规划路径(图8中的粗实线连接的路径)平滑性更好,有利于移动设备执行。
请参考图9,图9示出了本申请实施例提供的路径规划的装置,应理解,该装置与上述图6方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该移动设备的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。图9的装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该路径规划的装置,包括:扩展节点获取模块801,被配置为从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点;选择模块802,被配置为从备选扩展节点集合中选择一个或多个扩展节点作为新的待扩展节点,重复上述过程直至搜索到目的节点,其中,所述备选扩展节点集合包括所述至少一个扩展节点;路径生成模块803,被配置为根据所有的待扩展节点和所述目的节点得到规划路径。
在一些实施例中,选择模块802还被配置为:根据代价函数确定所述备选扩展节点集合中各扩展节点代价值;将与最小代价值对应的扩展节点作为新的待扩展节点,以新的待扩展节点开始,以螺旋线形式继续向外扩展获取至少一个扩展节点,直至搜索到所述目的节点。
在一些实施例中,扩展节点获取模块801还被配置为:从所述待扩展节点开始,根据不同曲率值对应的螺旋线向外扩展获取所述至少一个扩展节点。
在一些实施例中,扩展节点获取模块801还被配置为:确定曲率变化范围;在所述曲率变化范围进行采样,获取所述不同曲率值。
在一些实施例中,扩展节点获取模块801还被配置为:根据所述待扩展节点与障碍物的距离确定所述螺旋线的扩展长度;根据所述扩展长度的螺旋线向外扩展获取所述至少一个扩展节点。
在一些实施例中,扩展节点获取模块801还被配置为:根据所述待扩展节点与障碍物之间的距离确定所述螺旋线的扩展长度,其中,所述扩展长度与所述距离成正比;根据所述待扩展节点的曲率和所述扩展长度确定曲率变化范围,其中,所述扩展长度越大则确定的所述曲率变化范围越大;对所述曲率变化范围进行采样,获取多个不同的曲率值;确定所述多个不同的曲率值中各曲率值对应的所述扩展长度的螺旋线的终点,得到所述至少一个扩展节点。
需要说明的是,图9的路径规划装置可以设置于移动设备上用于实现局部路径规划,也可以设置于控制端用于实现全局路径规划。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述路径规划的方法中的对应过程,在此不再过多赘述。
本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现上述路径规划方法。
如图10所示,本申请的一些实施例提供一种智能输送系统900,所述智能输送系统900包括:控制端901,该控制端901被配置为:从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点,其中,所述待扩展节点包括起始节点;从备选扩展节点集合中选择新的待扩展节点,重复上述过程直至搜索到目的节点,其中,所述备选扩展节点集合包括所述至少一个扩展节点;根据所有的待扩展节点和所述目的节点得到全局规划路径;向移动设备发送所述全局规划路径;移动设备902,该移动设备902被配置为:接收所述全局规划路径;根据所述控制端生成的全局规划路径从所述起始节点移动至所述目的节点。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述路径规划的方法中的对应过程,在此不再过多赘述。
如图11所示,本申请的一些实施例提供一种电子设备1100,包括存储器1110、处理器1120以及存储在所述存储器1110上并可在所述处理器1120上运行的计算机程序,其中,所述处理器1120通过总线1130从存储器1110读取程序并执行所述程序时可实现上述图6所示的路径规划的方法。
处理器1120可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器1120可以是微处理器。
存储器1110可以用于存储由处理器1120执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器1120可以用于执行存储器1110中的指令以实现图6中所示的方法。存储器1110包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
需要说明的是,本申请实施例的电子设备包括控制端或者移动设备,其中,控制端用于全局路径规划,移动设备用于局部路径规划。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述路径规划的方法中的对应过程,在此不再过多赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (16)
1.一种路径规划的方法,其特征在于,所述方法包括:
从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点;
从备选扩展节点集合中选择一个或多个扩展节点作为新的待扩展节点,重复上述过程直至搜索到目的节点,其中,所述备选扩展节点集合包括所述至少一个扩展节点;
根据所有的待扩展节点和所述目的节点得到规划路径。
2.如权利要求1所述的方法,其特征在于,所述从备选扩展节点集合中选择新的待扩展节点,包括:
确定所述备选扩展节点集合中各扩展节点的代价值;
将与最小代价值对应的扩展节点作为所述新的待扩展节点。
3.如权利要求1或2所述的方法,其特征在于,所述从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点,包括:
从所述待扩展节点开始,根据不同曲率值对应的螺旋线向外扩展获取多个扩展节点。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
确定曲率变化范围;
在所述曲率变化范围进行采样,获取所述不同曲率值。
5.如权利要求1至4中任一项所述的方法,其特征在于,所述从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点,包括:
根据所述待扩展节点与障碍物之间的距离确定所述螺旋线的扩展长度;
根据所述扩展长度的螺旋线向外扩展获取所述至少一个扩展节点。
6.如权利要求1或2所述的方法,其特征在于,所述从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点,包括:
根据所述待扩展节点与障碍物之间的距离确定所述螺旋线的扩展长度,其中,所述扩展长度与所述距离成正比;
根据所述待扩展节点的曲率和所述扩展长度确定曲率变化范围,其中,所述扩展长度越大则确定的所述曲率变化范围越大;
对所述曲率变化范围进行采样,获取多个不同的曲率值;
确定所述多个不同的曲率值中各曲率值对应的所述扩展长度的螺旋线的终点,得到多个扩展节点。
7.如权利要求6所述的方法,其特征在于,所述曲率变化范围的计算公式为:
kappa_min=k_curr+s*dk_min
kappa_max=k_curr+s*dk_max
其中,kappa_min表征向外扩展本次选择的待扩展节点得到的候选扩展节点的最小曲率值,kappa_max所述候选扩展节点的最大曲率值,k_curr为所述本次选择的待扩展节点的曲率值,dk_min表征单位行程内曲率最小变化值,dk_max表征单位路程内曲率最大变化值,s表征所述扩展长度。
8.如权利要求6至7中任一项所述的方法,其特征在于,所述确定所述多个不同的曲率值中各曲率值对应的所述扩展长度的螺旋线的终点,得到多个扩展节点,包括:以折线逼近螺旋线的迭代方式确定所述各曲率值对应的螺旋线终点,得到所述多个扩展节点。
9.如权利要求2至8中任一项所述的方法,其特征在于,第一扩展节点的代价值与所述第一扩展节点相对于所述待扩展节点的曲率变化的绝对值相关,其中,所述第一扩展节点为备选扩展节点集合中的任意一个节点。
10.如权利要求9所述的方法,其特征在于,所述代价值还与所述第一扩展节点到障碍物的第一距离,所述第一扩展节点到起始节点的路程和所述第一扩展节点到所述目的节点的第二距离相关。
11.如权利要求10所述的方法,其特征在于,所述代价值是通过对所述曲率变化的绝对值、所述第一距离、所述路程以及所述第二距离的加权求和表征的。
12.如权利要求1至11中任一项所述的方法,其特征在于,所述备选扩展节点集合中的节点存储在第一列表中;
所述从备选扩展节点集合中选择一个或多个扩展节点作为新的待扩展节点,包括:
将所述第一列表中的各节点按照代价值升序排列,并将列表头的节点作为所述新的待扩展节点;
将所述新的待扩展节点移动至第二列表;
所述根据所有的待扩展节点和所述目的节点得到规划路径,包括:
连接所述第二列表中的节点和所述目的节点组成所述规划路径。
13.一种路径规划的装置,其特征在于,所述装置包括:
扩展节点获取模块,被配置为从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点;
选择模块,被配置为从备选扩展节点集合中选择一个或多个扩展节点作为新的待扩展节点,重复上述过程直至搜索到目的节点,其中,所述备选扩展节点集合包括所述至少一个扩展节点;
路径生成模块,被配置为根据所述待扩展节点和所述目的节点得到规划路径。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现权利要求1-12中任意一项权利要求所述的方法。
15.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权利要求1-12任意一项权利要求所述的方法。
16.一种智能输送系统,其特征在于,所述智能输送系统包括:
控制端,被配置为:
从待扩展节点开始,以螺旋线形式向外扩展获取至少一个扩展节点,其中,所述待扩展节点包括起始节点;
从备选扩展节点集合中选择新的待扩展节点,重复上述过程直至搜索到目的节点,其中,所述备选扩展节点集合包括所述至少一个扩展节点;
根据所有的待扩展节点和所述目的节点得到全局规划路径;
向移动设备发送所述全局规划路径;
移动设备,被配置为:
接收所述全局规划路径;
根据所述控制端生成的全局规划路径从所述起始节点移动至所述目的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110456952.4A CN113375686A (zh) | 2021-04-26 | 2021-04-26 | 路径规划的方法、装置以及智能输送系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110456952.4A CN113375686A (zh) | 2021-04-26 | 2021-04-26 | 路径规划的方法、装置以及智能输送系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113375686A true CN113375686A (zh) | 2021-09-10 |
Family
ID=77570068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110456952.4A Pending CN113375686A (zh) | 2021-04-26 | 2021-04-26 | 路径规划的方法、装置以及智能输送系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113375686A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114111788A (zh) * | 2021-11-09 | 2022-03-01 | 武汉乐庭软件技术有限公司 | 一种基于多段回旋线的轨迹规划的方法、设备及存储设备 |
CN115063324A (zh) * | 2022-08-16 | 2022-09-16 | 中国电子科技集团公司第二十八研究所 | 一种用于数据稀疏岛礁的边线平滑外推方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109375211A (zh) * | 2018-12-10 | 2019-02-22 | 西安电子科技大学 | 基于雷达和多光学设备的可移动无人平台目标搜索方法 |
CN110543190A (zh) * | 2018-12-10 | 2019-12-06 | 西安电子科技大学 | 智能目标搜索中无人设备的路径规划方法 |
CN111369066A (zh) * | 2020-03-09 | 2020-07-03 | 广东南方数码科技股份有限公司 | 路径规划方法、装置、电子设备及可读存储介质 |
CN111397624A (zh) * | 2020-03-27 | 2020-07-10 | 湖南大学 | 一种基于JPS和Hybrid A*的全局路径规划方法 |
CN111879328A (zh) * | 2020-07-07 | 2020-11-03 | 清华大学 | 一种越野环境下基于势能场概率图的智能车路径规划方法 |
CN112013846A (zh) * | 2020-08-18 | 2020-12-01 | 南京信息工程大学 | 一种结合动态步长rrt*算法和势场法的路径规划方法 |
CN112114584A (zh) * | 2020-08-14 | 2020-12-22 | 天津理工大学 | 一种球形两栖机器人的全局路径规划方法 |
CN112486178A (zh) * | 2020-12-03 | 2021-03-12 | 哈尔滨理工大学 | 一种基于有向d*算法的动态路径规划方法 |
CN112506230A (zh) * | 2020-11-19 | 2021-03-16 | 西安电子科技大学 | 基于螺旋线的群组移动性模型构建方法 |
CN112650256A (zh) * | 2020-12-30 | 2021-04-13 | 河南大学 | 一种基于改进双向rrt机器人路径规划方法 |
-
2021
- 2021-04-26 CN CN202110456952.4A patent/CN113375686A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109375211A (zh) * | 2018-12-10 | 2019-02-22 | 西安电子科技大学 | 基于雷达和多光学设备的可移动无人平台目标搜索方法 |
CN110543190A (zh) * | 2018-12-10 | 2019-12-06 | 西安电子科技大学 | 智能目标搜索中无人设备的路径规划方法 |
CN111369066A (zh) * | 2020-03-09 | 2020-07-03 | 广东南方数码科技股份有限公司 | 路径规划方法、装置、电子设备及可读存储介质 |
CN111397624A (zh) * | 2020-03-27 | 2020-07-10 | 湖南大学 | 一种基于JPS和Hybrid A*的全局路径规划方法 |
CN111879328A (zh) * | 2020-07-07 | 2020-11-03 | 清华大学 | 一种越野环境下基于势能场概率图的智能车路径规划方法 |
CN112114584A (zh) * | 2020-08-14 | 2020-12-22 | 天津理工大学 | 一种球形两栖机器人的全局路径规划方法 |
CN112013846A (zh) * | 2020-08-18 | 2020-12-01 | 南京信息工程大学 | 一种结合动态步长rrt*算法和势场法的路径规划方法 |
CN112506230A (zh) * | 2020-11-19 | 2021-03-16 | 西安电子科技大学 | 基于螺旋线的群组移动性模型构建方法 |
CN112486178A (zh) * | 2020-12-03 | 2021-03-12 | 哈尔滨理工大学 | 一种基于有向d*算法的动态路径规划方法 |
CN112650256A (zh) * | 2020-12-30 | 2021-04-13 | 河南大学 | 一种基于改进双向rrt机器人路径规划方法 |
Non-Patent Citations (1)
Title |
---|
杨栋瑀: "无人水面船的路径规划的研究", 中国优秀硕士学位论文全文数据库信息科技辑, no. 2, pages 39 - 51 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114111788A (zh) * | 2021-11-09 | 2022-03-01 | 武汉乐庭软件技术有限公司 | 一种基于多段回旋线的轨迹规划的方法、设备及存储设备 |
CN115063324A (zh) * | 2022-08-16 | 2022-09-16 | 中国电子科技集团公司第二十八研究所 | 一种用于数据稀疏岛礁的边线平滑外推方法 |
CN115063324B (zh) * | 2022-08-16 | 2022-11-25 | 中国电子科技集团公司第二十八研究所 | 一种用于数据稀疏岛礁的边线平滑外推方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976350B (zh) | 多机器人调度方法、装置、服务器及计算机可读存储介质 | |
CN109059924B (zh) | 基于a*算法的伴随机器人增量路径规划方法及系统 | |
Niroui et al. | Deep reinforcement learning robot for search and rescue applications: Exploration in unknown cluttered environments | |
CN109782763B (zh) | 一种动态环境下的移动机器人路径规划方法 | |
WO2023155371A1 (zh) | 室内移动机器人的平稳移动全局路径规划方法 | |
US8849559B2 (en) | Apparatus and method for generating and using a grid map path | |
CN111504325A (zh) | 一种基于扩大搜索邻域的加权a*算法的全局路径规划方法 | |
CN109163722B (zh) | 一种仿人机器人路径规划方法及装置 | |
CN109947120B (zh) | 仓储系统中的路径规划方法 | |
CN113375686A (zh) | 路径规划的方法、装置以及智能输送系统 | |
CN113189988B (zh) | 一种基于Harris算法与RRT算法复合的自主路径规划方法 | |
CN109341698B (zh) | 一种移动机器人的路径选择方法及装置 | |
CN108876024A (zh) | 路径规划、路径实时优化方法及装置、存储介质 | |
CN111966097A (zh) | 基于栅格地图区域化探索的建图方法、系统以及终端 | |
JP7047576B2 (ja) | 地図作成装置 | |
Fermin-Leon et al. | TIGRE: Topological graph based robotic exploration | |
CN115167474A (zh) | 一种移动机器人路径规划优化方法 | |
CN116203965A (zh) | 一种基于agv的改进蚁群算法的路径规划算法 | |
Sarmiento et al. | An efficient strategy for rapidly finding an object in a polygonal world | |
Xu et al. | An efficient algorithm for environmental coverage with multiple robots | |
CN108731678A (zh) | 机器人全局路径规划方法 | |
CN109048910B (zh) | 机器人避让预判方法及装置 | |
CN116764225A (zh) | 一种高效寻路的处理方法、装置、设备及介质 | |
CN116858253A (zh) | 一种适用室内环境的轻量性预测式导航方法及系统 | |
CN114343490B (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 |