本案例为2.5D定位抓放场景(高精度)。
机构限制为:上相机安装在机器人上或静止安装,相机拍照位不变,由于机构干涉、来料型号不同等原因,相机与载物台平面可能存在相对高度的变化,安装高度传感器(或直尺)或根据工件图纸等方法测量相机到抓放目标的相对高度变化。
实施流程为:生产过程中目标到位后,相机对抓放目标进行拍照,引导机械臂以基准姿态实现对目标的抓放。
本场景的主要特点:
由于机构干涉、物料本身高度不一等原因,相机与目标图像采集平面可能存在相对高度的变化。
机构示意图如下图所示:
图1 拍照示意
图2 机械臂抓放示意
经过理论推导与实验室验证,提出以下解决方案:
1、本场景基础模型是一个标准的常规单点抓取模型,因此第一步是按照常规单点抓取项目完成标定流程,得到基准高度时的标定矩阵。
2、在工作范围内实施两次常规标定,每次标定均记录此时的工作高度,在生产时,通过高度传感器等方式获取当前的生产高度从而推算出此时的生产标定矩阵。
根据上述解决思路,开发下述自研算法模块:
1、MultiplaneHomoMat模块:作用是通过基准深度、运行深度及基准平面标定矩阵,求解生产平面的标定矩阵
方案实施流程如下图所示:
图3 方案实施流程
在物体高度变化的范围内对两个已知高度的平面进行标定,记录每次标定的平面高度,标定与常规单点抓取的标定流程一致。
各平面的关系如下图所示:
图4 标定平面、生产平面示意
在标定平面1进行示教,搭建示教流程如下图所示:
图5 示教流程
1、通过标定加载模块加载两次标定的矩阵,并订阅此时的高度差值,在自研算法模块MultiplaneHomoMat中配置相应的参数,输出计算的生产平面的标定矩阵。
基准深度差值:标定平面1与标定平面2的高度差值
运行深度差值:标定平面1与生产平面的高度差值
基准标定矩阵1:标定平面1的标定矩阵
基准标定矩阵2:标定平面2的标定矩阵
模块参数配置如下图所示:
图6 MultiplaneHomoMat参数配置
由于此时是在标定平面1示教,因此此时输出的矩阵是标定平面1的标定矩阵。
2、使用机械臂去抓放物料,也记录此时机械臂的物理坐标,完成示教,在单点抓取模块中配置相应的参数。
像素点:订阅的Mark点像素坐标
示教拍照物理点:一般为标定时的第五点
示教物理点:此时实际抓放目标的机械臂绝对物理坐标
标定矩阵:加载自研算法模块MultiplaneHomoMat输出的标定矩阵
点击创建基准完成单点抓取模块示教。
模块参数配置如下图所示:
图7 单点抓取模块参数配置示意
创建基准后,此时模块输出的相对坐标为0,绝对坐标为基准标定位。
生产流程与示教一致,如下图所示。
图8 生产流程
生产时,机械臂到拍照位后,对目标进行拍照,根据高度传感器反馈的高度差信息,由通讯等方式传入VM模块中,单点抓取模块输出待抓放目标的绝对抓取坐标,如下图所示。
图9 输出的抓取坐标
误差来源 |
应对策略 |
Mark点示教偏差 |
夹具中心安装尖针工装,保证竖直示教,尽可能提高示教精度 |
相机与机台等不平行 |
通过打表法调整相机、镜头与机台和Mark至水平平行;增加畸变标定与畸变校正 |
相机与机器人手眼标定误差 |
核对标定平移误差,进行机构静态测试和动态测试,根据测试结果优化机器人运动参数 |
高度差值的测量不够精确 |
更换传感器等更精确的方式 |
成像质量不佳 |
检查成像质量,调整打光方案 |