碰撞检测

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-20公斤有效载荷和1500-2000mm到达。

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

2.选择一个工具:

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

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

c。该工具应自动附着在机器人上

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

3.添加一个参考框架:

一个。选择程序避免碰撞-图8添加参考框架

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

4.添加一些对象:

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

b。选择一个对象,例如“对象表。wrl”

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

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

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

我。右键点击障碍物参考并选择"选项(或者只是双击树中的引用)来弹出框架的细节面板

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

避免碰撞-图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映射时,约束机器人的关节极限通常是一个好主意。这将加快生成地图的过程,并确保地图中的点位于最佳位置。

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

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

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

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

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

2.关节轴慢跑Section,移动你想要限制的机器人关节的滑块。θ1而且θ3.)找到你想要的关节下限。

3.中任意一个较低的关节极限关节轴慢跑.例如,如果θ的关节极限1目前是-180,双击数字-180。这将会出现设定关节下限面板。

避免碰撞-图14

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

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

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

避免碰撞-图15

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

避免碰撞-图16

选择“PRM参数”

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

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

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

3.机器人步(deg)-当检查一个潜在的边缘是否无碰撞时,算法将沿着它有规律的间隔停下来检查碰撞。这些间隔之间的距离是由机器人的步长决定的。默认是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个目标作为“对象引用”参考框架的子对象(右键单击站点树中的“对象引用”并检查主动参考系).然后通过选择创建四个目标程序避免碰撞-图21教学目标四次,还是按Ctrl + T四次。

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

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

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

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

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

避免碰撞-图22

3.创建第一个程序:

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

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

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

避免碰撞-图25

4.创建第二个程序正确的焊接,这次添加以下目标:End Target, Right Point 1, Right Point 2, End Target。

避免碰撞-图26

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

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

1.使用前一节(链接目标)中描述的两种方法中的任意一种选择这两个程序。

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模型

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

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

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

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

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

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