机器人眼手标定

五、眼手标定

眼手标定根据相机的安装方式不同,分别求解的是相机到机械手末端轴的坐标变换关系(相机在手上)

T T C {^T}T{_C}
或相机到机械手底座的坐标变换关系(相机不在手上)

R T C {^R}T{_C}

1、相机安装在机械手上

此种相机安装方式(Eye in hand),标定量为相机与机械手末端之间的关系

标定方法: 固定标定板与机械手底座不变,移动机械手至两个位置1、2,分别记录两个位置下的相机图像,机械手位置。

假设空间中一物体(object),机械手需要使用(眼在手上的相机)拍摄物体,得到物体在图片中的位置Pimg(x,y),通过之前的单目相机标定,能够将此坐标转换到相机坐标系下的表示,即:
P c a m = C T O P i m g P_{cam} = {^C}T{_O} * P_{img}

然而,控制机械手抓取物体的动作,调整的是基于机械手底座(Robot)坐标系的xyzuvw变化,所以还需要求解相机坐标系到机械手底座坐标系的转换,即:

R T C = R T T T T C {^R}T{_C} = {^R}T{_T} {^T}T{_C}

R T T {^R}T{_T} :机械手末端到机械手底座
T T C {^T}T{_C} :相机到机械手末端

在已知机械手末端到机械手底座关系的条件下,未知量只有相机到机械手末端转换矩阵:

T T C {^T}T{_C}
移动机械手分别到位置1与位置2,以标定板到底座的固定关系(转换关系不变),建立1、2两个位置下的恒等式。

令: X = T T C X = {^T}T{_C}
R T O = R T 1 T X C T 1 O = R T 2 T X C T 2 O {^R}T{_O} = {^R}T1{_T}\cdot X\cdot {^C}T1{_O} = {^R}T2{_T}\cdot X\cdot {^C}T2{_O}

以上方程式的未知数只有X一个,可以将方程化成:

R T 2 T 1 R T 1 T X C T 1 O C T 1 O 1 = R T 2 T 1 R T 2 T X C T 2 O C T 1 O 1 {^R}T2{^{-1}_T}\cdot{ {^R}T1{_T}\cdot X \cdot {^C}T1{_O}} \cdot {^C}T1{^{-1}_O} ={^R}T2{^{-1}_T} \cdot{ {^R}T2{_T} \cdot X \cdot {^C}T2{_O}} \cdot {^C}T1{^{-1}_O}

即:

R T 1 T X = X C T 2 O {{^R}T1{_T}\cdot X = X \cdot {^C}T2{_O}}

R T 2 T 1 R T 1 T X = X C T 2 O C T 1 O 1 {^R}T2{^{-1}_T}\cdot{ {^R}T1{_T}\cdot X = X \cdot {^C}T2{_O}} \cdot {^C}T1{^{-1}_O}

化简为:

A X = X B A \cdot X = X \cdot B

2、相机不安装在机械手上

此种相机安装方式(Eye to hand)需要将标定板固定在机械手末端,保持机械手末端(Tool)与物体(Object)的位置关系不变,标定量为相机到机械手底座之间的关系

方法同 相机安装在机械手上,分别移动机械手到位置1与位置2,以标定板到机械手末端的固定关系(转换关系不变),建立1、2两个位置下的恒等式。

令: X = R T C X = {^R}T{_C}
T T O = T T 1 R X C T 1 O = T T 2 R X C T 2 O {^T}T{_O} = {^T}T1{_R}\cdot X\cdot {^C}T1{_O} = {^T}T2{_R}\cdot X\cdot {^C}T2{_O}

以上方程式的未知数只有X一个,可以将方程化成:

T T 2 R 1 T T 1 R X C T 1 O C T 1 O 1 = T T 2 R 1 T T 2 R X C T 2 O C T 1 O 1 {^T}T2{^{-1}_R}\cdot {{^T}T1{_R}\cdot X \cdot {^C}T1{_O} } \cdot {^C}T1{^{-1}_O} ={^T}T2{^{-1}_R} \cdot { {^T}T2{_R} \cdot X \cdot {^C}T2{_O}} \cdot {^C}T1{^{-1}_O}

化简为:

A X = X B A \cdot X = X \cdot B

AX=XB的求解方法,暂时不列举,到这一步为止,就可以假设已经求出了X即眼手标定结果。

3、四轴tz的计算

Z_SCARA_Heigh 定义为四轴手的高度,在计算眼手关系时候粗略给定值。

拿所有位姿的第一个Toc来计算:

eye in hand: Tct * Toc = > Tot,提取Tot的Z分量z_calib=Tot[2,3],需要修正的tz=Z_SCARA_Heigh-z_calib

eye to hand:Tcr * Toc = > Tor,提取Tor的Z分量z_calib=Tor[2,3],需要修正的tz=Z_SCARA_Heigh-z_calib

Tcr * Toc => Tor,Trt * Tor => Tot,增加Z轴分量,Tot[2, 3] += tz,recalculate Tcr by Tcr = Ttr * Tot * Tco。

我们的是手移动到第一个标定目标位置Ttr的Z,

4、AXXB

计算X:定义Ransac模型,误差函数为min(Ax-xB),拟合函数(根据一组AB计算的X)为四元素法(具体待看)。

优化:使用lm优化X,使用levmar.levmar来实现。

发布了6 篇原创文章 · 获赞 0 · 访问量 14

猜你喜欢

转载自blog.csdn.net/qq_33175713/article/details/105520712
今日推荐