本部分介绍如何在机器人离线状态下,在RoboDK中预备一个离线编程工作站。在本范例中,为一台优傲(UR)机器人编程与仿真,实现机器人喷涂应用。
RoboDK项目中的所有设置都被保存在RoboDK 工作站中(RDK 文件)。一个RoboDK工作站包括机器人、机器人工具、参考坐标系、物体(工件)及其他参数。该RoboDK工作站被保存在单一文件中(RDK 扩展),而无需单独备份机器人文件、机器人工具、以及物体等。
可以在RoboDK网站的范例部分,查看如何使用RoboDK实现不同应用的视频:https://robodk.com/cn/examples。
按照以下步骤创建新的RoboDK项目(RDK工作站):
1.下载并安装RoboDK:https://robodk.com/cn/download
2.双击桌面上的快捷方式
3.如果有已经打开的其他工作站:
选择File➔ New Station (Ctrl+N)开始新的项目
多个RoboDK项目可以同时存在于RoboDK中。双击左侧树型菜单中的工作站图标激活并显示某一个项目。
可以从本地文件或者在线模型库中添加新的机器人:
1.选择File➔ Open online library(Ctrl+Shift+O),在线模型库将会出现在嵌套窗口中。
也可以使用工具栏中同样的按钮:
2.根据品牌、载荷等参数找到你的机器人模型。
此案例使用UR10机器人(10公斤载荷,1.3米臂展半径)。
3.选择Download,几秒钟后机器人将出现在工作站。
4.完成机器人加载后可以关闭在线模型库。
Tip:点击在线模型库中的reset filter将重置参数过滤器。
Tip:或者,也可以在网站上:https://robodk.com/library 直接下载机器人文件(.robot文件),拖拽该文件至RoboDK窗口内或者点击File➔Open打开它。
Note:每当在RoboDK中加载一台新的机器人时,一个新的参考坐标会随之出现,用于表达机器人的基坐标。
Note:从在线模型库中加载的机器人将自动备份于本地文件夹中。本范例的默认位置为:C:/RoboDK/Library/Tutorial-UR-Painting.rdk。
参考坐标系用于物体相对于机器人,或者物体相对于其他物体在3D空间内的参照(包括位置和方向)。
Note:更多关于RoboDK中参考坐标系的内容请参考reference frames部分。
添加一个新的参考坐标系:
1.选择Program➔ Add Reference Frame
或者,使用工具栏中相应的按钮。
2.在树型结构或者工作空间内双击一个参考坐标系,并输入图中所示的坐标(X、Y、Z位置和欧拉角方向)。可以将鼠标移动到每个坐标值的位置,并使用鼠标滚轮快速改变该坐标系的位置。
坐标轴的的默认颜色表达:
● X坐标➔红色
● Y坐标➔绿色
● Z坐标➔蓝色
● 第一欧拉旋转轴➔青色
● 第二欧拉旋转轴➔洋红
● 第三欧拉旋转轴➔黄色
Tip:选择Tools➔Options➔Display➔Display XYZ axis letters显示参考坐标系的字母标注
3.选择View➔Make reference frames bigger (+)参考坐标系变大
4.选择View➔Make reference frames smaller (-) 参考坐标系变小
5.选择View➔Show/Hide text on screen (/)显示或者隐藏几何物体的名字
6.另外,按下F2键可以修改树型工作站中任何坐标系或者物体的名字
如果使用多个参考坐标系,用户可以根据它们现实中的相关性,在树型工作站中拖拽它们的位置。例如,参考坐标系Frame 2可以依据机器人基坐标位置摆放,此时如果移动UR10机器人的基坐标,Frame 2也会随之移动。当使用多台机器人以及参考坐标时,要注意各坐标系之间的依附关系。下图中显示了不同的依附关系。
如下图所示,用户可以在不同颜色的方格中输入或者查看坐标值,这些数值代表该坐标系相对于其他坐标系的关系。多数机器人控制器根据机器人基坐标作为绝对参考来定义其他参考坐标系。
在工作空间内按下Alt键,或者通过使用工具栏中相应的按钮,可以使用鼠标拖动任何参考坐标系。坐标系移动时,它的坐标值也随之改变。
RoboDK支持导入文件的常规3D格式包括STL,STEP(STP)和IGES(IGS)。其他格式例如WRML,3DS或者OBJ也同样支持(在Mac和Linux系统下则不支持STEP与IGES格式)。加载新的3D文件:
1.选择File➔ Open
2.在RoboDK默认文件夹中选择名为Object Inspection的物体:
C:/RoboDK/Library/Object Inspection
3.或者,将物体拖拽至RoboDK主窗口内自动加载。
4.在工作站树型结构中,将物体拖拽至Frame 2内。
Tip:按住鼠标右键的同时进行拖拽,可以重新安排物体在树型结构中的位置。
Important:将物体嵌套于参考坐标系内,可以确保机器人目标将相对于物体添加。如果需要移动参考坐标系时,机器人目标也随之移动。
Tip:当STEP或IGES文件过大时,可以通过以下操作加快导入的速度:
Tools➔Options➔CAD➔Fast import settings。更多信息请参考STEP/IGES 部分。
在RoboDK中可以根据已加载的3D模型,来创建新的机器人工具:
1.选择File➔ Open(如先前部分描述)
2.选择Paint gun.stl文件并添加为物体(该物体将自动添加至机器人基坐标位置)
3.在工作站树型结构中拖拽该物体,使其嵌套在机器人内,如下图所示
可以加载新的机器人工具,或将其保存为.tool格式的文件。
在默认状态下,RoboDK将新的机器人工具TCP位置设置为[X,Y,Z]=[0,0,200]mm。该坐标位置可以通过手动更改,或者按下ALT+Shift键并拖拽TCP,如下图所示:
1.按下ALT+Shift或使用工具栏中的按钮(如图中标识)
2.选中青色的平面(TCP坐标的XZ平面)并朝喷枪表面的方向拖拽TCP,如下图所示
3.选中绿色的弧形箭头(Y轴旋转方向)并移动,直至TCP的Z轴指向外,即喷枪方向。
4.用户可以进一步微调TCP的坐标值。双击喷枪物体后可以查看并手动修改它的坐标,将鼠标置于每个方格内的数字上时,可以通过滚动鼠标滑轮快速更新TCP的位置。
此时,可以保存工作站:
1.选择File➔ Save Station (Ctrl+S)
2.将工作站保存为Paint Test.rdk。这将更新窗口内的工作站名。
可以根据已有的TCP定义一个新的TCP,例如,在第一个TCP的位置基础上设置一个偏移距离,或者根据一个钻磨轴的位置定义新的刀具位置。
以下步骤假设第二个TCP需要位于第一个TCP坐标Z轴的150mm位置:
1.右键点击机器人
2.选择 Add Tool (TCP)。一个新的工具Tool 2将出现。
3.双击新的TCP
4.选择Tool Center Point with respect to ➔Paint gun
5.在Z坐标方格内输入150 mm并将其他数值设为0。
本小节中定义的TCP不会出现在范例其他步骤中。
在导入RobODK时,机器人工具的几何位置可能没有与机器人法兰(工具的参照位置)对齐。假设制作机器人工具的3D模型时出现一个失误,工具的坐标系位置与的实际需要位置产生了Z轴的180度旋转,以下步骤将修改这个错误:
1.在机器人工具信息Tool details窗口点击More options
2.在黄色方格(围绕Z轴旋转)中输入180,以改变喷枪的几何位置,如下图所示。可以通过鼠标滚轮更新各个方格中的坐标数字并在窗口中观察工具位置的改变。
机器人位置可以被记录为目标。根据以下步骤添加两个机器人目标,分别作为安全目标(Home)与接近目标(Approach):
1.双击机器人以查看机器人面板
2.选择Paint gun作为Tool Frame(机器人工具坐标)。当一个机器人工具或者参考坐标系被选为当前工具或坐标时,一个绿色的圆点会出现树型结构中的该项目上。
3.选择Frame 2作为Reference Frame(参考坐标系)
4.按下Alt键并拖拽机器人的TCP或者机器人法兰至一个不易与任何物体产生碰撞的安全位置。或者,以参考坐标系为基础移动Tool Frame(TCP)的坐标。
5.使用Other configurations选择不同的机器人位姿,需确保机器人各轴都不接近轴极限。
Tip:一般来说,程序的第一个机器人目标的各轴数值应尽可能居中(如下图中所示,轴数值的滑杆应尽量居中)。通过改变机器人的位姿,可以防止机器人在运行程序中的线性运动时达到轴极限。
6.选择Program➔ Teach Target(Ctrl+T)或者使用工具栏中相应的按钮(如图所示)。该目标将依附于当前参考坐标系,并记录当前的机器人位置(笛卡尔与轴坐标)。
本范例中,第一个目标的机器人轴坐标值为:[-150, -75, -90, -60, 70, 110](角度)。用户可以使用相应的按钮拷贝这些角度值、粘贴至机器人面板的Joint axis jog部分,以改变机器人的位置。
Note:选择另一个参考坐标系将导致新的机器人目标添加于该坐标中。
7.使用F2键将第一个机器人目标重命名为Home。或者,选择Tools➔Rename item。
8.移动机器人使其接近物体的一边(可以按下Alt键并拖拽机器人工具、输入机器人工具坐标或者通过滑杆驱动机器人的各轴)。
在本范例中,我们使用机器人轴坐标为[0,0,200,180,0,180]角度。
9.选择Program➔ Teach Target(Ctrl+T)或者使用工具栏中相应的按钮来添加一个新的机器人目标
10. 将该目标重命名为Approach(见步骤7)。
11. 在树型结构中分别点击Home与Approach目标,观察机器人在两个目标之间运动。
12. 如需在运动轨迹中增加新的目标,右键点击机器人目标并选择Teach Current Position(Alt+双击),记录当前机器人位置为机器人目标。
13. 右键点击机器人目标并选择 Target Options…(F3)打开目标选项窗口,如下图所示
如有需要,改变机器人目标的坐标数值。
根据以下步骤生成一个机器人仿真程序,记录机器人从Home目标移动到Approach目标:
1.在菜单中选择Program➔ Add Program或者使用工具栏中相应的按钮(如下图所示)
2.将程序重命名为ApproachMove
3.选择Home目标
4.选择Program➔ Move Joint Instruction(或使用工具栏中相应的按钮)
该程序自动生成两条命令,设置机器人工具与参考坐标系
5.选中Approach目标
6.再次选择Program➔ Move Joint Instruction
双击ApproachMove程序开始仿真。主窗口下方自动显示仿真状态栏与预测周期时间。
RoboDK的Create Targets on Surface(在物体表面添加目标)功能,针对例如喷涂或者检测应用:
1.选择Program➔ Teach Target(s) on Surface(Ctrl+Shift+T)
2.将鼠标移动至物体表面,可以预览机器人路径位置
3.在物体表面点选几个位置点(左键单击)。每次点击将定义一个新的机器人目标并使TCP的Z轴坐标与物体表面垂直。
4.如有需要,在左侧面板滚动滑轮或者使用左/右按键,调整围绕Z轴旋转的工具方向。
5.按下Alt键移动已有的目标
6.按下Alt+Shift移动已有的目标并保持目标在物体表面上
7.使用Esc键或者右键点击主窗口并选择Done退出Create Targets on Surface模式
当机器人目标生成后,按照以下步骤生成一个仿真程序:
1.选择所有机器人目标并右键单击
Tip:按下Ctrl键选择多个目标。或者,选择Target 3,按下Shift键,选择Target 10选择Target 3至Target 10之间的所有目标。
2.点击弹出菜单中的Rename group选项
3.输入Top Paint。所有已选中的目标将被重命名并编号。
4.右键单击所有目标并选择Create Program,将生成一个新的程序。第一个运动指令是关节运动,之后的运动指令都为线性运动。
5.选择F2将程序重命名为PaintTop
6.双击PaintTop程序启动仿真,机器人将在目标之间运动。
7.如有需要,可以在程序内拖拽机器人目标并重新排序。
与之前接受的操作相似:
1.当机器人到达最后一个目标时,在机器人面板中,增加TCP相对于参考坐标系的Z坐标数值,向上移动机器人工具(如下图红色方格所示)
2.选择Program➔ Add Program或使用工具栏中相应的按钮。
3.选择Program➔ Move Linear Instruction或使用工具栏中相应的按钮。使用F2键将其重命名为Retract。
4.选择Home目标
5.选择Program➔ Move Joint Instruction添加新的运动指令,并关联到Home目标。
分别双击各仿真程序并测试仿真。按下空格键或者使用Fast Simulation按钮/可以提高仿真速度。
主程序需要依顺序执行approach, paint和retract三个程序。
1.选择Program➔ Add Program.
2.选择Program➔ Program Call Instruction.
3.输入名字ApproachMove或者使用Select program自动添加程序。
4.点击OK。
5.针对PaintTop与Retract两个程序重复以上步骤,如下图所示。
双击主程序Main Program将运行完整的仿真。右键单击Main Program并选择Loop可重复循环子程序。
如果Frame 2被移动(例如,按下Alt键并拽动坐标系的X/红色轴),参照该坐标系定义下的物体与机器人目标也跟着移动。如果机器人目标被移动到机器人工作空间范围之外,它的图标上会出现警告信息,如下图所示。
用户可以分别导出各仿真程序,或者导出包含子程序的主程序:
1.右键单击一个仿真程序(例如MainProg)。
2.选择Generate robot program (F6).
或者,通过Generate robot program…选择文件的保存路径。
3.默认的文本编辑器中将显示优傲UR机器人的SCRIPT程序。
该文件是由离线编程所生成的机器人程序。可以将程序发送至机器人控制器上运行,机器人将执行RoboDK中仿真后的运动轨迹。
Note:参考以下内容了解更多关于生成SCRIPT于URP程序:Start a SCRIPT program with a Universal Robots controller与How to generate and modify a URP program for a Universal Robots controller。
Tip:如果RoboDK与机器人已经建立连接,用户还可以使用菜单中的下面几个选项:
● 选择Send program to robot (Ctrl+F6)通过FTP发送程序到机器人(离线编程)
● 选择Run on Robot可以在真机上运行机器人程序(在线编程),此时机器人与RoboDK仿真同步运行。在线编程需要相关机器人驱动器。
Note:选择Run on Robot需要事先调试好机器人驱动器。RoboDK机器人驱动器的使用可能需要机器人控制器上运行其制造商提供的额外软件选项、或者特殊设置。优傲UR机器人不需要额外的软件或设置。
用户可以改变优傲UR机器人的(默认)后置处理器、改变机器人程序的生成:
1.右键单击一个程序或机器人
2.选择 Select Post Processor
3.选择Universal Robots URP
重新生成程序。在本范例中,默认的后置处理器使用关节值定义每个线性运动,而修改后的后置处理器使用笛卡尔坐标定义线性运动。
用户利用RoboDK的应用编程接口(API)可以对仿真进行自定义修改。默认状态下,RoboDK的安装包括Python与一些实现高阶功能的宏(macro)范例程序。这包括喷枪仿真,使用Python给机器人编程,根据偏移距离自动设置TCP位置,仿真不连贯事件,等等。还可以使用其他编程语言,例如C#,C++或者Matlab。更多信息请参考RoboDK API部分。
在本范例中,我们将在工作站中导入已有的喷枪仿真宏程序。我们还将使用半透明的颜色标记喷枪的喷涂范围(通过选择Tools➔Change color tool - Shift+T),或者将使用合适的颜色设置已有的喷枪模型(在本地library文件夹中的paint_gun.tool或者在线模型库中)。注意在修改机器人工具后,仿真程序中的Set Tool指令可能需要重新联接到新的工具)。
1.选择File➔ Open打开一个新的Python宏(py文件)。
2.可以在C:/RoboDK/Library/Macros/ 中查看更多宏范例。
3.选择SprayOn。
4.点击Open。一个新的Python项目将自动添加到工作站树型结构中。该程序将仿真喷枪工作范围内喷漆颗粒在物体表面的沉淀。
5.双击SprayOn宏进行测试。
6.选择On激活仿真。
7.按下Alt键,拖拽机器人法兰,使机器人连同喷枪工具在物体表面上移动。
物体表面将出现喷枪的轨迹。喷漆颗粒的透明度将取决于TCP距离物体表面的距离。
按Esc键一次将清除仿真的喷漆。
8.双击同一个SprayOn程序并选择Off关闭喷漆颗粒仿真。
为了更好地理解该仿真的原理,可以根据以下步骤查看或编辑它的Python代码:
1.右键单击 SprayOn.
2.选择Edit Python Script.
RoboDK已集成Python功能,一个新的窗口(文本编辑器)将自动打开并显示喷枪模拟程序的源代码。
按照以下步骤将喷枪仿真包括在主程序中:
1.右键单击Call ApproachMove程序指令
2.选择Add Instruction➔ Program call Instruction,在第一个调用子程序的指令下方将出现一条新的指令并弹出新的窗口。
3.输入SprayOn(1)。
4.点击OK。
5.重复同样的操作,在PaintTop程序后添加SprayOn(0) 子程序调用指令,如下图所示。
如有需要,在主程序内拖拽子程序调用指令重新安排调用顺序。
6.运行MainProg程序。循环运行两次后,将出现如下图中的运行结果(正常仿真速度)。
用户可以添加新的宏:
1.选择Program➔ Add Python Program
2.右键单击新的程序并选择Edit Python Script
RoboDK支持在仿真程序中设置机器人运行速度,设置数字输出,数字输入等待,在控制器平面显示提示信息,等等。这些设置都在Program菜单中。