手眼标定eye-in-hand(一)AX=XB方程推导

1. 前言

本文主要介绍eye-in-hand的手眼标定,引用OpenCV的文档原话和原图1:“The following picture describes the Hand-Eye calibration problem where the transformation between a camera (“eye”) mounted on a robot gripper (“hand”) has to be estimated.”
在这里插入图片描述

2. 手眼标定方程推导

step 0. 符号描述与目标介绍

如上图所示,
b b b表示 b a s e base base,机械臂基座坐标系;
g g g表示 g r i p p e r gripper gripper,机械臂末端执行器坐标系(以gripper为代表);
c c c表示 c a m e r a camera camera,相机坐标系;
t t t表示 t a r g e t target target,标定目标坐标系(以棋盘格为代表);
i i i j j j表示机械臂的两个位置。

则矩阵的意义如下,
b T g ( i ) ^{b} T^{(i)}_{g} bTg(i),末端执行器坐标系到机械臂基座坐标系的转换矩阵,包含旋转矩阵 b R g {^{b}} R_{g} bRg和平移向量 b t g {^{b}} t_{g} btg
c T t ( i ) ^{c} T^{(i)}_{t} cTt(i),标定目标坐标系到相机坐标系的转换矩阵,包含旋转矩阵 c R t {^{c}} R_{t} cRt和平移向量 c t t {^{c}} t_{t} ctt
b T t ^{b} T_{t} bTt,标定目标坐标系到机械臂基座坐标系的转换矩阵;
g T c ^{g} T_{c} gTc,相机坐标系到末端执行器坐标系的转换矩阵,包含旋转矩阵 g R c {^{g}} R_{c} gRc和平移向量 g t c {^{g}} t_{c} gtc
手眼标定的目标,即求解 g T c \bf{^{g} T_{c}} gTc
在求解过程中,有两个不变量,(1)相机与末端执行器之间无相对运动,即 g T c \bf{^{g} T_{c}} gTc不变;(2)标定目标与机械臂基座之间无相对运动,即 b T t \bf{^{b} T_{t}} bTt不变。

step 1. 机械臂从初始位置移动到位置 i i i或者位置 j j j

P b = b T g ( i   o r   j ) ∗ P g (1) P_{b} = {^{b}} T^{(i \ or \ j)}_{g}*P_g \tag{1} Pb=bTg(i or j)Pg(1)
其中, P b P_{b} Pb表示机械臂基座坐标系下的坐标点, P g P_{g} Pg表示末端执行器坐标系下的坐标点。任意位置,使用齐次变换的写法如下,
[ X b Y b Z b 1 ] = [ b R g b t g 0 1 × 3 1 ] [ X g Y g Z g 1 ] \left[ \begin{array}{c} X_b \\ Y_b \\ Z_b \\ 1 \end{array} \right ]= \left[ \begin{array}{cc} {^{b}} R_{g} & {^{b}} t_{g} \\ 0_{1 \times 3} & 1 \\ \end{array} \right ] \left[ \begin{array}{c} X_g \\ Y_g \\ Z_g \\ 1 \end{array} \right ] XbYbZb1=[bRg01×3btg1]XgYgZg1
P c = c T t ( i   o r   j ) ∗ P t (2) P_{c} = {^{c}} T^{(i \ or \ j)}_{t}*P_{t} \tag{2} Pc=cTt(i or j)Pt(2)
其中, P c P_{c} Pc表示相机坐标系下的坐标点, P t P_{t} Pt表示标定目标坐标系下的坐标点。任意位置,使用齐次变换的写法如下,
[ X c Y c Z c 1 ] = [ c R t c t t 0 1 × 3 1 ] [ X t Y t Z t 1 ] \left[ \begin{array}{c} X_c \\ Y_c \\ Z_c \\ 1 \end{array} \right ]= \left[ \begin{array}{cc} {^{c}} R_{t} & {^{c}} t_{t} \\ 0_{1 \times 3} & 1 \\ \end{array} \right ] \left[ \begin{array}{c} X_t \\ Y_t \\ Z_t \\ 1 \end{array} \right ] XcYcZc1=[cRt01×3ctt1]XtYtZt1
P g = g T c ∗ P c (3) P_{g} = {^{g}} T_{c}*P_{c} \tag{3} Pg=gTcPc(3)
其中, P g P_{g} Pg表示末端执行器坐标系下的坐标点, P c P_{c} Pc表示相机坐标系下的坐标点。任意位置,使用齐次变换的写法如下,
[ X g Y g Z g 1 ] = [ g R c g t c 0 1 × 3 1 ] [ X c Y c Z c 1 ] \left[ \begin{array}{c} X_g \\ Y_g \\ Z_g \\ 1 \end{array} \right ]= \left[ \begin{array}{cc} {^{g}} R_{c} & {^{g}} t_{c} \\ 0_{1 \times 3} & 1 \\ \end{array} \right ] \left[ \begin{array}{c} X_c \\ Y_c \\ Z_c \\ 1 \end{array} \right ] XgYgZg1=[gRc01×3gtc1]XcYcZc1

