机械臂做视觉引导,绕不开的第一个决策是相机装在哪。眼在手上(eye-in-hand)是把相机固定在末端法兰或腕部,随机械臂一起运动;眼在手外(eye-to-hand)是把相机固定在支架、龙门或工作台外侧,俯视整个作业区。两种装法都能完成定位与抓取,但它们对精度、遮挡、节拍、标定维护的影响完全不同。本文按工程维度拆开对比,关键在于权衡精度、覆盖与维护成本,不针对具体型号,也不引用未经实测的精度、帧率与距离数字。
一、先把“手眼”这件事定义清楚
手眼方案是指相机与机械臂之间的固定位置关系,以及由此建立的一套坐标变换。相机看到的目标点,要经过像素坐标、相机坐标、末端坐标(或基座坐标)几层变换,才能变成机械臂能执行的位姿。
“手眼标定”标的就是这套变换里那个固定的外参:相机相对末端法兰的位置,或者相机相对机械臂基座的位置。标定一旦变化,整条变换链都要更新。
这也解释了为什么装法如此关键:它决定了外参连在哪一头,也就决定了这套系统在换工具、拆装、碰撞之后要不要重标。
二、两种装法的坐标系与标定对象
眼在手上,相机坐标系与末端坐标系刚性绑定。机械臂运动时,相机与末端之间的变换保持不变,变的是末端在基座坐标系里的位姿。标定对象是相机到末端法兰的外参。
眼在手外,相机坐标系与基座坐标系绑定。机械臂怎么动,相机都不动,标定对象是相机到基座的外参。
两者的差别不只是“标哪个”,还有误差来源。手上的方案,机械臂的运动学误差会直接进入视觉引导链路;手外的方案,相机固定,但机械臂末端的位置要靠运动学正解算出来,同样躲不开运动学误差。
三、坐标变换链:一次视觉引导要过几道手
相机给出的目标是一个像素坐标,机械臂要的是一个位姿。中间要串起四层变换:像素到相机、相机到末端(或基座)、末端到基座。
眼在手上的链路是:像素 → 相机 → 末端 → 基座。相机与末端的外参固定,机械臂每动一次,末端到基座的变换就更新一次。
眼在手外的链路是:像素 → 相机 → 基座。少了一层随动的变换,但末端位姿仍要靠运动学正解算出来。
链路越长,误差累积的环节越多。标定时要逐段确认,而不是只验最后那个抓取点。一个实用的做法是:在视野里放一个固定参照物,让机械臂用不同姿态去对,观察残差是否随姿态变化。
四、精度:分辨率的账要按距离算
相机的角分辨率是固定的,落到物方能分辨多细,取决于工作距离和视场。眼在手上把相机推到工件附近,同样的像素数覆盖更小的物理范围,单位像素对应的实物尺寸更小,对位精度更容易做上去。
眼在手外要覆盖整个工作台,视场大,单位像素覆盖的实物尺寸大。工件越靠近视野边缘,透视和畸变的影响越明显。
所以比较两种方案,不能只比相机参数,要比“在需要精度的那个距离段上,谁能做到”。近距高精度的抓取与装配,手上更占优;大范围的位置搜索,手外更从容。
还有一个容易被忽略的点:视场与分辨率是一对矛盾。想一次看全整个工作台,就得接受单位像素覆盖更大的实物尺寸;想看清细节,就得缩小视场,或者让相机靠近。手外方案通常选择前者,手上方案通常选择后者。这不是谁更先进,而是取舍不同。
五、视野与遮挡:手外的结构性短板
眼在手外的视野是固定的,好处是稳定,坏处是遮挡无法回避。机械臂伸向工件时,自己的大臂、小臂、手腕都可能挡在相机与目标之间;工件堆叠、夹具立起、料框边缘,也会形成遮挡。
遮挡的麻烦在于信息缺失。被挡住的区域,画面里没有有效像素,靠算法只能猜,补不回来。工程上的解法是布点:调整相机高度与角度、增加第二视角、把相机挪到机械臂运动包络之外。
眼在手上因为离工件近,被机械臂自身遮挡的概率低一些,但手腕转动、末端夹具仍可能挡住镜头,同样需要在选型时确认。
六、随动的代价:负载、惯量与线缆
相机、镜头、光源、支架都装在末端,首先影响的是负载。末端负载增加,机械臂的可用负载余量减少,选型时要重新核对负载曲线,而不是只看额定值。
其次是惯量。末端转动惯量变大,轨迹精度和节拍都会受影响,高速启停时更明显。
第三是线缆。相机与光源的线缆要跟着关节反复弯折,长期运行下是可靠性隐患。走线要留冗余、做固定、避免在关节处形成锐角弯折。相机被碰撞后位置偏移,也是这类方案常见的故障。
七、节拍:触发时机比处理时间更值钱
视觉要占用节拍。眼在手外的典型流程是:机械臂到位、触发拍照、图像处理、输出坐标、机械臂再动作。相机固定,触发点容易设计,但机械臂必须停下来等结果。
眼在手上可以边运动边采集,利用运动过程做预采集,把一部分等待藏进运动时间里。但运动带来模糊,曝光时间不能太长,补光也要跟上。
所以节拍这笔账,要连“什么时候拍”一起算。单纯比较算法处理耗时,往往会高估或低估视觉对节拍的真实影响。
如果节拍确实很紧,可以先做两件事:把图像采集与机械臂运动重叠起来,减少纯等待;把处理流程里不必要的全图操作改成感兴趣区域,降低单帧耗时。这两件事的效果,通常比换一台更快的相机更直接。
八、标定频率与长期维护成本
眼在手外的相机不动,标定一次可以覆盖一片区域,稳定性好,维护成本低。只要支架不被动、相机不被撞,外参可以长期使用。
眼在手上的相机随末端运动,换工具、拆装末端、碰撞、甚至更换夹具,都可能改变相机与末端的相对位置,需要重新标定。它不是“做一次”的动作,而是一项需要纳入产线维护计划的长期成本。
选型时要问清楚:这条线换型频繁吗?现场有没有人能独立完成手眼标定?标定工具好不好用?这些问题的答案,往往比参数表更能决定方案能不能落地。
九、光照与反光:两种装法都躲不开
工件表面反光、环境光变化、机械臂投下的阴影,都会影响深度与彩色的质量。眼在手外距离远,主动补光的效果随距离衰减,环境光的影响更明显。
眼在手上离工件近,主动光更容易控制,曝光和增益的调整空间也更大。但相机随末端运动,光源也跟着动,反光的角度会变化,标定与参数不能只按一个静态姿态来调。
无论哪种装法,都不要指望算法把过曝或欠曝的区域“修回来”。能在光学与布光阶段解决的,不要留给后处理。
十、混合方案:手外粗定位 + 手上精对位
实际产线里,纯手上或纯手外未必是最优解。常见的组合是:固定相机先做粗定位,判断目标大致在哪个区域、是什么姿态;机械臂移动到附近后,末端相机再做精对位,修正最后的偏差。
这样做兼顾了手外的覆盖与稳定,以及手上的近距精度。代价是两套相机、两套标定、两套坐标变换,系统复杂度和调试工作量都上去了。
是否采用混合方案,取决于任务对“大范围搜索”和“近距精度”是否同时有要求。只做固定工位的抓取,未必需要两套。
十一、验收:怎么验证一套手眼方案
验收不要只看一次抓取成功。至少做四件事。
第一,固定参照物测试:在视野内放一个已知位置的标定板或工装,重复测量,看结果是否稳定。
第二,多姿态测试:让机械臂从不同方向接近同一目标,观察视觉输出的偏差是否随姿态变化。偏差随姿态变,往往指向标定或运动学问题。
第三,遮挡测试:人为挡住部分视野,确认系统能识别无效区域,而不是把缺失当成有效值继续算。
第四,换工具测试:如果产线会换末端,换完之后重标一次,记录耗时与操作难度。这个数字决定了方案在真实产线上的可维护性。
十二、选型检查表
把上面的维度落到一张表里,便于逐项对照:
| 维度 | 眼在手上 | 眼在手外 |
|---|---|---|
| 精度 | 近距更容易做高 | 随距离与视场衰减 |
| 覆盖 | 局部、跟随末端 | 大范围、固定 |
| 遮挡 | 相对少 | 机械臂与工件都易挡 |
| 标定对象 | 相机到末端法兰 | 相机到机械臂基座 |
| 标定频率 | 换工具/拆装后需重标 | 一次标定可用较久 |
| 负载与线缆 | 压在末端,需核算 | 无附加负载 |
| 节拍 | 可边动边拍 | 需停机等待 |
| 适用 | 抓取、对位、装配 | 分拣、上料、大范围定位 |
这张表不能代替现场验证,但可以快速筛掉明显不合适的方案。
十三、常见误区与结论
第一个误区是“眼在手上一定更准”。近距确实有利,但如果任务是全盘搜索,手上方案要反复移动才能覆盖,节拍反而更差。
第二个误区是“标定一次就够”。换工具、拆装、碰撞都会让外参变化,标定必须能复查、能重做。
第三个误区是“遮挡可以靠算法补”。被挡掉的信息补不回来,只能改布点。
结论:先看任务,再看装法。要看的点会不会随姿态变化、精度要求落在哪个距离段、换工况要花多久重标,这三问答完,方案基本就定了。手眼没有绝对的先进与落后,只有与任务匹配与否。对集成商而言,最该警惕的不是选错装法,而是没算清标定与维护的长期成本。
【备选标题】
- 机械臂装相机:眼在手上还是眼在手外
- 手眼方案怎么选?先看任务再看装法
- 记住:装错位置,标定和维护都会变成长期成本