已有CAMERA下的DH参数,标定TCP到MARKER

   控制机器人在base坐标系下沿着base的X轴正向运动,并在camera坐标中测量,可以得到base坐标系的X方向向量在camera中的描述;

   另外,在DH参数标定中可以确定轴1的Z轴方向,将此方向作为base的Z轴方向,由右手定则可以确定base的姿态 R B R_B RB。在camera系中,设base的位置为 T B T_B TB,则其齐次矩阵可表示为:
M B = [ R B T B 0 1 ] M_B = \left[ \begin{matrix} R_B & T_B \\ 0 & 1 \end{matrix} \right] MB=[RB0TB1]

   从XarmAPI的getposition方法可以获取TCP相对于base的齐次矩阵:
M T = [ R T T T 0 1 ] M_T = \left[ \begin{matrix} R_T & T_T \\ 0 & 1 \end{matrix} \right] MT=[RT0TT1]

   而根据DH模型可以得到camera下Marker的齐次矩阵:
M M = [ R M T M 0 1 ] M_M = \left[ \begin{matrix} R_M & T_M \\ 0 & 1 \end{matrix} \right] MM=[RM0TM1]

   设Marker在TCP坐标中的旋转和位置为Q和X并记其齐次矩阵为P,则有以下关系:
M B . M T . P = M M M_B.M_T.P = M_M MB.MT.P=MM
   使用分块矩阵乘法展开,并联立两次测量的数据可以得到:
Q = ( R B . R T ) − 1 . R M Q = (R_B.R_T)^{-1}.R_M Q=(RB.RT)1.RM
X = [ R B . ( R T 1 − R T 2 ) ] − 1 . [ ( T M 1 − T M 2 ) − R B ( T T 1 − T T 2 ) ] X = [R_B.(R_T^1 - R_T^2)]^{-1}.[(T_M^1 - T_M^2) - R_B(T_T^1 - T_T^2)] X=[RB.(RT1RT2)]1.[(TM1TM2)RB(TT1TT2)]

   实际计算中发现,任何两个旋转矩阵之差秩为2(运用正交矩阵特征值为1以及正交矩阵有群结构可以证明这一点),故上式中无法求逆。为解决这个问题,只需要测量第三组数据,得到
R B . ( R T 1 − R T 3 ) 和 [ ( T M 1 − T M 3 ) − R B ( T T 1 − T T 3 ) ] R_B.(R_T^1 - R_T^3) 和 [(T_M^1 - T_M^3) - R_B(T_T^1 - T_T^3)] RB.(RT1RT3)[(TM1TM3)RB(TT1TT3)]

   使用这两个矩阵的第一行去替换前面相应矩阵的第三行,得到满秩的矩阵,继续计算即可得到TCP到MARKER的矩阵,唯一未求出的 T B T_B TB 可得到:
T B = T M − R B . R T . X − R B . T T T_B = T_M - R_B.R_T.X - R_B.T_T TB=TMRB.RT.XRB.TT

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值