如何用OpenMV图像识别低成本实现码垛机械臂

中国第二产业占GDP比重超过40%,从业人数超过2亿人,在国家经济转型的大形势下,未来第二产业的从业人数必然会继续减少,而工业是国家经济发展命脉,如何在人工成本增加,从业人员减少的情况下保持工业良好发展,是我们亟需思考的问题。

从西方国家历史发展经验来看,提高生产效率是解决目前局面的方法之一,但目前市场上的机械臂造价昂贵,再加上解决方案落地的费用,远远超过了低端工人的人工费。同时由于非标机械的定制化程度较高,很难形成适用性较强的解决方案。本文探讨了利用人工智能技术,提高方案的通用性,从而降低工业自动化成本。

原文地址:http://process-z.com/openmv_arm/

现有解决方案和不足

在枕式包装机上,工人需要将待包装的产品放到移动的凹槽上,机器以一定的速率(一般超过100个/分钟)封边并剪切。一台机器一般需要3人同时操作,一年的人工成本10万元以上。

  • 如何用OpenMV图像识别低成本实现码垛机械臂_第1张图片

    工人将白色梳子放到蓝色槽中

  • 如何用OpenMV图像识别低成本实现码垛机械臂_第2张图片

优化方案

图像识别+机械臂上料

包装的产品一般是牙刷、牙膏、梳子等等,通过图像识别定位物体位置,再通过机械臂吸取或夹取,放到指定地点即可。

图像识别

需求:从固定背景上识别、定位不特定物体。

OpenMV是一款低价,可扩展,支持Python的机器视觉模块。OpenMV搭载MicroPython解释器,可以在嵌入式芯片上使用Python来编程 (Python 3 )。Python使机器视觉算法的编程变得简单得多。比如,直接调用find_blobs()方法,就可以获得一个列表,包含所有色块的信息。详细教程和文档参见这里。

由于被识别物体不是确定的,生产线上可能需要生产各种颜色和形状的产品,所以我们很难采用机器学习的方法来识别,于是我们考虑用传统的机器视觉方法。

OpenMV允许我们识别某一颜色范围或灰度范围的色块,由于产品颜色各异,甚至有透明部分,所以在灰度图像中直接识别会产生分块,如下图。

如何用OpenMV图像识别低成本实现码垛机械臂_第3张图片

灰度图像色块识别

分块的原因是设置的阈值与物体实际灰度范围不符合,优化方向有以下几种。

  1. 规范化背景色,使背景灰度值范围缩小,方便滤除背景。
  2. 采用与产品颜色反差较大的背景,我这里采用纯黑色。
  3. 光照条件好,不能有阴影影响。
  4. 通过滤波方法进一步扩大物体与背景的色差

OpenMV提供了多种滤波方法,我们可以根据实际情况采用,这里我使用了二值化,即将图片根据阈值划分为黑白两个部分,通过调优参数,最终达到下图的效果。

  • 二值化

  • 如何用OpenMV图像识别低成本实现码垛机械臂_第4张图片

    腐蚀膨胀

  • 根据色块定位物体

上图的效果是对图像进行开操作后的结果,开操作即对图像先腐蚀再膨胀,用于去掉图像中的小颗粒。具体解释参见这里。

OpenMV可以识别色块位置并框出色块,给出色块角度和中心坐标。根据中心坐标和角度即可定位物体,进行抓取。

机械臂

目前消费机的桌面机械臂单价在2-3万元,本实验采用低成本的舵机机械臂,整机价格在600元左右。舵机机械臂的寿命和精度肯定达不到工业使用的标准,如果是搬运等简单任务,需要低成本的方案,可以算用滑台,或者采用工业机械臂。

目前市场上性价比较高、对开发者较友好的机械臂有XARM和DOBOT。原文地址:http://process-z.com/openmv_arm/

如何用OpenMV图像识别低成本实现码垛机械臂_第5张图片

你可能感兴趣的:(PM之路,IoT,脑洞大开)