3、相机成像模型:针孔模型、内参矩阵、畸变模型、外参(相机到世界坐标)的基本概念

手眼标定的本质,是求解机械臂末端执行器与相机坐标系之间的空间变换关系。而这一切的前提,是我们必须精确理解相机是如何将三维世界中的点映射到二维图像平面上的。这个映射过程,就是相机成像模型。在工业机械臂应用中,无论是2D视觉引导抓取,还是3D视觉定位装配,所有视觉算法的输入都始于相机成像模型。如果对成像模型的理解有偏差,后续的标定、识别、定位精度都将无从谈起。本章将系统拆解针孔模型、内参矩阵、畸变模型以及外参(相机到世界坐标)这四个核心概念,并重点说明它们在手眼标定工程中的实际作用与常见误区。

相机成像模型:从世界坐标到像素坐标的完整链路 世界坐标系 (Xw, Yw, Zw) 标定板/工件位置 外参 R | t 相机坐标系 (Xc, Yc, Zc) 光心为原点 针孔投影 透视除法 图像坐标系 (x, y) 物理单位(mm) 内参 K矩阵 像素坐标系 (u, v) 像素单位(pixel) 畸变模型(非线性修正) 径向畸变:k1, k2, k3 | 切向畸变:p1, p2 发生在针孔投影之后、像素坐标转换之前 畸变修正 完整映射公式 Zc · [u, v, 1]ᵀ = K · [R | t] · [Xw, Yw, Zw, 1]ᵀ K = 内参矩阵(fx, fy, cx, cy) | [R|t] = 外参(旋转+平移) | 畸变系数单独修正

3.1 针孔模型:理想化的线性投影

核心原理:针孔模型是相机成像的最基本抽象。它假设光线通过一个无限小的孔(光心)投射到成像平面上,形成倒立的实像。在实际工程中,我们通常将成像平面虚拟到光心前方,从而得到正立的虚像,便于数学表达。针孔模型的核心是相似三角形原理:三维空间中的点P(Xc, Yc, Zc)在相机坐标系下,其投影到图像平面上的坐标(x, y)满足:x = f·Xc/Zc,y = f·Yc/Zc,其中f为焦距(物理单位,通常为毫米)。这个关系将三维坐标投影到二维平面,但丢失了深度信息Zc。

工程意义:在机械臂视觉引导中,针孔模型决定了我们无法从单张图像直接获取物体的深度。例如,一个距离相机1米远的直径100mm的圆盘,与距离2米远的直径200mm的圆盘,在图像上呈现完全相同的像素尺寸。这意味着,如果机械臂需要抓取一个未知尺寸的工件,仅靠单目相机无法确定其空间位置,必须借助标定板、已知尺寸特征或双目视觉。针孔模型是所有后续标定算法的基础,手眼标定中求解的Homography矩阵(单应矩阵)本质上就是针孔模型在平面场景下的特例。

经验提醒:在搭建视觉引导系统时,应优先确认相机安装高度与视野范围,确保目标工件在图像中占据足够大的像素面积(建议直径不小于50像素),否则针孔模型的量化误差会显著影响定位精度。

3.2 内参矩阵:从物理坐标到像素坐标的桥梁

核心原理:内参矩阵K描述了相机坐标系下的三维点投影到像素坐标系(u, v)的线性变换关系。其标准形式为:

K = [ fx  0   cx ]
    [ 0   fy  cy ]
    [ 0   0    1 ]

其中,fx = f/dx,fy = f/dy,dx和dy分别为单个像素在x和y方向上的物理尺寸(mm/pixel),cx和cy为主点(光轴与成像平面的交点)在像素坐标系中的坐标。内参矩阵将图像坐标系中的物理坐标(x, y)转换为像素坐标(u, v):u = fx·x + cx,v = fy·y + cy。需要注意的是,fx和fy通常不相等,因为像素可能不是正方形(例如某些工业相机像素尺寸为2.2μm×2.2μm,但CMOS工艺可能导致微小差异)。

