线激光手眼标定

  • 线激光手眼标定算法原理

  1. 手眼标定原理

本文中六自由度机器人和传感器的各坐标系关系如图1所示:

图1机器人和坐标系关系图

  对图中的几个坐标系用表格1来说明:

 表1 手眼标定坐标系说明

在标定中,我们需要用到各个坐标系相对的位置矩阵作为参数进行推导,我们对相对位置矩阵用表格2来说明:

 表2 坐标系相对位置变换矩阵

 假设空间中存在一点P,该点在机器人基坐标系{B}下的坐标值为^Bp = (x,y,z),在相机坐标系{C}下的坐标值为^Cp = (x_{c},y_{c},z_{c}),在激光平面坐标系{L}下的坐标值为^Lp = (x_{l},0,z_{l}),则有则P点在机器人基坐标系和传感器激光平面坐标系下的转换关系为:

  

   在上述关系式中^Bp_{F}^{B}\textrm{T}^Lp都是已知,所以可以被直接求出来。

   对于_{F}^{B}\textrm{T}的变换矩阵,可以直接通过机器人来获得该矩阵参数,该矩阵可以表示为如下形式:

   其中R和T分别代表姿态矩阵和平移矩阵:

   对于平移矩阵来说,不同机器人都是在笛卡尔坐标系下对位置进行表达呈现,但是对于姿态来说,不同机器人用到的表达姿态的方式不一样,可能是欧拉角来表示也可能是四元数来表示,但是最终都需要将不同的表示转化为姿态矩阵来进行运用,下面用不同的表示姿态方式来进行说明:

   四元数表示姿态的方式以及四元数转化为旋转矩阵的表达式:

   四元数的表达式可以表示为如下形式:               

   则根据式(4)可以得到旋转矩阵和四元数的转换表达式:

   对于欧拉角表示姿态的方式并不唯一,因为欧拉角有不同的组合旋转方式,最终变换为旋转矩阵的表达式也有所不一样,首先说明一下欧拉角的几种变换组合和旋转方式

  1. 对于x,y,z三个轴的不同旋转顺序一共有(x-y-z,y-z-x,z-x-y,x-z-y,z-y-x,y-x-z)六种组合,在旋转相同的角度的情况下不同的旋转顺序得到的姿态是不一样的。
  2. 每次旋转是绕固定轴(一个固定参考系,比如世界坐标系)旋转,称为外旋。
  3. 每次旋转是绕自身旋转之后的轴旋转,称为内旋。

  且对于不同的旋转顺序和内旋以及外旋的情况下最终得到的姿态是不一样的,内旋和外旋的示意如下图所示:

图2 欧拉角的外旋和内旋

假设绕XYZ三个轴旋转的角度分别为 \alpha \beta \gamma,则三次旋转的旋转矩阵计算方法如下:

   对于用欧拉角表示姿态的不同机器人来说,其表达姿态的旋转方式可能也有所不一样,所以我们需要根据自己使用的机器人所对应的姿态旋转方式来自行选择

  1. 例如某机器人采用内旋(右乘)ZYX的方式来表述姿态,那么其旋转矩阵则可以表示为:           

  2. 例如某机器人采用外旋旋(左乘)XYZ的方式来表述姿态,那么其旋转矩阵则可以表示为:

则根据(3)、(7)和(8)式可以确定如下关系式:   

采用上述的方法即可以确定_{F}^{B}\textrm{T}的所有参数

对于矩阵_{L}^{F}\textrm{T},同样可以表达为如下形式:

  通过式(1)和(10)可以得到:

对公式(11)两边同时乘以_{F}^{B}\textrm{T}^{-1}

 对等式(12)右边做处理:

 通过式(12)和(13)可以得到:

  对式(14)进行化简,可以得到:

 对式(15)进行观察,发现至少需要3组数据才可以解出矩阵中的9个参数,则可以得到:

 通过式(16)和最小二乘法可以获取到_{L}^{F}\textrm{T}的9个参数,最后三个参数采取正交的方法进行求解:

 最终通过(16)和(17)式可以求得_{L}^{F}\textrm{T}矩阵的所有参数,至此标定矩阵求解完成

  • 手眼标定实验

本次实验采用ABB IRB2600型号机器人进行实验,机器人用四元数来表达唯一姿态,所采用到的数据如下:

 我们最终得到如下的手眼标定矩阵:

 对该矩阵我们并未做标准化处理(单位化),可以更具自己所需选择是否向量单位化

 我们采用重投影误差对精度进行验证,验证结果如下:

 可以看出,采用四组数据的情况下,误差并不小,因此需要更多组数据来减小误差

  •  手眼标定软件

  在基于本次算法理论的基础上开发了一款线激光标定软件,采用Visual Studio2017和C#进行开发,软件界面如图所示:

   图3 软件界面

该软件支持最少四组和至多10组数据的标定,使用者可以根据不同的处理情况进行选择,首先输入所需要标定的数据集,然后点击确认点数,输入标定点数;

Figure1

Figure2

Figure3

图4 标定初始化

进行上述操作后,输出窗口输出标定流程中的各个矩阵,然后再次点击计算手眼标定矩阵,输出窗口则会输出标定矩阵,如图所示:

图5 计算手眼标定矩阵

  点击误差计算,软件会自动进行误差的求解,如图所示:

图6 误差计算

 输入需要验证的点位,软件自动进行验证求解,如图所示:

  •  总结

  这篇文章聚焦于激光视觉传感器的构成和与焊接机器人之间的标定算法。研究的核心在于手眼标定,通过传感器与六自由度工业机器人的组合形成Eye-in-Hand系统。通过手眼标定,可以获得激光平面坐标系与法兰盘坐标系之间的齐次变换矩阵,从而将激光平面坐标系下的坐标值转换到机器人基坐标系下。这样,我们可以通过像素坐标值计算出特征点在机器人基坐标系下的坐标值。标定的精度直接影响着焊缝跟踪实验的准确性,因此标定算法是后续进行焊缝跟踪的基础。

  • 18
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值