从可行走点生成导航网格(3D)

本文关键字:网格 导航 3D | 更新日期: 2023-09-27 18:29:23

交易如下-我正在开发一种算法/库,该算法/库能够在几乎任何环境中生成导航网格,在任何环境中,我都可以获得受控代理和/或同一static环境中其他代理的坐标。我唯一的输入是一个代理访问过的点的集合。(请参阅此处的图片,希望能理解我的意思)

我已经到了可以手动创建导航网格并在它们上导航的地步。然而,在更大的环境中,只有受控代理的坐标,手动操作非常乏味和耗时

对我来说,这种算法/库的用途是显而易见的,但我已经花了很多心思,所以我将列出我想完成的几件事:

  • 机器人(扫描环境,只获取从自身到某个点的距离,从而获得坐标-无需复杂的图像/视频处理)
  • 能够通过探索未知和看不见的迷宫(任何形状或大小)的人工智能
  • 记录步行区域,并为不知道某些地方的游戏创建人工智能,除非他们去过那里

现在你希望看到我在寻找什么样的解决方案。

我试过几件事,但都想不通。我尝试过的最成功的事情之一是给每个点一个范围(创建一个圆圈),然后寻找有重叠圆圈的地方——你很可能会在这些区域移动。这种方法的问题始于区域的三角测量。生成的网格可能有点不准确,但它必须能够无缝连接到网格的现有("发现的")部分(并非所有东西都必须以某种方式互连,因为代理可以消失和重新出现,但在合理的距离内,连接网格)。

更多信息:我在C#中工作,尽管java、C++/C、objective C、伪代码等的解决方案同样可以接受。

附言:我对"只使用这个库"或"使用其他语言/环境"等答案一点也不感兴趣……我想要一个算法。提前谢谢。

从可行走点生成导航网格(3D)

我可以帮助2D路径查找。你需要找到红色的轮廓。然后,您可以使用带有红色轮廓的voronoi图(而不是代理点)。删除红色轮廓外的所有边,剩余的边可用于某人/某物浏览形状。阅读相关内容:http://www.cs.columbia.edu/~pblaer/projects/path_planner/。