我构建了一个移动机器人,该机器人具有多个用于检测障碍物的超声波传感器和一个用于跟踪一条路径的红外传感器。我已经编写了一种简单的算法来沿着行进的路线工作,但是避免障碍是一个问题,因为机器人不知道路径的布局,因此即使它确实绕过障碍物移动,也无法保证它会再次找到路径线(除非该线完全笔直)。因此,我认为我可能需要使用路径/运动计划算法或找到一种存储路径布局的方法,以便机器人可以预测要移动的位置并返回路径线,并在克服障碍后继续跟踪。我想听听针对该特定问题的建议或算法类型。

图片可能有助于指定我所面临的问题。 >谢谢。

评论

我也正在为一个非常复杂的曲目进行线路追踪。这是轨道的图像。这就是为什么我还想使用路径/运动计划算法或找到一种方法来存储路径布局的原因,以便机器人可以预测要移动的位置并选择要走的路径。我发现了一些视频,但是如果这些视频显示了算法或如何实现,则没有视频!视频的链接包括:youtu.be/EHAT8ixtxmg(大约2:30),youtu.be / jVfeRIMLf80 youtu.be/Cbpj1HAaa6s

#1 楼

行跟随是一种简单的反应行为。在开始计划解决可能会非常复杂的避障问题之前,应该考虑使用更简单的解决方案。

这个更简单的解决方案可能会取决于环境和您的机器人。但是,让我提出一个建议:

while()
    follow line
    if( detect obstacle )
         turn left (leave line)
         while( not detect line )
             keep obstacle within distance d to the right


魔鬼在于实现和传感器设置,但原理是跟踪障碍物的轮廓以获取优势回到您的行。

评论


$ \ begingroup $
谢谢,我已经有了类似的东西来避免障碍。您刚刚重新描述了我所说的问题。
$ \ endgroup $
– JVTura
15年9月28日在22:06

$ \ begingroup $
我认为区别在于假设直线是直线。通过绕过对象直到找到线,您还将覆盖第二个插图的外壳。
$ \ endgroup $
–雅各布
2015年9月29日下午13:39

$ \ begingroup $
雅各布在这里是正确的。如果障碍物在直线上,您可以认为它恰好有2条线在碰它:即将进入的那条,以及您要在离开时发现的那条。如果可以检测到身边的障碍物,则可以保证只留下一条线并绕过它,找到的下一条线将是您想要的。
$ \ endgroup $
–伊恩
15年9月30日在18:46

$ \ begingroup $
您可以通过将障碍物放在死线的末端来测试您的解决方案是否正常工作。如果您的机器人可以找到障碍物,请绕开障碍物,然后重新加入生产线-沿障碍物的原路返回。
$ \ endgroup $
–伊恩
15年9月30日在18:48

$ \ begingroup $
谢谢。如果机器人在绕过物体并脱机时遇到其他障碍,问题将变得更加复杂。它将采取另一种措施来避免这种情况,并且可能最终远离直线,这使得几乎不可能再次找到路径。因此,我不得不回到我的主要问题,一种存储路径布局或类似内容的方法。盲目绕过对象并假设将检测到路径并不是一个非常一致的解决方案。如果我下周有时间,我将研究传统的路径规划算法,并将发布我的解决方案。
$ \ endgroup $
– JVTura
2015年9月30日19:37在

#2 楼

我的建议是开始时要很缓慢但要舒适。第一步,请勿尝试自动控制机器人,而应使用手动控制,并将机器人视为遥控车。带着玩具四处走走,玩些障碍物。第二步是将领域知识编程到机器人中。这是通过监视解析器完成的。该软件跟踪操作员的手动操作并在屏幕上打印结论。就像“机器人直行”,“机器人前方的障碍物”,“机器人在路点上”,“机器人不在道路上”一样。第三步也是最后一步是向监视系统添加推荐功能。该软件会提供建议,操作员接下来必须做什么。在所有步骤中,操作员都必须始终处于循环状态,它应该是半自动系统: />机器人具有智能(机器较低级别),可让他们
跟随彩色线条,用户与它们互动并提供高级命令
“半自主式彩色线条跟随教育型机器人:
设计与实现,
2011