Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 基本连续二维地图探索(带障碍物)算法_Algorithm_Mapping_2d_Robotics - Fatal编程技术网

Algorithm 基本连续二维地图探索(带障碍物)算法

Algorithm 基本连续二维地图探索(带障碍物)算法,algorithm,mapping,2d,robotics,Algorithm,Mapping,2d,Robotics,问题是:有一张地图的大小在200*200像素到1000*1000像素之间。每个像素的长度/宽度为三分之一英寸 地图有来自它的墙(可以是任何大小),并且可以通过任何方式进行预处理。然而,当问题开始时,一个机器人(像素大小为18*18)被放置在未知位置,以及几个障碍物和一个目标,所有这些都位于未知位置 如果机器人撞到任何墙壁/物体/目标,它会立即死亡。因此,它有一个简单的激光扫描仪,可以完美地看到前面80*80像素的正方形,以机器人为中心 我已经解决了定位机器人并确定其在网格上的位置(在小误差范围内

问题是:有一张地图的大小在200*200像素到1000*1000像素之间。每个像素的长度/宽度为三分之一英寸

地图有来自它的墙(可以是任何大小),并且可以通过任何方式进行预处理。然而,当问题开始时,一个机器人(像素大小为18*18)被放置在未知位置,以及几个障碍物和一个目标,所有这些都位于未知位置

如果机器人撞到任何墙壁/物体/目标,它会立即死亡。因此,它有一个简单的激光扫描仪,可以完美地看到前面80*80像素的正方形,以机器人为中心

我已经解决了定位机器人并确定其在网格上的位置(在小误差范围内)的问题。我在制定一个好的算法来遍历整个地图直到找到目标时遇到了一些麻烦

我的想法是让机器人走到右下角,以某种方式从左到右扫荡,避开障碍物和墙壁,直到找到目标,但是我不确定有什么好方法可以做到这一点


对于这样的事情,有没有合适的算法,或者有没有更好的算法适合我正在尝试做的事情?

我想到的唯一算法就是简单的Lee算法。关于它的功能和工作原理的相当不错的教程

使用这种算法,你应该能够找到所有的障碍,最终找到目标,你也会找到最短的路径目标


唯一的区别是您必须移动一个80x80对象而不是1x1对象,但我将让您处理实现这一点的方式。

您正在寻找寻路算法

一些建议包括“算法”或“Dijkstra算法”,与Lee的算法非常相似(我甚至可能认为它们是相同的),但这只是另一个搜索术语

这可能是最流行的简单路径查找算法:“(星型搜索)此链接还展示了一些其他路径查找算法。(另一个有用的例子)

星空搜索的关键是你必须知道你在哪里(本地化)以及目标在哪里。Dijkstra型算法能够在事先不知道目标位置的情况下找到目标