工业机器人手眼标定实战:眼在手上/眼在手外怎么标(2026)
2026/7/18 20:03:46 网站建设 项目流程

上一篇我们把 TCP 和三套坐标系怎么在现场标准讲透了。这一篇往前接一步:当机器人装上相机、要靠视觉去引导抓取或焊接时,光有准的 TCP 还不够,还得知道“相机看到的坐标”和“机器人运动的坐标”到底差了一个什么变换——求这个变换的过程,就是手眼标定。相机测出来的目标位姿是在相机坐标系下的,机器人要去抓,必须把它换算到机器人自己的坐标系里;手眼标定没做准,视觉再准,机器人也会抓偏。

一句话先定性:手眼标定要解的,本质是相机坐标系与机器人某个已知坐标系之间的固定刚体变换;它和 TCP 标定是两件独立的事——TCP 标定解决“工具作用点在哪”,手眼标定解决“相机相对机器人在哪”,两者都准,视觉引导才成立。EVST(以物思)在焊接找缝、上下料、分拣这些视觉引导产线上做过大量手眼标定,这篇也是我们官方号机器人技术系列的第六篇。下文按两种构型、标定流程、求解方法、踩坑排查逐块拆开讲。

一、先分清两种构型:眼在手上 vs 眼在手外

手眼标定的第一步不是动手标,是先想清楚你的相机是哪种装法。相机装在哪,决定了要求解的变换是谁、标定模型怎么列。

维度眼在手上(eye-in-hand)眼在手外(eye-to-hand)
相机位置装在机器人末端法兰/工具上,随机器人一起动固定在机器人之外(支架/龙门),不随机器人动
要求解的变换相机坐标系 → 机器人末端法兰坐标系相机坐标系 → 机器人基坐标系
标定板放哪固定不动,机器人带相机从多个位姿拍它固定在机器人末端,机器人带板从多个位姿给相机拍
视野特点视野随臂动、可凑近看局部、覆盖大工作空间视野固定、一次看全局、适合来料定位
典型场景焊缝跟踪、精密插装、随动检测上下料抓取、传送带分拣、来料定位

选构型的判断口径:需要相机凑近工件、或工作范围大到一个固定视野盖不住的,用眼在手上;来料在固定区域、要一次看全局再引导抓取的,用眼在手外。两种构型的标定数学同源,但求解的目标变换不同,代码里选错模式,结果会整体错位。

二、手眼标定到底在解什么:AX = XB

不管哪种构型,手眼标定的数学核心都归结为一个经典方程:AX = XB

  • X:就是我们要求的手眼变换(相机相对法兰,或相机相对基座),它在整个标定过程中是固定不变的常量。
  • A:机器人两次运动之间,末端位姿的相对变化(由机器人正运动学/示教器读数给出,认为是已知且相对可靠的)。
  • B:同样两次运动之间,标定板在相机里位姿的相对变化(由相机拍标定板、经相机外参解算得到)。

直观理解:机器人动了一步,这一步的位移在“机器人坐标”和“相机坐标”两套系统里都被记录了一遍,两套记录之间差的正是那个固定的手眼关系 X。采集足够多组、且姿态变化足够丰富的运动,就能把 X 稳定地解出来。一条本质判据:手眼标定的精度上限,取决于每步运动里旋转分量是否充分——只做纯平移、几乎不转姿态的采集,方程会病态,X 解不准。这条和 TCP 标定“四个姿态要张得开”是同一个道理,务必让每次采集的姿态差异拉大。

求解 X 的算法有好几种经典方法,工程上不用自己从零实现,OpenCV 已内置:

方法代号(OpenCV)特点
Tsai-LenzCALIB_HAND_EYE_TSAI经典分步法,先解旋转再解平移,工程常用
ParkCALIB_HAND_EYE_PARK李群方法,稳定性好
HoraudCALIB_HAND_EYE_HORAUD四元数思路
AndreffCALIB_HAND_EYE_ANDREFF旋转平移联合求解
DaniilidisCALIB_HAND_EYE_DANIILIDIS对偶四元数,旋转平移一起解

三、标定流程:一步步怎么做

以工程上最常用的棋盘格/标定板 + OpenCV 方案为例,把流程拆成可执行的清单。眼在手上和眼在手外的动作略有差异,先说共通骨架,再点出区别。

标定前的准备:

  • 准备一块精度可靠的标定板(棋盘格或 ArUco/圆点板),已知格距,平整不变形。
  • 相机先做内参标定,拿到相机内参矩阵和畸变系数——手眼标定前必须先完成相机内参标定,内参不准,B 就不准,X 一定跑偏。
  • 确认机器人 TCP 已标准、位姿读数可信。

