Cognex InSight 实现视觉引导机械手&视觉校准&九点标定


1. 校准

1. 非线性校准的作用:主要是为了消除镜头的径向畸变、以及相机非垂直安装引起的透视变形;

2. 校准工具:校正板&标定板(这里只介绍前2种,因为InSight相机不支持DataMatirx标定板)

3. 标定板的选择标准:需要根据项目现场的FOV确定标定板尺寸和单元大小

棋盘格标定板:

  1. 获取的图像必须包含至少9个完整图块。
  2. 采集图像中的图块大小必须至少为15x15像素。

网格标定板:

  1. 点的直径必须在10到40像素之间。
  2. 网格必须包含不少于16个点且不超过2000个点。
  3. 点中心之间必须至少有8个像素。

4. 校准的意义:

5. 在InSight中校准图像:
① 首先相机已经固定,然后在被测/被定位的零件上放置标定板,取像;
② 插入CalibrateGrid工具,然后分别设置以下三步:

所谓的校准其实就是,将获取的像素空间映射到原始校准空间的位置变换

③ 插入TransformImage工具,显示校准后的图像,可以看到对比:

④拍一张零件的图片,然后使用FindCircle工具测量零件内径,图像引用上面的TransformImage

2. 机械手引导
1. 相机固定不动方式的标定流程:
一、执行九点标定:将左边的像素坐标(PixelX,PixelY)映射到右边的工具坐标系(WorldX,WorldY)中,两个坐标之间的转换系数会被保存在CalibrateAdvanced这个工具结构中。

这里的像素坐标也可以引用非线性校准后的坐标。

作用:这个工具的作用在于统一坐标系,并且统一测量单位。

注意引用格式:(像素坐标x,y,世界坐标x,y,像素坐标x,y,世界坐标x,y…)

二、获取标定图像CalibrateImage(A0,CalibrateAdvanced),这样可以获得一个新坐标系(和机械手同一坐标系)下的图像,代替A0。区别在于,后面的工具比如FindPattern引用了CalibrateImage作为输入图像之后,得到的XY则会和工具坐标系下的XY相同,但是如果引用的是A0作为输入图像,那么得到的XY仍然是像素坐标系下的像素单位。

三、注意,如果机器人的TCP被定义在夹爪中心的情况下,不需要计算旋转中心!
寻找机器人的TCP(ToolCenterPoint)中心,一般为第6轴:
确定零件的识别特征点,并确定零件标准抓取位置,机器人抓取工件分别旋转35个角度摆放到相机视野内,相机可以得到35个坐标值,通过这些坐标值拟合(CircleFrNPoint)圆获得圆心坐标即为旋转中心(也就是TCP的坐标)。

然后计算旋转中心相对于零件坐标的相对坐标位置,也就是下图中的TCx、TCy坐标,为什么要计算相对位置呢?因为零件的位置是变化的,TCP的位置必须跟着零件跑,并且相对位置一定。

如果零件位置(100,100),TCP位置(50,50), 这里TCx和TCy的计算方式为:
TCx=100+(50100)
TCy=100+(50100)
其中50100得到差值旋转中心相对于零件的差值50,然后零件位置+差值=TCP平移位置

⑤ 计算旋转后的点:其实就是计算当零件发生平移+旋转后,机械手的工具中心TCP应该在何处。
下图中的NCx,NCy就是正确计算后机器人的TCP位置。

1 公式如下: 2 (rx0, ry0)为旋转中心,( x, y)为被旋转的点,(x0,y0)旋转后的点 3 x0= cos (a) * (xrx0) – sin (a) * (yry0) +rx0 4 y0= cos (a) * (yry0) + sin (a) * (xrx0) +ry0

在InSight中验证:
平移

旋转+平移



上一篇:VisionPro 数据分析工具实现测试结果判定

下一篇:VsionPro CogBlobTool斑点工具的使用详解


康耐视(Cognex)
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图