手眼标定,9点标定过程及其运算

在工业领域常常会遇到将相机安装在机器手中,由相机快速引导机器手进行工作的方式。其中9点标定的作用是将图像的坐标转化为机器手的坐标。
不同标定文件的区别:不同标定的区别在于:图像坐标系与机器人坐标系是否匹配,单像素精度是否匹配。影响单像素精度是,相机与被测物体的高度差,如果相机与被测物体的高度差不变时,则可以不改变标定文件。
9点标定的作用意义:
标定视野范围,标定视野范围应大于相机视野的2/3以上,以保证相机出现畸变时可以及时发现。
1.计算像素当量,通过9点标定后的计算,可以得出一个由像素值转化为机器手的移动值的一个变化量。当我们标定完后即可得到一个像素当量的固定值。
2.将图像坐标系转化为机器手的同向坐标系。
为什么叫做同向坐标系?
我们标定的时候,需要将图像坐标与对应的机器手的坐标进行一一对应。图像坐标系通常会默认左上角的视野临界点为图像的起始原点即为(0,0)【图像坐标系】。图像往东为X轴的正方向,图像往南为Y轴的正方向。当然我们的机器手由于各种问题往往所体现出来的坐标系是混乱不固定的,且实际的工作单位为机器手,我们相机需要为机器手进行引导,所以即使在机器手坐标系不一的情况下,可以使用9点标定实现将机器手坐标系与图像坐标系联系在一起并计算为坐标系同向的状态。
我们的标定步骤:
1.在安装好设备后开始进行手眼标定
2.确定工作计算的坐标系,在实际生产中视觉计算的坐标系往往是多样化的,根据实际情况进行选择工作坐标系,同时示教时也需要在工作坐标系下。我直接采取机器手的Base0坐标系。原因在于:Base0坐标系时机器手的固定坐标系,此坐标系的原点在机器人的底座上,坐标系的变化只与机器人的安装误差有关系。
3.将机器手移动至方案选定的拍照高度,随后调节相机的焦距,和将光圈调到最大,在相机控制软件调节相机曝光时长,使得物体在视野内清晰可见,同时干扰源尽可能的少。
4.以库卡机器人为例子。将机器人选择为全局坐标系下,即为Base0坐标系(底座坐标系)。移动机器手,使得相机的中心对准被检测物体(或者标定物体的中心),记录当前的机器人坐标X,Y,Z,A等其他数值。
5.设定机器手的移动距离,根据实际情况设置机器手的移动距离,通常将9个点均在画面当中,9个点相连接占用的面积约为视野范围的2/3即可。这里我以20mm作为偏移值。则将视野中心点设置为4号点,机器坐标为(0,0)。则对应的坐标为
在这里插入图片描述
例如0号点的机械坐标设定为(-20,-20),则我们在机器手中将X轴移动-20,Y轴移动-20,其他均不改变 。同理我们的其他坐标也是如此。
6.然后生成标定文件进行验证即可
参考Halcon程序

*已知A坐标系的9个点
Ax:=[-20,-20,-20,0,0,0,20,20,20]
Ay:=[-20,0,20,20,0,-20,-20,0,20]
 