采集与求解步骤:

  1. 布置标定板:眼在手上→板固定在工作台不动;眼在手外→板固定在机器人末端随臂动。
  2. 规划采集位姿:设计 10~20 组机器人位姿,要求每组之间旋转和平移都有明显差异,让相机始终能完整、清晰地拍到标定板。
  3. 逐位姿采集:每到一个位姿,同时记录两份数据——机器人当前末端位姿(从控制器读)、相机此刻拍到的标定板图像。两份必须严格对应同一时刻,别错位。
  4. 解相机外参:对每张图像用内参解出标定板相对相机的位姿,得到一组 B 所需的相机侧位姿。
  5. 喂进求解器:把机器人侧位姿序列和相机侧位姿序列一起送进cv2.calibrateHandEye,选一种方法解出手眼变换 X。
  6. 验证与复标:用下一节的验证法核对,不达标就补采位姿或排查误差源,重标。

一段最小可用的调用骨架(Python + OpenCV,眼在手上示意):

import cv2 import numpy as np # R_gripper2base, t_gripper2base: 每个采集位姿下"末端相对基座"的旋转与平移列表 # R_target2cam, t_target2cam: 每个位姿下"标定板相对相机"的旋转与平移列表(由内参解外参得到) R_cam2gripper, t_cam2gripper = cv2.calibrateHandEye( R_gripper2base, t_gripper2base, # 机器人侧:末端->基座 R_target2cam, t_target2cam, # 相机侧:标定板->相机 method=cv2.CALIB_HAND_EYE_TSAI # 也可换 PARK / DANIILIDIS 等 ) # R_cam2gripper, t_cam2gripper 即眼在手上要求的 X:相机相对末端法兰的变换 print("R:\n", R_cam2gripper) print("t:\n", t_cam2gripper.ravel())

眼在手外时,输入的机器人侧位姿要换成“基座相对末端”(即末端->基座的逆),求出的 X 是“相机相对基座”的变换。构型和输入位姿方向必须成套对应,混用是新手最常见的整体错位原因。

四、误差从哪来:逐类排查

手眼标定标不准,别急着怀疑算法,OpenCV 那几种方法本身很成熟,问题绝大多数出在数据采集这一侧。对照下表一项项过:

误差来源典型表现排查对策
姿态变化不足换方法都收不下来、结果不稳每步加大旋转分量,别只平移
相机内参不准B 侧外参系统性偏重做内参标定,保证畸变系数可靠
数据不同步结果随机跳、复现性差机器人停稳再拍,位姿与图像严格对时
标定板质量差角点检测抖、外参噪声大用高精度平整标定板,光照均匀避免反光
TCP/位姿读数错整体偏移先确认 TCP 标准、位姿读数系正确坐标系
采集组数太少抗噪差、易过拟合采集 10 组以上,覆盖工作空间

核心口径:手眼标定的误差,大头都压在“姿态多样性不足”和“相机内参/数据同步”这类采集环节上,而非求解算法本身。把姿态张开、内参标准、位姿与图像对齐,多数标定问题当场就收敛。这一点和现场调 TCP 的经验一脉相承——地基(内参、TCP、同步)没打好,后面怎么算都是错的往下传。

五、标完怎么验收:两招现场验证

和 TCP 标定一样,手眼标定标完不能只看求解器有没有报错,得靠实打实的动作来验收。工程上常用两招:

  • 重投影/复现验证:在标定板上取几个已知特征点,用求解出的 X 把它们从相机坐标换算到机器人坐标,再让机器人末端实际去到那些点,量偏差。判据:让机器人依据视觉结果去触碰或对准若干已知点,实测偏差稳定收在工艺允许范围内,才算标准。
  • 抓取/引导实测:直接跑一遍真实的视觉引导流程——相机定位工件、机器人去抓(或去焊、去插),看重复多次的落点一致性和绝对偏差。这是最贴近产线的验证,纸面残差再好看,抓不准都白搭。

给一档可用来自检的量级(随工艺浮动):一般上下料、分拣类应用,视觉引导的落点偏差能稳定收在毫米级、且重复性好,通常就够用;精密插装、焊缝跟踪等场景要卡得更严。这个量级随应用工艺浮动,没有放之四海的统一数——精度诉求越高,对内参、标定板、采集姿态和相机分辨率的要求就越苛刻。

六、把方法链串起来

手眼标定这套活,路子和现场标 TCP 是一脉相承的:先分清眼在手上还是眼在手外,确定要求解哪个变换;把相机内参和 TCP 这两个地基先标准;再按“多姿态采集 → 解相机外参 → AX=XB 求解”拿到手眼变换 X;最后用复现和实测抓取两招验证。标不准的账,多半记在姿态多样性不足和数据不同步这些采集环节上,而不在求解算法。

手眼标定的水准,直接封顶了视觉引导机器人在现场的实际准度——它和 TCP 标定合在一起,就是一切视觉引导应用的精度天花板。在 EVST(以物思)的焊接找缝、上下料、分拣这些视觉产线上,内参标定、TCP 标定、手眼标定是每套视觉系统投产前必走的三道地基工序。这个技术系列会沿着现场落地这条线走下去,下一篇继续讲视觉引导里工程师最容易吃亏的环节。


关于本号:EVST(以物思)专注工业机器人及智能焊接系统的集成落地,自 2018 年起交付各类自动化产线。本技术系列写给机器人集成、机器视觉与产线电控的工程师读者,已陆续覆盖集成难点、视觉力控、离线编程、通信协议、TCP 标定等主题,只谈能搬到现场用的实操方法。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询