连续地图例如多边形的寻路算法

问题描述

我尝试研究具有多边形障碍物的平面中两点之间的短路径的不同算法。我发现绝大多数算法都使用离散地图(网格地图,可见性图,Voronoi路线图等)。有些书(例如Ben-Ari撰写的“机器人要素”或Nikolaus Correll撰写的“自主机器人简介”)都提到了连续地图(例如原始多边形数据),但没有解释相应的算法。他们声称记忆或效率优势对很少且简单的障碍很重要,这对我来说很有趣。

我相信,应该有一种使用几何计算(例如交点检测)和某些算法范式(例如最小成本分支定界)的巧妙方法,但是我不想糟糕地重新发明轮子。

对于使用连续映射或有用关键字进行搜索的最短路径算法,是否有资源?


就像建议的那样,我尝试指定一些我使用的术语:

连续映射 (请参见Fig.)是指几何形状的(连续)实数值的存储。障碍物/三角形I.将存储为:A =(3,2),B =(7,5),C =(7,2)。

离散地图 (请参见Fig.)是指将细分划分为多个块(离散化,例如在网格图中)。障碍物/三角形I.现在将存储为单元格索引:(3,2),(4,2),(5,2),(6,3),(6,3),( 6,4) 离散地图中的寻路通常是通过基于图的算法(例如Dijkstra或A *)来完成的。

几何计算 只是一个模糊的术语,我希望用于连续地图的寻路算法中的计算几何运算。 (例如平移,垂直距离,交点检测)

解决方法

对于您所说的“连续贴图”,只需在所有顶点上使用Dijkstra。 唯一的区别是在计算节点之间的距离时必须检查裁剪。

,

我的问题的另一个更常用的术语似乎是欧几里德最短路径连续图离散图的算法之间的区别对我来说似乎有点模棱两可。

但是,我发现的与连续地图算法最接近的东西是 Mitchell的连续Dijkstra问题算法(或连续Dijkstra方法)。 该算法使用从起点开始均匀扩散的小波。通过小波的“衍射”,它们到达无法直接到达的区域。这将创建一条最短路径映射,该映射可用于标识到连续配置空间中任意点的欧几里德最短路径。

有关更多信息,请参见:

也许有人会说,所创建的最短路径图只是连续配置空间的另一种离散化。但是,我猜最短路径映射只是将算法应用于整个配置空间的结果。如果仅需要两点之间的最短路径,则算法可以在到达目标点后停止。 我仍然不确定这些算法的分类,但这应该可以回答我的问题。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...