手眼标定

两种情形

手眼标定系统一般有两种情况:一种是相机固定在机械手末端,一种是相机和机械手分离,眼的位置相对于手是固定的。这个很容易理解。

相机固定在机械臂上的情形

我们会用到四个坐标系,分别是基础坐标系,机械手坐标系,相机坐标系,标定物坐标系。
这里写图片描述
其中baseHcal表示基础坐标系到标定物坐标系的转化关系,包括旋转矩阵和平移向量;
camHtool表示相机坐标系到机械手坐标系的转化关系;这两个转化关系在机械手移动过程中是不变的;
camHcal可以由相机标定求出;
baseHtool可以由机器人系统中得出。
接下来控制机器手从位置 1 移动到位置 2:
base = baseHtool (1)* tool(1)
tool(1) = inv(camHtool)*cam(1)
cam(1) = camHcal(1)*obj
联合上面三个公式:
base = baseHtool (1)* inv(camHtool)* camHcal(1)*obj
移动到机械手臂到位置2后:
base = baseHtool (2)* inv(camHtool)* camHcal(2)*obj
因为base和obj是固定的所以:
baseHtool (1)* inv(camHtool)* camHcal(1)=baseHtool (2)* inv(camHtool)* camHcal(2)
其中只有camHtool是未知量,

相机和机械臂分离

这里写图片描述

对于固定相机的情况,还是控制机械手从位置1移动到位置2: obj(1) = inv(camHcal(1)) *cam cam = camHbase *base base = baseHtool(1) * tool(1) 合并上面三个公式: obj(1) = inv(camHcal(1)) * camHbase* baseHtool(1) *tool(1) 移动到位置2后: obj(2) = inv(camHcal(2)) * camHbase* baseHtool(2) *tool(2) 因为obj和tool的相对位置是不变的,所以不管怎么移动: inv(camHcal(1)) * camHbase* baseHtool(1)= inv(camHcal(2)) * camHbase* baseHtool(2) 其中变量只有camHbase,也就是我们要求的。