APP下载

基于单目视觉的智能物料分拣机器人的设计

2020-04-15卫泓宇刘冠灵谢爱倍陈志鹏李志鹏李德荣

计算机技术与发展 2020年2期
关键词:舵机偏差摄像头

卫泓宇,刘冠灵,谢爱倍,陈志鹏,李志鹏,李德荣

(1.广东海洋大学 机械与动力工程学院,广东 湛江 524088;2.广东海洋大学 电子与信息工程学院,广东 湛江 524088)

0 引 言

随着工业自动化、智能化和信息化的高速发展,自动控制正在逐步取代传统的人工控制[1]。在工业生产中,智能机器人在解决企业劳动力不足、提高企业劳动生产率和降低生产成本方面有着显著的意义[2]。物料分拣机器人是现代自动化生产不可缺少的工具,其功能是将不同类型的物料或工件分类抓取后放置指定位置。物料分拣机器人的分拣流程一般为识别、定位、抓取和放置四个阶段,而传统的分拣机器人一般采用示教再现或者程序可编的工作方式,结构简单、工作程序固定、适应性差,只能应用于固定分拣动作的生产线上,不具备识别外部环境的能力,因此传统的分拣机器人的使用场合极为有限[3]。

基于2018年广东省工科大学生实验综合技能竞赛“物料分拣机器人的设计与制作”项目的竞赛要求,文中设计了一种基于单目视觉的智能物料分拣机器人。该机器人具有自动识别物体、自主运行和分类存放功能,其智能化程度高、使用方便,对生产应用具有重大意义。

1 总体设计方案

1.1 机器人设计要求

(1)机器人总体质量不超过5 000 g。

(2)机器人的尺寸不超过400 mm长×400 mm宽×500 mm高,机器人可以伸缩和变形,不能存储物料。

(3)比赛场地尺寸2 400 mm×2 400 mm(如图1所示),四周有围墙,高100 mm,颜色为黑色。比赛场地包括出发区、物料投放区、物料区和储存区。其中,出发区尺寸为400 mm×400 mm,颜色为白色;物料投放区尺寸为300 mm×300 mm,颜色为黄色(RGB 255,255,0);储存区尺寸为400 mm×400 mm,颜色为绿色(RGB 0,200,0);物料区为场地上除储存区以外的所有区域,物料区为灰色(15%灰度)。

(4)物料投放装置将50颗物料从两侧投放区进行投放,物料随机滚入物料区,物料为彩色磨砂乒乓球,红球25颗,蓝球25颗。

图1 场地示意图

1.2 机器人设计方案分析

该智能物料分拣机器人主要由三部分组成:执行机构、驱动-传动系统和图像识别及单片机控制系统。执行机构包括四轮驱动系统、机械臂和机械爪;驱动-传动系统包括直流减速电机和舵机。物料分拣机器人的三维建模如图2所示。

2 机械结构设计

该物料分拣机器人机械结构部分包括抓取装置、行走装置和摄像头定位装置等部分。车身是机器人的基体,用于支撑和安装其他装置。抓取装置采用可伸缩的铰链结构,包括机械臂机构和夹持机构。行走装置采用轮式机构,可同时对四个轮子进行差速控制从而实现机器人整体全方位运动。摄像头定位装置通过舵机实现摄像头图像识别系统对小球的识别、跟踪和定位。

1.数字舵机;2.机械爪;3.直流电机;4.挡板;5.车身底盘;

6.滚珠轴承;7.锂电池;8.电路板;9.碳纤维棒;10.摄像头

图2 分拣机器人三维建模

2.1 抓取装置设计

2.1.1 机械臂机构

该机器人采用关节式球面坐标系机械臂,该机械臂由滚珠轴承转盘、大臂、小臂、3个大扭矩舵机和多个连接件组成,大臂和小臂等长为330 mm。远离机器人主体的臂称为小臂,可在水平面上旋转运动;大臂既可在垂直面上旋转运动,也可在水平面上旋转运动。该机械臂结构设计有较大的工作区域且较为灵活。为了降低由机械臂旋转运动带来的惯性力,选用碳纤维作为机械臂的主要材料,刚度强,重量轻,大大降低了机械臂的整体重量。

2.1.2 夹持机构

夹持机构主要用来夹持小球,基于简单实用和稳定的原则,使用包夹式结构。由齿数为1∶1的齿轮运动副通过螺栓连接包夹零件,通过驱动小舵机的转动来实现夹持动作。考虑到图像识别定位存在误差约为5~10 mm,适当增大手爪的抓取范围,总宽度达94 mm。

