碰撞检测

RoboDK的碰撞检查可以帮助您在实际设置中防止碰撞。碰撞检查可以以不同的方式使用,如视觉检查碰撞,自动避免机器人加工项目的碰撞或生成无碰撞地图以自动创建无碰撞程序。

本节涵盖以下主题:

如何激活碰撞检测用于模拟。

如何定义碰撞检测映射

如何激活自动碰撞检测和避免用于机器人加工项目。

如何自动创建无碰撞的程序使用PRM算法连接不同的目标或其他程序。

碰撞检测

选择工具避免碰撞-图片1检查碰撞打开或关闭碰撞检测。如果碰撞检测被激活,当检测到碰撞时,所有程序和机器人的运动都将停止。当模拟处于碰撞状态时,所有处于碰撞状态的对象、工具和机器人链接将以红色突出显示。

按照以下步骤安全检查程序是否发生冲突:

1.右击一个程序。

2.选择检查路径和碰撞(Shift+F5).此选项快速检查路径是否可行(与检查路径—F5),然后验证没有碰撞。

避免碰撞-图片2

碰撞的地图

您可以指定是否需要检查任意一对对象之间的相互作用是否发生碰撞。

选择工具避碰-图3碰撞的地图以显示单元格中所有移动对象与碰撞检查状态之间的关系。双击单元格以激活或禁用该关系的碰撞检查。选择设置默认选择自动设置保守选择。

默认情况下,RoboDK会检查站内所有移动物体之间的碰撞,包括所有机器人链接、物体和工具。作为例外,连续的机器人关节不检查碰撞,因为它们可能总是接触。

避碰-图4

更快的碰撞检测

碰撞检测的速度在很大程度上取决于许多因素。

1.属性中定义的检查对的数目碰撞的地图.拥有一个带有较少检查的碰撞地图将会更快。

2.用于碰撞检查的机器人步骤。中修改碰撞步骤工具选项运动菜单。线性运动的步长单位为毫米,关节运动的步长单位为度。较大的步长将提供更快的碰撞检查,但结果可能不太准确。

3.计算机性能:更高的计算机性能(更快的CPU)和更多的处理线程将允许您进行更快的碰撞检查。

4.3D文件的复杂性。具有更高细节级别的几何图形,例如圆形区域,通常需要更多的计算能力。简化这些几何图形并减少三角形的数量将有助于加快碰撞检查的速度。

机器人机械加工中的碰撞避免

按照以下步骤激活机器人加工项目的自动碰撞检查和碰撞避免:

1.选择工具选项凸轮

2.检查允许自动避碰

避碰-图5

3.双击你的机器人加工项目,3D打印,曲线跟踪或点跟踪项目。

4.检查避免碰撞:这将激活自动避碰通过改变工具的方向围绕Z轴,如在优化参数中所述。

避碰-图6

无碰撞运动规划器

运动规划功能自动在机器人的工作空间内创建无碰撞路径。在RoboDK中,该功能使用了一种称为“概率路线图”(PRM)的运动规划算法。

首先,在机器人工作空间中创建一个自由空间的地图。然后在机器人编程过程中使用该地图快速生成无碰撞轨迹。

PRM算法具有以下两个特性:

概率:“配置空间”中的点(即规划器用来知道机器人在其工作空间中可以移动的点的集合)是由规划器随机选择的。这使得PRM算法比其他尝试均匀覆盖整个工作空间的运动规划算法更快。

路线图:PRM算法首先创建整个机器人工作空间的“路线图”。

关于机器人运动规划的更一般的介绍,请参考这篇博文

使用PRM运动规划器

在使用PRM运动规划时,有两个不同的阶段。这些在RoboDK中分别执行,提高了功能的效率。较慢的“构造阶段”只需要执行一次,而较快的“查询阶段”可以重复多次。

这两个阶段是:

  1. 施工阶段(慢)——PRM算法在机器人的自由工作空间内随机放置点。然后,它尝试将这些点连接在一起,以形成工作区内无碰撞路径的路线图。
  2. 查询阶段(快速)-规划人员试图通过使用在构建阶段创建的路线图找到两个目标点之间最短的无碰撞路径。

有关RoboDK PRM算法如何工作的更多信息,请参阅这篇博文

本节将展示如何在RoboDK程序中使用这两个阶段。并以焊接装置为例说明其功能。

运动规划设置

