在真实 3D 环境(例如建筑物)中寻路

Pathfinding in real 3D environments (e.g Buildings)

本文关键字:建筑物 寻路 真实 3D 环境      更新时间:2023-10-16

是否有一种路径查找算法也适用于真实的3D环境,例如具有多个楼梯的真实建筑物等。C++库或开放式实现会很棒;-)我看到的一个解决方案是 Djikstra,但我想知道是否有更优化的解决方案。正常的 A* 不会比 Djikstra 工作得更好,因为距离启发式效果不佳(位于目的地上方一层)。我目前正在考虑的另一个解决方案是在 2D 图形上映射 3D 环境。因此,如果有一些可用的C++实现/库以这种方式进行,那也会有所帮助。

如果路径必须考虑到穿越障碍物的能力(即运动是空间中已知体积的某个实体的运动),那么我建议查看有关机器人运动规划的文献。配置空间的概念允许您处理姿势的变化以处理障碍物。参见让-克洛德·拉托姆贝的经典教科书

对于更简单的场景,您可能可以使用第一人称计算机游戏中使用的路径规划算法,这些算法类似于Dijkstra,A*(示例)

对于近似算法,您可以轻松地将 3d 映射到 1d 曲线,并使用格雷码遍历八叉树。这样,您就可以对每个路径重新排序。我不知道是否可以保证在最佳解决方案范围内,但它必须比任何启发式方法更好。