一、项目介绍
1.项目概述
功能目标是基于点云的轨迹引导,即无论待引导物体以何种位姿摆放(要求该位姿在机械臂的行程范围内),视觉系统均能定位到该物体,并引导机械臂按需要的轨迹实现一定的工艺流程(比如鞋底涂胶等)。
应用场景是鞋底涂胶等需要轨迹引导的工业现场。经过四十多年的改革开放,我国制鞋产业迅猛发展,但大而不强,主要依靠大量廉价劳动力维持生产。而鞋底涂胶作为制鞋的重要工序,目前主要依靠工人手工生产或半自动设备生产,喷涂质量良莠不齐,生产效率低,并且粘胶剂挥发出的毒性气体对操作工人的身体健康有着严重的威胁。采用机器替代人工实现自动化喷胶不仅能有效避免上述问题的产生,而且能够有效地控制胶膜厚度和喷涂面积,能够保证胶膜的均匀性和厚度的一致性,提高胶粘质量。基于示教或离线编程方式控制的执行机构,一旦工作环境或目标对象发生变化,机器人不能及时适应这些变化,从而导致喷胶作业失败。目前,以机器视觉为核心的引导加工技术正在逐步成为现代工业生产中的关键技术。相较于二维机器视觉引导技术,三维机器视觉技术不仅能够获取物体表面的深度等形貌信息,而且能够在实现对物体识别定位的同时根据物体姿态实时调整运动方式。在工业生产测量环境中,采用面结构光扫描的三维视觉测量技术以其抗干扰性强、精度较高等一系列优势,得到了越来越广泛的应用。在鞋制品生产过程中,采用面结构光扫描方式的三维视觉引导技术能够实时感知鞋模产品,实现对任意款式鞋子喷胶的需求,能够适应未来个性化制鞋发展的需要。
2.系统构成
系统构成及实物图如下:
序号 | 构成 | 选型 | 备注 |
1 | 点云相机 | 奥比中光的Astra Pro深度相机 | |
2 | 开发板 | 奥比中光的Zora P1开发板 | 也可使用普通的PC |
3 | 机械臂 | KUKA KR 210 R2700 extra | 也可使用其他六轴工业机器人 |
4 | 引导设备 | M8螺栓 | 条件有限,用螺栓代替胶枪 |
5 | 待引导物品 | 鞋垫 |
3.产品化
本项目实际引导精度在5mm左右,完全能满足工业现场下cm级的引导需求。
如果需要产品化,还需要做的工作是做开发板与机械臂之间的通讯。本项目使用的是kuka机械臂,由于条件受限,没有实现通讯。如果是类似UR机械臂等原生支持TCP通讯的,只要写个简单的socket程序即可,并不需要额外的硬件。
4.未来市场潜力
近些年来,随着机器视觉和工业机器人得到越来越广泛的使用,机器换人的趋势日趋明显。工业机器人可以准确高效地完成重复性的工作,但缺乏柔性,故需要添加机器视觉系统加以辅助。而2D图像缺乏深度信息,常常难以满足六自由度的引导要求,故需要3D点云作为数据来源。
本项目《基于点云的视觉引导系统》,就是基于奥比中光的Astra Pro深度相机和Zora P1开发板,实现基于点云的轨迹引导。轨迹引导已广泛应用于汽车玻璃涂胶、鞋底涂胶等各个领域,未来市场潜力巨大。
此外,基于本项目使用引导方法的扩展,也可实现零件抓取、零件装配等更多的引导需求,本项目只是受限于手头的条件(没有与机械臂匹配的夹爪),没有进行相关的尝试,但原理层面是共通的。
二、关键技术创新点
本项目的难点与创新点主要在于,怎么在各方面条件受限的情况下,尽量提升最后的引导精度。
条件受限包括:
●Astra Pro深度相机由于MX400芯片的原因,无法导出相机参数,即无法得到出厂时的准确内参及外参。
● 手头没有高精度的标定板、没有红外光源,难以重新标定Astra Pro深度相机。
● Astra Pro深度相机的点云精度(3mm @ 1m)远没有工业级点云相机(0.2mm @ 1m)高。
主要技术创新点如下:
1.相机标定
相机标定是视觉系统的基础,工业级的相机标定需要碳纤维(或者玻璃等)的工业级标定板,保证平整度和角点精度。同时需要遮住激光器,并使用红外光源,使得红外相机能采集到清晰的标定板图像。
但是,普通开发者通常不具备上述条件,面临的情况常常是没有标定板和红外光源。为此,本项目使用自制标定板,即通过代码生成高分辨率的棋盘格图像,并用打印机将其打印出来,贴在平板上。但是由于没有红外光源,红外相机只能借助带激光散斑的激光器的光源来拍摄标定板图像,带来的问题是部分角点检测的误差较大。
为了解决这个问题,本项目采用先执行一次相机标定,保留重投影误差小的70%的点,再执行一次相机标定。这么做可以明显降低重投影误差、提高精度,使用此方法标定出的相机内外参通过深度图和彩色图的对齐来验证,确实取得了良好的效果。
2.手眼标定
对于眼在手外的情况,即相机固定在机械臂外部,不随机械臂运动,工业场景下的常用手眼标定方法是把标定板固定在机械臂末端,机械臂带着标定板运动多个姿态,固定在机械臂外某处的相机拍摄每个姿态下标定板的图像,并记录机械臂末端位姿。可以建立闭环运动链方程,求解的方程AX=XB,A与相机相关,B与机械臂相关,X为手眼矩阵,表示相机坐标系到机械臂基坐标系的变换关系。
但是,由于缺乏红外光源和高精度标定板,无法从带激光散斑的红外图像中准确提取标定板角点,上述常用的手眼标定方法难以实施,故本项目采取一种更为直接的手眼标定方法。具体做法是:
● 找到一个有4个顶点的物体(如包装盒),用深度相机扫描该物体获得点云,获取4个顶点在点云相机坐标系下的坐标;
● 把机械臂的TCP(Tool Center Point,工具中心点)做到引导设备末端,用引导设备末端去触碰那4个顶点,获取4个顶点在机械臂基座坐标系下的坐标;
● 通过4个顶点在点云相机坐标系下的坐标、机械臂基座坐标系下的坐标,求解出点云相机坐标系到机械臂基坐标系的变换关系,完成手眼标定。
3.引导思路
本项目实现的是基于点云的轨迹引导,可以拆解为两个过程:
● 过程一是定位,即视觉系统定位到待引导物体;
● 过程二是引导,即视觉系统引导机械臂按需要的轨迹实现一定的工艺流程。
考虑到Astra Pro深度相机的点云精度远没有工业级点云相机高,为了尽量减小点云精度对最终引导精度的影响,故本项目使用相对测量的思想,将过程一的定位问题转化为点云匹配问题,将过程二的引导问题转化为在模板位置的轨迹基础上做机械臂基坐标系的偏移。
4.点云匹配
常见的点云配准方法有很多,可以分为粗配准和精配准两类,而精配准中的ICP配准结果准确,但依赖比较好的初值。
本项目的预设前提是待引导物体以任意位姿摆放,直接使用ICP很可能会陷入局部最优解,考虑到运行速度与实现难度,故本项目使用FPFH+RANSAC+ICP的点云匹配思路,即使用FPFH+RANSAC作为粗配准,获取两个点云之间的粗略变换关系,再以此作为初值,使用ICP作为精配准,获取两个点云之间的精确变换关系。
三、实施过程
1.机器人做TCP
六轴工业机器人的TCP(Tool Center Point,工具中心点)默认在第六轴法兰末端,需要先将其修改到引导设备的末端,即修改到螺栓的末端,如下图:
做TCP常用的方法是4点法,即让TCP以4个姿态去接近同一个点,从而解算出TCP与第六轴末端的转换关系。
2.手眼标定
固定好深度相机,使其在整个实验过程中不要移动。
准备一个有4个明显顶点且便于深度相机获取点云的物品,如奥比中光深度相机的包装盒。将当前的工具坐标系切换为刚刚做完TCP保存的坐标系,此时机器人示教器上的位姿为螺栓末端的位姿。
控制机械臂末端的螺栓分别靠近物品的4个顶点,并记录当前的位姿,再用深度相机获取物品的点云,记录4个顶点的坐标,如下图:
通过4个顶点在点云相机坐标系下的坐标、机械臂基座坐标系下的坐标,求解出点云相机坐标系到机械臂基坐标系的变换关系。值得注意的是,需要将坐标统一到mm单位下。
3.点云匹配 & 实施引导
准备一个待引导物品,即鞋垫。
采集一幅点云,根据点云的原点和手眼关系,做可视化,如下图,从直观上验证手眼关系是否正确。
实施步骤如下:
1.扫描零位的鞋垫,滤除无关的点云,作为模板点云。(下图红色)
2.把当前基坐标系的值全部赋0。
3.在零位制作模板轨迹。
4.改变鞋垫的位姿,重新获取当前的鞋垫点云。(下图黑色)
5.执行点云匹配,计算返回给机械臂基坐标系的偏移量,手动通过示教器赋值给当前基坐标系。
6.机器人执行修正后的轨迹,完成轨迹引导