N点标定模块主要用于计算相机的图像坐标系和运动机构的物理坐标系之间的转换关系。通过输入多个一一对应的图像像素点和运动机构物理点,计算得出两个坐标系之间的转换关系(即标定文件)。在需要视觉引导运动机构进行抓取、纠偏和对位等动作的应用场景中应用较为广泛。
该模块使用时需确保N≥4。较为常见的是9点标定和12点标定。若运动机构运动是共轴的,需进行9次平移,此时使用9点标定;若运动机构做不共轴运动,进行9次平移后还需进行3次旋转,此时使用12点标定。
本节内容包含:
在与机器臂相关的视觉任务中,比较关键的是将机器臂的物理坐标与相机特征点的像素坐标进行关联。当机器臂在一个特定的平面运动时,其运动状态主要为平移和旋转这两种。该模块主要就是用来确定平移或旋转的变化在图像坐标系和物理坐标系间的对应关系。
对于一组有N个点的坐标,可通过一个平移转换关系将这组坐标映射到另一个位置。
对应公式为Pw=HPI,其中PI表示像素坐标,Pw表示物理坐标,H表示转换关系。通过该转换关系可从像素坐标转换到物理坐标。
同理,可得到公式PI=H-1Pw。其中H-1表示与H相反的转换关系。通过该转换关系可从物理坐标转换到像素坐标。
实际标定时,一般会存在一个基准量,物理坐标与像素坐标均会减去该基准量,因此H和H-1代表的是像素坐标变化量和世界坐标变化量之间的转换关系。
当运动机构需进行旋转有关任务时,需使用N点标定进行旋转标定,从而确定旋转轴中心的位置,并计算得到旋转的变换关系。
旋转前后的公式如下所示。其中ΔPw表示旋转前后的变化量,T是旋转前点的位置,R是旋转的变换矩阵。
对于上述公式中的T满足如下公式。其中Protw表示旋转中心。
通过以上2个公式,可解决得到旋转中心的坐标。
该模块使用时,需通过前序模块获取图像点和物理点。图像点通过模板匹配相关模块、位置修正模块和其他可实现精定位的模块获取。物理点可通过模块自动生成,也可接收通信数据。选择接收通信数据时,需通过接收数据和协议解析模块实现。下图为某个方案中部分模块搭建的示意。
此处仅对该模块的基本参数以及运行参数进行介绍,结果显示各模块大同小异,此处不再赘述,具体参见结果显示。
基本参数:
可选触发获取和手动输入两种方式。
选择触发获取时,还需设置以下参数:
可选按点、按坐标输入。
图像标定点的位置及角度信息,一般从前序模块订阅。
运动机构的坐标点的位置及角度信息。每个图像点对应一个运动机构的物理点。
该参数与物理坐标系参数使用时需二选一,无法同时使用。推荐使用物理坐标系参数自动生成。
启用后,可通过相关设置判断外部输入的信号是否为示教信号。
设置平移运动的输入点数,只针对X/Y方向的平移,一般设置为9。
设置旋转运动的输入点数。旋转轴与图像中心不共轴时,需设置该参数,一般设置为3,且旋转是在第5个点的位置进行。
点击可在编辑标定点页签查看并编辑各个点对应的图像坐标、物理坐标及角度。标定点获取选择手动输入时,需通过此处自定义或导入标定点的信息。
可通过设置以下参数自定义物理坐标系。
仅在未设置物理点、物理坐标X/Y或物理角度时,该分类的参数可见且可设置。
对应图像标定原点的物理点坐标,单位为mm。使用相对坐标时,一般设置为(0,0);使用绝对坐标时,设置为第5个点的物理坐标。
运动机构每次运动时X/Y方向的物理偏移量,可正可负,单位为mm。即第5个点相对第1个点在X/Y方向的偏移量。
可设置运动机构优先偏移的方向,可选X优先、Y优先。
可设置运动机构每移动多少次进行换向移动。
运动机构旋转的初始角度。
运动机构每次旋转的角度。
举例:假设旋转3次,且旋转角度依次为基准角度为0,角度偏移为10。
,则下图为部分参数设置的示意图,其中平移次数为9,旋转次数为3,基准点X/Y均为0,偏移量X/Y均为5,移动优先为X优先,换向移动为3。
可设置运动机构的物理坐标系为相对坐标或绝对坐标。开启时,为相对坐标;未开启时,为绝对坐标。默认关闭。开启后,需配置标定原点参数,设置第几个点为标定原点。一般设置为4。因为物理坐标系从0开始计数,中间的点为原点。
点击可自定义选择标定文件的存储路径,也可通过订阅的方式加载已有的标定文件或新建标定文件。新建标定文件时,在选择的路径下,自定义输入文件名并单击打开即可,如下图所示。
开启该参数后,该模块进行新一轮标定时,会将新的标定结果更新到标定文件路径处选择的标定文件中。否则,标定文件不更新。
点击生成标定文件按钮可将该模块生成的标定文件另存为。
运行参数:
需跟进现场实际情况选择,可选相机静止上相机位(相机固定不动且在被测物上方)、相机静止下相机位(相机固定不动且在被测物下方)、相机运动(相机跟随运动机构运动)。
可设置拟合homo矩阵时的自由度。可选缩放、旋转、纵横比、倾斜、平移及透射(透视变换),缩放、旋转、纵横比、倾斜及平移(仿射变换)和缩放、旋转及平移(相似性变换)这三种,自由度逐步降低,推荐使用默认选项。
举例:正方形通过透视变换可能会变成梯形,通过仿射变换可能会变成矩形,通过相似性变换虽还是正方形但大小会发生变化。
可选最小二乘、Huber、Tukey三种算法权重函数,推荐使用默认选项。
选择Huber或Tukey时,需设置权重系数参数。
该模块的模块结果涉及参数请参见N点标定。
使用该模块标定时,若反馈标定失败或存在较大误差。可按照以下方面查看能否解决。
平移误差较大时,需查看图像中的平移运动轨迹是否正常。通过图像点的X/Y方向位移轨迹是否互相平行来判断。若不平行,会导致标定误差增大。此时可查看不平行轨迹对应点的具体情况,可能是机构运动误差导致,也可能是前序模块输出存在误差导致。
X轨迹和Y轨迹夹角可以不是90°,此时可能为相机非垂直拍摄,也可能机构本身X、Y并非垂直,该情况不会导致标定误差增加。
旋转误差较大时,需查看旋转中心的位置是否合理。若旋转中心位置不正确,检查输入角度是否有误。
某些大半径场景,由于机构限制,需要较大的旋转半径,所以需要提高旋转中心的准确性。建议多旋转几次,增加旋转数据输入,可提高标定结果的准确性。
小角度场景,为得到更准确的旋转中心,一般旋转角度不能太小,用于计算旋转中心的点不能太近。若旋转角度很小,可考虑多运动几次,多个点计算的旋转中心更加准确。