基于Arduino与机器视觉的智能物流搬运小车

2022-10-19 04:51刘俊秘李梦阳高晨浩刘鹏飞
电子制作 2022年19期
关键词:循迹小车二维码

刘俊秘,李梦阳,高晨浩,刘鹏飞

(河南城建学院 电气与控制工程学院,河南平顶山, 467036)

随着计算机、微电子、信息技术的快速发展,智能化技术发展迅猛,人们生活的联系越来越紧密,智能化是未来社会发展的必然趋势,智能机器人作为其中不可或缺的一部分,其带动了物流行业的快速发展,它不仅使企业的规模得到了不断地扩大,而且技术遥遥领先于其他行业。在智能机器人发展的最初阶段,主要应用在物流行业的搬运、装载的过程中,随着机器人技术的不断迭代更新,其应用范围越来越广,主要包括工厂里面的加工、仓储及信息处理,快递行业的运输和配送等。由此推断,未来物流行业的竞争,主要是机器人技术的竞争,为了能跟上物流行业迅猛发展的需要,对机器人技术进行了研究,从而研究出了一种基于Arduino与机器视觉的智能物流搬运小车。

1 系统总体设计方案

本设计的主控芯片为Arduino Mega2560,其总体控制系统框图如图1所示,系统主要由以下模块组成:Mega2560主控模块、OpenMV模块、二维码识别模块、电源模块、红外循迹模块、数码管显示模块以及电机驱动模块等部分。Arduino智能物流搬运小车可以通过采集安装在底盘上的红外循迹和定位模块的信号,来实现小车的循迹功能和定位功能,通过OpenMV和二维码识别模块可以确定料的抓取位置和目标运送位置,同时该部分可以识别物料颜色实现物料的分类功能,电机驱动模块按照电机控制指令控制小车的行走和转向,通过数码管显示模块对小车的状态和任务执行情况进行显示。电源模块对小车的控制电路和执行机构进行供电。

图1 总体控制系统框图

2 系统核心硬件设计

■2.1 OpenMV摄像头模块

OpenMV模块的主控制器为STM32H7单片机,主频为480MHz,该模块具有颜色识别、二维码识别、人脸识别等功能,RAM为1M,编程语言为Python,作为高级编程语言,其特点是方便、高效,易掌握。尤其是在其特有的OpenMV IDE开发环境,用户可以直接调用基于视觉的颜色检测算法,让不懂底层的用户使用视觉处理成为可能。首先通过OpenMV摄像头系统进行图像采集,然后将图像信息数据送传至拥有STM32H7的OpenMV系统进行颜色追踪、模板匹配、测距、特征点检测等处理,同时将数据通过串口发送给Arduino Mega2560,Arduino Mega2560通过L298N电机驱动模块使用PWM控制小车电机转动,以上为OpenMV模块工作流程。

OpenMV摄像头也可以实现物体在动态特征下无接触远距离测量,是光测量的一种有效应用。

■2.2 L298N电机驱动模块

由于Arduino Mega2560输出电流很小,带负载能力有限,所以借助驱动模块来控制电机,该小车的电机驱动模块为L298N模块。L298N电机驱动模块使用了双H桥电路,H桥主要作用就是可以使电流或者电压在不同时刻,让负载得到相反方向的能量,从而保证电机既可以正转又可以反转。H桥主要被应用在逆变器、变频器、直流电机的转速控

制、步进电机的控制等。4个三极管组成H的4条垂直腿,而电机就是H中的横杠。H桥电路,既可以分立元器件形式搭建,也可以整合到集成电路上。“H桥”的名称起源于其电路,两个并联支路和一个负载接入/电路输出支路,看上去构成了形如“H”字母的电路结构。

■2.3 二维码识别模块

2.3.1 二维码原理

