图书自动分拣机器人
2023-03-06林平伟黄程新陈英杰
林平伟,黄程新,陈英杰,齐 锦
(西北大学 信息科学与技术学院,陕西 西安 710127)
0 引 言
随着数字化技术的发展,运用自动化代替人工已经成为常态。在图书馆的日常管理中,最重要的任务就是对图书进行人工分拣分类,由于人们借阅频率的增加以及图书存量的增多,分拣工作也变得日益繁重。据统计,截至2014年,仅中国就有公共图书馆3 117个,若放眼全世界,这个数字将会更加庞大。加之人们对图书馆管理能力的要求越来越高,人力分拣的成本高昂。而树莓派图书分拣机器人作为一个成本低、效率高的分拣机器人,可以有效解决这个难题,为各地的图书馆转型起到良好的促进作用[1]。
1 整体架构
图书分拣机器人主要由树莓派主板、智能小车(包括红外循迹模块、超声波避障模块、小车框架和四轮驱动)、机械臂模块、摄像头模块和移动载书台组成,并通过数据库进行数据处理。
小车定时对各图书架上的图书通过摄像头模块进行识别,通过树莓派(板载WiFi模块)在局域网范围内发送数据至计算机,读入数据库后进行后台数据分析处理以及分类,可得知图书位置是否正确,若错误,则由机械臂抓取图书。与此同时,树莓派传送循迹行驶命令,让机器人将图书传送到相应的书架前,由摄像头识别后,经机械臂将图书进行准确摆放。若在该过程中遇到障碍物,则根据超声波避障模块和红外避障模块的指令进行避障[2]。总体设计框图如图1所示。
图1 总体设计框图
2 控制核心
该分拣机器人以树莓派为核心。树莓派是由一个四核处理器、一个内存芯片、一个网卡、两个DSI显示连接器、micro HDMI接口、Type-C供电口、摄像头接口、音频接口、USB管理芯片、POE接口和千兆以太网端口组成的微型电脑。树莓派可扩展端口众多,故对机器人进行分模块介绍。
3 基本运动与机械臂模块
3.1 基本运动
该小车由4个电机驱动,选用的控制芯片为TB6612FNG。TB6612FNG是一种新型控制芯片,具有高集成度、高驱动能力等特点,能够独立控制2个电机的运动状态,并且在能耗和控制性能等方面也具有优势[3]。
小车的4个电机分别由两片TB6612FNG电机驱动芯片驱动,芯片1驱动2个前轮电机,芯片2驱动2个后轮电机。分析小车的实际运动状态,我们发现两侧的电机运动状态相同,所以我们仅需将两片电机的驱动芯片并联接到树莓派I/O口处共同进行控制就可以达到预想的效果。
3.2 机械臂
机械臂采用4个舵机与亚克力板组装而成。组成结构与挖掘机臂相似,由4个舵机分别控制上臂运动、下臂运动、爪子开合与机械臂整体的左右摆动。4个舵机分别与PWM0、PWM1、PWM2、PWM3口相接,由PCA9685芯片控制。连接PWM0口的舵机控制机械臂的手爪闭合,连接PWM1口的舵机控制机械臂上臂的伸展与收缩,连接PWM2口的舵机控制机械臂下臂的伸展与收缩,连接PWM3口的舵机控制机械臂底座左右180°转向。
4 循迹与避障模块
4.1 模块概述
我们在当前基础上,通过加装3种传感器,成功实现了红外循迹功能、红外避障功能和超声波避障功能。采用的传感器为TR5000红外线循迹传感器、ZY101红外线避障传感器和HC-SR04超声波避障传感器。
4.2 红外循迹
对红外循迹传感器的原理进行简单描述:由一对红外对管对外界环境进行检测,当有返回信号时,该模块的输出为0,而当红外信号被黑色胶带吸收无返回信号时,该模块输出为1。故我们只需对3个传感器的输出信号进行对应的情况分类,即可得知小车是否偏离轨迹[4]。
实际设计时,我们将3个传感器安装在底部,并分别连接到树莓派的3个I/O口上,对应为GPIO26(右传感器)、GPIO19(左传感器)和GPIO13(中间传感器)。工作时,传感器检测地上的黑色胶带,树莓派通过3个传感器的返回信号控制小车的行进方向。
黑色胶带会吸收光线,因此存在5种可能的情况,我们做如下设定:
(1)当3个传感器最中间一个无返回的红外信号,而左右两边的传感器有红外信号返回时,小车判定为直行;
(2)当左侧和中间的传感器均无红外信号返回,而右侧有红外信号返回时,则判定小车偏向右侧,需要控制电机差速转动让小车向左侧微调;
(3)当右侧与中间的传感器均无红外信号返回,而左侧有红外信号返回时,判定小车偏向左侧,需要向右侧微调;
(4)当3个传感器均无返回信号时,则判定小车运动到交叉线位置,设定小车向左90°转弯。
(5)当3个传感器均有返回信号时,即小车不在既定轨迹上,小车停止。
4.3 红外避障
本机采用左右各一个ZY101红外避障传感器实现小车的红外避障功能,避障传感器对应接在树莓派GPIO12(左侧避障传感器)和GPIO16(右侧避障传感器),基本工作原理与TR5000相似,为一对红外对管对前方障碍物进行检测,当有障碍物时,有红外信号返回,模块的输出信号为0;当无障碍物时,与之相反,模块的输出信号为1。
由此可知,我们仅需要对GPIO12和GPIO16的输入信号进行分类,即可得到小车前方的障碍物情况。我们对可能遇到的情况进行分类编程:
(1)当左侧传感器的输入为0,且右侧传感器输入为1时,小车左侧有障碍物,需要向右转;
(2)当右侧传感器输入为0,左侧传感器输入为1时,小车右侧有障碍物,需要向左转;
(3)当两侧都为1时,前方无障碍物,小车直行;
(4)当两侧都为0时,障碍物就在前方,小车停止运动,随后后退再沿左侧向后转向。
按照这个逻辑编写程序,最后实现了小车的红外避障功能。红外避障的优点是没有盲区,但缺点也很明显,即检测距离较短,所以该机器人在红外避障的基础上加装了一个超声波避障模块。
4.4 超声波避障
本机选用HC-SR04超声波模块实现超声波避障功能,HC-SR04超声波模块内集成有单片机和出场自定的程序,大大降低了该模块的应用难度。
将HC-SR04的输入端接在GPIO20端口,输出端接在GPIO21端口。当需要使用超声波模块工作时,向GPIO20端口输出一个高电平,超声波模块开始工作,随即树莓派检测GPIO21端口输入的信号,当输入低电平时,树莓派开始计时,直到低电平消失,停止计时。通过时间差可以算出超声波传播的距离,距离除以2就能得到小车与障碍物之间的距离,我们设置该距离小于等于50 cm时,小车停止,由此就可以实现超声波避障功能。该超声波模块的有效工作距离为2 cm~3 m,与红外线避障模块配合工作就可以实现避障功能。
5 图像识别模块
5.1 图像识别概述
摄像头可以捕获图书馆的书籍图像,先通过机器学习,让机器人预先进行图片记忆,然后再用图像识别技术,对已学习图片与目标书籍进行对比,如果匹配度较高,这本书便可以通过机械臂抓取,送到目标位置。
5.2 机器学习
机器学习是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。深度学习是机器学习领域中一个新的研究方向。神经网络是一种由许多简单元组成的网络结构,这种网络结构类似生物神经网络,能够应用于语言、文字、图像等不同的学习任务[2]。
我们通过预先给机器人识别图书图片,让它进行每个图片特征值的提取,并记忆其特征后,将每个图片分类,便于与观察到的实物进行匹配。
本机实际应用中,选择软件与硬件结合的方式,先通过软件对每一张图片进行特征值提取,然后将这些特征值结果导入机器人本体,让机器人通过查询预设的文件路径与摄像头采集的实物信息匹配。
5.3 图像识别
图像识别技术是指图像作用于视觉传感器,计算机对图像信息进行识别比对,根据预设的信息得出识别结果的过程,该过程也被称为图像再认。在图像识别过程中,既要有当时传感器所采集的信息,也要有记忆中存储的信息[3]。只有通过存储的信息与当前的信息进行比较加工,才能实现对图像的再认。
树莓派支持使用OpenCV计算机视觉库,使用OpenCV可以进行图像识别。OpenCV有3个主要的模板,core用于数据结构及其基本运算;highgui实现视频与图像的读取,显示视频与图像;imgproc实现图像处理的基础方法,包括图像检测等。
计算机中的图像由许多像素点组成,包括灰度像素点与彩色像素点,图像也是充满噪声的,如高斯噪声和椒盐噪声等。高斯噪声充满各灰度各颜色,而椒盐噪声是图片随机出现的白点或者黑点。图像直方图是表示数字像素中亮度分布的直方图,描绘了图像中每个亮度值的像素个数。
使用SIFT算法可以寻找角点特征。在实际识别过程中,在图像中间选出一个位置,很难判断该位置在这幅图片中的具体位置,但如果选取边缘位置,就比中间部分容易找寻到具体位置,所以选择识别角点特征,可以更方便找寻具体位置。
SIFT算法在空间尺度中寻找极值点,并提取其位置、尺度、旋转不变量,由于harris角点检测与shi-Tomasi角点检测不具有尺寸不变性,所以该机器人图像识别设计中并没有选择harris角点检测与shi-Tomasi角点检测[4]。
SIFT算法的实质是在不同的尺寸空间寻找关键点(特征点),并计算出关键点的方向。SIFT查找的关键点是一些十分突出,不会因光照、仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。SIFT算法分解为四部分,尺度空间极点检测、关键点定位、关键点方向确定、关键点描述。尺度空间极点检测对小的关键点使用小的窗口,对大的关键点使用大的窗口,需要使用尺度空间滤波器[5]。
我们在OpenCV中利用SIFT检测关键点,并通过摄像头采集此时的画面,让此画面与之前机器学习存储的图片信息进行匹配,如果匹配度高,则识别成功,以此实现树莓派图书分拣机器人的图像识别功能。
5.4 图像识别演示
在进行图像识别之前,先导入书架上的图书位置图让树莓派进行机器学习,之后摄像头采集视频文件传输到树莓派,树莓派对视频文件进行逐帧截取,将截取的图片进行图像识别,得到最后的结果,即该书原来所处的位置,图像识别演示如图2所示。
图2 图像识别演示
6 整机测试
启动机器人电源,通过连接树莓派板载WiFi模块可以实现在电脑端对机器人进行局域网范围内的数据通信与远程操控。机器人的基本运动与机械臂抓取工作正常,在对循迹与避障功能进行测试时,发现受环境限制较大,在不同的环境下,工作前需要调节红外传感器模块的灵敏度,以更好保证工作时的精确度。整体测试结果符合要求[6-7]。
7 结 语
针对图书馆图书分拣所需人力多、成本高、工作繁杂等问题,本文设计了一款树莓派图书分拣机器人。该机器人通过树莓派作为控制核心进行数据处理和控制,用多种传感器采集数据,由树莓派编写程序等方法实现了树莓派图书分拣机器人对图书进行分拣的工作。该机器人可以借助红外循迹模块对既定轨迹黑线进行检测并循迹运动,借助红外避障模块和超声波避障模块对工作环境中的障碍物和走动的行人进行避障,借助摄像头和OpenCV计算机视觉库实现对图书位置的识别,借助机械臂模块对图书进行精确抓取和放置。此外,该树莓派图书分拣机器人具有成本低、对运行环境要求低、对人工依赖性低等优点,推广难度低,工作效果好,应用前景广阔[8-10]。