使用RoboDK进行碰撞检查可以帮助您防止实际设置中发生碰撞。碰撞检查可以以多种方式使用,例如目视检查碰撞,自动避免机器人加工项目发生碰撞或生成无碰撞图以自动创建无碰撞程序。
本节涵盖以下主题:
● 如何激活碰撞检查为您的模拟。
● 如何 定义碰撞检测图。
● 如何激活自动碰撞检测和避免用于机器人加工项目。
● 如何自动创建无冲突程序使用PRM算法链接不同的目标或其他程序。
重要:RoboDK中的虚拟环境可能无法完美地代表您的真实设置。因此,建议考虑公差以安全地防止碰撞。您可以通过加载更大,更简化的设置3D模型来实现。例如,您可以将主轴建模为简单的立方体(仅用于碰撞检查)。
选择工具➔ 检查碰撞打开或关闭碰撞检测。如果激活了碰撞检测功能,则当检测到碰撞时,所有程序和机器人运动都将停止。当模拟处于碰撞状态时,处于碰撞状态的所有对象,工具和机器人链接将以红色突出显示。
请按照以下步骤安全地检查程序是否存在冲突:
1.右键单击一个程序。
2.选择检查路径和碰撞(Shift + F5)。此选项快速检查该路径是否可行(与“检查路径– F5”相同),然后验证没有冲突。
重要: 工具中定义的碰撞检查步骤➔选件➔运动定义安全检查碰撞的步骤。
提示:确保您在RoboDK中准确地对机器人单元进行了建模。还建议使3D几何体大于实际尺寸,以安全地预测碰撞。
注意: 如果即使检测到冲突也希望继续模拟程序,则可以转到“工具”。➔选件➔运动菜单并取消选中检测到碰撞时停止机器人运动的选项。
您可以指定是否需要检查任何一对对象之间的交互是否存在冲突。
选择工具➔ 碰撞图显示单元格中所有移动对象与碰撞检查状态之间的关系。双击一个单元格以激活或禁用该关系的碰撞检查。选择设置默认选择以自动设置保守选择。
默认情况下,RoboDK检查工作站中所有运动对象之间的碰撞,包括所有机器人链接,对象和工具。作为例外,不检查连续的机器人关节是否有碰撞,因为它们可能始终处于接触状态。
提示: 双击对角线上的案例,以检查/取消选中特定对象与所有其他对象的碰撞。
提示:如果模拟由于冲突检查而减慢了速度,则最好减少检查次数,以使用较少的计算机能力进行冲突检查。
碰撞检测速度很大程度上取决于许多因素。
1.在中定义的支票对数碰撞图。拥有较少检查的碰撞图会更快。
2.用于碰撞检查的机械手步骤。可以在“工具”中修改碰撞步骤➔选件➔运动菜单。线性运动以毫米为单位步进,关节运动以度为单位步进。较大的步骤将提供更快的碰撞检查,但结果可能不太准确。
3.计算机功能:更多的计算机功能(更快的CPU)和更多的处理线程将使您能够更快地进行碰撞检查。
4.3D文件的复杂性。具有较高详细程度的几何图形(例如圆形区域)通常需要更多的计算能力。简化这些几何形状并减少三角形的数量将有助于您加快碰撞检查的速度。
提示: 您可以更改STEP / IGES对象导入设置以降低详细程度(在工具-选项-CAD菜单)。这将在您的RoboDK项目中创建更亮的对象。物体较轻的工作站将帮助您加快仿真和碰撞检查的速度。您还将获得较小的RDK文件。
请按照以下步骤为机器人加工项目激活自动碰撞检查和避免碰撞:
1.选择工具➔选件➔凸轮
2.选中允许自动避免碰撞
3.双击您的机器人加工项目,3D打印,曲线跟踪或点跟踪项目。
4.选中避免碰撞:如优化参数中所述,这将通过更改围绕Z轴的刀具方向来激活自动避免碰撞。
重要:通过绕工具的Z轴旋转,此选项将尝试自动避免碰撞。确保未检查刀具刀具是否与零件碰撞。如果要检查刀架与零件之间是否存在碰撞,则可能必须将主轴拆分为2种工具(一种用于碰撞检测,另一种具有其他可视化信息,例如刀具)。
提示: 机器人加工路径的碰撞检测可能需要很长时间才能计算出来。确保适当缩小碰撞图范围,以帮助加快碰撞检测和避免过程。
运动计划功能会自动在机器人工作空间内创建无碰撞路径。在RoboDK中,此功能使用称为“概率路线图”(PRM)的运动计划算法。
首先,创建机器人工作空间中自由空间的地图。然后,该图用于在机器人编程期间快速生成无碰撞的轨迹。
PRM算法具有以下两个属性:
● 概率:计划者随机选择“配置空间”中的点(即计划者用来知道机器人可以在其工作空间中移动的点的集合)。这使得PRM算法比其他试图平等地覆盖整个工作空间的运动计划算法更快。
● 路线图:PRM算法通过首先创建整个机器人工作空间的“路线图”来工作。
有关机器人运动计划的更一般介绍,请参阅此博客文章。
视频:介绍RoboDK的无碰撞运动计划器功能https://www.youtube.com/watch?v=KPR2aOZn924&list=PLjiA6TvRACQd8pL0EnE9Djc_SCH7wxxXl&index=10。
使用PRM运动计划时有两个不同的阶段。这些操作在RoboDK中分别执行,从而提高了功能的效率。较慢的“构造阶段”仅需要执行一次,而较快的“查询阶段”可以重复多次。
这两个阶段是:
有关RoboDK PRM算法如何工作的更多信息,请参考此博客文章。
本节说明如何在RoboDK程序中同时使用这两个阶段。使用示例焊接设置来演示功能。
要使用运动计划器,需要有一个机器人,最好是带有工具的机器人。在工作空间内至少有一个对象也很有意义,否则就不需要避免碰撞。至少分配两个目标将很有用,这些目标将用作生成的无碰撞路径的起点和终点。
可以使用以下过程创建示例焊接设置:
1.选择一个机器人:
a.选择文件➔打开在线图书馆
b.使用过滤器查找机器人。例如,选择ABB IRB 2600-12 / 1.85(选择以下过滤器:ABB(品牌),10-20 kg有效载荷和1500-2000mm延伸范围。
c. 选择下载,该机械手应自动出现在主屏幕上。
2.选择一个工具:
a.在同一个在线图书馆中,按类型过滤➔工具 (首先单击“重置过滤器”以删除以前的过滤器)
b.下载工具,例如“焊枪”
c. 该工具应自动安装到机器人上
d.加载工具后,可以关闭在线库
3.添加参考框架:
a.选择程序➔ 添加参考框架
b.在树中选择新的参考系,然后按F2将其重命名为“ Obstacle Reference”。
4.添加一些对象:
a.选择文件➔ 打开打开位于计算机中的RoboDK库目录(它将位于RoboDK安装目录中)。
b.选择一个对象,例如“ Object Table.wrl”
c. 将对象拖放到桩号树中的“障碍物参考”上。
d.选择另一个对象,例如“ box.stl”,并将其拖到“障碍物参考”上。
e.通过执行以下操作将桌子移动到机器人的前面:
i. 右键单击“障碍物参考”,然后选择“选项”(或双击树中的参考)以调出“框架详细信息”面板
ii. 在名为“相对于参考位置”的面板中输入以下值:项目:1000、0、400、90、0、0
f. 如有必要,请按照以下步骤增加对象(例如“盒子”)的大小和位置:
iii. 右键单击工作站树中的对象,然后选择选项(或双击树中的对象)以显示“对象详细信息”面板
iv. 通过单击更多选项来缩放框… ➔应用比例并在比例比例中输入“ 4.0”
v. 通过在名为“相对于障碍物参考的对象位置”的面板中输入以下值,将框移动到表格上:0、0、200、0、0、0
5.创建目标:
a.选择程序➔教导目标
b.在工作站树中选择新目标,然后选择F2将其重命名为“开始目标”
c. 通过执行以下操作移动目标:
vi. 在工作站树中的目标上单击鼠标右键,然后选择“选项”(或按F3键)以显示“启动目标”面板。
vii. 在“障碍物参考”面板的“目标”位置中输入以下值:500、0、0、90、0、180
d.以相同的方式创建第二个目标,并将其重命名为“结束目标”。使用与以前相同的方法,将其移至以下位置:-500、0、0、90、0、180
任务会占用机器人的所有工作空间是很不寻常的。创建PRM贴图时,通常最好限制机器人的关节极限。这将加快生成地图的过程,并确保该地图中的点位于最佳位置。
对于6轴机器人,最经常受到限制的两个关节是:
1.第1关节(基础关节)—限制该关节会阻止机器人移到工作区的任何一侧。
2.第3关节(肘关节)—限制该关节会阻止机器人在上肘和下肘配置之间进行切换。
使用以下过程更改关节极限:
1.右键单击工作站树中的机器人模型图标(例如ABB IRB 2600-12 / 1.85),然后选择选项…以打开机器人面板。或者,只需双击工作站树中的机器人名称。
2.在“关节轴点动”部分中,移动要限制的机器人关节的滑块(例如θ1和θ3)找到您想要的下关节极限在哪里。
3.双击“关节轴点动”内的任何关节下限。例如,如果θ1的关节极限当前为-180,则双击数字-180。这将弹出“设置下关节极限”面板。
4.将关节下限设置为θ1= -50并且θ3 = -90。
5.更改关节限制,然后单击“确定”。
6.使用相同的过程设定关节上限θ1= 50。
通过查看机器人的可访问工作区可以看到此更改。通过选择机器人面板“工作空间”部分中的“显示当前工具”选项来显示工作空间。它将显示新的关节限制现在只能到达部分工作空间。
PRM算法使用以下三个参数生成可到达位置的路线图:
1.样品数 —地图由机器人可访问的整个工作区中的许多随机放置的位置(样本)组成。此数字确定样本数。默认值为100个样本。
2.每个样本的边缘—该算法尝试将地图中的每个样本与许多其他样本连接起来。将两个样本连接在一起的线称为“边缘”,表示这两个位置之间的无碰撞路径。此属性指示每个样本将创建的最大边缘数。默认值为每个样本25条边。
3.机械手步数(度)—检查潜在边缘是否无碰撞时,算法将沿其规则间隔停止以检查碰撞。这些间隔之间的距离由机械手步骤确定。默认值为4度。
这三个参数确定生成的路线图的详细程度。它们还会影响在施工阶段生成路线图所需的时间。
大量的样本和每个样本更多的边缘将产生更细粒度的路线图,这将花费更长的时间。较大的“机器人”步骤将更快地生成地图,但可能无法检测到潜在的碰撞。
使用默认值,通常可以在15分钟内生成路线图,具体取决于工作区的设置和机器人的属性。
有关设置这些参数的最佳实践,请参见本节末尾的提示。
运动计划器的“构建阶段”是通过以下过程实现的,该过程生成了机器人工作空间的路线图:
1.转到“实用工具”菜单,打开“无碰撞运动计划器”面板➔无碰撞运动计划器➔创建无碰撞地图,或点击旁边的小箭头检查碰撞并选择创建无碰撞地图。
2.输入新参数或保留默认值。
3.单击更新地图以生成路线图。
然后,PRM算法将使用所选参数生成路线图。完成后,可以通过选中“显示地图”框来查看生成的路线图。单击显示样本将使机器人在工作空间内的所有样本中移动。
当两个目标或程序链接在一起时,访问运动计划器的“查询阶段”。
要链接两个目标,请首先在站树中选择它们。有两种选择和链接目标的方法:
1.使用Ctrl键:
a.左键单击要开始移动的目标(在示例中,目标为“开始目标”)。
b.按住CTRL键。
c. 左键单击目标目标(例如“最终目标”)
d.右键单击两个目标之一,然后选择“链接所选目标”。或者,如果“无碰撞运动计划器”面板打开,则单击“链接选定的目标/程序”按钮。
2.使用Shift键:
a.在工作站树中,将两个目标一个排列在另一个上方,起始目标位于结束目标上方。可以通过使用鼠标右键将目标拖放到树上来进行移动。放下目标将显示一个菜单,用于选择目标应位于的位置。
b.左键单击任一目标。
c. 按住Shift键。
d.左键单击另一个目标。
e.右键单击两个目标之一,然后选择“链接所选目标”。或者,如果“无碰撞运动计划器”面板打开,则单击“链接选定的目标/程序”按钮。
两种方法都将生成一个新程序,该程序使用保存的路线图将两个目标链接在一起。要沿相反方向创建运动,请以相反顺序选择目标-即通过使用Ctrl方法在“开始目标”之前选择“结束目标”,或为SHIFT方法在站树中重新排列目标。
运动计划器还可以类似的方式将两个不同的程序链接在一起。这将在两个程序之间创建无冲突的路径,并创建一个新的主程序。
对于焊接示例,使用以下过程创建两个虚拟程序:
1.创建4个目标作为“对象参考”参考框架的子对象(在工作站树中右键单击“对象参考”,然后选中“活动参考框架”)。然后通过选择程序来创建四个目标 ➔教导目标 四次,或按Ctrl + T四次。
2.在工作站树中选择每个新目标,然后输入以下名称和值。要更改目标名称,请按F2键或右键单击目标并选择“重命名”。要更改目标值,请按F3键以显示“目标”面板,或右键单击目标并选择“选项”。在标有以下内容的目标位置部分中输入新值:对象参考。
a.名称:“左点1”值:200、200、0、90、0,-135
b.名称:“ Left Point 2”值:200,-200、0、90、0,-135
c. 名称:“ Right Point 1”值:-200、200、0、90、0、135
d.名称:“ Right Point 2”值:-200,-200、0、90、0、135
3.创建第一个程序:
a.进入程序➔ 添加程序
b.通过首先在站树中选择程序,然后按F2或右键单击并选择“重命名”,将程序重命名为“ Left Weld”。
c. 通过首先在站树中选择一个目标并选择“程序”,将以下目标添加为线性指令。➔ 移动线性指令:开始目标,左点1,左点2,开始目标。
4. 以相同的方式创建第二个程序“ Right Weld”,这次添加以下目标:End Target,Right Point 1,Right Point 2,End Target。
请注意,这两个虚拟程序不包含用于激活/停用焊枪的命令。在实际程序中,必须包含这些命令。
要使用运动计划器链接任何两个程序,请使用以下过程:
1. 使用上一节(链接目标)中描述的两种方法之一选择两个程序。
2. 右键单击任一程序,然后选择“链接所选程序”。如果打开了无碰撞运动计划器面板,则可以通过单击链接选定的目标/程序来实现。
将创建一个名为“ MainSafe”的新程序,该程序将运行第一个程序,进行无碰撞移动,然后运行第二个程序。可以像其他程序一样更改和重命名该主程序。
可以将任何新目标添加到PRM路线图中,而无需重新生成整个地图。这意味着仅在将新对象添加到工作空间或移动现有对象的情况下,才需要完全重新生成路线图。
将新目标添加到路线图后,PRM算法将尝试将其连接到路线图内已有的带有一组新边的多个现有点。可以为新目标设置与默认路线设置不同的默认边数。
可以使用以下过程设置新目标的最大边缘数
1.转到“实用工具”菜单,打开“无碰撞运动计划器”面板➔无碰撞运动计划器➔创建无碰撞地图,或点击旁边的小箭头检查碰撞并选择创建无碰撞地图。
2.在标记为新样品边缘的框中输入边缘数。默认值为5。
有两种方法可以向路线图添加新目标:
1.在工作站树中选择目标。通过单击最高目标,按住Shift键,然后单击最低目标,可以一次选择多个相邻目标。按住Ctrl键可以选择多个不相邻的目标。然后在无碰撞运动计划器面板中单击添加选定的目标。
2.只需使用相同的方法来链接所选目标或链接前面各节中描述的所选程序(链接目标和链接程序)。路线图中尚不存在的任何目标将自动添加。
运动计划器易于使用,但是有一些最佳实践可以改善编程工作流程。
从小参数开始
施工阶段可能需要很长时间才能运行。在编程的早期阶段,当机器人单元的布局不断变化时,这可能变得很麻烦。每次将对象添加到工作空间或四处移动时,都需要重新生成整个路线图。
为了减少等待生成路线图所花费的时间,最好先使用较小的参数。
例如,以下参数可以在10-15秒内生成地图:
1.样品数:10
2.每个样本的边缘:5
3.机械手步数(度):4.0
这将不会产生最有效的无碰撞运动,但是将允许更快地更改单元格设计。
确定了单元格中所有对象的位置后,便可以生成更大的地图(例如,默认参数为100、25、4.0)。
最后,在生成机器人程序之前,最好生成更大的路线图(例如,参数为500、50、2.0)。这将花费很长时间,但会产生最有效的运动。
使用联合限制
设置机器人关节极限(如上一节所述)限制关节极限)有双重好处。首先,在某些情况下可以加快施工阶段。其次,它可以确保路线图实际包含对机器人程序有用的位置。很容易忘记这一重要步骤。
正确定义碰撞图
当两个物体碰撞时,将触发碰撞检测。您可以在碰撞图设置。减少交互次数(绿色复选标记)将加快碰撞检查的速度。
更快的碰撞检查
计算无碰撞路径所需的时间取决于许多因素,如碰撞检测部。除其他外,您可以增加用于碰撞检查的机械手步骤,限制关节限制或简化3D几何形状以加快碰撞检查的速度。
偏移您的3D模型
术语“避免碰撞”表示运动计划器将始终在所有情况下避免碰撞。在仿真环境中当然是这样。但是,在现实世界中,如果机器人离物体太近,它仍然会与物体碰撞。这通常是由于模拟机器人和物理机器人之间的细微差异而发生的。
此类碰撞的常见实例是机器人在离开任务时“抓紧”物体的边缘。通常可以通过在程序中包含“偏移”来避免这种情况。有关有效使用偏移量的更多信息,请参见此博客文章。
在机器人最灵巧的区域操作
并非机器人工作区的所有区域都相等。机器人在其工作区的某些区域将比其他区域具有更大的“可达性”。在具有较高可达性的区域中,机器人将能够从多个方向访问点。在可达性较低的区域,机器人只能从一个或两个方向访问点。
有时,运动计划器将无法在工作空间中的两个目标之间找到路径。通常,仅通过增加路线图中的样本数量即可解决此问题,但并非总是如此。
如果运动计划器始终无法连接目标,请确保任务位于机器人工作区的最大可达范围内。打开机器人面板(在工作站树中的机器人上单击鼠标右键,然后选择“选项”),然后在“工作空间”部分中选择“显示当前工具”,以查看机器人的工作空间。