线跟随机器人中的最短路径算法(迷宫求解)

时间:2014-09-15 20:56:42

标签: c++ algorithm embedded line robotics

如何在线跟随器迷宫求解机器人中使用图算法。我已经使用DFS搜索解决了网格,但不知道如何实现它实际的线跟随机器人。我的最短路径查找工具在20乘20网格上。其中s = start且g = destination,number表示网格内每个点的位置(逐行)。

3 个答案:

答案 0 :(得分:1)

- 如果您是微控制器的初学者,那么我建议您首先实现让您的机器人跟随线路。

- 如果机器人在线下运行良好,那么您应该尝试使机器人通过条带(网格中的交叉点)并使机器人横向完整网格(网格的所有坐标),同时您可以制作机器人通过的条带数量计数(您可以使用二维数组来存储坐标)。

- 如果你可以完成上述两个任务,那么你最好将你的逻辑用于解决网格内的迷宫问题。

答案 1 :(得分:0)

我曾经在AVR板上实现了最短路径算法。

以下是您应遵循的步骤。

步骤1:做一个干燥的竞技场并将所有坐标保存在二维阵列中。正如您所描述的,似乎有两种类型的结。每次通过交叉路口时,请务必在板上闪烁不同的LED。这样您就可以确保正确读取电路板。

步骤2:现在您拥有2D数组中的所有坐标。您正在申请DFS。我不建议这样做。因为你有一个网格而不是树来解决。使用Dijkstra的算法。

实现这一点应该不难。由于AVR的编译器与C非常相似。

第3步:现在按照结果。让你有一个8 * 8阵列。定义从1到64的编号。您的输出应该是

的形式

1 9 10 18 ....等等

现在计算两个相邻数字之间的差异

8,1,8等等

并为每个数字设置一个移动,例如8左转,1转北。只需记住当前的方向,转移到其他方向。从西向北向北与从北向北向不同。

我再次建议您先在LED上显示最终结果。有时你的算法工作正常,硬件停止工作。

答案 2 :(得分:0)

线跟随器机器人的最短路径算法,不涉及线路中的环路,相对容易实现。

可以通过彻底遍历所有可能的路径,在每个决策点进行默认的左/右转弯来制作。这样,如果轨道中没有循环,机器人最终将到达目的地。机器人应该跟踪到达目的地之前所做的所有转弯。

在此之后,消除机器人不必要的转动是一个减少的问题。我已经在我的博客here详细讨论了这个短路径算法。

相关问题