2.2 行走装置设计

行走装置常见的运动方式主要有履带式、多足式和轮式。履带式底盘运行速度低,多用于重型机械。多足式行走系统多用于特种机器人,运动控制较复杂。轮式行走装置结构相对简单,具有运动灵活,速度快,振动小,稳定性好,便于控制等优点,且四轮驱动有良好的直线行走能力,驱动力较大,效率高[4]。通过比较各种行走机构的优缺点以及应用场合,最终选用四轮驱动的轮式行走装置。

3 控制系统设计

根据竞赛方案设计和要求,控制系统通过自行设计的系统硬件和基于单片机开发的相应软件来实现具体功能。软硬件系统相互协调完成对物料的自动识别、机器人姿态的调整和对物料的分类存放等。

3.1 控制系统硬件设计

机器人控制系统硬件主要由单片机控制器、视觉感知模块、抓取控制模块、显示模块、电源模块、姿态感知模块和电机驱动模块等组成。系统框图如图3所示。

图3 系统框图

3.1.1 视觉感知模块

采用OV2640摄像头模块进行图像实时采集,在TFT屏幕上实时显示并识别图像中的特定颜色,在选定的颜色周围画上框。将摄像头的数据读出写入TFT屏,读取TFT屏幕上的像素点的颜色进行识别。

3.1.2 抓取控制模块

考虑到分拣机器人的性能,设计中使用4个舵机,采用STM32单片机产生PWM信号来控制。单片机通过硬件计数来改变控制信号,受外界干扰小、工作可靠,通过控制4个舵机实现4自由度机械手的抓取控制,相对于传统模拟舵机,反应变得更快,加速和减速时也更迅速、更柔和,使得数字舵机提供更高的精度和更好的固定力[5]。

3.1.3 电机驱动模块

作为分拣机器人的动力源,考虑到机器人行走装置和底盘结构、各传感器模块、机器人的整体重量以及工作电压、控制方式等因素,选择25GA370直流减速电机作为机器人的驱动电机,工作电压6 V,额定转速为131 r/min,额定转矩为0.6 kg·cm,以满足机器人整体的设计要求。

由于采用四轮驱动,则采用两个TB6612FNG,TB6612FNG内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电机。该模块相对于传统的L298N效率上提高很多,体积上也大幅度减少,在额定范围内,芯片基本不发热[6]。该驱动电路可以简单方便地实现对直流减速电机的控制,简化了硬件电路的结构。

3.2 控制程序设计

3.2.1 控制程序整体设计思路

进行系统程序设计时,根据智能物料分拣机器人工作流程并结合工程现场的实际情况进行程序的编写。系统的控制程序主要包括颜色识别和定位算法、增量式PID控制算法和路径规划算法。基本的逻辑思路是机器人从出发区出发,根据预先编写好的路径程序行进,到达预定位置后,摄像头对机器人四周进行扫描,检测到物料后获取目标的颜色和位置,机械臂抓取搬运目标,将物料搬运至储存区。控制程序流程如图4所示。

图4 控制程序流程

3.2.2 颜色识别和定位算法

单目视觉定位是仅仅用一个摄像头完成目标追踪定位,具有使用简单和适用广泛两个突出特点。在精度要求相对较低、场景简单开阔的平台,单目视觉识别、追踪和定位具有广阔的应用前景[7]。使用EasyTrace算法[8]对单一颜色物体进行实时跟踪识别,识别一次只需要2至5毫秒,实时性强,只有1个API,使用方便,可配置“容错率”、“迭代次数”等参数,可在“时间”、“实时性”、“准确度”、“识别率”、“误识率”之间寻找平衡点。

(1)颜色识别和实时跟踪。

将OV2640摄像头的数据传送到显示屏,单片机读取显示屏上的像素点的颜色进行信号处理。由于HSL格式比RGB格式更能准确地感知颜色联系,并且能在计算机上简单应用,所以将其转换为HSL格式数据。由于显示屏的屏幕是一个矩形,可指定所需检测颜色的区域。首先遍历寻找腐蚀中心,然后在腐蚀中心点处进行迭代向外寻找新的腐蚀中心,由腐蚀中心不断向外扩散,以致形成一个特定颜色边缘点相切的矩形框,最后可以得到四个顶点及边线。记左边缘点的X轴坐标为left,右边缘点的X轴坐标为right,上边缘点的Y轴坐标为top,下边缘点的Y轴坐标为bottom,那么坐标((right-left)/2,(top-bottom)/2)即为新的腐蚀中心[9]。实验效果如图5所示。

