我们的最新功能- RoboDK PRM运动规划器-允许您在触摸按钮时创建人工智能驱动的机器人轨迹。但它是如何工作的呢?
我们并不是总能享受到一个干净、自由的工作空间,不是吗?对于我们自己的个人工作空间也是如此(例如,我的桌子上堆满了不必要的东西)。我们机器人的工作空间也是如此。
有时机器人的工作空间比我们计划的要小。有时在工作空间的中间有一个巨大的支柱,我们无法摆脱。有时,会有一堆箱子无法存放在其他地方。
无论何时,当您的机器人有机会与工作空间中的物体碰撞时,我们的新运动规划器都会让您的生活更轻松。
只需按一下按钮,它就可以为你的机器人程序创建一条无碰撞的路径。
本文介绍了PRM运动规划,并解释了什么时候应该使用这个新功能。
PRM是什么意思?
新的RoboDK运动规划器使用了一种名为“PRM”的算法,代表“概率的路线图“这是一种非常常见的运动规划器,原因我们将在稍后讨论。
机器人有很多不同的运动规划算法,复杂程度从非常基本到极其复杂。如果您根本不熟悉运动规划器,请查看我们之前的文章回归基础:简化机器人运动规划
以下是PRM的意思:
- P =概率-“配置空间”中的点(即规划器用来知道机器人在其工作空间中可以移动的点的集合)是由规划器随机选择的。这种随机的位置被称为“概率”。另一种选择是“统一”放置,即点在整个工作空间中以常规间隔放置。
- RM =路线图-PRM算法首先创建整个机器人工作空间的“路线图”。这张地图类似于你智能手机上的GPS导航功能。首先生成这个地图可能需要一段时间,但一旦生成,你就不需要再次计算它,所以你可以更快地“查询”地图。
从这两个术语中,我们可以对PRM运动规划器进行如下描述:
- 它总能找到可行的机器人轨迹(如果存在的话)。
- 它保存配置空间的路线图,以加快“查询”阶段的速度。
这是PRM规划师受欢迎的两个原因。
PRM如何工作
与一些运动规划者不同的是,PRM算法将他们的工作分为两个独立的阶段。在使用RoboDK中的规划器之前,你必须设置一些属性。
设置阶段
在运行规划器之前,您需要手动设置3个属性。
这是如何在RoboDK中设置这些属性(以及它们的含义):
- 样本数目-你选择一些“样本”,在构建阶段,规划器将它们定位在机器人的工作空间周围。更少的样本意味着更快的构建阶段,但是一个粗糙的路线图。
- 每个样本的边缘-每个样本都有最大数量的“边”。每条边将两个样本连接在一起。同样,更少的边意味着更快的构建阶段,但是一个粗糙的路线图。
- 机器人步(度)-当PRM算法在构建阶段运行时,它每次都会移动机器人一小段距离。这个距离由机器人的步长决定。更大的步骤意味着更快的施工阶段,但规划者更有可能无法注意到潜在的冲突。
然后单击“Update Map”开始构建阶段。
第一阶段:施工(缓慢)
计划的第一个阶段是生成路线图。这可能需要很长的时间(大约15-30分钟,100个样本,每个样本有25条边)。
这是构建阶段如何“在引擎盖下”工作:
- 规划师将一个“样本”放置在机器人工作空间内某个自由空间的随机位置。
- 然后,该算法测试该样本与周围样本之间的路径。它通过“机器人步”沿着路径移动机器人,并检查碰撞。如果路径是空闲的,它将该路径作为“边缘”添加到路线图中。
- 当规划器达到该样本的最大边数时,它将移动到下一个样本。
你可以看到为什么这个阶段需要很长时间——算法有很多样本要测试。值得庆幸的是,一旦创建了映射,您就不需要再次计算它了(除非您向环境中添加了新的对象)。
阶段2:查询(快速)
查询阶段是运动规划中最常用的部分。您为计划器提供了两个目标(起始目标和结束目标)。然后,规划器尝试使用其存储的路线图在它们之间创建一个无碰撞的轨迹。
这就是这个阶段的工作原理
- 你选择两个目标,告诉计划者把它们“联系”起来。
- 如果任何一个目标还没有添加到路线图中,规划器将把它作为一个新样本添加,并在新位置和附近的现有样本之间创建一组边。
- 然后,规划器使用它的路线图来找到两个目标之间距离最短的路径。
有了足够详细的路线图,您可以在几秒钟内通过触摸按钮创建复杂的、无碰撞的机器人运动。
什么时候使用运动规划器?
将动作编程到RoboDK的标准方法是自己手动规划动作关节移动,线性移动或圆形移动.这仍然是编程机器人在两个目标之间移动的最快方法。
但是,这些标准命令仅在两个目标之间有空闲空间时才有效。如果有物体挡在路上,你可能不得不花大量时间创建中间目标以避免碰撞。
运动规划器提供了一种自动化这一过程的方法。它会自动找到一组最佳运动,使机器人在目标之间移动而不发生碰撞。
但是,这是有代价的。在规划人员开始为您寻找路径之前,您必须等待很长一段时间才能完成施工阶段。
大多数情况下,这种漫长的等待不是问题。你只需要“设置好,然后忘记它”。在您做其他事情的时候,让构建阶段运行。
请查看文档有关如何开始的更多细节。
一个好的运动规划器能做什么?请在下面的评论中告诉我们,或者加入讨论LinkedIn,推特,Facebook,Instagram或在RoboDK论坛.