搬运工程项目光电车型机器人技术报告
2018-01-23戴雪儿
戴雪儿
摘 要:随着工业自动化进程不断加快,工业机器人在其中扮演着越来越重要的角色。而搬运机器人(AGV)又是工业机器人的代表。它可广泛应用于机械、电子、纺织、卷烟、医疗、食品、造纸等行业的柔性搬运、传输等功能;也可以用于自动化立体仓库、柔性加工系统、柔性装配系统;同时可在车站、机场、邮局的物品分捡中作为运输工具。本款机器人是按照中国工程机器人大赛暨国际公开赛(中学组)“光电车型搬运机器人”项目的竞赛要求,模拟工业自动化过程中自动化物流系统的作业过程通过颜色识别实现物料分拣并搬运到目标区域。
关键词:搬运工程;光电车型;机器人;技术报告
中图分类号:TP242 文献标识码:A
一、总览
此款机器人是一款基于STM32F103VET6主控芯片的三轮车型搬运机器人。该主控芯片来自ST(意法半导体)公司,ARM Cortex TM—M3内核,32位微控制器。配备一款2.8英寸、320*240分辨率的电容显示屏,显示OV7725摄像头传输的图像。通过摄像头循迹、判别物块颜色,通过水平的两个夹子和垂直的一个钩子来搬运物块,以完成比赛要求。作品如图1所示。
二、设计背景
摘要:随着工业自动化进程不断加快,工业机器人在其中扮演着越来越重要的角色。而搬运机器人(AGV)又是工业机器人的代表。它可广泛应用于机械、电子、纺织、卷烟、医疗、食品、造纸等行业的柔性搬运、传输等功能;也可以用于自动化立体仓库、柔性加工系统、柔性装配系统;同时可在车站、机场、邮局的物品分捡中作为运输工具。本款机器人是按照中国工程机器人大赛暨国际公开赛(中学组)“光电车型搬运机器人”项目的竞赛要求,模拟工业自动化过程中自动化物流系统的作业过程通过颜色识别实现物料分拣并搬运到目标区域。
三、方案确定
1.主控芯片选取
单片机的种类非常多,每一种都有特定的性能和用途,必须根据项目的要求选取最适合的芯片,在达到项目指标的基础上,尽量使成本降到最低,以达到最大的性价比。因为此项目要求对物块的颜色和路径进行识别,必须用到能识别颜色的摄像头,所以待处理的数据量较大,需选取一款工作速率较高、容易编程的芯片。通过比较,最终选择ST(意法半导体)公司的STM32系列的芯片:STM32F103VET6。这是一款32位的微处理器,架构: ARM Cortex-M3,程序内存大小: 512KB,存储器容量(RAM): 64KB,CPU速度: 72MHz,输入/输出(I/O口)数: 80,完全能满足此项目要求。
2.图像传感器选取
此项目要求能够识别物块的颜色,并根据不同颜色选取不同路径,因此普通的线性CCD不能满足要求,需要选取一款彩色的摄像头。通过查找,最终选取带FIFO的OV7725摄像头。OV7725 是一个能够提供单片 VGA 摄像头和影像处理器的所有功能的图像传感器,它可以输出整帧、子采樣、取窗口等方式的各种分辨率 8/10 位图像数据,支持的数据格式有很多种,包括 RAW RGB 、RGB (GRB 4:2:2、RGB565/555/444) 以及 YCbCr (4:2:2) 等格式。它的体积小,工作电压低,具有单片 VGA 摄像头影像处理器的功能,可以对图像进行伽玛曲线、白平衡、饱和度、色度等处理。
3.车型选择
车型采用三轮车型,包括两个驱动轮,一个支撑轮,一块车身,以降低成本。驱动轮通过大扭力的360°舵机来控制,支撑轮用一个万向轮替代,车身用亚克力板制作。整个车身小巧简约,长宽为260mm*158mm,符合比赛的尺寸要求。
4.循迹方案选择
通常的循迹有两种方案:摄像头循迹和红外光电对管循迹。摄像头循迹需要的算法复杂,但精度高;红外光电对管循迹算法简单,精度也不低。通过综合比较,选择使用“摄像头+红外对管”双重循迹方案:摄像头进行粗略循迹,红外对管进行精确循迹,效果很好。
5.夹子钩子绘图构造
需搬运的物块为中空圆柱形,根据其尺寸大小,设计了一款“夹子+钩子”的搬运方案,并通过CAD绘出实际图形,用亚克力板打印,装在车身前端,利用9g航模小舵机控制其闭合。
6.驱动器选择
本款车型搬运机器人需要两种驱动器:一种是驱动钩子和夹子开合的小型驱动器。由于钩子夹子的转动不需要太大的扭力,所以选择小型的9g航模小舵机驱动即可。另一种是驱动车轮转动的较大型驱动器。由于车身的运动状态有前进、倒退、左转/右转准确的角度等,车轮的转动也需要较大的扭力,所以选择的驱动器必须能被精确的控制。这种驱动器有两种:直流电机、360°大扭力舵机。直流电机价格低,在实际的实验中,转动速度快,但是不能被精确控制,转动误差很大;360°大扭力舵机较为昂贵,转动速度慢,但是精度高,容易控制。经过实际测验比较,最终选择360°大扭力舵机。
7.电源模块
一个系统的电源模块特别重要。本系统的电源需要给主控芯片、摄像头、舵机、光电对管等持续供电,电源必须稳定且容量大,能够持续输出。选择无人机上用的大电压大容量锂离子电池,总电压12.9V,容量为2200mAh,能够持续输出一个小时以上,再利用降压模块将到5V以供使用。
四、结构说明
五、结构详解
1.STM32F103VET6主控芯片
内核:ARM Cortex-M3
程序存储区:512K
数据存储区:64K
CPU速度:72MHz
2.OV7725摄像头(图3)
显示模式:VGA模式
数据格式:RAW RGB、RGB(GRB4:2:2,RGB565/555/444)、 YCbCr (4:2:2)endprint
通过SCCB接口访问其寄存器
体积小、电压低
3.红外光电对管(图4)
红外对管是红外线发射管与光敏接收管,或者红外线接收管,或者红外线接收头配合在一起使用时候的总称。接收器对外只有3个引脚:Out、GND、Vcc与单片机连接非常方便:
① OUT脉冲信号输出,直接接单片机的IO 口;
② GND接系统的地线(0V);③ VCC 接系统的电源正极(+5V)。
4.360°大扭力舵机(图5)
工作的标准PWM脉宽0.5ms~2.5ms,周期为20ms,对应频率50Hz;脉宽为0.5ms~1.5ms时,舵机反转;脉宽为1.5ms~2.5ms时,舵机正转;工作电压:5V
5.9g航模小舵机(图6)
小型舵机的工作电压一般为4.8V或6V,转速也不是很快,一般为0.22/60度或0.18/60度。
引脚线:棕色——GND 红色——VCC
橙色——信号
6.夹子钩子
通过测量物块的直径和高,利用CAD绘图软件画出夹子和钩子的实际图纸,最后用亚克力板打印,安装到车身前端,如图7和图8所示。
六、技术细节
1.STM32F103VET6使用及编程
STM32系列芯片功能十分强大,内部资源很丰富,但寄存器也很多,ST公司已经对所有的寄存器的使用方法进行了封装,使用时按照规则直接调用即可。使用keil公司的编程工具——keil MDK进行编程。有关keil MDK软件的使用可以参考网上的资料,有关STM32的资源使用及编程可以参考《STM32中文参考手册》。
2.OV7725摄像头模块
OV7670 包含有 656*488 图像阵列,共包含 320128 个像素,但是实际有效的还是640*480 个,边缘多出来的像素主要是为了去除一些影响边缘失真特性而设立的。图像阵列感知的原始信号(颜色&亮度)之后会输送入模拟处理器进行处理(比如通常所说的曝光控制和增益控制),经处理后会被分成 G 和 BR 两路通道进入一个 A/D 转换器,转换成数字信号后送入 DSP 处理器作进一步处理。
(1)OV7725管脚封装
(2)OV7725管脚定义
(3)OV7725与FIFO连接的原理图
(4)OV7725的编程原理。
从原理图可知,WEN 与 HREF 作为与非门的输入端,而与非门的输出端口连接到FIFO 的 WE 端口,当 WEN 管脚跟 HREF 管脚电平都为高电平时,FIFO 的 WE 端口的電平值才为低电平。因此,如果我们允许图像数据传入 FIFO 时,我们可以把 WEN 拉高,当摄像头的 HREF 为高电平时,WE 为低电平,此时随着 PCLK 的运转,摄像头的像素数据会被送入 FIFO,当 HREF 为低电平时,WE 的电平值为高电平,因此,即使 PCLK 仍在运转,也不会传送数据进入 FIFO,从而防止采集到无效数据。
程序驱动部分思路流程大概如下:将摄像头的场中断信号送入单片机,当单片机捕捉到场中断信号时,拉高 WEN 管脚电平,之后整幅图像的数据就会存入 FIFO。当单片机再次捕捉到场中断时,表明一幅图像已经送入 FIFO,此时,关闭场中断,拉低 WEN 电平,防止摄像头数据再次写入 FIFO,并开始读取 FIFO 数据到内存缓冲区,根据采集到的图像做我们的应用处理。应用完成后,我们再次开启场中断,当再次捕捉到场中断时,再次拉高 WEN 管脚电平,继续让摄像头数据存入 FIFO,完成后单片机读取 FIFO 数据并应用,如此循环。
(5)OV7725对采集的图像进行二值化处理
对图像进行二值化的算法是迭代阈值法。迭代阈值法的思想,主要是下面4条:
j求出图像的最大灰度值和最小灰度值,分别记为Pmax和Pmin,令初始阈值T0=(Pmax+Pmin)/2;
k根据阈值T(k)(k=0,1,2...,k)将图象分割为前景和背景,分别求出两者的平均灰度值H1和H2;
l求出新阈值T(k+1)=(H1+H2)/2;
m若 T(k)-T(k+1)=X (一个预定义的参数范围内,自己设定),则所得即为阈值;否则转k,迭代计算。这样就可以逐渐逼近图像二值化阈值。
3.360°大扭力舵机工作原理
360度舵机通过PWM控制它的旋转速度和旋转方向,标准的PWM波的周期是2000us,500-1500us脉宽的PWM控制其正转,值越小,旋转速度越大;1500-2500us脉宽的PWM控制其反转,值越大,旋转速度越大。1500us的PWM控制其停止。(由于每一个舵机的中位可能会不一样,所以有些舵机可能是1520us的PWM,舵机才会停下来。所以需要自己实际测试出舵机的中位。)
4.9g航模小舵机工作原理
工作原理:内部控制电路板接受到来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,从而达到目标停止。
舵机的控制信号为周期20ms的脉宽调制(PWM)信号,其中脉冲宽度从0.5ms~2.5ms,相对应舵盘的位置为0°~180°,呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。舵机内部有一个基准电路,产生周期20ms,宽度1.5ms的基准信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。由此可见,舵机是一种位置伺服的驱动器,转动范围不能超过180度。
5.颜色识别
实现原理:将摄像头的数据读出写入TFT屏,读取TFT屏幕上的像素点的颜色进行识别。由于RGB格式的颜色数据的效果不好,所以将其转换为HSL格式数据。首先遍历寻找腐蚀中心(即和给定的条件相符和的像素点),然后在之前腐蚀中心点处进行迭代向外寻找新的腐蚀中心。腐蚀算法从该点开始分别向上下左右4个方向进行读点,若点的颜色符合条件则往外读,等4个方向都结束后得到4个边缘点的坐标,记左边缘点的x轴坐标为left,右边缘点的x轴坐标为right,上边缘点的y轴坐标为up,下边缘点的y轴坐标为bottom,那么坐标( (right-left)/2 , (up-bottom)/2 ) 即为新的腐蚀中心。将识别到的颜色记录在STM32的内存中,通过判断选择相应的路径。
6.摄像头+红外对管循迹
STM32对摄像头采集进来的数据进行二值化处理,此时TFT屏上显示一副黑白图像,黑色的是赛道,再根据赛道在屏幕中的位置,调整舵机的转速和方向,以实现循迹。
机器人搬运完一个物块后,需返回中心,这时如果只用摄像头进行判断,程序量大,而且不准确,鉴于此缺点,在车身底部的适当位置加了3个红外对管,以辅助判断。3个红外对管的位置非常重要,如前面的结构图所示,在机器人未到达地图中心时,3个红外对管不会同时检测到黑线,只有当到达中心时,才会同时检测到黑线。
七、注意事项
1.保证电源电量不低于11.4V,一旦低于立即停止工作并充电。
2.摄像头的安装高度和程序中的参数有关,必须保证其对应关系。
结语
此款车型搬运机器人外形简约,成本较低,但功能丰富,性能较好,操作简单。通过硬件装配和软件调试,可以自主识别颜色,根据识别到的颜色自主选择路径,可一次性完成所有任务。
参考文献
[1]STM32中文参考手册[Z].endprint