由于图像处理技术的快速发展,二维码被应用得越来越广泛,其原理也比较简单。主要是在一个平面内,将某些特定的图形按照事先规定的方向上,进行有规律地排布,黑白相间的,这些形成的图形,可以用于记录数据信息,类似做标记一样,不同的形状代表着不同的数字信息。在二维码图形上,黑色代表0,白色代表1,正好和计算机内部的逻辑基础一致,从而通过识别技术,能够将二维码上的数字信息用一串二进制数所代替,并传输到计算机内部。同样的二维码占有的数据长度是一致的,如果在扫描处理的过程中出现了和规定不一致的数据,则认为其数据是错误的,这样保证了数据的准确性,其自身带有校验功能,同时还具有对不同行业的信息自动识别功能及处理图形旋转变化点。

二维码特征识别的思路是:第一步,寻找二维码的三个角的定位角点,需要对图片进行平滑滤波,二值化,寻找轮廓,筛选轮廓中有两个子轮廓的特征,从筛选后的轮廓中找到面积最接近的3个即是二维码的定位角点。第二步:判断3个角点处于什么位置,主要用来对图片进行透视校正(相机拍到的图片)或者仿射校正(对网站上生成的图片进行缩放拉伸旋转等操作后得到的图片)。需要判断三个角点围成的三角形的最大的角就是二维码左上角的点。然后根据这个角的两个边的角度差确定另外两个角点的左下和右上位置。第三步,根据这些特征识别二维码的范围。

2.3.2 二维码识别模块

二维码识别模块使用的是G1嵌入式扫码模块,该模块具有体积小、稳定性高、低功耗、成本低等特点,支持简单通用的AT指令。

■2.4 车模及抓取机械臂

智能物流搬运系统使用的车模为四轮差速模型,相较于传统的阿克曼模型,该四轮差速模型具有转弯半径小,可原地转弯,四个直流减速电机,动力强等特点。

机械臂是主要由臂和爪子组成,类似于人的手和臂,能够完成特定的一些抓取、搬运等动作,在这个过程中需要有主控制器进行控制,所以其是智能物流搬运小车对的主要组成部件。机械臂这种自动装置是最早的机器人的雏形,主要用来替代人们在一些危险或者有害的环境下从事的劳动,减少工人的职业病记忆确保其人身的安全。物流小车使用的是MeArm机械臂,如图2所示,该机械臂使用了三个舵机作为动力源,其中一个控制整体机械臂的水平旋转,另一个舵机控制机械臂的上升和下降,第三个舵机控制机械爪的张合。

图2 MeArm机械臂模型

3 系统的软件设计

■3.1 整体方案

智能物流小车采用直流差速驱动的方式实现小车的控制,采用舵机控制的机械抓手实现物料的抓取和投放。主控制器采用Arduino Mega2560用PWM脉冲经过电机驱动芯片L298N进行功率放大以后实现智能物流小车轮子的控制,进而完成控制小车前进和转向功能。循迹采用红外光电传感器进行信号采集,其信号经过电压比较器以后完成模数转换功能,并以推挽输出的方式连接到控制器的数字IO输入引脚,传感器的灵敏度可以通过自带的滑动变阻器进行调节,基本接线如图3所示。

图3 整体方案接线参考图

■3.2 控制系统流程

智能物流小车控制流程如图4所示,开始后首先进行电机控制参数的初始化,然后对系统的抓取、舵机以及循迹模块进行初始状态设定,接下来通过主循环检测红外光电信号,控制小车行走至扫描区域,通过二维码识别模块判断该区域是否为物料抓取位置,如果是则通过OpenMV模块对物料的颜色和类别进行识别,并将识别结果通过串口反馈至主控制器,主控制器接收到识别结果以后控制舵机,实现机械抓手的物料抓取。完成抓取功能以后控制小车运动到目标位置,再次向舵机发送控制指令,实现物料的投放功能。

图4 实验任务流程图

■3.3 PID电机控制

在控制电机的过程中,由于地面摩擦,电压波动及电机工艺等原因,PWM占空比相同时也会使四个电机转速不一样,为了使小车行走平滑,所以让编码器和电机组成了速度闭环控制,使小车在直线行走和转弯时更加平稳。

在进行车速控制中,人们常采用的控制算法为比例积分微分运算即PID。它主要是根据设定值和反馈值的偏差进行运算的,最终是偏差接近于0,即设定值和反馈值相等,达到稳态。PID主要由三个单元组成:比例运算单元(P)、积分运算单元(I)、微分运算单元(D),PID实际上就是误差控制,PID结构图如图5所示。