标定方法:内参矩阵通常通过张正友标定法获得。该方法使用棋盘格标定板,在不同位姿下拍摄10-20张图像,通过角点检测和最小二乘优化求解内参。在工业现场,内参标定一般在相机出厂时或安装后进行一次,除非镜头被拆卸或温度剧烈变化(超过±10℃),否则内参相对稳定。但需要注意,变焦镜头或液态镜头的内参会随焦距变化而改变,此时必须重新标定。

参数物理含义典型值(500万像素工业相机)标定精度要求
fxx方向归一化焦距(像素)~2400±0.1像素
fyy方向归一化焦距(像素)~2400±0.1像素
cx主点x坐标(像素)~1280±0.5像素
cy主点y坐标(像素)~1024±0.5像素
风险提示:部分工程师在标定内参时忽略畸变模型,直接使用理想针孔模型求解,这会导致标定板边缘区域的角点投影误差高达5-10像素。在机械臂抓取场景中,这相当于在300mm工作距离上产生约1-2mm的位置偏差,足以导致抓取失败。

3.3 畸变模型:真实镜头的非线性修正

核心原理:实际镜头并非完美针孔,光线通过透镜时会发生折射,导致图像畸变。畸变主要分为两类:径向畸变和切向畸变。径向畸变由透镜形状引起,表现为图像边缘的桶形畸变(负畸变)或枕形畸变(正畸变),用系数k1、k2、k3描述。切向畸变由透镜与成像平面不平行引起,表现为图像在某个方向上被拉伸,用系数p1、p2描述。畸变模型在归一化坐标(x_normalized, y_normalized)上施加修正:

x_distorted = x_normalized * (1 + k1*r² + k2*r⁴ + k3*r⁶) + 2*p1*x_normalized*y_normalized + p2*(r² + 2*x_normalized²)
y_distorted = y_normalized * (1 + k1*r² + k2*r⁴ + k3*r⁶) + p1*(r² + 2*y_normalized²) + 2*p2*x_normalized*y_normalized
其中 r² = x_normalized² + y_normalized²

工程处理流程:在视觉定位系统中,畸变修正通常发生在图像预处理阶段。OpenCV的undistort()函数或initUndistortRectifyMap() + remap()组合是标准做法。对于机械臂引导,建议在标定内参时同时标定畸变系数,并在实际图像处理中先做畸变修正,再进行特征提取和坐标计算。否则,图像边缘的特征点坐标误差会随着畸变程度线性放大。

实战场景:某3C装配产线使用1200万像素相机,视野为200mm×150mm,镜头畸变系数k1=-0.15。在未做畸变修正时,视野边缘的定位误差达到0.8mm,而机械臂重复定位精度为±0.02mm,导致装配失败。加入畸变修正后,边缘误差降至0.05mm以内,满足工艺要求。此案例说明,畸变修正不是可选项,而是高精度应用的必要步骤。

3.4 外参(相机到世界坐标):连接相机与机械臂的桥梁

核心原理:外参描述的是相机坐标系与世界坐标系(或机械臂基坐标系)之间的刚体变换关系,由旋转矩阵R(3×3)和平移向量t(3×1)组成。其数学表达为:Pc = R·Pw + t,其中Pw是世界坐标,Pc是相机坐标。外参矩阵通常写作增广形式 [R|t](3×4矩阵)。在手眼标定中,外参的求解分为两种情况:眼在手上(Eye-in-Hand)和眼在手外(Eye-to-Hand)。前者相机安装在机械臂末端,外参是相机到机械臂末端的变换;后者相机固定安装,外参是相机到机械臂基座的变换。

标定方法:外参标定通常使用已知尺寸的标定板(棋盘格或圆点阵)。通过拍摄标定板在不同位姿下的图像,结合机械臂当前关节角,利用AX=XB(眼在手上)或AX=ZB(眼在手外)的矩阵方程求解。常用的求解算法包括Tsai方法、Park方法以及基于李代数的非线性优化方法。在实际操作中,至少需要3个不同位姿的标定板图像,但推荐采集10-15个位姿以获得过约束解,提高鲁棒性。

