3. 机器人运动学基础与路径表达
在 RobotStudio 中做路径优化,第一步不是调速度,而是把“机器人到底在哪里、朝哪个方向”这件事说清楚。机器人运动学提供了两套描述方式:一套是控制器内部真正执行的关节空间,另一套是工程师习惯使用的笛卡尔空间。路径优化本质上是在这两套空间之间做取舍——笛卡尔空间里直线好看,但关节空间里运动才真正可行。
关节空间:控制器直接执行的语言
一台六轴工业机器人有 6 个旋转关节,每个关节对应一个角度值。以常见的 IRB 2600 类机型为例,关节 1 到关节 6 的角度范围大致为:J1 ±180°、J2 −95°~+155°、J3 −180°~+75°、J4 ±200°、J5 ±120°、J6 ±400°。控制器下发的运动指令,最终都会转换成这 6 个角度随时间变化的曲线。
关节空间路径的表达形式是 robtarget 中的 robconf 与各轴角度,或直接使用 MoveAbsJ 指令给出 6 个角度。它的优点是:不会出现奇异点、不会超出工作空间、运动学求解一定成功;缺点是:末端在笛卡尔空间里走的轨迹是弯曲的,无法保证直线或圆弧。
! 关节空间绝对运动示例(角度单位:度)
MoveAbsJ [[0,0,0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]], v1000, fine, tool0;
MoveAbsJ [[30,-20,15,0,45,0],[9E9,9E9,9E9,9E9,9E9,9E9]], v500, z10, tool0;
笛卡尔空间:工程师描述任务的语言
笛卡尔空间用位置 (x, y, z) 和姿态 (rx, ry, rz 或四元数) 描述末端工具中心点(TCP)在某一坐标系下的状态。RobotStudio 中 robtarget 的 trans 是位置,rot 是姿态,robconf 是轴配置,extax 是外部轴。例如:
CONST robtarget pPick :=
[[500, 200, 400], [0.7071, 0, 0.7071, 0], [0,0,0,0], [9E9,9E9,9E9,9E9,9E9,9E9]];
! trans = (500,200,400) mm;rot 为四元数,表示绕 Y 轴 90°
笛卡尔空间路径用 MoveL(直线)、MoveC(圆弧)、MoveJ(关节插补但目标点用笛卡尔描述)表达。它的优点是轨迹直观、便于与 CAD 对齐;缺点是可能遇到奇异点、超出关节限位或不可达。
位姿描述:位置 + 姿态 + 配置
一个完整的位姿描述包含三部分:位置(TCP 在参考坐标系中的坐标)、姿态(工具坐标系相对参考坐标系的旋转)、轴配置(robconf,即 cfx、cfy、cfz、cf4 四个值,用于区分同一笛卡尔位姿对应的多种关节解)。
姿态常用四元数 [q1, q2, q3, q4] 表示,RobotStudio 也支持欧拉角输入。四元数避免了万向锁问题,但可读性差;欧拉角直观,但接近 ±90° 时会出现奇异。实际编程中,建议用 RobotStudio 的示教器或“修改位置”功能自动生成四元数,不要手算。
robconf 是路径优化中最容易被忽略的字段。同一个笛卡尔点,机器人可能有 8 种关节解(肩前/肩后、肘上/肘下、腕翻转/不翻转)。如果两个相邻路径点的 robconf 不一致,机器人会在中间发生大幅关节跳变,表现为“突然甩腕”。优化时优先检查 robconf 是否连续。坐标系:路径表达的参照基准
RobotStudio 中常见的坐标系层级为:世界坐标系 → 基坐标系 → 工件坐标系(wobj)→ 工具坐标系(tool)。路径点通常定义在工件坐标系下,TCP 位置由工具坐标系决定。优化路径前必须确认:robtarget 引用的 wobj 和 tool 是否正确,否则所有坐标都会偏移。
例如,焊接任务中工件坐标系定义在夹具上,工具坐标系定义在焊枪末端。如果 tool0 被误用为焊枪工具,TCP 会偏离焊丝端点几十毫米,路径精度完全失效。
路径点定义与运动指令选择
路径点不是孤立的坐标,而是带有运动方式、速度、转弯区数据的完整指令。RobotStudio 中常用指令对比如下:
| 指令 | 空间 | 轨迹 | 典型用途 |
|---|---|---|---|
| MoveAbsJ | 关节空间 | 关节插补 | 回原点、换枪、避障 |
| MoveJ | 关节空间 | 关节插补 | 大范围快速移动 |
| MoveL | 笛卡尔空间 | 直线 | 焊接、涂胶、直线切割 |
| MoveC | 笛卡尔空间 | 圆弧 | 圆弧焊缝、倒角 |
转弯区数据 fine、z10、z50 决定路径点是否精确到达。优化时,非关键点用 z 值让机器人圆滑过渡,关键点用 fine 保证精度。但 z 值过大会导致轨迹偏离工件,需要结合 TCP 速度和路径曲率判断。
路径点定义的实际操作要点
在 RobotStudio 中定义路径点,通常有三种方式:示教、从 CAD 导入、离线生成。无论哪种方式,都要检查以下字段:
- trans:TCP 位置,单位 mm,注意是否与工件坐标系一致。
- rot:姿态四元数,检查是否与工艺要求的方向一致。
- robconf:轴配置,相邻点必须连续,否则会出现关节跳变。
- extax:外部轴位置,有变位机或导轨时必须填写。
一个常见的优化动作是:把连续 MoveL 路径中的非关键点转弯区从 fine 改为 z20 或 z50,同时保持关键点 fine。这样可以在不损失精度的前提下,把节拍缩短 10%~20%。但要注意,转弯区过大会导致拐角处轨迹“切内角”,对于焊接和涂胶这类要求轨迹贴合的场景,需要根据 TCP 速度和路径夹角计算允许的偏差。
z 值。对于需要精确到达的抓取点、焊接起弧点、涂胶端点,必须使用 fine。判断依据是:该点是否要求 TCP 精确停止或精确经过。如果只是过渡点,才考虑用转弯区优化。