2. RobotStudio环境与项目搭建
节拍分析的前提,是有一个“能跑起来”的仿真场景。RobotStudio 中的一切分析——路径时间、周期时间、可达性、碰撞——都建立在工作站、机器人系统、工具坐标系(TCP)与工件坐标系(Wobj)这四件事正确配置的基础之上。本节的目标很明确:从零创建一个空工作站,导入机器人系统,定义工具与工件坐标系,最终让机器人沿一条简单路径运动起来,形成一个可复现的基础仿真场景。
一、工作站与机器人系统的关系
RobotStudio 的工程组织是“解决方案(Solution)—工作站(Station)—机器人系统(Robot System)—对象(Object)”的层级结构。工作站是容器,机器人系统是真正具备运动学模型、控制器参数和 RAPID 运行环境的实体。只把机器人模型拖进工作站,它只是一个“几何模型”,不能运行程序;只有通过“从布局(From Layout)”创建机器人系统,才会生成虚拟控制器(VC),此时才能编写和运行 RAPID 程序。
创建流程通常是:新建空工作站 → 在“布局(Layout)”浏览器中通过“ABB 模型库”导入机器人本体 → 右键机器人选择“从布局创建系统”→ 选择 RobotWare 版本与选项(如 709-1 DeviceNet、888-2 等按需勾选)→ 完成系统创建。系统创建后,控制器状态栏会出现“已启动/已停止”的切换按钮,这是判断系统是否可运行的第一标志。
二、工具坐标系(TCP)的定义
工具坐标系决定机器人“以哪个点、哪个姿态”去接触工件。默认情况下,机器人以法兰中心(tool0)为参考,但实际作业中焊枪、吸盘、夹爪的作业点都不在法兰中心。因此必须定义 TCP(Tool Center Point)。
在 RobotStudio 中定义工具坐标系有两条路径:一是通过“建模”菜单创建工具几何体后,用“创建工具(Create Tool)”基于几何体自动生成 TCP;二是手动在“工具数据(tooldata)”中填写位移与姿态。手动定义时,TCP 由三部分描述:
- 位置(trans):TCP 相对 tool0 的 x、y、z 偏移,单位 mm;
- 姿态(rot):用四元数 q1~q4 表示工具坐标系的朝向;
- 质量与重心:mass、cog,影响负载与节拍中的加减速能力。
例如一个简单的吸盘工具,若吸盘中心沿法兰 z 轴向外偏移 150 mm,则 trans 可写为 [0,0,150],姿态保持默认 [1,0,0,0]。在示教器中对应指令为:
PERS tooldata tGripper := [TRUE,[[0,0,150],[1,0,0,0]],[3,[0,0,80],[1,0,0,0],0,0,0]];
其中 TRUE 表示工具已启用,3 为质量(kg),[0,0,80] 为重心位置。这些参数会直接影响机器人动力学计算,进而影响节拍仿真结果,不能随意填写。
三、工件坐标系(Wobj)的定义
工件坐标系用于把程序中的点位从“机器人基坐标”转换到“工件上的局部坐标”。当工件位置发生偏移或旋转时,只需修改 Wobj,程序点位无需重写。定义 Wobj 需要三个点:原点、x 轴方向上一点、y 轴方向上一点(右手定则确定 z 轴)。
在 RobotStudio 中可通过“创建工件坐标(Create Workobject)”在三维视图中拾取三点,也可手动填写。典型定义如下:
PERS wobjdata wobjTable := [FALSE,TRUE,"",[[500,0,800],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
其中第一个数组是 Wobj 相对世界坐标的位置与姿态,第二个数组是工件相对 Wobj 的偏移(通常为零)。定义完成后,在示教器中切换当前 Wobj,所有示教点位都会以该坐标系为参考。
四、完成一个可运行的基础仿真场景
坐标系定义完成后,就可以搭建最小可运行场景。建议按以下顺序操作,每一步都有明确的判断依据:
- 导入机器人并创建系统:布局中出现机器人模型,控制器状态可切换为“已启动”,示教器(FlexPendant)可打开。
- 创建工具与工件:在“建模”中创建吸盘或夹爪几何体,创建工具数据 tGripper;创建工件几何体并定义 wobjTable。
- 编写 RAPID 程序:在“RAPID”选项卡中新建模块,编写一条从 P1 到 P2 的直线运动,并回到 P1 形成循环。
- 同步到虚拟控制器:点击“同步到站(Synchronize to Station)”,将程序写入 VC。
- 仿真运行:切换到“仿真”选项卡,点击“播放”,观察机器人是否按预期运动,有无奇异点报警或碰撞。
一个最小可运行的 RAPID 示例如下:
MODULE MainModule
CONST robtarget pPick := [[400,0,200],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST robtarget pPlace := [[400,200,200],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
PROC main()
MoveJ pPick, v500, z50, tGripper\WObj:=wobjTable;
MoveL pPlace, v300, fine, tGripper\WObj:=wobjTable;
MoveL pPick, v300, fine, tGripper\WObj:=wobjTable;
ENDPROC
ENDMODULE
运行后应观察三个关键点:机器人是否到达 pPick 与 pPlace;运动过程中是否出现“轴配置错误”或“奇异点”提示;仿真时间是否与预期量级一致。若出现报警,优先检查 robtarget 中的轴配置数据(cfx)与 Wobj 定义是否匹配。
五、常见问题与判断依据
| 现象 | 可能原因 | 处理方向 |
|---|---|---|
| 机器人不动,程序无法运行 | 未创建机器人系统,仅有几何模型 | 右键机器人“从布局创建系统” |
| TCP 位置明显偏离工具尖端 | trans 偏移量或姿态填写错误 | 重新测量或基于几何体创建工具 |
| 点位与工件对不上 | Wobj 原点或轴向定义错误 | 用三点法重新拾取,检查右手定则 |
| 仿真报“轴配置错误” | robtarget 的 cfx 与当前姿态不匹配 | 重新示教该点或调整 cfx 参数 |
| 节拍明显偏慢 | 速度参数 v 过低或 z 区过大 | 检查 v500/v300 与 z50/fine 设置 |
完成以上步骤后,你就拥有了一个可运行、可复现、可继续扩展的基础仿真场景。后续的节拍分析、路径优化、多机器人协同,都将在这个场景之上展开。判断场景是否合格的标准很简单:程序能连续运行、机器人能到达所有目标点、无碰撞与奇异点报警、仿真时间可稳定复现。