4. 运动指令编程

在 UR PolyScope 中,机器人所有运动都通过运动指令下发。理解 MoveJ、MoveL、MoveP、MoveC 四类指令的差异,是编写稳定、可预测程序的基础。它们并不是“随便选一个都能到点”的等价工具,而是分别对应关节空间插补、笛卡尔直线插补、过程点过渡和圆弧插补四种不同的轨迹生成方式。选错指令,轻则路径绕远、节拍变慢,重则触发奇异点、关节超限或碰撞。

四类运动指令的本质区别

MoveJ(关节运动):在关节空间中插补,机器人各关节从起点角度同步运动到目标点角度。它只保证起点和终点位姿正确,中间路径不可预测,通常呈弧线。优点是速度快、不易在奇异点附近出问题,适合大范围转移、远离工件的空行程。参数上需要指定目标点、关节速度(°/s)和关节加速度(°/s²)。

MoveL(直线运动):在笛卡尔空间中插补,工具 TCP 沿起点到终点的直线运动,姿态同步插补。路径可预测,适合焊接、涂胶、直线插入、沿边检测等对轨迹有要求的场合。参数为工具速度(mm/s)和工具加速度(mm/s²)。MoveL 对奇异点和关节限位敏感,路径经过奇异点附近时关节速度会急剧上升。

MoveP(过程运动):本质是带圆滑过渡的笛卡尔运动,用于在连续路径中避免每个点都停顿。它让机器人以恒定工具速度平滑通过一系列过程点,常用于涂胶、点胶、喷涂等需要连续匀速的轨迹。参数同样是工具速度与加速度,但轨迹在过程点处被圆滑处理,不精确经过中间点。

MoveC(圆弧运动):通过一个中间点(Via 点)和一个终点确定一段圆弧,TCP 沿圆弧运动。用于倒角、圆弧焊缝、圆弧抓取等。参数需要给定 Via 点、终点、工具速度和加速度。MoveC 的圆弧由三点确定,Via 点位置直接决定圆弧半径和圆心。

四类运动指令轨迹与参数对照 MoveJ 关节运动 起点 终点 关节空间弧线 路径不可预测 参数:关节速度 °/s 关节加速度 °/s² MoveL 直线运动 起点 终点 TCP 直线插补 路径可预测 参数:工具速度 mm/s 工具加速度 mm/s² MoveP 过程运动 起点 终点 过程点 圆滑过渡不停顿 参数:工具速度 mm/s 工具加速度 mm/s² MoveC 圆弧运动 起点 终点 Via 点 参数:Via 点 + 终点 工具速度 / 加速度 指令选择依据与速度/加速度设置 大范围空行程 → MoveJ 直线轨迹要求 → MoveL 连续匀速轨迹 → MoveP 圆弧/倒角路径 → MoveC 速度设置:MoveJ 用关节速度(°/s),MoveL/MoveP/MoveC 用工具速度(mm/s); 加速度设置:与速度同量纲,决定加减速快慢,影响节拍与冲击; 原则:先保证轨迹正确,再逐步提高速度与加速度,观察关节是否接近限位或奇异点。

关节运动与直线运动的选择依据

选择 MoveJ 还是 MoveL,核心看“中间路径是否重要”。如果只关心终点位姿,中间怎么走无所谓,优先 MoveJ,因为它更快、更不容易在奇异点附近出问题。典型场景:从待机位到取件位上方、从工件上方到放件位上方、回原点等。如果中间路径必须是一条直线,或者必须避开某个障碍、必须沿某个方向插入,则必须用 MoveL。典型场景:直线插入装配、沿边扫描、焊接直线段、涂胶直线段。

一个常见的工程判断是:接近点用 MoveJ,工艺段用 MoveL。例如抓取任务中,先 MoveJ 到工件上方 100 mm 的接近点,再 MoveL 下降到抓取点,抓取后再 MoveL 抬升 100 mm,最后 MoveJ 转移到放件点。这样既保证工艺段轨迹可控,又让空行程保持高效率。

