我有许多连续的2D形状,我想以某种分辨率映射到离散NxM网格上,然后在离散空间中运行路径规划算法。有什么方法或算法可以做到这一点?
答案 0 :(得分:0)
这基本上取决于实施细节和主要方案。
如果地图不是很频繁地更改,并且您想多次使用它,则可以对地图进行预处理以填充网格上的障碍物,以便检查是否可以通过单元格a快速简便的任务。
相反的方法是分开放置障碍。在这里,您可以赢得预处理时间,但是检查障碍会消耗大量计算资源(您需要检查所有2D形状以了解是否越线),而您的主要目标是对其进行优化。明显的优化之一是边界框(请参阅与轴对齐的最小边界框https://en.wikipedia.org/wiki/Minimum_bounding_box)或边界圆(请参见边界球https://en.wikipedia.org/wiki/Bounding_sphere)。想法是检查2DShape(如果只有您在附近),然后轻松检查是否远离障碍物。在轴对齐的边界框中,您需要同时检查 x_min <= x <= x_max 和 y_min <= y <= y_max ,如果需要绘制圆,则需要选中一个< strong>(x-x0)^ 2 +(y-y0)^ 2 <= r ^ 2 更好。
您可以尝试通过以下方式使用缓存来结合这两种方法:
例如,如果它是问题(https://en.wikipedia.org/wiki/A * _ search_algorithm)的一部分,还需要使用 A * 来实现寻路算法,并需要检查该点是否在2D共享内(选项之一是http://alienryderflex.com/polygon/)