基于树莓派的自动跟随行李箱
2019-08-23陈茜茹李志为
文/陈茜茹 李志为
随着全球新一轮科技革命和产业变革的兴起,新兴技术群体的密集突破,制造业的数字化、网络化、智能化成为发展的趋势,智能制造成为发展的新方向。传统行业搭载“互联网+”、“物联网”、“人工智能”等新技术,寻找新的经济增长点,是各个行业转型升级的一个新途径。
传统的旅行箱市场目前正处于产品智能升级的新阶段。2016年,美国Bluesmart公司首次面向公众推出了第一代智能旅行箱,拥有定位追踪、手机操控等功能。随后,多家科技型创业公司相继推出了类似的产品,其中包括美国新秀丽、德国Rimowa等国际知名箱包大牌企业,引起了旅行箱产品设计上的一次革命。我国目前占有全球约71%的箱包制造量,但主要为大牌代工或中低端产品。在此行业背景下,本文设计了一种基于树莓派的自动跟随行李箱,以树莓派为核心单元,结合移动Web开发技术和OpenCV图像处理技术,通过采集识别人体携带的二维码标签纸来匹配用户,采用PID算法控制驱动电机实现行李箱自动跟随用户。
1 系统组成及工作原理
自动跟随行李箱系统主要由树莓派核心板、手机、摄像头、超声波模块、电机驱动电路、语音播放电路、电源模块等共同组成,如图1所示。树莓派作为系统的主控单元对USB免驱摄像头采集的二维码标签纸图像进行识别处理,通过电机驱动电路控制电机运动。超声波模块通过GPIO口与树莓派连接,测量行李箱与目标物体之间的距离,使得摄像头能在最佳焦距内完成对二维码标签纸的识别。手机通过无线Wi-Fi热点与树莓派连接开启或结束树莓派工作。同时,语音播放电路在开机、关机、拍照等时刻播放语音提示。
图1:系统组成框图
图2:电源模块电路
图3:电机驱动模块电路
1.1 树莓派平台
树莓派(Raspberry Pi,RPi)由“Raspberry Pi 基金会”开发,是外形只有信用卡大小的微型计算机,相比于传统计算机树莓派只是缺少了显示屏幕和键盘却具有电脑的所有基本功能,运行基于Linux 的开源系统,被广泛用于图像,文字处理。树莓派3代B型采用64位1.2GHz主频的四核芯ARM V8处理器,有1GB的RAM,性能相对于一般的嵌入式系统都较为强大,USB端口可以方便地连接LINUX免驱摄像头,具有独立的40个GPIO引脚,可以对摄像头采集到的图像进行实时处理,同时输出电机控制信号。基于树莓派的上述特点,本系统将其作为自动跟随行李箱的主控模块。
1.2 电源模块
图4:下位机程序设计流程
本系统以12V,8AH小型蓄电池作为外接供电,而核心板中需要5V电压,所以整体需要电压转换。另外,需要考虑到整个驱动板安全使用大电流驱动直流电机,保证不会因为电流过大而烧毁芯片,因而采用非线性元器件XL4005降压芯片为模块供电。XL4005工作频率达300KHz,输出纹波小,转换效率高,输出电流高达5A,且不容易发热,综合性能高,成本低。电源模块电路如图2所示,电源12V经电容C1和C3滤波由VIN输入,输出端SW由电感L1蓄流,电容C2和C4滤波,经电阻R2(连接至反馈端FB)和R3阻值的适当选取使输出为5V。R2和R3的阻值由公式1决定:
为了确保输出稳定,R3选用标称阻值为2KΩ,精度为1%的电阻。
1.3 电机驱动模块
图5:二维码图像识别步骤
图6:二维码图像预处理步骤
电机驱动芯片采用东芝公司生产的直流电机驱动器TB6612FNG,其内部具有大电流MOSFET-H桥结构,双通道电路输出,可同时驱动两个电机。TB6612FNG每个通道输出最高1.2A的连续驱动电流,启动峰值电流达2A/3.2A(连续脉冲/单脉冲);4种电机控制模式:正转/反转/制动/停止;PWM支持频率高达100KHz;片内低压检测电路与热停机保护电路。电机驱动电路如图3所示,采用可控制的高速光电耦合芯片TLP521-4将树莓派的GPIO引脚与TB6612FNG的7个控制引脚完全隔离,以保护树莓派的引脚安全,减少电路干扰。TB6612FNG的7个控制引脚如下:AIN1、AIN2、BIN1、BIN2脚为输入控制电平,分别控制A路和B路两个电机的正转、反转等工作模式;PWMA、PWMB脚为PWM信号分别控制电机的加、减速;STBY控制电机处于正常工作或待机状态。TB6612FNG内部已经包含大电流MOSFET-H桥结构,因此A路输出引脚AO1和AO2可与电机1的两个引脚直接相连,B路输出引脚BO1和BO2可与电机2的两个引脚直接相连。
1.4 语音播放电路
语音播放电路的作用是使行李箱系统能够在开机、关机、拍照检测二维码标签纸以及遇到障碍等各个环节对用户进行语音提示,告知系统状态,以便下一步应对处理。语音播报电路由XFS5051CE语音合成芯片和功放电路共同组成,利用TTS技术将收到的语音提示文本转换为语音信号。XFS5051CE是高集成度语音合成芯片,能够准确、流畅地将文本合成语音,支持中英文发音,并且拥有多种播音风格。树莓派通过GPIO的UART接口与XFS5051实现数据传输。
2 系统软件设计
2.1 上位机软件设计
行李箱系统需要采用手机端启动程序以及下达各种操作指令。手机端软件选用移动Web开发技术进行设计开发。相比传统的Android 和IOS系统下的原生APP开发,移动Web 开发技术利用HTML5、CSS3等Web技术编程,代码运行在浏览器中,屏蔽了不同平台系统之间的差异,开发的APP能够在多种平台系统上运行,成本小时间快,并且用户总能访问到最新版本,无需手动更新需求。由于本系统在移动终端功能的操作不是特别复杂,因此,Web 服务器采用的是Python的一款轻量级框架Bottle编写而成。
2.2 下位机软件设计
树莓派通常使用Linux作为操作系统,经过实际测试各种发行版,本系统研究选择Raspbian作为操作系统,相比其它发行版,Raspbian具有支持浮点单元、易用性以及内存占用更小的优势。除此之外,Raspbian是树莓派官方推荐的操作系统,兼容性好,资源丰富。软件采用Python程序设计语言进行编写。Python功能库丰富,可移植性强,非常适合本次设计。树莓派上提供了与Python绑定在一起的集成开发环境IDLE。
以树莓派为核心平台的自动跟随行李箱的程序设计如图4所示。树莓派开机后首先初始化及开启各种服务程序,然后等待上位机发送开启用户匹配指令,即需要行李箱和相应用户进行唯一匹配,然后再跟随用户移动。用户匹配首先要启动超声波测距,判断行李箱与用户之间的距离是否在合适距离,如果太近,不利用摄像头采集图像;如果太远,失去用户匹配的意义,一般在50cm~3m为适宜。当行李箱与用户之间距离适中则启动摄像头采集一帧图像,并将图像返回树莓派进行图像处理。识别是相应用户则驱动电机跟随用户移动,若不是则返回重新等待上位机开启用户匹配指令。
2.3 基于OpenCV和ZBar的二维码识别
二维码标签纸的识别过程用到两个图像处理的工具OpenCV和ZBar。OpenCV全称是Open Source Computer Vision Library,是一种跨平台的计算机视觉库,基于BSD 许可(开源)可 在Linux,Windows,Android和Mac OS操作系统上运行。它由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法,轻量且高效。ZBar是一个开源库,用于扫描、读取二维码和条形码。支持的二维码包括:EAN/UPC,QR等。二维码标签纸的识别首先采用摄像头拍摄二维码图像,对图像进行预处理后,将背景图像去掉,二维码部分定位截取出来,再经过二维码译码,将识别结果保存,其具体步骤如图5所示。
二维码识别图像预处理首先对采集的RGB图像进行灰度处理,消除颜色干扰,再通过中值滤波和高斯滤波去除图像中可能包含的脉冲噪声、颗粒噪声、高斯噪声等类型的噪声,采用Canny算子进行边缘检测,最终通过二值化处理使图像中数据量大为减少,从而能凸显出目标的轮廓,具体步骤如图6所示。
3 实验结果分析
自动跟随行李箱最终实现的功能是能够通过移动智能终端操作界面远程控制启动行李箱和用户唯一匹配,行李箱能够自动跟随用户前进、左转、右转、调速。
实际测试时首先将树莓派开机,用手机APP界面点击启动行李箱和用户进行匹配,行李箱开始调整与用户之间为最佳拍摄距离,证明通信系统和行李箱驱动均能够正常工作;调整用户在行李箱前方5米范围内的各个位置,测试证明树莓派系统均能将行李箱调整至50cm~3m的最佳范围;使用系统提前预置的唯一匹配用户和多个不匹配用户分别测试,树莓派均能正确识别用户,证明摄像头能够采集二维码图像并识别出匹配用户,系统能够正常工作;树莓派与用户成功匹配后,行李箱能够跟随用户前进、左转弯、右转弯、加速跟随等,证明电机驱动控制正常工作;在手机APP界面上点击结束时,系统也能够按照指令结束跟随用户;在操作开启、结束、摄像头拍照、匹配成功或不成功等各个时刻均有语音提示,证明语音电路和功放电路能够正常工作。
4 结语
基于图像识别的自动跟随行李箱成功实现了所有预设功能,能够通过手机APP界面远程控制行李箱匹配用户、跟随用户。此方案将树莓派、Wi-Fi技术和移动Web开发技术有效结合,扩展了智能行李箱的应用,成本低、控制灵活可靠、传输时延较短。传统行李箱搭载树莓派智能平台,使行李箱智能化、自动化,体现了物联网的概念,方便了人们的生活,对于传统行李箱行业的转型升级具有极大的意义。