如何防止机器人与工作空间中的物体发生碰撞?以下是如何避免与机器人相撞而又不给自己带来麻烦的方法。
最近的一个问题在RoboDK论坛强调了机器人的一个普遍问题。用户Micronexx询问如何避免碰撞。他们询问RoboDK是否会自动生成无碰撞路径,还是需要用户手动调整。
这是一个比最初看起来更复杂的问题。RoboDK当然包括帮助您避免碰撞的功能,包括一些自动路由。然而,“避碰”在机器人技术中是一个深刻而复杂的话题。整个研究项目致力于轨迹规划和避免碰撞。先进的人工智能算法已经开发出来了吗。
好消息是,对我们大多数人来说,事情不必这么复杂。有更简单的方法来防止你的机器人与物体相撞。
避免机器人碰撞的5种简单方法
通常最好从简单开始。
在解决机器人编程中的任何问题时,这是一条很好的经验法则。尽管机器人具有先进的功能,但简单的工程解决方案往往是最好的。
这里有5种简单的方法来防止你的机器人与物体相撞。
1.从一开始就正确规划你的工作空间
当工作空间没有很好地规划时,冲突最常发生。你应该通过规划空间来开始任何机器人的集成,例如在纸上画草图。
计划机器人将在哪些区域移动,哪些区域将在其范围之外。在你开始给机器人编程之前,试着用你自己的手臂“表演”机器人的动作序列——这是在潜在问题出现之前减少潜在问题的一种非常有效的方法,而且速度非常快。
2.物理上清除潜在的障碍
避免碰撞的最好方法是确保机器人没有碰撞的东西。这意味着从工作空间中移除任何可能阻碍机器人前进的东西。
确保工作空间的不同区域之间有一条清晰的路径。如果机器人将从一个位置拾取物体并将其组装到另一个位置,则从这两个位置之间的工作空间中移除所有东西。
这似乎是显而易见的,但是在使用脱机编程时,很容易忘记这样做。2022世界杯8强赛时间例如,您可能会在机器人工作区中看到一根柱子,然后说:“没关系。我只会在机器人项目中避开它。”但是,因为你是在一个模拟环境中编程,在这个环境中柱子并不存在,你忘记了它,而让机器人直接穿过它。
3.将真实世界与模拟世界相匹配
现实世界和RoboDK中的模拟世界应该尽可能地紧密匹配。你可以通过两种方式实现这一点:
- 在模拟过程中建立一个精确的物理工作空间模型这涉及测量每个物体的精确位置,并在软件中建模。这可能非常耗时,而且你越依赖模拟的准确性,出错的空间就越小。
- 从真实世界中删除不在模拟中的对象这涉及到通过删除对象来简化实际工作空间。
在实践中,最好的选择是这些的组合。从物理工作空间中删除所有不必要的对象,并将所有必要的对象添加到模拟中。
4.手动调整编程目标
在你开始使用复杂的避碰算法之前,试着自己调整机器人的运动。对于大多数应用程序,在RoboDK中手动移动目标是一种快速、有效和健壮的解决方案。
例如,如果机器人在执行联合移动命令时与一个物体发生碰撞,只需添加一对额外的路径点来避开该物体。或者——甚至更好——首先询问对象是否真的需要在工作区中。
可以显著减少碰撞的一种做法是决定每个移动是“移动”还是“操作”移动。只在没有障碍物的自由空间中进行移动动作。然后,在离操作很小的距离(又名“接近距离”)处停下来,在执行操作移动之前小心地移动到任务中。
5.使用加工向导的新功能
机器人加工是一项可能需要自动轨迹规划的任务。RoboDK可以很容易地生成加工路径其内置的加工向导。
大多数情况下,如果你遵循上面的建议,你就不会发生任何碰撞。但是,我们在最新版本的RoboDK中增加了一个选项,可以在加工过程中自动避免碰撞。在论坛上阅读Albert的回复它解释了如何使用这个新功能。
该功能通过自动旋转机器人绕工具的z轴来避免碰撞。因此,它不能避免所有的碰撞,但它确实提高了加工向导的鲁棒性。
最后一招:使用高级运动计划表
如果你已经完成了上面所有的步骤,并且你决定你仍然需要自动避碰,那么是时候拿出“大枪”了。这意味着使用第三方运动规划算法来生成机器人的轨迹。
市面上有很多自动检测和避免碰撞的轨迹规划器。然而,大多数都是非常早期的研究项目,因此不是很可靠。此外,大多数都是为移动机器人设计的,它们只能在二维空间中移动。
然而,也有一些像样的轨迹规划器适用于工业机器人操纵器。世界杯2022美洲预选赛直播请注意,要使用它们,您必须进行一些认真的编程。
- MoveIt !- - - - - -MoveIt !是一种最发达的图形运动规划机器人操作。它使用OMPL框架并提供一个简单的图形界面。它被整合到ROS中。如果您已经熟悉ROS,这可能是一个很好的选择。如果没有,你可能需要一个相当长的学习过程。
- 开放式运动规划图书馆(OMPL) -可以单独使用OMPL,而不需要MoveIt!它提供了c++库,也有Python绑定。虽然有相当数量的文档,但由于该库有很多功能,因此仍然需要学习。
- 泡沫-这是RoboDK的CEO Albert Nubiola推荐的一个小库。它是一种使用概率路线图算法(PRM)的独立运动规划器。它是用c++编写的,文档很少。但是,如果你是一个编程奇才,你准备迎接挑战,它可以提供一个使用MoveIt的不那么臃肿的解决方案。
一般来说,最好是使用一种更简单的方法来避免碰撞。但是,如果你需要使用先进的算法,避免碰撞是一个迷人的话题。
哪些碰撞给你的机器人应用程序带来了问题?请在下面的评论中告诉我们,或者加入我们的讨论LinkedIn,推特,Facebook,Instagram或在RoboDK论坛。





