日期
05/07
2020
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

CVM多功能视觉运动控制平台例程分享
收藏
2020-05-07 13:58:36来源: 视觉龙

更多内容与案例可以点击视觉龙官网www.vdgood.cn

1. 运动要求

具体产品图如下图所示,其中绿色mark点为产品中心点(产品本身没有此mark点),也是需要进行定位的点位,而黑色mark点为产品自带特征,通过定位两个黑色mark点来计算产品两mark点中心点,即绿色mark的位置。


2.  解决方法

考虑到精度问题,本次项目采用双相机定位,通过双相机单独定位其中一个mark点,最后通过视觉算法,将两相机视觉坐标系结合,计算出实际两mark点中心点位(即绿色mark位置),最后输出给运动轴。



3.  调试准备工作

步骤1:首先需考虑到整体的运作流程,若条件允许,最好以下方流程图的方式标记出每一步的整体动作(流程图制作可使用Visio或者WPS内自带的流程图工具),最后在CVM软件上以流程图所编写的内容进行一一对应更改,可方面后期问题排查。

步骤2:使用EXCLE软件对需要进行数据传输的地址进行记录,如下图:


4.  运动控制开始调试

打开CVM软件,首先将权限切换至管理(只有管理权限才能够添加指令或更改指令),切换至管理之后对照流程图进行下图所示运动指令的添加,以下为演示案例(演示案例仅起到教学作用,并不代表最完美的运动指令搭配)。


(1).   多轴点位运动:首先将当前三轴的点位进行回零,通过该指令能够达到回零的目的。

(2)   标签:添加一个标签,标签指令的作用是作为一个跳转平台,如满足一个条件之后跳转到对应的语句段,在语句段前面添加一个标签指令即可。

(3).   等待信号:等待指定的IO点位信号输入,IO信号接通之后开始执行下一步,否则一直为等待状态。

(4).   变量运算:对视觉信号进行置位。

(5).   变量运算:对视觉信号进行置位。

(6).   变量运算:对视觉信号进行置位。

(7).   标签:此处标签是为了在整体运动步骤完成之后跳转方便而添加。

(8).   多轴点位运动:数据复位完成之后运动到指定拍照位置。

(9).   延时:延时指令会在该处停留对应设定时间,然后再进行下一步。

(10). 变量运算:运动到拍照位置之后,发送拍照信号给视觉软件,此处发送的是1,故视觉部分需要把拍照条件设定为1。


(11).   变量运算:将两个相机的拍照完成信号相加,以变量207进行赋值。

(12).   条件跳转:对变量207进行数据判断,若相加之和大于等于3则重新拍照(拍照正确的时候结果为1,反之结果为2),否则进行下一步。

(13).   变量运算:对运动速率进行赋值,方便后续变量运动调用。

(14).   标签:变量赋值失败跳转至此处重新赋值。

(15).   变量运算:对轴的编号进行赋值(因为后续的变量运动只能调用变量,而当前轴编号不是变量,所以要进行赋值)。

(16).   变量运算:由于视觉部分发送过来的是脉冲值,故在此将脉冲值转换成实际mm值。

(17).   条件跳转:若偏移量X值为0,则跳转到标签2重新进行赋值。

(18).   条件跳转:若偏移量Y值为0,则跳转到标签2重新进行赋值。

(19).   条件跳转:若偏移量R值为0,则跳转到标签2重新进行赋值。

(20). 等待变量:若发送的X偏移量数值大于-10(超出当前案例运动轴的行程),等待之后开始报警(也可不设置等待时间直接报警)。



(21).   等待变量:若发送的Y偏移量数值小于9.5(超出当前案例运动轴的行程),等待之后开始报警(也可不设置等待时间直接报警)。

(22).   变量运动:变量运动里面的所有数据均为变量值,包括轴编号,运动速率,运动位移量,故需要在之前对变量运动里面的所需参数进行赋值。

(23).   直接跳转:整个流程运行完毕,跳转回拍照位,等待下一次拍照。

以上即为整个运动部分的调试步骤,运动部分调试完成之后,开始视觉部分的调试过程,以下为视觉部分的调试步骤。

5.  视觉调试

首先调整好相机焦距光圈等参数,确保检测目标在相机下能够清晰成像,本次成像图如下(纸上的mark)



成像清晰之后,下一步即对工具进行添加,下图为已经添加好的视觉模板:



视觉界面的介绍请参照龙睿软件说明书。视觉的主要检测部分由四个人物构成,以下分别对任务内的工具进行讲解。

任务1:主要进行数据的收发,以及拍照信号的接收判定。


①.面阵相机:通过面阵相机工具连接现场的相机,该工具仅起到连接相机的作用。

②.ModbusTCP:将视觉部分的地址对照运动控制部分的软件地址设置即可,软件部分地址设置的方法参照运动控制手册第六页

③.接收数据:通讯成功之后,将通讯工具所接收的数据存储至本工具,方便后续进行提取,此处需要设置接收地址,接收地址参照约定的Excle文档。

④.条件执行:对当前所接收的数据进行判断,若未读取到拍照信号,则不执行任务2与任务3,接收到拍照信号之后任务2与任务3并行执行。


任务2:对应一号相机的Mark点检测。

①. 图像采集:对相机当前所拍摄的图像进行调用,方便之后的检测工具与校正工具对图像进行提取。

②. 校准工具:通过定位mark点,将检测运动轴固定偏移单方向XY(至少走四点或四点以上,具体看设置多点定位个数),然后将相机坐标系转换为世界坐标系。

③. 旋转中心:通过定位Mark点,在不移动XY的情况下,移动旋转轴,通过移动设置的角度正反方向,最后计算得出平台旋转中心。

④. 几何定位:设置需要抓取的模板,最后以根据设定模板抓取符合当前匹配度的图形,输出当前图形的位置坐标。


任务3:对应二号相机的Mark点检测。


.图像采集:对相机当前所拍摄的图像进行调用,方便之后的检测工具与校正工具对图像进行提取。

.校准工具:通过定位mark点,将检测运动轴固定偏移单方向XY(至少走四点或四点以上,具体看设置多点定位个数),然后将相机坐标系转换为世界坐标系。

.旋转中心:通过定位Mark点,在不移动XY的情况下,移动旋转轴,通过移动设置的角度正反方向,最后计算得出平台旋转中心。

.几何定位:设置需要抓取的模板,最后以根据设定模板抓取符合当前匹配度的图形,输出当前图形的位置坐标。


任务4:4号任务启动的前提是二号任务与三号任务执行完成,当两相机都拍照检测完毕,4号任务开始执行。通过读取之前两个相机的位置坐标用算法拟合出两Mark点的中心点位。


①. 纠偏计算:调用任务2与任务3所检测到的Mark点,以这两个Mark点,通过计算纠偏工具的内部计算得出中心点位。

②. 输出数据:将计算出的XYR偏移量以输出数据工具输出到运动控制部分,走对应的偏移量。


以下对接收数据界面以及输出数据界面作简单说明:

接收数据界面如下,由于制定表格的时候201为拍照位,故此处的通讯地址设定为201即可,注意数据类型要根据发送的数据类型进行设置,如坐标位置为浮点数,需设定为Float



输出数据设定如图所示,按照Excle重定义的数据地址来进行设置,而系数部分的1000是为了方便运动控制软件内部计算,故使用乘以1000的方法去除小数点。