我想知道波前算法(或任何其他导航算法),是否可以从试图达到一个特定的目标位置进行修改,以导航到所有可到达的位置。
关于不同类型的WaveFront算法的任何其他建议也会有所帮助。
我访问了您的网站。你说这个机器人可以接收像"去厨房"这样的命令。我建议你不要再做无谓的重复工作了。实际上,您不必访问每个单元格或"孔区域"。相反,您应该选择到它的最短路径,然后遍历它。
我相信Dijkstra的算法更适合你的机器人寻路。
Dijkstra的增强版本是A*算法,在平均情况下花费的时间更少。
在这里你可以找到如何有效地工作的例子。
编辑:我再次访问了您的网站。你说你想要一个算法来导航所有的区域。就我所知,重复A*算法会更好。A*使用BFS,在一般情况下性能更好。与波前相比,它是非常有效的。伪代码如下:
- A)用A*算法寻找位置到目标之间的最短路径
- B)如果没有办法到达目标,指定一个临时位置并移动到它。(因为你表示,以后可能会找到办法)。到达临时位置后,转到步骤a。
- C)否则,如果你找到了一个方法,导航到目标。
这篇1993年的论文介绍了一种香草波前规划器的变体,除了从起点到目标的导航之外,还实现了完全覆盖:
。Zelinsky, R.A. Jarvis, J.C. Byrne, S. Yuta, <规划路径>移动机器人完全覆盖非结构化环境。"国际先进机器人会议论文集,1993,第533-538页。规划路径>
关于覆盖路径规划的更多想法,请参见以下回顾论文:
Enric Galceran, Marc Carreras,"关于覆盖路径规划的调查"机器人与自主系统,第61卷,第12期,2013年12月,1258-1276页。