算法研究机器人

我正在尝试开发一个尝试找到标志的机器人算法 /未知/, 它位于一个包含障碍的世界。 机器人的使命是捕捉旗帜并将其带到他的家庭基地/这呈现了其初始位置/. 机器人,在每一步,只看到有限的环境 /

他提前不知道世界看起来像什么

/, 但他有一个无限的内存,用于存储已经访问过的细胞。

我正在寻找有关如何有效的建议。 特别是在第一部分,即到达旗帜。
已邀请:

冰洋

赞同来自:

宽度简单 / 深度将工作,虽然慢慢地。 一定要禁止机器人检查多次具有相同方格的路径,因为这将导致这些算法在标准情况下工作得多,而无限较长,以便实现旗帜的不可能。

A * - 这是一种更优雅的方法,特别是如果您知道旗帜的位置。
http://en.wikipedia.org/wiki/A%2a_search_algorithm
, 像往常一样,对此的解释做出了体面的工作。 使用的经典启发式是曼宁距离 /涉及缺失障碍的动作数量/ 到目的地。

这些算法可用于反向行程。 - 没有那么多 "finding the flag".

编辑:

这些方法包括创建代表卡上的正方形的对象以及创作 "paths" 或影响的系列正方形 /或执行的步骤/. 创建用于呈现正方形的结构后,搜索使用的问题将成为一个更不太复杂的任务。

此类应该能够获取邻居方块的列表,并知道它是可通过的。

鉴于您没有所有信息,请尝试仅考虑未探测的瓷砖,如易用并重新计算,如果您发现它不是。

编辑:

至于捕获未知对象的未知区域......

你可以使用类似的东西
http://en.wikipedia.org/wiki/M ... rithm
, 直到找到空间的界限,沿途录制所有信息。 然后使用您喜欢的漂移算法查看所有看不见的方块/搜索路径。 如果在某些时候,您将看到旗帜的长路径,请停止您所做的,并使用您喜欢的路径搜索算法返回Home。

龙天

赞同来自:

部分地点将是搜索路径,例如,
http://en.wikipedia.org/wiki/A-star
A* .

其中一部分是一项研究。 任何带有未知邻居的笼子就是探索。 最好探索位于最靠近机器人的细胞,并具有最大的未探索区域。

如果机器人看到墙壁,那么一些侦察候选者可能无法使用,即使标志已经可见,也可能需要智能。

每次检测到新的小区时都可以高估当前目标。 虽然只有在找到新的单元格时才完成,但将始终实现进展。

奔跑吧少年

赞同来自:

使用简单的搜索 DFS, 至少你会找到标志:/

冰洋

赞同来自:

好吧,有两部分。
1/ 搜索标志。
2/ 回归

至于搜索,我赢得了起点,每次搬出全循环。 因此,您可以搜索每个方块并确定它是否是清晰的点,障碍物,边界边界或旗帜。 因此,您可以创建环境的地图。

找到标志后,您可以以相同的方式返回,也可以找到更直接的路由。 如果这是一个更直接的路由,那么您必须使用您创建的卡来查找直接路由。

君笑尘

赞同来自:

你想要的是找到所有 minimal-spanning-tree 在机器人查看窗口中,然后允许机器人播放,是什么 mst 他想旅行。

喜特乐

赞同来自:

如果您遇到了障碍,您可以绕过它以确定其确切的尺寸,并在测量返回前课程后。
没有能见度范围内的任何障碍,您可以简单地沿着最近的未经验证区域的方向进行。

也许这不是最快的方式,但我认为这是一个开始的好点。

涵秋

赞同来自:

我认为这种方法将是在机器人移动时构建一个图表。 将有一个函数将返回网格的机器人特定状态。 有必要,由于机器人不知道提前网格的状态。

您可以在搜索中应用启发式,以增加标志的可能性。

龙天

赞同来自:

已经提到了多少 A* 非常适合全球规划,如果您知道您在哪里以及您的目标在哪里。 但如果您没有这种全球知识,则有一类称为算法的算法 "bug", 你必须学习哪个。

至于智能,如果您想要更快地找到旗帜,请根据本地区域的哪个部分可以看到您的机器人,您应该尝试执行此区域以重叠。 例如,如果您的机器人在每个方向上看到自己周围的一个单元格,则必须探索每个第三列。 /列 1, 4, 7 等等。/. 但如果机器人只能看到他目前被占用的细胞,你能做的最佳的东西是 - 这不是返回你已经访问过的东西。

要回复问题请先登录注册