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 还是 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 会报“关节速度过高”或“接近奇异点”。此时应降低速度或调整路径。
- 加速度影响冲击与节拍:加速度越大,启停越猛,机械冲击和振动越大;加速度越小,运动越柔和,但节拍变慢。一般先设一个保守值,确认轨迹正确后再逐步提高。
一个可参考的参数设置示例
以下示例展示一个抓取-放置程序的运动指令序列,参数为教学示例值,实际应根据负载、节拍和轨迹要求调整。
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 接近,或者调整路径绕开奇异点。
总结来说,四类指令的选择可以归纳为:路径不重要用 MoveJ,路径要直用 MoveL,路径要连续匀速用 MoveP,路径是圆弧用 MoveC。速度与加速度设置则遵循“先正确、后快速”的原则,量纲不能混,奇异点附近要留余量。掌握这些判断依据,才能在 PolyScope 中写出既高效又安全的运动程序。