避免机器人碰撞的5个简单方法(&最后的手段)

库卡机器人生产线

如何防止机器人与其工作空间中的物体发生碰撞?以下是如何避免机器人碰撞而又不会让你的生活变得艰难的方法。

最近一个关于在RoboDK论坛上强调了机器人的一个常见问题。用户Micronexx询问如何避免碰撞。他们询问RoboDK是否会自动生成无碰撞路径,或者用户是否需要进行手动调整。

这是一个比乍看起来更复杂的问题。RoboDK当然包括帮助您避免碰撞的功能,包括一些自动路由。然而,在机器人技术中“避碰”是一个深刻而复杂的课题。整个研究项目致力于轨迹规划和避碰。先进的人工智能算法甚至是为它开发的吗

好消息是,对我们大多数人来说,事情并不需要这么复杂。有更简单的方法来阻止你的机器人与物体碰撞。

避免机器人碰撞的5个简单方法

通常最好从简单的开始。

在尝试解决机器人编程中的任何问题时,这是一条很好的经验法则。尽管机器人具有先进的功能,但简单的工程解决方案往往是最好的。

这里有5个简单的方法来阻止你的机器人与物体碰撞。

1.从一开始就合理规划你的工作空间

当工作空间没有得到很好的规划时,冲突最常发生。您应该通过规划空间开始任何机器人集成,例如通过在纸上画出草图。

计划好机器人将在哪些区域活动,哪些区域不在它的范围之内。在你开始给机器人编程之前,试着用你自己的手臂“表演”一下机器人的动作序列——这是一种非常有效的方法,可以在潜在问题出现之前减少它们,而且很快就能做到。

2.物理清除潜在的障碍物

避免碰撞的最好方法是确保没有任何东西可以让机器人碰撞。这意味着移除任何可能阻碍机器人离开工作空间的东西。

确保在工作空间的不同区域之间有一条清晰的路径。如果机器人将从一个位置拾取物体并将它们组装在另一个位置,则从这两个位置之间的工作空间中删除所有东西。

这似乎是显而易见的,但是在使用离线编程时很容易忘记这一点。raybet雷竞app下载例如,您可能会在机器人工作空间中看到一个支柱并说“没关系。我会在机器人程序中避免它。”但是,因为你是在一个模拟的环境中编程,柱子不存在,你忘记了它,编程让机器人直接穿过它。

3.将真实世界与模拟相匹配

现实世界和RoboDK中的模拟应该尽可能地紧密匹配。你可以通过两种方式做到这一点:

  1. 在仿真中建立物理工作空间的精确模型这包括测量每个物体的精确位置,并在软件中建模。这可能非常耗时,你越依赖模拟的准确性,出错的空间就越小。
  2. 从现实世界中移除不在模拟中的对象这涉及到通过删除对象来简化实际工作空间。

在实践中,最好的选择是这些的组合。您可以从物理工作区中删除所有不必要的对象,并将所有必要的对象添加到模拟中。

4.手动调整编程目标

在开始使用复杂的避碰算法之前,请尝试自己调整机器人的运动。对于大多数应用程序,在RoboDK中手动移动目标是一种快速、有效和健壮的解决方案。

例如,如果机器人在执行关节移动命令时与一个物体发生碰撞,只需添加额外的几个路径点来避开这个物体。或者——更好的是——首先问问这个对象是否真的需要放在工作空间中。

一个可以显著减少碰撞的做法是决定每个移动是“行进”移动还是“操作”移动。只能在没有障碍物的自由空间中移动。然后,在离操作地点一小段距离(即“接近距离”)处停下来,小心地进入任务,然后再进行操作移动。

5.使用加工向导的新功能

机器人加工是一个你可能需要自动轨迹规划的任务。RoboDK可以很容易地生成加工路径使用其内置的加工向导

大多数情况下,如果您遵循上述建议,就不会发生任何碰撞。然而,在加工过程中有一个自动避免碰撞的选项,我们在最新版本的RoboDK中添加了这个选项。阅读Albert在论坛上的回应它解释了如何使用这个新功能。

该功能通过围绕工具的z轴自动旋转机器人来避免碰撞。因此,它不会避免所有的碰撞,但它确实提高了加工向导的鲁棒性。

最后一招:使用高级运动规划器

如果你已经完成了上面的所有步骤,并且你已经决定你仍然需要自动防撞,那么是时候打破“大炮”了。这意味着使用第三方运动规划算法来生成机器人轨迹。

有很多轨迹规划器可以自动检测并避免碰撞。然而,大多数都是非常早期的研究项目,因此,不是很可靠。此外,大多数都是为只能在二维空间中移动的移动机器人设计的。

然而,也有一些不错的轨迹规划程序适用于工业机器人操纵器。请注意,要使用它们,您必须进行一些严肃的编程。

  1. MoveIt !- - - - - -MoveIt !是一个最发达的图形运动规划机器人操作。它使用了OMPL框架,并提供了一个简单的图形界面。它被整合到ROS中。如果您已经熟悉ROS,那么这可能是一个不错的选择。如果没有,你可能有一个相当长的学习曲线。
  2. 开放运动规划库OMPL) -可以单独使用OMPL,而不使用MoveIt!它提供c++库,也有Python绑定。有相当数量的文档,但由于该库具有许多功能,因此仍然需要学习曲线。
  3. 泡沫这是RoboDK的首席执行官Albert Nubiola推荐的一个小图书馆。它是一种基于概率路线图算法(PRM)的机械手独立运动规划系统。它是用c++编写的,文档很少。但是,如果你是一个编程向导,并且准备迎接挑战,它可以为使用MoveIt提供一个不那么臃肿的解决方案。

一般来说,最好使用一种更简单的方法来避免冲突。但是,如果你需要使用先进的算法,避免碰撞是一个有趣的话题。

哪些碰撞对您的机器人应用程序造成了问题?请在下面的评论中告诉我们,或者加入我们的讨论LinkedIn,推特,Facebook,Instagram或在RoboDK论坛

关于亚历克斯·欧文·希尔

亚历克斯·欧文-希尔是一名自由撰稿人和演说家,他的博客主题广泛,包括科学、CreateClarifyArticulate.com上的演讲技巧、讲故事和(当然)机器人技术。他完成了马德里理工大学远程机器人博士学位,作为PURESAFE项目的一部分,与欧洲核子研究中心合作。作为一名正在康复的学者,他通过写关于工业机器人的博客,在机器人领域站稳了脚跟。

查看Alex Owen-Hill的所有帖子

留言回复

您的电子邮件地址将不会被公布。必填项被标记*