真实2D区域中的Java寻路

真实2D区域中的Java寻路,java,algorithm,multidimensional-array,path-finding,lidar,Java,Algorithm,Multidimensional Array,Path Finding,Lidar,我正在做一个研究项目,用树莓皮和激光雷达二维扫描仪定位遥控车。基本上,一辆汽车会用扫描仪穿过这个地方,得到这个地方的二维表示,然后它会回到起点。之后,您将能够在适当的位置选择一个点,它将在其中找到一条路径。因为我几乎是编程新手,所以在一个月内几乎不可能做到这一点,但我会尽我最大的努力:现在我想知道的是我应该使用哪种寻路算法?由于2D place的分辨率大约为5000 x 5000像素,以厘米为单位表示该位置,因此我认为我需要一个非常有效的分辨率。是否有任何特定的算法可以在树莓pi上运行得足够快,

我正在做一个研究项目,用树莓皮和激光雷达二维扫描仪定位遥控车。基本上,一辆汽车会用扫描仪穿过这个地方,得到这个地方的二维表示,然后它会回到起点。之后,您将能够在适当的位置选择一个点,它将在其中找到一条路径。因为我几乎是编程新手,所以在一个月内几乎不可能做到这一点,但我会尽我最大的努力:现在我想知道的是我应该使用哪种寻路算法?由于2D place的分辨率大约为5000 x 5000像素,以厘米为单位表示该位置,因此我认为我需要一个非常有效的分辨率。是否有任何特定的算法可以在树莓pi上运行得足够快,几乎可以立即完成这项工作?如果有,是否有任何有效的实施

其他一些信息: 我使用的是“像素”2D数组,其中的值表示:

EMPTY_SPACE = 0
FILLED_SPACE = 1
START_POINT = 2
END_POINT = 3
PROCESSING = 4
PROCESSED = 5
VISUAL_ASSISTANCE_POINTS = 6
还有第二个可选参数,它表示到终点的距离,因为我发现这是寻路所必需的

你可能会发现这是一个重复:,但我并没有真正找到解决我所有问题的方法,因为我正在寻找更具体的答案

编辑:

我发现代码实现了一个*算法,但我发现它非常慢。。。有没有办法加快速度?我使用了下面的相关图片来测试它,大约花了80分钟来解决。

是您最好的选择之一。它广泛应用于需要在二维网格中找到a和B之间路径的游戏中。它使用试探法来识别有利的节点,如果您愿意,可以称之为像素,从而获得良好的性能,尽管这取决于您选择试探法功能的程度。与任何特定/高度优化的算法相比,实现起来非常简单。此外,还有各种可用的实现

至于几乎是瞬间的速度,我怀疑你单靠算法是无法做到的。当需要此类性能时,需要应用特定于域的修改。一种解决方案可能是预先计算某些路径。对于5000x5000网格,路径可能表示单个节点到其他每个节点的完整映射,这是不实际的。或者,预先计算的路径可以将网格中的节点块视为单个节点,即从0..10,0..10中的区域x,y开始,进入10..20,0..10中的区域x,y的任何移动都使用单个预先计算的路径。这可能不会为您提供最佳路径,但肯定会更快。与计算中几乎所有的东西一样,内存和速度之间始终存在着权衡

同样值得澄清的是,问题中的像素是否指汽车的单个运动单元。可能是面积为5000x5000,但汽车一次实际占用50像素。然后,您可以使用单个节点表示50个像素,以加快计算速度并获得更精确的结果。

是最佳选择之一。它广泛应用于需要在二维网格中找到a和B之间路径的游戏中。它使用试探法来识别有利的节点,如果您愿意,可以称之为像素,从而获得良好的性能,尽管这取决于您选择试探法功能的程度。与任何特定/高度优化的算法相比,实现起来非常简单。此外,还有各种可用的实现

至于几乎是瞬间的速度,我怀疑你单靠算法是无法做到的。当需要此类性能时,需要应用特定于域的修改。一种解决方案可能是预先计算某些路径。对于5000x5000网格,路径可能表示单个节点到其他每个节点的完整映射,这是不实际的。或者,预先计算的路径可以将网格中的节点块视为单个节点,即从0..10,0..10中的区域x,y开始,进入10..20,0..10中的区域x,y的任何移动都使用单个预先计算的路径。这可能不会为您提供最佳路径,但肯定会更快。与计算中几乎所有的东西一样,内存和速度之间始终存在着权衡


同样值得澄清的是,问题中的像素是否指汽车的单个运动单元。可能是面积为5000x5000,但汽车一次实际占用50像素。然后,您可以使用单个节点表示50个像素,以加快计算速度并获得更精确的结果。

当然值得一读:*u搜索_algorithm@Manu链接由于*,,而出错。当然值得一读:*u搜索_algorithm@Manu由于*,链接出错,。我一直在做一些进一步的研究,并找到了解释跳转点搜索JPS如何工作并帮助我优化搜索的网站。我一直在做一些进一步的研究,并找到了解释跳转点搜索JPS如何工作并帮助我优化搜索的网站。