使用voronoi进行寻路

时间:2016-07-04 12:28:02

标签: algorithm computational-geometry

我的大学项目已经走到了尽头,我无法找到解决方法。问题是:

给定半径为r的圆形机器人(绿色圆圈) 我需要找到一个路径(任何路径不是最好的)到终点,即蓝点。

图片

  • 障碍物是红色多边形,周围是青色线 代表Minkowski总和。

  • 黑点代表voronoi图。

  • 周围的蓝框是外边框

首先,我应该找到起点(机器人)的较近点和voronoi图点的终点。这些点显示在图像中(青色点)。

然后我想着像A *这样的算法之王来搜索上面沿着voronoi点找到的青色点的路径,这样我就会找到最安全的路径。

问题是我没有办法知道voronoi图中每个点的邻居是哪个。因为正如您在图表的某些部分所看到的那样,存在很大差距。

Image

那你有什么建议?

感谢您的时间。

2 个答案:

答案 0 :(得分:1)

  1. 创建代表地图的黑白图像。它应该从全黑开始。
  2. 将障碍物变为白色。
  3. 使用圆形机器人大小的圆形过滤器扩大图像。
  4. 找到从A到B的最短路径,只能遍历黑色像素。
  5. Pathfinding

答案 1 :(得分:0)

  

问题在于我无法知道Voronoi图中每个点的邻居是哪个。因为正如您在图表的某些部分所看到的那样,存在很大差距。

可能有更好的解决方案,但这是一个你可以尝试的简单算法:

  1. 查找(或手动设置)“连接”点之间的最长距离D.

  2. 制作一张Voronoi图中每对点之间的距离表,其中该距离小于或等于D.

  3. 以较短距离开始连接所有点,除非它们之间已存在比D短的路径(以避免不必要的小环和切角)。

  4. 找到距机器人最近的点和距离目的地最近的点。

  5. 在您在步骤3中构建的图表上运行最短路径算法。