MoveP 适合“不需要精确经过每个点,但需要连续匀速”的场合。例如涂胶轨迹由多个示教点组成,如果每个点都用 MoveL,机器人会在每个点减速再加速,胶线会出现堆积或断胶。改用 MoveP,机器人以恒定速度圆滑通过各过程点,胶线更均匀。MoveC 则专门解决圆弧路径,Via 点不要选得太靠近起点或终点,否则圆弧半径过小、关节速度容易超限。

速度与加速度设置

速度决定运动快慢,加速度决定达到该速度的快慢。两者共同影响节拍和冲击。设置时注意三点:

  • 量纲不同:MoveJ 的速度单位是 °/s,加速度单位是 °/s²;MoveL、MoveP、MoveC 的速度单位是 mm/s,加速度单位是 mm/s²。混用会导致程序报错或运动异常。
  • 速度不是越高越好:速度过高时,靠近奇异点或关节限位的路径上,某个关节可能被迫超速,PolyScope 会报“关节速度过高”或“接近奇异点”。此时应降低速度或调整路径。
  • 加速度影响冲击与节拍:加速度越大,启停越猛,机械冲击和振动越大;加速度越小,运动越柔和,但节拍变慢。一般先设一个保守值,确认轨迹正确后再逐步提高。
在 PolyScope 中,运动指令的速度和加速度可以直接在指令参数面板中填写,也可以使用变量。对于需要频繁调整的工艺段,建议把速度、加速度定义为变量,便于统一修改和调试。

一个可参考的参数设置示例

以下示例展示一个抓取-放置程序的运动指令序列,参数为教学示例值,实际应根据负载、节拍和轨迹要求调整。

MoveJ  p_home,    a=1.05 rad/s², v=1.57 rad/s   # 回原点,关节速度约 90°/s
MoveJ  p_above_pick, a=1.05 rad/s², v=1.57 rad/s  # 到取件点上方
MoveL  p_pick,    a=1.2 m/s²,   v=0.25 m/s      # 直线下降到取件点
# 夹爪抓取
MoveL  p_above_pick, a=1.2 m/s², v=0.25 m/s     # 直线抬升
MoveJ  p_above_place, a=1.05 rad/s², v=1.57 rad/s # 转移到放件点上方
MoveL  p_place,   a=1.2 m/s²,   v=0.25 m/s      # 直线下降到放件点
# 夹爪释放
MoveL  p_above_place, a=1.2 m/s², v=0.25 m/s    # 直线抬升
MoveJ  p_home,    a=1.05 rad/s², v=1.57 rad/s   # 回原点

这段程序中,MoveJ 负责大范围转移,MoveL 负责接近和离开工件的直线段。速度上,关节运动用约 90°/s,直线运动用 250 mm/s,加速度分别取 1.05 rad/s² 和 1.2 m/s²。实际调试时,可以先以较低速度运行,观察轨迹和关节状态,再逐步提高。如果发现某个 MoveL 段在接近奇异点时关节速度异常升高,可以改为 MoveJ 接近,或者调整路径绕开奇异点。

MoveL 和 MoveC 对奇异点敏感。当工具姿态接近腕部奇异(J5 接近 0°)或肩部/肘部奇异时,笛卡尔运动可能要求某个关节瞬间大幅转动。此时应降低速度、调整姿态或改用 MoveJ 过渡。MoveP 虽然圆滑,但同样基于笛卡尔插补,奇异点附近仍需谨慎。

总结来说,四类指令的选择可以归纳为:路径不重要用 MoveJ,路径要直用 MoveL,路径要连续匀速用 MoveP,路径是圆弧用 MoveC。速度与加速度设置则遵循“先正确、后快速”的原则,量纲不能混,奇异点附近要留余量。掌握这些判断依据,才能在 PolyScope 中写出既高效又安全的运动程序。