4. 手眼协同基础
在灵巧手视觉抓取系统中,相机与机械手之间的空间关系决定了整个感知—规划—执行链路的组织方式。所谓“手眼协同”,并不是简单地把相机装在机器人上,而是要让视觉测量结果与手部运动学在同一套空间语义下对齐。理解手眼系统的分类、两种典型架构以及坐标系变换关系,是后续标定、抓取位姿生成和闭环控制的基础。
一、手眼系统的两类基本架构
按照相机安装位置与机械臂本体的关系,手眼系统通常分为两类:Eye-in-Hand(眼在手上)与Eye-to-Hand(眼在手外)。前者将相机固定在机械臂末端或手腕附近,相机随手臂运动;后者将相机固定在外部支架、工作台或房间结构上,相机与机械臂基座保持固定关系。
Eye-in-Hand 的显著优势是视角灵活、可近距离观察目标,且随着末端靠近目标,分辨率利用率高,适合精细抓取与遮挡规避。但其代价是相机外参随关节运动实时变化,必须结合正运动学在线计算相机位姿。Eye-to-Hand 则提供稳定的全局视野,外参一旦标定完成即可长期使用,适合目标搜索、大范围定位和多目标场景;缺点是远距离观测精度受限,且机械臂自身可能遮挡目标。
核心判断:若任务强调“末端精细对准、局部高分辨”,优先考虑 Eye-in-Hand;若任务强调“全局监控、目标搜索、多工位共享”,优先考虑 Eye-to-Hand。实际工程中常采用两者混合,形成全局引导加局部精定位的分层结构。
二、坐标系定义与变换关系
无论采用哪种架构,手眼协同都围绕若干关键坐标系展开。常见坐标系包括:世界坐标系 {W}、机械臂基座坐标系 {B}、末端法兰坐标系 {E}、相机坐标系 {C}、目标物体坐标系 {O},以及灵巧手手掌或抓取坐标系 {G}。每个坐标系都是一个带原点和三轴方向的刚体参考系。
坐标系之间的变换通常用齐次变换矩阵描述。若已知相机坐标系到末端坐标系的变换 T_E_C,以及末端到基座的变换 T_B_E,则目标在基座坐标系下的位姿可写为:
T_B_O = T_B_E · T_E_C · T_C_O
其中:
T_B_E —— 由机械臂正运动学给出,随关节角变化
T_E_C —— 手眼标定结果,Eye-in-Hand 中为常数
T_C_O —— 视觉算法输出的目标相对相机位姿
对于 Eye-to-Hand,相机不随末端运动,因此常用 T_B_C 表示相机到基座的固定外参,目标位姿计算为 T_B_O = T_B_C · T_C_O。此时抓取位姿还需通过 T_B_G 与 T_B_O 的关系求解,即让抓取坐标系与目标坐标系满足预设的抓取约束。
需要特别注意的是,变换矩阵的乘法顺序不可随意交换。旋转与平移耦合在齐次矩阵中,顺序错误会直接导致抓取点偏移。工程上建议统一约定“从子坐标系到父坐标系”的书写方向,并在代码中显式命名,例如 T_base_camera、T_camera_object,避免歧义。
三、手眼标定与典型流程
手眼标定的目标是求取相机与机械臂之间的未知外参。经典方法 AX = XB 中,A 为末端两次运动的相对位姿,B 为相机两次观测的相对位姿,X 即待求的手眼变换。流程通常包括:标定板放置、机械臂多姿态采集、角点检测、相对运动构建、方程求解与残差验证。
- 固定标定板,确保其在相机视野内清晰可见。
- 控制机械臂走 10~20 组不同姿态,每组记录关节角与图像。
- 由正运动学计算
T_B_E,由视觉计算T_C_O。 - 构建相对运动方程,求解
X,并检查重投影误差。 - 将标定结果写入配置,供抓取规划模块调用。
标定姿态应尽量覆盖平移和旋转的多个方向,避免只做平面运动。旋转轴单一会导致解退化,残差看似很小但实际外参不可靠。
四、架构对比与选型清单
| 对比维度 | Eye-in-Hand | Eye-to-Hand |
|---|---|---|
| 相机安装位置 | 末端/手腕,随臂运动 | 外部支架/工作台,固定 |
| 外参特性 | 随关节角变化,需在线计算 | 固定,一次标定长期使用 |
| 视野与精度 | 近距离高分辨,局部精细 | 全局稳定,远距离精度受限 |
| 遮挡影响 | 可主动调整视角规避 | 易被机械臂或工件遮挡 |
| 典型任务 | 精密装配、末端对准、抓取微调 | 目标搜索、分拣、多工位共享 |
| 标定复杂度 | 较高,需结合运动学 | 较低,外参固定 |
五、案例场景:桌面抓取中的坐标系链路
假设一台灵巧手安装在六轴机械臂末端,工作台上放置一个待抓取方块。若采用 Eye-to-Hand,相机先检测方块在相机坐标系下的位姿 T_C_O,再通过固定外参 T_B_C 转换到基座坐标系,得到 T_B_O。规划器根据 T_B_O 和预设抓取策略生成目标抓取位姿 T_B_G,最后经逆运动学解算关节角。若采用 Eye-in-Hand,则 T_B_O 的计算中必须插入实时变化的 T_B_E 与标定得到的 T_E_C,链路更长,但对末端附近的细节更敏感。
常见误区:把相机坐标系与图像像素坐标系混为一谈。像素坐标只是二维投影,必须结合相机内参和深度信息才能恢复到三维相机坐标系,再经过外参变换进入机器人坐标系。缺少任何一步,抓取位姿都会失真。
六、复盘要点
- 先明确架构,再定义坐标系,最后写变换链,顺序不能颠倒。
- 所有变换矩阵必须标注方向,例如
T_A_B表示从{B}到{A}。 - Eye-in-Hand 的外参是常数,但相机到基座的等效变换随运动学变化。
- 标定残差要结合任务精度要求判断,不能只看数值大小。
- 抓取坐标系
{G}的定义应与灵巧手抓取策略一致,避免视觉与执行各说各话。
掌握上述架构差异与坐标变换链路后,后续的标定、抓取位姿生成和闭环修正才能建立在统一的空间基准上。手眼协同的本质,是让视觉的“看到”与机械手的“做到”在同一坐标系语言中精确对应。