*待识别的B坐标点,和上面的A坐标系点一一对应
Bx:=[]
By:=[]
dev_get_window (WindowHandle)
* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('E:/762halcon/标定', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1
    read_image (Image, ImageFiles[Index])
    * Image Acquisition 01: Do something
    dev_display (Image)
    * 以下过程为在B坐标系找A中的9个点
    draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
    gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
    reduce_domain (Image, Rectangle, ImageReduced)
    threshold (ImageReduced, Regions, 0, 211)   
    *找到了B坐标系的点(Row,Column)
    area_center (Regions, Area, Row, Column)
    Bx:=[Bx,Column]
    By:=[By,Row]
endfor
*得到目标变换矩阵HomMat2D
vector_to_hom_mat2d (Bx, By, Ax, Ay, HomMat2D)
 
*保存变换矩阵
serialize_hom_mat2d (HomMat2D, SerializedItemHandle)
open_file ('my_vector.mat', 'output_binary', FileHandle) 
fwrite_serialized_item (FileHandle, SerializedItemHandle) 
close_file (FileHandle)
 
stop ()
*读取变换矩阵,测试
open_file ('my_vector.mat', 'input_binary', FileHandle) 
fread_serialized_item (FileHandle, SerializedItemHandle) 
deserialize_hom_mat2d (SerializedItemHandle, HomMat2D_9p) 
close_file (FileHandle)
tx:=20
ty:=30
affine_trans_point_2d (HomMat2D_9p, tx, ty, Qx, Qy)

7.同时标定坐标系需要与程序的实际情况相对应,如果程序中的是当前坐标-示教坐标,那么我们标定出来的坐标系需要与机器人的坐标系方向正负相反。
库卡机器人参考标定文件程序:
lin_rel{x -15}
lin_rel{y-15} //第一个点
lin_rel{x 15}
lin_rel{x 15}
lin_rel{y 15}
lin_rel{x -15}
lin_rel{x -15}
lin_rel{y 15}
lin_rel{x 15}
lin_rel{x15} //最后一个点
lin_rel{x-15}
lin_rel{y -15} (回到原点)
标定后,图像坐标系与机器人坐标系相反,适用于当前坐标-示教坐标程序。

标定问题:

1.按照机器人移动的照片是斜的。
只要是根据机器人的坐标系移动,无论图像的连线是否是斜的都不影响精度。
2.标定结果有误差。
标定的坐标系问题,如果你在Base0下进行标定,结果出现误差是机器人安装错误,推荐重新正确的安装机器人底座;如果是在其他机器人坐标系下标定,结果出现误差是因为机器人的Z轴发生了变换,但是在当前坐标系下没有变化,实际在Base0下的Z轴开始变化了,可以将坐标系改为在Base0下进行标定。
3.为什么标定时4号点(视野中心)的机械坐标设置为0?
我们在计算的过程的时候,选择视野中的机械坐标为0的好处是,当我们进行示教时候,可以直接记录视野中心的点即为示教点,那么偏移量就可以直接将坐标映射后的坐标+示教的坐标即可得到基于当前坐标系的坐标了,方便计算。

参考的标定图片

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 7
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 线结构光手眼标定是一种在机器人或自动化系统中,利用视觉信息对机械系统进行标定的方法。 该过程通常包括以下步骤: 1. 安装摄像头:在机器人的工作环境中安装摄像头,以获取图像信息。 2. 显示标定模式:在机器人工作环境中显示线结构光模式,以便摄像头能够捕捉到标定图像。 3. 捕捉图像:使用摄像头捕捉标定图像,并将其传递给计算机。 4. 处理图像:使用图像处理软件对捕捉到的图像进行处理,以确定标定的位置。 5. 标定:利用标定的位置对机械系统进行标定。 6. 验证标定结果:使用机器人或自动化系统进行一系列动作,以验证标定结果的准确性。 这是线结构光手眼标定的一般流程,具体的步骤可能因应用场景而有所不同。 ### 回答2: 线结构光手眼标定是一种常见的机器视觉技术,用于确定机器人工具或末端执行器与相机之间的几何关系,以实现准确的机器人运动控制。 该过程通常分为以下几个步骤: 1. 准备工作:首先要确定相机的内外参数,包括相机的焦距和畸变系数等,以及确保相机和机器人的坐标系统一。 2. 制作校准板:制作包含一组已知尺寸和形状的特征的校准板。可以使用黑白棋盘格或特征阵列制作校准板。 3. 捕捉图像:将机器人工具或末端执行器对准校准板,并使用相机捕捉多幅包含校准板的图像。需要确保校准板的特征在图像中清晰可见。 4. 特征提取:对捕捉到的图像进行特征的提取和匹配工作。这些特征可以是校准板上已知特征的位置。 5. 手眼标定:通过分析图像中相机坐标系和机器人工具或末端执行器坐标系之间的几何关系,确定它们之间的转换矩阵。这个矩阵描述了相机相对于机器人的位置和姿态。 6. 验证和调整:将已标定机器人运动,在现实场景中进行验证,并检查机器人执行器是否准确地定位和操作目标。如果有误差,可以对标定参数进行调整和优化,直到达到预期的精度和准确性。 线结构光手眼标定是机器视觉中的关键技术之一,它为机器人实现精准的动作提供了基础。在实际应用中,需要根据具体情况选择合适的标定方法和算法,以确保机器人系统的可靠性和准确性。 ### 回答3: 线结构光手眼标定是一种用于机器视觉系统中的技术,用于确定相机坐标系与机器人坐标系之间的变换矩阵。下面是线结构光手眼标定的基本过程。 首先,确定关键设备:由一个相机和一个机器人组成的系统,相机用于采集物体图像,机器人用于操作物体。 然后,设置标定板:在系统中放置一个特殊的标定板,标定板上有特定的二维码或标记,以便于识别。 接下来,采集数据:使用相机采集多个不同位置下的标定板图像,并记录相机拍摄位置和姿态。 然后,进行图像处理:对采集到的图像进行图像处理,识别出标定板上的特征,并计算出其在相机坐标系下的三维坐标。 随后,机器人操作:通过机器人标定板进行若干次旋转或平移动作,记录下每次动作的机器人坐标系下的姿态。 然后,计算变换矩阵:根据相机坐标系下的特征机器人坐标系下的姿态,使用最小二乘法或其他算法计算出相机坐标系与机器人坐标系之间的变换矩阵。 最后,验证标定结果:使用新的标定板姿态数据进行验证,计算相机坐标系下的特征,并将其转换到机器人坐标系下,通过计算误差来验证标定结果的准确性。 通过以上过程,线结构光手眼标定可以得到相机坐标系与机器人坐标系之间的准确的变换矩阵,从而实现机器人与相机之间的精确配准,为机器视觉应用提供准确的空间信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值