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





