文/熊海东 邓人球 李肖龙 王国先 王方舟
传统的物流终端分拣通常依赖于人工操作,但随着技术的发展,越来越多的自动化解决方案被引入物流行业。本项目旨在开发一种基于ROS的物流终端智能分拣机器人。该机器人可以通过摄像头分析快递上的条形码以及快递体积大小信息,对快递进行分类并将快递信息入库,然后利用SLAM 算法进行定位,将货物送至指定分类区域,从而实现快递快速分拣。
随着电子商务的迅速发展和全球贸易的增加,中国快递业务量急速增长。物流终端快递处理问题愈发严重。因此为了减轻快递工作人员的工作压力,实现快速分拣,物流终端自动化势在必行。为了解决这一问题,我们设计一种基于ROS的物流终端智能分拣机器人。通过相机识别快递条形码以及快递体积大小,实现对快递的快速分类;结合激光雷达、IMU和SLAM 算法实现机器人导航和定位功能。当快递到达时,可通过机器人对快递进行分类,将快递信息上传至系统,并将快递送至快递所属区域。
物流终端智能分拣机器人系统的设计方案主要分为两部分。一部分为功能更加统一的智能分拣机器人,另一部分则是控制机器人并显示机器人状态的软件。
2.1智能分拣机器人
2.1.1识别快递上条形码。条形码是由多个宽度不等的黑条和空白遵从特定的规则进行组合,来表示某种信息的符号。在进行条形码的识别时,快递标签处有很多的文字,符号和边框,这样大大增大了定位的难度,本文使用了一种较好的解决办法。可以准确地识别出条形码,然后与快递数据库进行对比,得到快递的信息。
2.1.2识别快递体积大小。虽然通过分析快递条形码得到快递信息,但仍不能有效地对快递进行分类,因此本文需要识别快递的大小体积。将相机固定到一定的高度,将快递放在相机下面。对快递进行测距得到快递上表面与相机的距离。而相机距快递下表面的距离是已知的,这样就可以知道快递的高。然后再通过相机的识别得到快递的长和宽,就可以知道快递大概的体积了。
2.1.3对快递进行分类。为了减小快递分类错误,本文使用机器学习的方法对快递进行分类。决策树是一种十分常用的分类方法。通过该方法,本文使用识别得到的信息数据进行训练得到一个可以较好分类的决策树,实现了对快递的快速分类。
2.1.4基于SLAM 算法的机器人行进路线规划(包括避障)。首先使用SLAM 算法对工作场景进行建图,然后在已建地图中设置快递分类区,当通过识别快递得到快递所属分类后,机器人会计算到达目的地的最优路线,自动前往该区域,若中途有障碍物阻挡,机器人会自动避开障碍物并继续前往该分类区。
2.2控制机器人并显示机器人状态的软件。通过此软件,可以控制机器人的前后左右移动,还可以通过该软件实现工作场景的建图已经在已建地图设置分类区域。当机器人正在工作时,此软件可以实时显示机器人工作状态,大大降低了机器人的使用难度。
3.1定位建图与路径规划。该机器人在ROS基础上采用了Cartographer算法。Cartographer是一种用于建立地图和定位机器人的算法系统。我们采用cartographer算法,结合激光雷达和IMU的数据,实现了地图的建立和机器人的定位。在地图已知的情况下,我们使用A*算法进行路径规划。A*算法在人工智能中是一种典型的启发式搜索算法。该算法综合了最佳优先搜索和Dijkstra算法的优点。在进行启发式搜索提高算法效率的同时,可以保证找到一条基于启发函数的最优路径。
3.2快递分类。快递分类需要识别快递的条形码、体积大小。通过识别得到的快递信息,使用决策树对快递进行分类。本文通过使用OpenCV对快递标签进行识别,提取条码区域。首先读入图像,基于边缘提取初步得到轮廓,通过面积和矩形度进行筛选,然后再通过轮廓长度过滤小噪声。因为条码都是直线,可以通过角度相同的直线分割条码,然后拟合直线即可得到条码区域,再进行图形分割得到条码区域图片。最后使用Tesseract-OCR识别图片中的数字,得到条形码。本文使用深度相机对快递进行识别得到快递的体积。最后通过训练得到的决策树实现快递的分类。
3.3开发控制机器人及显示机器人状态信息软件。该软件基于QT进行开发,可以控制机器人和实时显示机器人状态信息。在开发时重点应用了无线通信技术,实现与机器人的通信。
本文提出一种基于ROS的物流终端智能分拣系统,利用激光雷达、IMU和SLAM 算法实现机器人导航和定位功能。当快递需要分拣时,可以通过相机识别快递条形码,与搜索数据库得到快递信息,并且通过相机测距识别得到快递的大小体积。使用决策树算法对快递进行快速分类,并自动计算到达指定地点的最优路线,将快递自动送至快递所属分类区。同时本文基于QT设计了一个控制机器人及显示机器人状态信息的软件,该软件可以简单地控制机器人建立工作场景的地图并且设置分类区,还可显示机器人的实时状态以及当前位置。如今,快递件暴增,物流终端工作人员需求增加,该系统大大加快了快递分拣的速度并且减小了人工成本,发展前景广阔。C