在工业中有许多能用到激光标刻机的项目。如标刻二维码、生产日期等等。很多的工厂开始陆续使用视觉来代替人工去定位标刻区域。这样不仅大大节省了人力资源,而且不伤害身体。
下面我将介绍一个完整的项目实现(PS:只公开思路,留点底线)。
1.相机挑选
工业相机(本人倾向于德国货)+镜头专用的滤光片(激光反射光对相机的伤害很大,只能选用过滤片)+光源
2.相机安装位置
要求1:相机的视野范围内能看到大部分产品且图像清晰(或者能看到标刻位置)。
要求2:能看到大部分的激光坐标系(可以使用红光投影观察)
要求3:安装时倾斜角度不易过大(防止图像梯形太厉害,后面需要矫正)
3.通讯测试
和激光的通讯,绝大部分是使用串口通讯,类似于基恩士的激光,使用的就是串口命令。小部分激光厂家提供直接控制激光的API(PS:这个属于潜规则的一种,购买激光时可以向对方销售提出这个要求,绝大部分都会同意然后提供各种语言版本的API)。拿到通讯工具后,要测试各个功能是否正确,包括切换模板,移动,旋转等等,最好全部功能都测试一遍。有问题及时联系厂家的研发人员。
4.视觉部分
一般情况下,产品上都会有特定的物理特征,比如孔洞什么的。而且这些特征距离你想要标刻的位置也是固定的,因此我们一般会借助这些特征去定位标刻区域,然后计算出想要标刻位置的中心,经过坐标转换转换成激光坐标系的坐标,然后让激光去标刻。
5.标定
标定这部分类似于我上次说的九点标定方法。不过这个需要的点更多,而且这些点必须是激光设备标刻出来的,因为只有这样才能保证每个点的激光坐标是已知的。
一般标定流程,在产品接受标刻的位置,放置一张标刻专用黑色纸(ps:买激光会送一大包),红光投影标刻的位置,一般需要标刻区域和相机视野区域一样大(这部分主要是为了梯形矫正,后面会说)。然后按照一定的间隔,标刻出密密麻麻的十字或者原点。下一步相机抓图,保证每个点几乎清晰可见。接着图像处理找到每个点的坐标,根据坐标和实际的距离,求解梯形变化矩阵,矫正完图像后,再次求解点的坐标,此时的点的坐标才是我们需要的。求解完成后,三个相聚较远的点,求解仿射变换矩阵(这个矩阵用来将图像坐标转换激光坐标)
6.梯形矫正
一般情况下,和激光联合的相机安装都是倾斜的,倾斜的角度不同,图像梯形的程度也是不同的。这个时候就需要去做个透视变化,矫正图像。矫正后的图像才是有用的图像。因为保密协议的原因,不能给出相关代码(PS:opencv的相关算法多得是)。
7.仿射变换
求解一个坐标系到另一个坐标系转换的矩阵
8.调试提高精度
剩下的就是精度的调节了,加点小补偿,或者优化算法什么的。
好了,这个项目就到这里了。