【发布时间】:2016-12-04 14:26:16
【问题描述】:
首先 - 我查看了类似的问题,但他们没有解决我的问题,这不是重复(我希望)。
我正在用 Arduino Nano 构建和编程一个机器人,它应该可以解决迷宫。它被放在迷宫的某个地方,然后必须找到一个项目。下一次它应该直接进入该项目(它不一定是最短的方式,但不允许死胡同)。
没有必要知道整个迷宫,因为只要他有一条通往该项目的路就很好。正如我所说,我不需要最短的方法。
迷宫是 2D 的,我只是在白色桌子上贴上黑色胶带,机器人应该使用线传感器来跟随线。
没有其他传感器可以定位自己。首先,我想制作一个二维数组,迷宫的每个区域都是其中的一个区域。但由于它只是一个普通的线传感器,机器人不知道一条直线是一两个场长,而且整个事情都不起作用。
我也尝试过 DFS 或类似的东西,但这里有类似的问题。迷宫是圆形的,机器人应该如何知道之前已经找到了节点并且它是相同的?
如果有人有想法就好了!
【问题讨论】:
-
"机器人应该使用线传感器来跟随线。"我只是好奇——线传感器对 2 路或 3 路分路有何反应?
-
它有 3 个独立的传感器。每一个都有不同的值,只有中间的那个是在线的。如果在左侧或右侧以新的方式启动左侧或右侧的传感器之一,在将鼠标悬停在线时会注意到黑色,并且这种方式会注意到分裂
-
随机选择分支怎么样?
-
从描述看来,您似乎必须执行航位推算才能根据您的指令动作确定位置。从本质上讲,您需要跟踪您移动了多远以及每次前进的方向。
-
无论如何,16/32kB 在加载二进制文件后不会让太多的空闲内存。也许您应该为您的 nano 考虑一些额外的 USB 外部存储。关于位置:也许您可以使用超声波传感器拼凑出一个本地定位系统? (20kHz 可提供厘米精度定位)