碰撞检测

碰撞检查与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。选择Downl2022世界杯国家队名单oad,机器人将自动出现在主屏幕上。

2.选择工具:

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

b。2022世界杯国家队名单下载一个工具,例如“焊枪”

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

d。加载工具后,可以关闭在线库

3.添加一个参考系:

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

b。在树中选择新的参考帧,按F2将其重命名为“Obstacle reference”

4.添加一些对象:

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

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

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

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

e。通过以下操作移动机器人前面的桌子:

我。右键单击障碍物参考,选择“选项(或者只是双击树中的参考),弹出框架的细节面板

2在面板中输入以下值参考位置:项目1000, 0, 400, 90, 0, 0

避碰-图10

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

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.关节轴啮合节,移动要限制的机器人关节的滑块(例如:θ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.机器人步长(度)-当检查一条潜在的边缘是否无碰撞时,算法将沿着它定期停止以检查碰撞。这些间隔之间的距离由机器人步长决定。默认值是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。名字:“Left Point 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。将程序重命名为“左焊”,首先在站点树中选择程序,按F2或右键单击并选择重命名。

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秒内生成一个map:

1.样本数量:10

2.每个样本边数:5

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

这将不会产生最有效的无碰撞运动,但它将允许电池设计改变得更快。

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

避免碰撞-图像29

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

避免碰撞-图像30

使用共同限制

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

正确定义碰撞映射

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

更快的碰撞检查

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

偏移你的3D模型

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

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

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

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

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

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