跳到主内容
快讯直播
AI智模界
AI 词典

手眼标定:机器人怎么把「看到」翻译成「伸手

手眼标定(Hand-Eye Calibration)是求一个刚体变换——相机坐标系和机器人坐标系之间那层固定的旋转与平移关系,一共六个自由度。求出来之后,相机报出的「目标在图像某个位置」,就能换算成「机械臂末端该往哪个方向、伸多远」。

为什么需要这层翻译

想象你戴上一副会把画面整体前移十厘米的眼镜去倒水。眼睛告诉你杯子在左前方二十厘米,但手真正该去的地方和眼睛说的对不上。你只能靠一次次的偏差慢慢试出来,代价是碰倒杯子、被烫到手。手眼标定就是用一组测量,一次性把这个偏移算清楚,不用靠试错去学。

具体做法是:拿一块标定板(棋盘格或者圆点阵列),让机器人变换十几个到几十个不同位姿去拍它。每个位姿下记录两件事——一是机器人自己报告的末端位姿,由关节角度和运动学参数推算得出;二是相机看到的标定板位姿,由图像和相机内参算出来。同一块板在两边各有一套坐标,把这两套坐标对齐,中间那个固定的变换就是答案。位姿分布得越散越好,如果全都挤在一个平面上、角度变化也很小,旋转部分就估不准。

两种装法,两个问题

装法相机位置待求的变换
眼在手上(eye-in-hand)相机固定在机械臂末端,跟着一起动相机 → 末端法兰
眼在手外(eye-to-hand)相机固定不动,俯视整个工作区相机 → 机器人基座

前者视野随臂移动、看得细,适合大工件的局部精定位;后者视野稳定,适合整条产线或者输送带上的抓取。两者在数学上都能归结为解一组矩阵方程,只是具体形式不同。

容易和它混淆的几个概念

相机内参标定求的是焦距、主点、镜头畸变,解决「像素如何变成一条光线」;手眼标定求的是外参,解决「相机在机器人眼里站在哪」。机器人运动学标定修的是连杆长度、关节零位这些本体参数,让「关节角到末端位姿」这一步更准。这几个环节的误差会叠加,所以不能指望标好手眼系统就一定准。视觉伺服则是另一条思路:不追求一次标定得绝对准,而是看着图像误差边走边修正,用闭环把误差抵消掉。

实际意义

在工业抓取、装配、锁螺丝、涂胶这类场景里,手眼标定的精度经常是整个视觉引导系统误差的主要来源。标定没做好,典型症状是「看着对、抓偏了」,或者同一批工件偏差方向一致,像有一层固定的错位。几个工程上的常识:标定板要放得平整,拍照位姿要覆盖实际工作范围而不只是舒服的几个角度;标完必须做验证,用尖头工具去点一个已知点、或者反复抓取同一个目标看重复精度;相机被碰过、换过镜头、机械臂撞过之后都要重标。具体精度指标和标定板规格以厂商官方页面为准。

对非机器人方向的从业者,这件事也有个通用启发:两个系统各自都判断得挺准,凑在一起却总是对不上,问题往往不在任何一方内部,而在没人负责的那层换算关系上。市场部的「线索」和销售部的「商机」定义不一致,本质也是缺一次手眼标定。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。