标定模式变换关系应用场景精度影响因素
眼在手上相机→机械臂末端机械臂移动相机接近工件机械臂定位精度、标定板平面度
眼在手外相机→机械臂基座固定相机俯视/侧视工作区域相机安装稳定性、标定板位姿分布
常见误区:外参标定结果与机械臂的定位精度强相关。如果机械臂本身存在较大的定位误差(例如超过0.5mm),那么标定出的外参也会包含该误差。此时,即使视觉定位再准,机械臂实际到达的位置也会偏离目标。建议在标定前先验证机械臂的定位精度,必要时使用激光跟踪仪进行补偿。

3.5 案例拆解:从像素坐标到机械臂抓取坐标的完整换算

背景与约束:某汽车零部件生产线需要机械臂从传送带上抓取金属支架。相机固定安装(眼在手外),视野为300mm×200mm,相机分辨率为2448×2048。机械臂基座与相机之间的相对位置固定,但传送带位置会有±5mm的随机偏移。目标定位精度为±0.3mm。

初始现象:工程师最初直接使用像素坐标除以像素当量(mm/pixel)来计算工件位置,发现抓取误差在视野边缘达到1.2mm,中心区域为0.4mm,无法满足要求。

分析判断过程:通过分析发现,误差来源有三:一是未考虑镜头畸变,边缘区域畸变导致像素坐标偏差;二是未进行外参标定,直接将像素坐标当作机械臂坐标;三是忽略了传送带高度变化引起的投影误差。

实际操作步骤:

  1. 使用张正友标定法获取内参矩阵K和畸变系数(k1, k2, p1, p2),重投影误差控制在0.05像素以内。
  2. 在机械臂工作范围内放置棋盘格标定板,采集15个不同位姿的图像,同时记录机械臂末端位姿,求解外参[R|t]。
  3. 在图像处理流程中,先对原始图像进行畸变修正,再提取工件特征点像素坐标(u, v)。
  4. 利用公式 Pw = R⁻¹ · (Zc · K⁻¹ · [u, v, 1]ᵀ - t) 计算工件在机械臂基坐标系下的三维坐标。其中Zc通过已知的传送带高度(通过激光位移传感器获取)代入。
  5. 将计算出的坐标发送给机械臂控制器,进行抓取。

结果对比:实施完整标定后,视野边缘误差降至0.15mm,中心区域误差降至0.08mm,满足±0.3mm的工艺要求。抓取成功率从92%提升至99.7%。

复盘经验:该案例表明,手眼标定不是一次性的“仪式”,而是需要结合具体工况(传送带高度、镜头畸变、机械臂精度)进行系统性优化的过程。建议每季度或机械臂碰撞后重新校验外参,每次更换镜头或调整光圈后重新标定内参。

3.6 常见误区与总结复盘

误区一:混淆内参与外参。内参描述相机自身的投影特性,与相机位置无关;外参描述相机与世界坐标的关系,与相机内部结构无关。在标定过程中,必须先标定内参,再标定外参,顺序不可颠倒。

误区二:忽略畸变修正。许多工程师在标定内参时得到了畸变系数,但在实际图像处理中忘记调用畸变修正函数,导致定位精度下降。建议将畸变修正封装在图像采集的预处理步骤中,确保所有下游算法都基于无畸变图像。

误区三:使用单张标定板图像求解外参。单张图像只能提供2D-3D对应关系,但外参有6个自由度(3旋转+3平移),单张图像约束不足,容易陷入局部最优。至少需要3张不同位姿的图像,且位姿差异应足够大(旋转角度差异大于15°,平移差异大于视野的20%)。

误区四:忽视温度对相机的影响。工业现场温度变化会导致镜头热胀冷缩,进而改变焦距和主点位置。对于高精度应用,建议在恒温环境下标定,或选用温度稳定性好的镜头。

总结:相机成像模型是手眼标定的数学基石。针孔模型提供了线性投影的基准,内参矩阵完成物理坐标到像素坐标的转换,畸变模型修正真实镜头的非线性偏差,外参则将相机坐标系与机械臂坐标系关联起来。在实际工程中,四个部分缺一不可,且需要按照“先内参、后畸变、再外参”的顺序逐步标定。只有完整理解并正确实施这些步骤,才能构建出高精度的视觉引导系统。