step 2. 标定目标到机械臂基座坐标系的转换

根据公式 ( 1 ) ( 2 ) ( 3 ) (1)(2)(3) (1)(2)(3),可得 P t P_t Pt P b P_b Pb的关系,
{ P b = b T g ( i ) g T c c T t ( i ) P t P b = b T g ( j ) g T c c T t ( j ) P t \left\{ \begin{aligned} P_b &= {^{b}} T^{(i)}_{g} {^{g}} T_{c} {^{c}} T^{(i)}_{t} P_{t} \\ P_b &= {^{b}} T^{(j)}_{g} {^{g}} T_{c} {^{c}} T^{(j)}_{t} P_{t} \end{aligned} \right. PbPb=bTg(i)gTccTt(i)Pt=bTg(j)gTccTt(j)Pt
因为 P t P_t Pt P b P_b Pb的关系固定,则
b T g ( i ) g T c c T t ( i ) = b T g ( j ) g T c c T t ( j ) {^{b}} T^{(i)}_{g} {^{g}} T_{c} {^{c}} T^{(i)}_{t}= {^{b}} T^{(j)}_{g} {^{g}} T_{c} {^{c}} T^{(j)}_{t} bTg(i)gTccTt(i)=bTg(j)gTccTt(j)
即,
( b T g ( j ) ) − 1 b T g ( i ) g T c = g T c c T t ( j ) ( c T t ( i ) ) − 1 (4) ({^{b}} T^{(j)}_{g})^{-1} {^{b}} T^{(i)}_{g} {^{g}} T_{c} = {^{g}} T_{c} {^{c}} T^{(j)}_{t}({^{c}}T^{(i)}_{t})^{-1} \tag{4} (bTg(j))1bTg(i)gTc=gTccTt(j)(cTt(i))1(4)
公式 ( 4 ) (4) (4)就是手眼标定需要求解的方程,手眼标定问题转换为 A X = X B AX = XB AX=XB方程求解问题—— g T c \bf{^{g} T_{c}} gTc就是 X X X c T t \bf{^{c} T_{t}} cTt是相机外参 B k B_k Bk,可由相机标定获得, B = B j B i − 1 B = B_j {B_i}^{-1} B=BjBi1 b T g \bf{^{b} T_{g}} bTg是末端执行器到基座坐标系的转换关系 A k A_k Ak,可由机械臂运动学获得, A = A j − 1 A i A={A_j}^{-1} {A_i} A=Aj1Ai

3. 如何求解 A X = X B AX = XB AX=XB

OpenCV中,calibrateHandEye()函数,使用了多种方式求解,主要有两大类。
一种是先估计旋转矩阵,然后求解平移向量,文献如下,

  • R. Tsai, R. Lenz A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/EyeCalibration
  • F. Park, B. Martin Robot Sensor Calibration: Solving AX = XB on the Euclidean Group
  • R. Horaud, F. Dornaika Hand-Eye Calibration

另一种同时求解旋转矩阵和平移向量,文献如下,

  • N. Andreff, R. Horaud, B. Espiau On-line Hand-Eye Calibration
  • K. Daniilidis Hand-Eye Calibration Using Dual Quaternions

后续的手眼标定eye-in-hand(二)中,主要介绍Tsai的求解方法,文献在这里

可以试试sci-hub来下载。

Reference


  1. calibrateHandEye(). ↩︎

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值