运动计划功能会自动在机器人工作空间内创建无碰撞路径。在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模型
术语“避免碰撞”表示运动计划器将始终在所有情况下避免碰撞。在仿真环境中当然是这样。但是,在现实世界中,如果机器人离物体太近,它仍然会与物体碰撞。这通常是由于模拟机器人和物理机器人之间的细微差异而发生的。
此类碰撞的常见实例是机器人在离开任务时“抓紧”物体的边缘。通常可以通过在程序中包含“偏移”来避免这种情况。有关有效使用偏移量的更多信息,请参见此博客文章。
在机器人最灵巧的区域操作
并非机器人工作区的所有区域都相等。机器人在其工作区的某些区域将比其他区域具有更大的“可达性”。在具有较高可达性的区域中,机器人将能够从多个方向访问点。在可达性较低的区域,机器人只能从一个或两个方向访问点。
有时,运动计划器将无法在工作空间中的两个目标之间找到路径。通常,仅通过增加路线图中的样本数量即可解决此问题,但并非总是如此。
如果运动计划器始终无法连接目标,请确保任务位于机器人工作区的最大可达范围内。打开机器人面板(在工作站树中的机器人上单击鼠标右键,然后选择“选项”),然后在“工作空间”部分中选择“显示当前工具”,以查看机器人的工作空间。