2. UR机器人运动学基础
在UR协作机器人的节拍优化中,绝大多数“看起来是速度问题”的现象,本质上是运动学问题。要判断一段轨迹为什么慢、为什么抖动、为什么在某个位置突然减速,必须先理解机器人是用哪套坐标在描述运动,以及控制器在两种坐标之间做了什么换算。
一、两套坐标:关节空间与笛卡尔空间
UR机器人有6个旋转关节,每个关节的角度构成一个6维向量 q = [q1, q2, q3, q4, q5, q6],单位通常为度或弧度。这组角度所在的集合就是关节空间。关节空间中的运动描述非常直接:每个关节独立转动,控制器只需对6个电机做位置插补,不存在多解问题,也不会出现坐标换算失败。
而我们在编程时更习惯用笛卡尔空间描述工具中心点(TCP)的位置与姿态:位置 (x, y, z) 单位为毫米,姿态用旋转向量 (rx, ry, rz) 表示,单位为弧度。UR的示教点、MoveL、MoveP 等指令都以笛卡尔位姿为输入。笛卡尔空间直观,但它是“结果空间”,不是机器人直接执行的空间。
两者的关系可以这样理解:关节空间是机器人的“内部语言”,笛卡尔空间是操作者的“外部语言”。控制器必须在两者之间来回翻译,而翻译过程正是节拍损耗与异常的重要来源。
二、正运动学与逆运动学
正运动学(FK)是已知6个关节角,计算TCP位姿。它由UR的DH参数或改进DH参数唯一确定,给定 q 必然得到唯一 (x, y, z, rx, ry, rz),计算量小、稳定可靠。控制器在每个控制周期都用FK计算当前TCP实际位置,用于伺服反馈和碰撞监控。
逆运动学(IK)是已知TCP目标位姿,反求6个关节角。这是节拍问题的核心。UR这类6轴串联机器人,IK具有以下特点:
- 多解性:同一个TCP位姿通常对应8组关节解,来自“肩左/肩右”“肘上/肘下”“腕翻转/腕不翻转”的组合。控制器必须选一组,选择依据是关节限位、与当前构型的距离、以及是否接近奇异点。
- 存在性受限:并非所有笛卡尔位姿都能到达。超出工作空间、或需要关节超限的位姿,IK无解,MoveL会报错或无法规划。
- 计算代价:IK需要迭代或解析求解,比FK昂贵。在高速轨迹中,控制器要在每个插补周期反复求解IK,解算负担会直接影响可达到的进给速度。
因此,MoveJ(关节空间运动)只做关节插补,不涉及IK,通常更快、更平滑;MoveL(直线运动)必须在笛卡尔直线上密集取点并逐点做IK,路径越接近奇异区域,IK越困难,速度被迫下降。这就是“同样的距离,MoveL比MoveJ慢”的根本原因之一。
三、奇异点:节拍杀手
奇异点是机器人雅可比矩阵降秩的构型。在奇异点附近,某些笛卡尔方向上的微小运动需要关节产生极大的角速度,甚至无穷大。UR常见的奇异类型有三类:
- 腕部奇异:q5接近0°,即第4轴与第6轴共线,手腕失去一个自由度。此时绕工具轴的小姿态调整会引起q4、q6剧烈反转。
- 肘部奇异:手臂完全伸直,q3接近0°,TCP位于工作空间边界,径向运动能力丧失。
- 肩部奇异:腕部中心落在第1轴轴线上,肩部旋转方向不确定。
奇异点对节拍的影响不是“报错停机”这么简单,更常见的是隐性减速:控制器检测到接近奇异,会主动限制笛卡尔速度以保护关节不超速,表现为轨迹中段突然变慢、关节发出异响、或路径被轻微拉偏。如果编程时没有意识到,操作者往往误以为是加速度参数设小了,反复调参却无效。
四、规避策略:从编程到参数
理解机理之后,规避奇异点就有了明确方向。以下策略按优先级排列,实际调试时可逐条检查。
1. 用构型选择避开奇异。示教时观察UR示教器上的关节角显示,尽量让q5远离0°(建议保持|q5|>15°),让q3远离0°(肘部保持适度弯曲)。如果工艺允许,把工具姿态整体旋转一个角度,往往能让整条轨迹远离腕部奇异。
2. 用MoveJ替代MoveL。在非工艺约束段(如过渡、回原点、换位),优先使用MoveJ。MoveJ在关节空间插补,不经过IK,天然不受奇异影响,且通常能达到更高的关节速度。只有需要严格直线或圆弧的工艺段才用MoveL/MoveC。
3. 拆分长直线。如果一条MoveL必须穿过奇异区域附近,可以在中间插入一个示教点,把长直线拆成两段,让路径绕开奇异锥。代价是增加一个过渡点,但换来的速度提升通常远大于过渡损耗。
4. 调整工具姿态与TCP。奇异与工具长度、TCP偏移有关。适当缩短工具或改变TCP定义,可以改变腕部奇异的发生位置。对于必须经过的位姿,重新设计夹具让机器人以更“舒展”的构型到达,是治本做法。
5. 合理设置关节速度与加速度。UR的MoveL速度受限于最慢关节。在接近奇异时,控制器会自动降速。与其让控制器被动限速,不如主动把该段速度设为合理值,并适当提高加速度,让轨迹在非奇异段更快、在奇异段更稳,整体节拍反而更优。
五、一个可复用的检查顺序
面对一条节拍不达标的轨迹,建议按以下顺序排查运动学因素:先看示教器关节角,确认q5和q3是否接近0°;再看程序用的是MoveJ还是MoveL,非必要直线段是否误用了MoveL;然后检查路径是否穿过工作空间边界或第1轴轴线;最后才去调速度和加速度参数。这个顺序能避免在参数上反复试错,把时间花在真正的瓶颈上。
运动学是节拍优化的地基。关节空间与笛卡尔空间的分工、FK与IK的代价差异、奇异点的减速机理,这三件事理解清楚之后,后续的轨迹规划、速度规划和节拍测量才有可靠的判断依据。