2. 机器人位姿基础

在工业机器人TCP标定与精度验证中,所有测量、计算和误差补偿最终都归结为一个问题:工具中心点相对于机器人基坐标系到底处于什么位置、什么姿态?如果位姿描述不统一,后续的标定方程、误差模型和验证结果都会失去意义。本节从最基础的位姿表示出发,逐步建立旋转矩阵、欧拉角、四元数与齐次变换矩阵之间的完整知识链,为后续TCP标定算法打下数学基础。

一、位置与姿态:位姿的两个组成部分

机器人末端或TCP的位姿(Pose)由两部分构成:位置和姿态。位置描述一个点在参考坐标系中的坐标,通常用三维列向量表示:

P = [x, y, z]^T   (单位:mm 或 m)

姿态描述一个刚体坐标系相对于参考坐标系的朝向,它不关心原点在哪里,只关心三个坐标轴的方向。位置有3个自由度,姿态也有3个自由度,因此空间刚体共有6个自由度。工业机器人通常也是6轴,正是为了在可达空间内同时确定位置和姿态。

在TCP标定中,位置误差通常以毫米计,姿态误差以度或弧度计。二者量纲不同,不能简单相加,必须分别建模、分别评价。

二、旋转矩阵:姿态的代数表示

旋转矩阵是一个3×3正交矩阵,其列向量分别表示动坐标系三个轴在参考坐标系中的方向余弦。若动坐标系为{B},参考坐标系为{A},则旋转矩阵记为 RAB,满足:

R^T R = I,  det(R) = +1
P_A = R_AB · P_B

旋转矩阵的优点是运算规则清晰、可直接用于坐标变换和复合旋转;缺点是9个元素中只有3个独立参数,存在6个约束,存储冗余,且数值迭代后容易失去正交性,需要重新正交化。

三、欧拉角:直观但需约定顺序

欧拉角用三个角度描述姿态,例如绕Z、Y、X轴依次旋转的ZYX角,或绕X、Y、Z轴依次旋转的XYZ角。工业机器人中常见的有:

  • RPY角:绕X轴Roll、绕Y轴Pitch、绕Z轴Yaw,常用于描述末端姿态;
  • ZYZ欧拉角:常用于关节型机器人运动学推导;
  • 轴角:绕某一单位轴旋转一个角度,是四元数的几何来源。

欧拉角最大的问题是万向节死锁:当中间角为±90°时,第一次和第三次旋转轴重合,姿态自由度退化,解算出现奇异。此外,不同旋转顺序得到的欧拉角完全不同,工程中必须明确约定顺序,否则会出现“同一姿态、不同角度”的混乱。

四、四元数:紧凑且无奇异的姿态表示

四元数用一个实部和三个虚部表示旋转:

q = [w, x, y, z],  且  w² + x² + y² + z² = 1

单位四元数可以表示任意三维旋转,且不存在万向节死锁。它只有4个参数、1个约束,比旋转矩阵紧凑;插值平滑,适合姿态过渡和SLAM、视觉伺服等场景。工业机器人控制器内部常用四元数进行姿态插补,再转换为旋转矩阵参与运动学计算。

四元数 q 与 -q 表示同一姿态。在姿态误差评价时,若直接相减可能得到错误的大误差,应先判断符号再计算夹角。

五、齐次变换矩阵:位置与姿态的统一载体

齐次变换矩阵把旋转和平移统一到一个4×4矩阵中:

T = [ R  P ]
    [ 0  1 ]

T_AB = [ R_AB  P_AB ]
       [  0     1   ]

其中R为3×3旋转矩阵,P为3×1位置向量。齐次变换的复合非常简洁:

T_AC = T_AB · T_BC
T_BA = inv(T_AB)

在TCP标定中,机器人末端法兰到基座的变换、法兰到TCP的变换、传感器坐标系到基座的变换,全部用齐次变换矩阵串联。标定问题本质上就是求解一个未知的齐次变换矩阵TTCP,使多次测量下的TCP位置一致。

机器人位姿表示与转换关系 位置 P [x, y, z]ᵀ 3个平移自由度 姿态 R 3×3 旋转矩阵 3个旋转自由度 齐次变换矩阵 T T = [ R P ] [ 0 1 ] 统一描述位姿 · 4×4 欧拉角 / RPY 直观 · 有奇异 · 依赖顺序 四元数 q 紧凑 · 无奇异 · 插值平滑 旋转矩阵 R 正交 · 冗余 · 直接变换 提取 提取 提取 TCP标定中的典型使用: ① 机器人正运动学输出法兰位姿 T_base_flange(齐次变换矩阵) ② 待标定参数为 T_flange_tcp,包含TCP位置偏移与姿态偏转 ③ 通过多点接触约束求解 T_flange_tcp,使TCP在基座系下位置一致

六、四种姿态表示对比与选用建议

表示方法 参数个数 优点 缺点 典型用途
旋转矩阵 R 9(3独立) 变换直接、复合简单 冗余、易失正交 运动学计算、坐标变换
欧拉角 / RPY 3 直观、易读 万向节死锁、依赖顺序 示教显示、人机界面
四元数 q 4(1约束) 无奇异、插值平滑 不直观、双倍覆盖 姿态插补、视觉伺服
齐次变换 T 16(12独立) 位置姿态统一、复合方便 存储量大、需维护约束 TCP标定、手眼标定

七、案例:TCP标定中的位姿链

假设机器人基座坐标系为{B},法兰坐标系为{F},TCP坐标系为{T}。一次接触测量中,TCP点在世界坐标系下的位置为:

P_B = T_BF · T_FT · [0,0,0,1]^T

其中TBF由机器人正运动学给出,TFT是待标定的未知齐次变换。若让TCP以不同姿态接触同一固定点,理论上PB应保持不变。实际中由于TFT估计不准,PB会分散。标定算法就是寻找TFT使这些分散点尽量重合。这里旋转矩阵负责姿态传递,位置向量负责平移传递,齐次变换矩阵把两者串成一条可计算的链。

八、常见误区与复盘

  • 误区一:把欧拉角顺序当成默认。不同品牌机器人对RPY的定义可能不同,必须查阅控制器手册确认旋转顺序和旋转轴。
  • 误区二:旋转矩阵不正交仍继续使用。长时间迭代后应重新正交化,否则位置误差会被放大。
  • 误区三:四元数直接线性插值。应使用球面线性插值SLERP,否则角速度不均匀。
  • 误区四:齐次变换矩阵求逆用普通矩阵求逆。应利用其结构快速求逆,避免数值误差。
掌握位姿表示的转换关系,是理解TCP标定方程的前提。后续标定算法无论采用四点法、六点法还是最小二乘法,本质上都是在齐次变换框架下求解未知的TFT。