• VisionPro 标定与创建坐标系(Calibration and Fixturing)(二)


    本文主要介绍Fixture创建的坐标系的意义以及CogFixture工具的使用方法。
    同Calibration一样,fixture同样创建一个新的坐标系,不同之处在于经过Calibration之后生成的是一个固定坐标系,而Fixture之后是一个“随动”的坐标系。此外,经过Calibration之后的坐标空间一般为物理坐标空间,而Fixture之后的坐标空间取决于输入图像的坐标空间,即输入空间为像素空间,新创建的坐标空间以像素为单位坐标;输入空间为物理坐标空间,则新创建的坐标系以物理空间(如mm)为基本单位坐标。
    假设现在用户要通过测量零件右上角的圆孔直径来判断当前产品是否合格,而该零件每次进入相机视野的位置姿态都是不确定的,如下图所示。要测量圆孔的直径需要使用CogFindCircleTool,在对该工具进行参数设置时需要手动输入或者通过交互窗口确定确定圆形卡尺工具的位置,Calibration之后只能获取在物理坐标系下的测量值,要测量的圆形通孔每次在Calibrated Coordinate (标定坐标系)下的坐标并不相同,所以如果圆孔在标定坐标系下的坐标值不固定就会导致检测失败的情况,这是我们不愿意看到的。
    在这里插入图片描述
    不难发现,零件右上角圆孔的位置相对于零件的位置是不会变换的,也就是所如果以零件本身为参照物的话,右上角的通孔出现的一个固定坐标值的位置。在这里插入图片描述
    采集一幅包含该零件的图像作为参考图像,使用CogPMAlignTool工具创建零件的匹配模板,每次采集到待测量图像先进行模板匹配,确定零件在图像中的位置与姿态,然后使用CogFixturetool根据零件相对于模板图像的位姿关系建立一个新的坐标系Fixtured Coordinate。CogFixtureTool在运行时执行两项操作:

    • 创建一个坐标系并添加到该图像的坐标空间树。
    • 创建一幅输出图像,如果是使用的CogPMAlignTool提供的位置姿态,原点为CogPMAlignTool的匹配点。
      CogFixtureTool需要的输入参数
    • InputImage,输入图像,告诉工具将要对哪副图像进行坐标转换
    • 转换参数,告诉工具对图像进行怎样的变换(平移与旋转)
    • 转换后的坐标空间名称,默认值为Fixtured

    在这里插入图片描述
    实现Fixture功能,创建“随动”坐标系,除了实现CogFixtureTool外,还可以使用CogFixtureNPointToNPointTool。与CogCalibNPointToPointTool类似,都是通过不同坐标系下的两组点集求解不同坐标系之间的映射关系。不同的是,Calibrate之后的坐标系是一个固定的坐标系,而Fixture之后的坐标系是根据提供的对应点每次重新建立。对于Calibrate建立的坐标系,固定的像素坐标对应固定的物理坐标 ,而对于Fixture建立的坐标系,固定的像素坐标值对应的物理坐标值不同(除非两次提供的输入图像完全相同)。
    使用CogFixtureNPointToNPointTool创建坐标系有两种不同的方式。

      • Reference fixturing (参考法建立坐标系)
      • Geometric fixturing(几何法建立坐标系)
        使用Referrnce fixture,需要在参考图像中指定要建立坐标系的位置以及姿态(通过交互见面手动拖放实现),每次程序运行时需要用户通过其他工具提供指定的参考点的坐标值,这些坐标值可以是像素坐标系下的值。通过交互界面手动拖放建立坐标系为Fixtured 坐标系,手动指定的特征点为Raw Fixture 坐标空间,通过提取工具计算得到的特征点的坐标在UnFixutred坐标系下。CogCalibNPointToPointTool同不对Reference Image作任何处理,参考图像仅仅是为了建立坐标系与标记特征点更加方便直观。用于定位的特征点的坐标必须由其他工具来提供,CogCalibNPointToPointTool只是用来建立坐标关系,没有提取特征点的功能。
        使用Geometric fixture方式,一般是基于明确的产品尺寸,提供的特征点的坐标是在某一个已知的物理坐标系下,通过Geometric 方法得到的输出图像是在物理坐标系下的图像,后续工具可以直接处理得到真实的物理坐标数据。通过Geometric 方式可以同时完成标定与Fixture,就是所谓的“一步标定”,这种方式并不推荐,原因有两点:①需要知道定位目标的尺寸图②精度一般不高。
        在这里插入图片描述
  • 相关阅读:
    C++基础学习笔记----第十三课(操作符重载-下)
    SSH搭建
    java(17)
    英语语法检查软件
    Ubuntu sudo apt-get 安装下载更新软件包命令详解
    MATLAB:控制系统模型变换
    solvepnp
    MATLAB:控制系统模型变换
    MATLAB实现传递函数
    visual studio编译cmake opencv一直出错
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14266137.html
Copyright © 2020-2023  润新知