Kp——控制器的比例系数;Ti——控制器的积分时间,也称比例系数;Td——控制器的微分时间,也称微分系数。

计算机控制是一种数字化的控制,所以对于速度的连续控制,也不得不进行采样控制,否则不能用计算机去控制。首先需要对偏差进行采样,将采样值作为采样周期内的偏差,等到下一次采样时刻到来之前,此采样值维持不变即采样值在一个采样周期内维持不变,这就是进行偏差离散化,那么根据离散化的采样值进行PID运算控制即为离散PID控制。

在离散化处理后,相比于模拟控制如下所示:

k——采样序号,k=0,1,2,...;uk——第k次采样时刻的计算机输出值;ek——第k次采样时刻输入的偏差值;ek-1——第k-1次采样时刻输入的偏差值;Ki——积分系数,Ki=Kp×T/Ti;Kd——积分系数,Kd=Kp×Td/Ti。

在离散PID的基础上,位置式PID会对偏差进行积累,从而引起积分饱和现象,为了解决这个问题,一般采用增量式PI控制,本文中采用的是增量式积分分离PI控制,其公式为,其主要是在增量式PI的控制上进行了优化,当e(k)<A(A为设置的阈值,下同)时,Kl=1,引入积分的控制,当e(k)>A时,Kl=0,不引入积分的控制,采用这种控制算法主要是可以避免智能物流小车在开始、停止或大幅度目标值时,由于短时间内产生的较大的偏差而引起的严重超调或长时间振荡,既保证了小车车速控制的快速性,有保证了其准确性,其结构图如图6所示。

图6 增量式积分分离PI控制器结构图

■3.4 整体工作流程

本设计采用机械手臂和小车升降装置两种运输方式的结合来完成仓库物流的装卸、搬运和分拣。每一个智能小车都装有一套OpenMV视觉识别系统,当物件送达时,智能小车先识别物件的二维码信息,根据所获得的信息自动判断物件的大小、软硬,重量,结合自身性能判断用机械手臂运输该物件,还是用小车升降装置来运送该物件,识别好后,规划路线,开始执行,第一批次物件送达,第一次任务结束。循环往复,二十四小时不间断工作,智能物流搬运小车工作环境如图7所示。

图7 智能物流搬运小车工作环境

本智能物流搬运小车,最终实现的功能主要包括,从出发区通过循迹的方式来到任务区,在任务通过扫描二维码领取任务后,继续循迹来到物料区,通过图像识别技术将物料装载在小车上,然后来到成品区并将货物按照事先的任务摆放成品区的物料架上。在完成每一次任务的时候,需要整个小车的各个模块互相协调合作才能完成。为了使小车在运行过程中更加安全可靠,在设计时重点加强控制软件的可靠性和小车的运行过程的安全性,最终实现设计目标。利用四轮差速小车和机械臂使之能够正常工作,该小车的实物图如图8所示。

图8 智能物流小车实物图

4 结语

本文设计了一种以Arduino Mega2560为处理器的智能物流搬运系统,在物流系统中随处可见智能物流小车的身影,装卸搬运只是小车的基本功能。为了方便在物流系统中应用此智能小车,可以根据需要,将机械臂的爪子根据需要的进行更换,从而方便搬运不同形状、不同重量、不同状态的货物,让一线劳动工人从繁重的、不安全的劳动中解放出来。在物流效率和质量保障环节,机器人无疑能够很有效地进行运作,而且对于保障人身安全、改善劳动环境、减轻劳动强度、提高劳动生产率、节约材料消耗以及降低生产成本都会具有十分重要的意义。

猜你喜欢
循迹小车二维码
基于离散傅里叶变换的多旋翼无人机循迹检测系统设计
大车拉小车
小康二维码
浅谈基于机器视觉和姿态检测的循迹智能车
刘老师想开小车
二维码让政务公开更直接
基于单片机的自动循迹小车的设计与制作
去修理厂
二维码,别想一扫了之
电动小车的循迹