图5 实验效果

把摄像头拍摄的每一帧图像均用EasyTrace算法进行识别,因为识别每一帧图像时间很短,并且人眼识别到的图像在人眼中有一定的暂留时间,因而每一帧图像之间的衔接变化不大,几乎可以看作是连续的视频数据流。这一特点确保了图像识别的实时性与准确性,在图像处理上,具有很高的识别率与很低的误识率。

(2)目标定位。

由于机器人在识别和抓取过程中需严格把控运动的角度和距离,但又由于硬件有一定的误差,使得摄像头观察各个空间位置都存在较大的累计误差。为减少误差,则需进行标定处理。摄像头需固定在机械臂整体的转动中心的正上方。在距离数据获取方面,使用STM32F4单片机控制摄像头识别目标并返回目标图像在TFT屏中的纵坐标y,测量出目标与摄像头投影到水平面的两点距离D,然后通过标定得出两者的线性关系。

由于摄像头的俯仰角度已经确定,当摄像头识别到目标时,舵机便会转动摄像头,使目标处于TFT屏中某一标记好的竖直线上,此时,目标和摄像头投影到水平面的两点连线方向与机器人前进方向的夹角等于摄像头相对于机器人前进方向转动的夹角。由于目标处于TFT屏中某一标记好的竖直线上,从而确定目标图像在TFT屏上的横坐标x,最终确定目标图像在TFT屏中的坐标位置(x,y)。

理论上,球在显示屏上的坐标与实际坐标有着一定的角度与距离的函数关系,采用MATLAB软件进行数据拟合,并通过实际验证得出二阶函数的拟合最为准确。

通过摄像头的识别算法,可获取目标与机器人的实际距离D,机械臂的两臂长度相等(d1=d2),则实际距离与机械臂的两臂长度形成一个等腰三角形,通过余弦定理和三角形公式可推算出两臂夹角θ1和实际距离直线与大臂的夹角θ2。得到两关键角度后,便可进行相关PWM与角度的转换(如图6所示)。具体推算公式如下:

θ1=180°-θ2×2

图6 机械臂角度分析图

在标定算法与机械臂控制算法的共同参与下,经过多次验证,机器人对目标的抓取拥有较高的准确性,误差控制在10 mm以内,在手爪的设计上已对该误差进行容错,尽量减少误差。

3.2.3 增量式PID控制算法

在机器人搬运过程中,由于自身惯性力不断变化、电压的不稳定性,为保证机器人能够正常运行,需要采用增量式PID控制算法来控制电机[9]。

由于比赛对实时性要求较高,则在电机控制算法上不能有太大的累计误差。因为机器人四个电机不可能同时达到相同的转速,并且机器人在电机控制上是路径算法的基础,相对于累计误差较大的位置式PID算法,选用增量式PID算法作为机器人的电机控制算法。

