李奔 LI Ben;章晓敏 ZHANG Xiao-min;刘丽 LIU Li;马勰 MA Xie
(宁波财经学院数字技术与工程学院,宁波 315175)
人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。基于人工智能的机器人能代替许多人能做的事情节省了人力增加了劳动效率,本文以购物小车的智能化发展现状作为基础分析,进一步结合了人工智能的发展,两者结合对于智能机器人未来的发展趋势进行研究和分析[1-3]。
本文实现用于在各种情况下抗外来干扰来进行自动购物的超市购物机器人,该机器人主要使用电机,灰度传感器,舵机和红外测距传感器,识别功能连接电脑进行拍照,通过已经训练好的图像识别库来识别物品。也减少了人们的操作,简便了人的生活[4-6]。
本系统设计和实现的功能需求主要有:①完成干扰物的识别,主要是树莓派中使用Python的Tensorflow开源库进行图像识别,将训练好的图像识别库放入树莓派系统中,让树莓派调用库。②完成Arduino控制板与树莓派之间的通信,通过USB串口进行实时的交互,用来实现数据准确传输。③完成准确路径的功能,通过红外线和arduino的调试来准确使路径统一,去抗干扰。④机械臂强度的实现,通过调试机械臂舵机控制模块来进行功能的强化训练[7-9]。
Arduino端模块接受传感器的反馈值再进行处理,处理后通过调节电机转速机械臂动作展现出来。
树莓派端模块主要功能是处理arduino端传过来的数据,处理后的数据一部分上传云端数据库,一部分返回arduino。
Tensorflow开源库进行图像识别,运用神经网络算法库来进行图像训练,将训练完的图像识别放入树莓派。
主要包括系统总体框和硬件组成两部分。
本系统按照功能模块可划分为:①坐标移动模块:移动坐标的逻辑处理。②电机驱动模块:PWM控制电机转速和顺时针或者逆时针旋转。③物品识别模块:调用卷积神经网络来进行图像识别。④物品抓取模块:通过舵机控制板来控制抓取动作如图1所示。
图1 系统总体框图
3.2.1 坐标移动模块原理
机器人是通过红外传感器或灰度传感器发射红外光线进行循迹,本设计采用TCRT5000红外反射传感器,灰度传感器根据地面黑白反射光线的明暗程度不同导致的传感器值不同来产生小车的循迹功能。有一个直径3mm的孔用于固定。
坐标移动是超市机器人重中之重,只有循迹稳定才能进行坐标的移动,本设计应用了TCRT5000红外反射传感器面对黑白线0或1反馈值来实现模块的功能,循迹检测模块的主要功能如表1所示。
表1 循迹检测模块功能描述
3.2.2 坐标移动设计与实现
TCRT5000红外反射传感器传感器面对黑色时,反馈信号为1,面对白色时反馈信号为0。只要固定好传感器与地面的高度,传感器会准确检测该位置下面是否在白线上,在白线上的传感器会亮,接受信号为LOW也就是0,根据传感器返回的值可调节机器人的左右轮子转速,从而达到小车平稳在区域内按照指定的坐标行走,而不偏离轨道。图2为循迹功能流程图。
图2 循迹功能流程图
3.3.1 电机驱动模块原理
电机是传动和控制系统重要组成部分,主要以速度,精度,力矩的控制。使用直流减速电机作为搬运机器人的驱动电机,以提高搬运机器人的稳定性,减少机器人在运动过程中因为惯性导致重心偏移,电机根据不同的应用会有不同的驱动方式,本设计统一采用ZGA37RG减速直流电机。
电机驱动模块使用了L298N双H桥,H桥控制电机顺时针逆时针旋转和速度的调节。
表2为电机驱动模块功能描述。
表2 电机驱动模块功能描述
3.3.2 电机驱动设计与实现驱动板采用L298N双H桥,通过改变其输出实现电机逆时针和顺时针旋转,也可以通过PWM来调整转速。H桥使用了8个脚。只要一边导通电路就可以驱动电机进行转动,通过输入的电源正负极方向控制电机的正反转。
该设计以使用了一个H桥来驱动2个电机,该芯片可以直接驱动两个电机,每一边接口接一个电机总共使用两个H桥来控制四个电机的转动。
两个H桥来控制四个电机,其中IN1、IN2、IN3、IN4接Arduino Mega通过控制接口数字信号高低来达到电机顺时针和逆时针的旋转。H桥电机控制信号见表3。
表3 电机控制信号逻辑表
3.4.1 图像模块原理
卷积神经网络是包含卷积或经过相关计算后具有较深结构的神经网络。它也是深度学习的代表性算法之一。卷积神经网络是通过模拟生物的视觉和感知而构建的。监督学习和无监督学习均适用。由于隐藏层中卷积核参数的共享以及层间连接的稀疏性,卷积神经网络可以使用少量计算来形成特征。
3.4.2 卷积神经网络的设计与实现
将数据集拆分为训练集和测试集,其中八成的图像作为训练集图像,剩余的二成的图像作为测试集。训练前,对所有图片进行归一化,并统一尺寸为100×100,并且将数据集进行打乱。训练时,为了得到最优的结果,会在进行多次卷积操作之后经过3个全连接层。设置学习率为0.0001,批尺寸(batch size)为64,采用CNN卷积神经网络训练方法,迭代了16000次,大约8个周期,最终达到收敛。
从新拍摄的图片中选择一张图片,同时的将图片处理成100×100的格式,取出事先训练好的模型,并且还原出最后一次的checkpoint,载入这张图片并获得一个张量x,将该张量x放入模型进行识别,然后获得预测矩阵。接下去获得预测矩阵每一行最大值的索引,该值所对应的类,就是识别的最终结果,可以根据索引通过字典获得对应图片的分类。流程如图3所示。
图3 验证结果的流程图
3.5.1 物品抓取模块功能设计
对机械臂的控制方法首先是对于舵机角度的调试,在该设计中Arduino因为没有足够的工作电压所以无法直接控制多个舵机,导致的现状是舵机抽搐无法正常工作,因此需要一块舵机控制板和外接稳定的6V电源才可以稳定的控制控制舵机,Arduino主控板和舵机控制板之间可以通过串口通讯发送指令,购物机器人所有的抓取和放置动作都是通过MG996R舵机实现[10]。
主要功能如表4所示。
表4 串口通信功能描述
抓取物品动作模块具体工作步骤如下:①用户设置抓取动作。②主控制板通过串行通讯将命令发送到舵机控制板。③舵机控制板向舵机发出信号以控制动作。如图4所示。
图4 抓取物品动作模块工作时序图
3.5.2 抓取物品串口通讯设计与实现
通过Arduino的RXTX串口向舵机控制板发送指令,串口通信是全双工通讯,可以边发边收数据。如表5。
表5 串口通讯基本参数
在本模块中需要在setup()中进行初始化,设置波特率为9600。
主控模块硬件包括Arduino Mega和驱动电源12V,单片机和其他元器件通过导线进行连接,图5为系统硬件连接图。
图5 系统硬件连接图
坐标移动的功能是使用了红外反射传感器,该设计使用了20个红外反射传感器,每个都需要单片机的5V和接地;电机驱动模块的实现是使用H桥与电机相连,通过H桥控制电机逆时针和顺时针的旋转,每个都需要单片机的5V和接地;抓取物品模块的实现是舵机控制板与舵机连接,TX连接RX,RX连接TX。
①购物机器人循迹采用TCRT5000红外反射传感器,灰度传感器根据地面黑线、白线反射光线的敏暗程度不同而产生的灰度值不同来产生小车的循迹功能,方法简便有效。②在底层运动模块采用ZGA37RG直流减速电机作为搬运机器人的驱动电机,以提高搬运机器人的稳定性,减少机器人在运动过程中因为惯性导致重心偏移,电机根据不同的应用会有不同的驱动方式。③电机驱动板采用L298N双H桥芯片,通过改变L298N双H桥的输出实现电机正反转,或调整转速,调试时程序输入对应的占空比值,能够实现对应的转速。L298N双H桥该芯片采用15脚封装。电路内含两个MOS管,只要使对角线上的电路导通即可驱动电机,两个方向控制电机的正反转,采用标准逻辑信号控制。本选题实现用于自动购物的超市购物机器人,该机器人主要使用电机,灰度传感器,舵机和红外测距传感器,识别功能连接电脑进行拍照,通过已经训练好的图像识别库来识别物品。也减少了人们的操作,简便了人的生活。