4. 手眼系统构型与转换链路
在机器人视觉引导抓取中,相机装在哪里,决定了整条位姿转换链的走向。工程上最常见的两种构型是 eye-in-hand(相机随动安装)与 eye-to-hand(相机固定安装)。它们并不是“哪个更好”的问题,而是“哪个更适合当前工位”的问题。理解这两种构型,必须同时理解它们各自对应的坐标变换链,以及手眼变换矩阵在其中的物理含义。
一、两种构型的物理差异
eye-in-hand 把相机固定在机械臂末端(通常是法兰或末端执行器附近),相机与工具坐标系保持固定相对关系。相机随机械臂运动,因此它的视野会随末端移动而变化。它的优势是:近距离观察、分辨率利用率高、对工作空间要求低、标定后相机与末端的相对关系不随机器人运动改变。缺点是:相机线缆随动、末端负载增加、运动过程中可能产生振动与遮挡,且相机视野与机器人运动强耦合。
eye-to-hand 把相机固定在工位上方或侧方的支架上,相机与机器人基座保持固定相对关系。它的优势是:相机稳定、线缆固定、可同时观察多个目标、适合大范围抓取。缺点是:视野固定、对遮挡敏感、标定后相机与基座的关系固定,但相机与末端的关系需要借助机器人正运动学实时计算。
从转换链角度看,eye-in-hand 的相机坐标系与末端坐标系之间是固定变换;eye-to-hand 的相机坐标系与基座坐标系之间是固定变换。这个差异直接决定了后续位姿转换链的推导方式。
二、手眼变换矩阵的物理含义
手眼变换矩阵通常记作 Tcam←tool 或 Tbase←cam,它是一个 4×4 齐次变换矩阵,包含旋转部分 R(3×3)和平移部分 t(3×1)。它的物理含义是:把相机坐标系下的一个点,转换到另一个坐标系下。具体是哪个坐标系,取决于构型。
在 eye-in-hand 中,手眼矩阵描述的是相机坐标系到末端坐标系的固定变换。也就是说,无论机械臂怎么动,相机看到的物体在末端坐标系中的位置关系是固定的。标定这个矩阵,通常使用标定板在多个机器人位姿下拍摄,通过求解 AX=XB 形式的手眼方程得到。
在 eye-to-hand 中,手眼矩阵描述的是相机坐标系到机器人基座坐标系的固定变换。相机不动,基座不动,所以这个矩阵是常数。标定时,让机器人末端带着标定板在相机视野内运动多个位姿,记录末端在基座下的位姿和标定板在相机下的位姿,同样求解 AX=XB。
这里有一个容易混淆的点:无论哪种构型,手眼矩阵本身都是“相机与某个固定参考系之间的变换”。区别只在于这个固定参考系是末端还是基座。理解这一点,后续的转换链推导就不会乱。
三、完整位姿转换链推导
假设视觉系统检测到目标物体在相机坐标系下的位姿为 Tcam←obj,我们最终需要的是目标在机器人基座坐标系下的位姿 Tbase←obj,以便用逆运动学求解关节角。下面分别推导两种构型的转换链。
eye-in-hand 转换链:
- 相机检测目标,得到 Tcam←obj;
- 通过手眼矩阵 Ttool←cam,把目标位姿转到末端坐标系:Ttool←obj = Ttool←cam · Tcam←obj;
- 通过机器人正运动学,得到当前末端在基座下的位姿 Tbase←tool;
- 最终目标在基座下的位姿:Tbase←obj = Tbase←tool · Ttool←obj。
合并后:Tbase←obj = Tbase←tool · Ttool←cam · Tcam←obj。注意 Tbase←tool 是随机器人运动实时变化的,Ttool←cam 是标定得到的常数。
eye-to-hand 转换链:
- 相机检测目标,得到 Tcam←obj;
- 通过手眼矩阵 Tbase←cam,直接把目标位姿转到基座坐标系:Tbase←obj = Tbase←cam · Tcam←obj。
可以看到,eye-to-hand 的转换链更短,因为相机与基座的关系是固定的,不需要实时引入机器人正运动学。但它的代价是:相机视野固定,且如果机器人末端遮挡目标,视觉可能失效。而 eye-in-hand 虽然链更长,但相机可以主动靠近目标,适合小视野高精度场景。
四、一个可复现的推导示例
假设 eye-in-hand 构型下,标定得到 Ttool←cam 的平移部分为 [0.05, 0.02, 0.10] m,旋转部分为单位阵(简化示例)。机器人当前末端在基座下的位姿 Tbase←tool 平移为 [0.40, 0.10, 0.30] m,旋转为单位阵。相机检测到目标在相机下的位姿 Tcam←obj 平移为 [0.00, 0.00, 0.50] m,旋转为单位阵。
则 Ttool←obj 的平移为 [0.05, 0.02, 0.60] m,Tbase←obj 的平移为 [0.45, 0.12, 0.90] m。这个结果表示:目标在机器人基座坐标系下位于 (0.45, 0.12, 0.90) 米处。实际工程中旋转部分通常不是单位阵,需要用旋转矩阵乘法或四元数运算,但平移的叠加逻辑是相同的。
如果换成 eye-to-hand,且标定得到 Tbase←cam 平移为 [0.20, 0.00, 0.80] m,旋转为单位阵,那么 Tbase←obj 平移直接为 [0.20, 0.00, 1.30] m。可以看到,eye-to-hand 不需要末端位姿参与,计算更直接,但前提是相机与基座的标定必须准确。
五、构型选择与转换链检查要点
实际选型时,可以从以下几个维度判断:如果目标尺寸小、精度要求高、工作空间受限,优先考虑 eye-in-hand;如果目标尺寸大、需要全局视野、相机线缆不便随动,优先考虑 eye-to-hand。如果工位同时存在大范围搜索和小范围精定位,也可以采用 eye-to-hand 粗定位加 eye-in-hand 精定位的混合构型。
无论哪种构型,转换链检查都应确认三件事:第一,手眼矩阵的标定残差是否在允许范围内(通常平移残差小于 1 mm,旋转残差小于 0.5°);第二,正运动学使用的关节角是否与视觉采集时刻同步;第三,目标位姿的旋转表示是否与机器人控制器一致(欧拉角顺序、四元数符号等)。这三点中任何一点出错,都会导致抓取偏移,且偏移量往往随机器人位姿变化而变化,排查时可以用多个位姿下的固定标定板做验证。
理解两种构型的转换链差异,本质上是在理解“哪些变换是固定的,哪些是实时变化的”。把这条链画清楚、写清楚、验证清楚,后续的抓取位姿生成和逆运动学求解才有可靠的基础。