要使用运动规划器,需要有一个机器人,最好是有一个工具。在工作区中至少有一个对象也是有意义的,否则就不需要避免碰撞。至少分配两个目标作为生成的无碰撞路径的起始和结束位置会很有帮助。

示例焊接设置可以使用以下过程创建:

1.选择一个机器人:

一个。选择文件避免碰撞-图7开放网上图书馆

b。使用过滤器找到你的机器人。例如,选择ABB IRB 2600-12/1.85(选择以下过滤器:ABB(品牌),有效载荷10- 20kg,达到1500-2000mm。

c。选择下载,机器人应该会自动出现在主屏幕上。

2.选择一个工具:

一个。从同一在线图书馆,过滤通过类型工具(点击重置过滤器首先删除之前的过滤器)

b。下载一个工具,例如“焊接枪”

c。工具应该自动连接到机器人上

d。一旦加载了工具,就可以关闭在线库

3.添加一个参考系:

一个。选择程序避碰-图8添加参考系

b。在树中选择新的参考框架,按F2重命名为“障碍物参考”

4.添加一些对象:

一个。选择文件避碰-图9开放打开位于您计算机中的RoboDK Library目录(它将在RoboDK安装目录中)。

b。选择一个对象,例如“object Table.wrl”

c。将对象拖放到站点树中的障碍物参考上。

d。选择另一个对象,例如“box”。stl”并将其拖动到障碍物参考上。

e。将桌子移到机器人前面,操作步骤如下:

我。右键单击“障碍参考”并选择“选项(或只需双击树中的引用)来调出框架的细节面板

2在名为。的面板中输入以下值参考职位:项目:1000 0 400 90 00

避碰-图10

f。如有必要,按以下步骤增加对象(例如“盒子”)的大小和位置:

3右键单击站树中的对象并选择选项(或只需双击树中的对象)调出对象的细节面板

4通过单击缩放方框更多选项…应用规模输入“4.0”规模比

v。通过在名为。的面板中输入以下值,将方框移动到表上物体相对于障碍物参考的位置:0,0,200, 0,0,0

避碰-图11

5.创建目标:

一个。选择程序避免碰撞-图12教学目标

b。在站树中选择新的Target,并选择F2将其重命名为开始目标

c。通过这样做来移动目标:

6右键单击站树中的目标并选择选项(或按F3)调出开始目标面板。

7中输入以下值相对于障碍物参考的目标位置面板:500,0,0,90,0,180

d。用同样的方法创建第二个目标,并重命名它最终目标.使用与之前相同的方法,将其移动到位置:-500,0,0,90,0,180

避碰-图13

约束关节极限

一个任务将使用机器人的所有工作空间是不寻常的。在创建PRM地图时,约束机器人的关节限制通常是一个好主意。这将加快生成地图的过程,并确保地图中的点位于最佳位置。

对于6轴机器人,最常受到限制的两个关节是:

1.关节1(基础关节)-限制这个关节可以防止机器人在工作空间的任何一侧移动得太远。

2.关节3(肘关节)-限制这个关节可以阻止机器人在肘部向上和肘部向下的配置之间改变。

使用以下过程更改关节限制:

1.右键单击站树中的机器人模型图标(例如ABB IRB 2600-12/1.85)并选择选择……打开机器人面板。或者,只需双击站树中的机器人名称。

2.关节轴慢跑节中,移动要限制的机器人关节的滑块(例如。θ1而且θ3.)来找出你想要的关节下界的位置。

3.的任何关节下限上双击关节轴慢跑.例如,如果θ的关节极限1目前是-180,双击数字-180。这将会带来设定关节下限面板。

避碰-图14

4.设置关节下限为θ1= -50 andθ3.= -90。

5.更改关节限制并单击好吧

6.使用相同的过程与关节上限,设置θ1= 50。

避碰-图15

这一变化可以通过查看机器人可到达的工作空间来看到。控件显示工作空间显示当前工具选项中的工作空间机器人面板部分。它将只显示工作空间的一部分,现在可以通过新的关节限制到达。

避免碰撞-图16

选择“PRM参数”

PRM算法使用以下三个参数生成可达位置的路线图:

1.样本数量-地图由许多随机放置的位置(样本)在整个机器人可到达的工作空间。这个数字决定了样本的数量。默认是100个样本。

2.每个样本的边数-该算法试图将地图中的每个样本与许多其他样本连接起来。连接两个样本的线称为“边”,表示这两个位置之间的无碰撞路径。此属性表示每个样本将创建的最大边数。默认值是每个样本25条边。

3.机器人步长(度)-当检查潜在边缘是否无碰撞时,算法将在其上定期停止以检查碰撞。这些间隔之间的距离由机器人的步长决定。默认为4度。

这三个参数决定了生成的路线图的详细程度。它们还影响在构建阶段生成路线图所需的时间。

一个更大的样本数量和更多的每个样本的边数将生成粒度更细的路线图,生成该路线图需要更长的时间。一个更大的机器人的步骤将更快地生成地图,但可能无法检测潜在的碰撞。

使用默认值,路线图通常可以在15分钟内生成,这取决于工作空间的设置和机器人的属性。

有关设置这些参数的最佳实践,请参阅本节末尾的提示。

生成的路线图

运动规划器的“构建阶段”是通过以下过程实现的,该过程生成机器人工作空间的路线图:

1.打开无碰撞运动规划器面板的公用事业公司菜单无碰撞运动规划器创建无碰撞地图,或点击旁边的小箭头避碰-图17检查碰撞并选择创建无碰撞地图。

避碰-图18

2.输入新的参数或保持默认值。

3.点击更新地图生成路线图。

然后,PRM算法将使用所选参数生成路线图。完成后,可以通过选中复选框查看生成的路线图显示地图。点击显示样本将移动机器人通过工作空间内的所有样本。

避碰-图19

链接的目标

当两个目标或程序链接在一起时,运动规划器的“查询阶段”被访问。

要链接两个目标,首先在站树中选择它们。有两种方法来选择和链接目标:

1.Ctrl关键:

一个。左键单击要开始移动的目标(在本例中,目标名为“start target”)。

b。按住CTRL键。

c。左键单击目标(例如:“最终目标”)

d。右键单击两个目标之一并选择链接选定目标.或者,如果无碰撞运动规划器面板是打开的,点击链接选定的目标/程序按钮。

2.转变关键:

一个。在站树中,将两个目标一个放在另一个上面,起始目标放在结束目标上面。目标可以通过拖放在树中移动使用鼠标右键.放下目标将会显示一个菜单来选择目标的位置。

避碰-图20

b。左键单击任意一个目标。

c。按住转变关键。

d。左键单击另一个目标。

e。右键单击两个目标之一并选择链接选定目标.或者,如果无碰撞运动规划器面板是打开的,点击链接选定的目标/程序按钮。

这两种方法都将生成一个新程序,该程序使用保存的路线图链接两个目标。要在相反的方向上创建移动,请以相反的顺序选择目标-即在开始目标之前选择结束目标Ctrl方法,或者为SHIFT方法重新排列站树中的目标。

链接程序

运动规划器还可以以类似的方式将两个不同的程序连接在一起。这会在两个程序之间创建一个无碰撞的路径,并创建一个新的主程序。

对于焊接示例,使用以下过程创建两个虚拟程序:

1.创建4个目标作为“Object Reference”参考框架的子目标(在站点树中右键单击“Object Reference”并选中主动参考系).然后通过选择创建四个目标程序避碰-图21教学目标四次,还是按一下Ctrl + T四次。

2.在站树中选择每个新目标,并输入以下名称和值。若要更改目标器名称,请按F2键或右键单击目标器并选择重命名.要更改目标值,请按F3键调出目标板或者右键单击目标,选择选项.在标记的部分中输入新值目标位置相对于:对象参考

一个。的名字:“左点1”: 200,200,0,90,0, -135

b。的名字:“左点2”: 200, -200, 0, 90, 0, -135

c。的名字:“正确观点1”: - 200,200,0,90,0,135

d。的名字:“正确观点2”: -200, -200, 0,90,0,135

避碰-图22

3.创建第一个程序:

一个。程序避碰-图23添加程序

b。重命名程序为“Left Weld”,首先在站树中选择程序,然后按F2或右键单击并选择Rename。

c。添加以下目标作为线性指令,首先在站树中选择目标,然后选择程序避免碰撞-图24移动线性指令:起始目标,左点1,左点2,起始目标

避碰-图25

4.创建第二个名为“正确的焊接,这次添加了以下目标:最终目标,右点1,右点2,最终目标。

避碰-图26

请注意,这两个虚拟程序不包含激活/禁用焊枪的命令。在实际的程序中,必须包含这些命令。

要使用运动规划器链接任何两个程序,请使用以下过程:

1.使用前一节(Link Targets)中描述的两种方法之一选择两个程序。

2.右键单击任一程序并选择链接所选程序。如果无碰撞运动规划器面板是打开的,同样可以通过点击来实现链接选定的目标/程序

一个叫做"MainSafe将被创建,它运行第一个程序,进行无碰撞移动,然后运行第二个程序。这个主程序可以像其他程序一样被修改和重命名。

添加新的目标到映射

任何新的目标都可以添加到PRM路线图中,而不必重新生成整个地图。这意味着只有在将新对象添加到工作区或移动现有对象时才需要完全重新生成路线图。

当一个新目标被添加到路线图中时,PRM算法将尝试用一组新边将其连接到路线图中已经存在的一些现有点。可以为新目标设置不同于为初始路线图构造选择的默认边数。

可以使用以下过程设置新目标的最大边数

1.打开无碰撞运动规划器面板的公用事业公司菜单无碰撞运动规划器创建无碰撞地图,或点击旁边的小箭头避免碰撞-图27检查碰撞并选择创建无碰撞地图。

2.输入框中标记的边数新的样本边。缺省值是5。

有两种方法可以向路线图中添加新目标:

1.在站树中选择目标。多个相邻的目标可以选择一次点击最高的目标,按住转变键,然后点击最低的目标。控件可以选择多个不相邻的目标Ctrl关键。然后单击添加选定的目标无碰撞运动规划器面板。

避碰-图28

2.简单地使用相同的方法链接选定目标链接所选程序在前面的章节(链接目标和链接程序)中描述。路线图中尚未出现的任何目标都将被自动添加。

提示和最佳实践

运动规划器使用简单,但有一些最佳实践将改善编程工作流程。

从小参数开始

构建阶段可能需要很长时间才能运行。在编程的早期阶段,当机器人单元的布局不断变化时,这可能会变得很麻烦。每次将对象添加到工作区或移动时,都需要重新生成整个路线图。

为了减少等待生成路线图的时间,最好先使用较小的参数。

例如,以下参数可以在10-15秒内生成映射:

1.样本数量:10个

2.每个样本边数:5

3.机器人步长(度):4.0

这不会产生最有效的无碰撞运动,但可以更快地改变单元设计。

当单元格中所有对象的位置确定后,就可以生成一个更大的地图(例如,默认参数为100,25,4.0)。

避碰-图29

最后,在生成机器人程序之前,最好生成一个更大的路线图(例如,参数为500,50,2.0)。这将需要很长时间来生成,但将产生最有效的动作。

避碰-图30

使用联合限制

设置机器人关节限制(如前一节所述约束关节极限)有双重好处。首先,在某些情况下,它可以使施工阶段更快。其次,它确保路线图实际上包含了对机器人程序有用的位置。很容易忘记这个重要的步骤。

正确定义碰撞映射

当两个物体碰撞时触发碰撞检测。控件中每个移动对象之间的相关性碰撞的地图设置。减少交互数量(绿色复选标记)将加快碰撞检查的速度。

更快的碰撞检查

计算无碰撞路径所需的时间取决于中所述的许多因素碰撞检测部分.除此之外,您可以增加用于碰撞检查的机器人步骤,约束关节限制或简化3D几何结构以加快碰撞检查。

偏移你的3D模型

术语“碰撞避免”意味着运动规划器在所有情况下都会避免碰撞。在模拟环境中确实如此。然而,在现实世界中,如果机器人离物体太近,它仍然会与物体发生碰撞。这通常是因为模拟机器人和物理机器人之间的细微差异。

这种碰撞的一个常见实例是机器人在离开任务时“夹住”物体的边缘。这通常可以通过在程序中包含一个“offset”来避免。有关有效使用偏移量的更多信息,请参阅这篇博客文章。

在机器人最灵巧的区域操作

并不是机器人工作空间的所有区域都是一样的。机器人在其工作空间的某些区域将比其他区域更具“可达性”。在可达性高的区域,机器人将能够从多个方向访问点。在可达性较低的地区,机器人将只能从一个或两个方向访问点。

有时,运动规划器将无法在工作空间中找到两个目标之间的路径。通常,这个问题可以通过简单地增加路线图中的示例数量来解决,但并非总是如此。

如果运动规划器连续无法连接目标,则确保任务位于机器人工作空间内最可达的区域内。通过打开机器人面板查看机器人的工作空间(在工作站树中右键单击机器人并选择)选项)和选择显示当前工具工作空间部分。