手眼标定指导文档
手眼标定:得到像素坐标系和空间机械手坐标系的坐标转化关系。在实际控制中,相机检测到目标在图像中的像素位置后,通过标定好的坐标转换矩阵将相机的像素坐标变换到机械手的空间坐标系中,然后根据机械手坐标系计算出各个电机该如何运动,从而控制机械手到达指定位置。
一、机台布局和基础设
1、上相机搭载在机械臂上面,移动机械臂往X+方向1mm,以上相机为参照,类似于产品往X-方向移动了1mm,所以机械臂XY任意方向上+1mm,上相机识别之后,对应的XY方向上就会-1mm。
2、下相机固定在设备上面,移动机械臂往X+方向1mm,以下相机为参照,类似于产品往X+方向移动了1mm,所以机械臂XY任意方向上+1mm,上相机识别之后,对应的XY方向上就会+1mm。
3、标定块为一个通孔黑色铁片,固定铁片,上下相机分别抓取圆孔中心,建立上下相机坐标系转换关系。我们算法之中规定把下相机拍照数据转换成上相机数据,再进行统一计算。
4、设定上相机拍照位置时,以左吸嘴在下相机拍照位置为准,然后移动设计间距(上相机到左吸嘴的设计距离),即为上相机标定拍照位置。
二、手眼标定代码。
具体实现流程见附件。(ActionAdjustNozzleDistance.cs)
三、计算讲解。
1、下相机转换成上相机的坐标系偏差关系:
中心偏差.X=上相机中心.X-下相机中心.X
中心偏差.Y=上相机中心.Y-下相机中心.Y
2、吸嘴安装偏差:
吸嘴偏差.X=中心偏差.X+吸嘴中心.X
吸嘴偏差.Y=中心偏差.Y+吸嘴中心.Y
3、吸嘴料盘取料位置计算(角度为顺时针为正角度):
取料位置.X=拍照位置.X+格子偏移.X+拍照数据.X+相机到吸嘴的设计间距.X-吸嘴偏差.X
取料位置.Y=拍照位置.Y+格子偏移.Y+拍照数据.Y+相机到吸嘴的设计间距.Y-吸嘴偏差.Y
取料位置.Angle=-拍照数据.Angle
4 、下相机拍照数据转换成上相机数据(角度为顺时针为正角度):
仿射数据:下相机拍照数据以吸嘴中心进行仿射变换得到的数据。
吸嘴产品补偿.X=仿射数据.X+中心偏差.X
吸嘴产品补偿.Y=仿射数据.Y+中心偏差.Y
吸嘴产品补偿.Angle=下相机拍照数据.Angle
5、吸嘴在治具处放料位置(角度为顺时针为正角度):
模板偏差:理论上吸嘴中心、下相机模板中心、上相机治具模板中心重合不存在模板偏差,实际中引入模板偏差,为一个手调固定值。
放料位置.X=治具拍照位置.X-吸嘴产品补偿.X+治具识别偏差.X+模板偏差.X+相机到吸嘴的设计间距.X
放料位置.Y=治具拍照位置.Y-吸嘴产品补偿.Y+治具识别偏差.Y+模板偏差.Y+相机到吸嘴的设计间距.Y
放料位置.Angle=吸嘴产品补偿.Angle-治具识别偏差.Angle +模板偏差.Angle
6、吸嘴在治具处取料位置(角度为顺时针为正角度):
取料位置.X=治具拍照位置.X+相机到吸嘴的设计间距.X+治具处产品识别数据.X-吸嘴偏差.X
取料位置.Y=治具拍照位置.Y+相机到吸嘴的设计间距.Y+治具处产品识别数据.Y-吸嘴偏差.Y
取料位置.Angle=-治具处产品识别数据.Angle