增量式PID算法的实现:以MPU6050作为机器人的实时姿态反馈,以目标路径作为标准,即在路径的直线与转弯部分,需严格按照目标直线与目标角度来调节电机转速以达到姿态的平衡。设目标角度为θ0,姿态反馈的当前角度为θ1,则可以得到当前角度偏差Δθ=θ0-θ1,同理,在上一次的反馈角度也可得到前一次的角度偏差Δθ',前两次的角度偏差Δθ''。设定Kp为比例系数,Ki为积分系数,Kd为微分系数。比例运算为上一次角度偏差减本次角度偏差乘比例系数即P=Kp×(Δθ-Δθ'),目的是为了对当前的偏差立即做出反应,调节立即作用于偏差。积分运算为积分系数乘当前角度偏差即I=Ki×Δθ。Ki的引进目的是为了调节偏差出现的时刻,只要有偏差的出现,Ki对当前偏差进行调节。由于积分只对当前的偏差进行调节,从而有效地避免了误差的积累,维护了控制的实时性。微分运算为当前偏差、两倍前一次角度偏差与前两次角度偏差之和再乘微分系数,即D=Kd×(Δθ-2×Δθ'+Δθ''),其中Δθ-2×Δθ'+Δθ''为当前角度的变化趋势,目的是为了感知角度的未来变化趋势,对预测未来的角度变化并对其进行预先的调节。

3.2.4 路径规划算法

由于比赛场地的特殊性、赛制的特殊性(必须把球放回才可以捡下一个球),因而难以考虑一般的路径算法,如BFS算法、PRM算法等。为应对其问题,在机器人路径方面结合了机器学习的无监督学习中聚类算法之一即DBSCAN聚类算法[10],用于分析场地中球的聚集分布。

DBCSAN算法是一种基于密度空间的聚类算法[11-12],与其他的聚类算法相比,不需要确定簇的个数,对任意形状的簇皆可适用,即可以产生不同形状的聚类,并且能够快速进行聚类,很容易发现噪声点(即离群的点)[13],通过相关过滤噪声的参数就可以有效处理噪声点。在复杂度方面,点个数为n的样本其基本时间复杂度为O(n×某点区域中所有点所花费的时间t),最坏的情况则为O(n2),低维时在某点区域的点时使用KD树,则时间复杂度可降到O(n·lg(n));在空间复杂度方面,高维和低维空间数据里,空间复杂度都是O(n)。

DBCSAN算法只需两个参数便可实现聚类:指定半径∈和密度阈值MinPts[10]。DBCSAN算法实现流程:把比赛场地看作是一个二维坐标系,从两边洒出的球为要检测的样本点。在所有样本点B中随机取出一点p,若以点p为中心、∈为半径的邻域中含有MinPts个点,则聚为新的簇,集合为n,且以∈为半径的邻域内的点加至集合n中。对点p邻域内除点p外的每个点p',以p'为中心、∈为半径的邻域中作类似点p的操作,同样加进集合n中即可完成聚类操作,对所有样本进行操作,最后没有处于各自簇的点则为噪声点。

为准确找到场地中球所聚集的位置,结合比赛的各种因素,对路径采取分区域操作。对考虑区域运用DBCSAN算法进行聚类,找出最佳抓球点;考虑路径时,取单向的运行路径以减少重复检索区域和重复往返路径所耗费的时间。

在DBCSAN算法的规划下,得到了考虑区域的球(包括红球与蓝球)的聚集分布。基于路径的设计目标,选取6个点作为停留转向兼抓球点。以出发点加停留抓球点作为顶点,每任意两点距离作为权重,做出一个无向图。为了获得单向且为最短路径遍历此7个顶点的路径,选取了Dijkstra算法[14]作为路径规划算法。

Dijkstra算法采用贪婪式策略,以广度优先为原则来搜索出一条用于解决赋权有向图或者无向图的单源最短路径问题的最短路径树[15]。Dijkstra算法是解决单源最短路径问题应用最广的路径算法,主要特点为从起点向外扩展,直到终点。

Dijkstra算法步骤:设该无向图为G=(V,E),V为顶点,E为边(任意两点间的直线)。(1)每条边E(i)的权重为w(i),集合S只包含起点,起点设为vs,距离为0;(2)选取距离起点最小的点q,将q加入到S中;(3)重复步骤2;(4)如果vs到该点某点j的距离比不经过某点j的距离短,则更换点S的最新加入的点为j;重复步骤2、3,直至找出一条经过所有顶点的单向最短路径。

4 实验结果与分析

在测试区域即物料区内随机摆放红色小球25个,蓝色小球25个,首先是红球的识别和搬运到储存区内,并记录2分钟内搬运红球的个数,测试结果如表1所示。

表1 红球识别搬运结果

其次是蓝球的识别和搬运到储存区内,并记录2分钟内搬运蓝球的个数,测试结果如表2所示。

表2 蓝球识别搬运结果

由测试结果可知,该物料分拣机器人能够快速搬运物料并且可以识别颜色进行分拣,系统稳定可靠,达到了预期效果,具有一定的参考价值。实验制作的实物图如图7所示。

图7 实物图

5 结束语

文中提出一种基于单目视觉的智能物料分拣机器人,不同于以往的采用光电传感器识别和定位物料的方法,它采用摄像头模块OV2640通过遍历腐蚀算法对物料图像进行实时采集,在显示屏上实时显示并识别图像中的特定颜色,大大提高了机器人识别和定位的效率及其稳定性。通过多次的实验测试,结果表明该机器人机械结构稳定可靠,控制程序设计合理。将该物料分拣机器人进行拓展,可用于工厂、仓库等需要自动分拣物料的场合,大大减轻了工人的劳动强度、提高了工作效率、降低了人工成本,具有重要的现实意义。该物料分拣机器人获得了2018年广东省工科大学生实验综合技能大赛“物料分拣机器人的设计与制作”项目一等奖。

猜你喜欢

舵机偏差摄像头
浙江首试公路非现场执法新型摄像头
50种认知性偏差
摄像头连接器可提供360°视角图像
基于速度观测的双余度电液舵机系统容错同步控制
如何走出文章立意偏差的误区
加固轰炸机
真相
超音速舵机保护器
菜鸟看模型
舵机的应用