基于轮式驱动的教学机器人研制
2013-05-16梁明亮孙逸洁
梁明亮, 孙逸洁
(郑州铁路职业技术学院电子工程系,河南郑州 450052)
0 引言
教学机器人是指应用于学校教学、创新教育和科研服务的机器人[1]。近年来,在全国高等教育教学实践环节中,以教学机器人为平台的创新教学活动日益增多,针对机器人创新教育[2]、技能竞赛和科研的需要,研究开发了一种基于四轮驱动的智能教育机器人[3]。该机器人涉及ARM嵌入式技术、传感器技术、控制技术、计算信息处理、电机驱动、人工智能、无线网络通信等多个学科和领域[4],控制系统工作稳定可靠,能够满足创新教育实践的需要。
1 总体设计方案
以嵌入式为主要控制技术设计教学机器人,系统总体设计框图如图1所示。系统主要由S3C2440A主控制器[5]、红外线寻迹模块、驱动电路、直流电机、行走机构、传感器探测模块、和电源组成。
主控制器以S3C2440A嵌入式处理器为核心,在机器人智能控制中起主导作用。
图1 系统总体设计框图
红外线寻迹模块使用反射式红外发射-接收一体管采集路面信息,寻迹信号传送给S3C2440A主控制器,通过嵌入式软件计算处理后,实现对黑线或白线的寻迹。CMOS摄像头用于图像的采集,处理器S3C2440A收到图像后,进行图像分析、处理,通过无线网卡完成图像的远程传送、标志物形状和颜色的识别。传感器检测模块用于完成温度、温度、距离、光照、光频率的测量功能。
主控制器的控制软件是基于ARM9嵌入式开发环境,在移植Linux操作系统的基础上进行C语言的应用程序开发。机器人通过寻迹方式到达各地形标志物,通过CMOS摄像头对标志物进行拍照和物理量的探测,使用WiFi无线网卡以无线通讯方式向PC上位机发送温度、距离、光强等探测数据和标志物图像。
驱动电路实现对电机的驱动和控制,主要由AVR单片机ATmega16L处理器、电机驱动构成;电机上安装编码器,用于检测机器人速度,送给AVR单片机进行分析和处理;行走机构采用四轮结构,包括车架和四个车轮。机器人车架上固定有三层电路板,从上到下依次为S3C2440A核心板、主控制器主板和驱动板。机器人供电为直流12V,采用锂电充电电池,共2组。
2 硬件设计
2.1 主控制器
主控制器由S3C2440A核心电路板和主板组成,核心板通过双排插针与主板进行电气连接。核心板采用六层电路板设计,元件排列紧凑。核心板上设计有微处理器(S3C2440A)、SDRAM 存储电路(HY57V561620FTP)、SDRAM 存储器、Nor Flash、Nand Flash、复位电路和1.25 V直流电源产生电路等。
2.2 红外线寻迹模块
轨迹控制的应用成果很多[6],本系统使用反射式红外发射-接收一体管进行教学机器人的路面寻迹[7]。利用红外线对不同颜色的反射能力不同的特性,采用红外线光电传感器采集寻迹信号[8]。本系统颜色信号主要是黑、白两种情况。寻迹板中设计有8组相同的红外传感器,图2为其中一组电路图。
图2 寻迹电路
当红传感器 OPB10359检测出的信号后,经LM339电压比较器进行电压比较和整形后,转换为逻辑电平(高电平为+3.3 V),作为机器人运动时路面的探测信息输出,8路信号分别为VOUT1到VOUT8。8路寻迹信号通过JP1插座送到主控制器S3C2440A的I/O口,经控制器处理后,输出指令控制机器人沿指定轨迹运动。
2.3 传感器探测模块
传感器探测模块包括测距、测光、测温等各种传感器电路,电路可扩展,以适应教学机器人在导航过程中具有自主避障[9]、智能探测和二次创新扩展功能。
采用超声波和PSD两种测距法。超声测距采用时差法:即通过检测发射的超声波与其遇到障碍物后产生回波之间的时间差Δt,求出障碍物的距离d=cΔt/2,其中 c=331.4+ΔT,为超声波速度,ΔT 为与环境温度相关的换算值。利用PSD的最大特性——位置传感特性和三角测量法,构成测距传感器。采用GP2Y0A21YK传感器,其内置LED(红外发光二极管)和位置检测器(Position Sensitive Detector,PSD)的模块,通过改变输出直流电压输出传感器前面放置物体的距离[10]。
采用热电堆式(Thermopile)红外温度传感器进行温度探测,选用TS118-3型红外温度传感器。TS118-3变送的温度信号送给LF347运放芯片进行处理,通过IIC接口芯片AD7955输出标准IIC信号,最后送到S3C2440A进行处理。
2.4 摄像头接口电路
S3C2440A处理器中集成有Camera接口,机器人的图像采集器件选用OmniVision公司的CMOS图像传感器OV9650,直接与S3C2440A芯片的Camera接口连接。OV9650具有标准的 SCCB(Serial Camera Control Bus)接口,130万像素,通过该接口可以设置输出图像像素的大小,输出色度、YcbCr顺序等参数。
2.5 驱动电路
选用高性能、低功耗的8位 AVR微处理器Atmega16L作为驱动电路的处理器。
Atmega16L实现与S3C2440A的串行通信,实时接收S3C2440A的指令,进行一定的分析和算法处理后发出PWM信号,输出给以L298N为主要器件构成的电机驱动电路。直流电机是机器人行走的动力来源,直接决定机器人的速度,对机器人速度的控制就是对直流电机的控制[11]。设计中采用直流减速电机,型号为Namiki 22CL-3501PG。如图3为左轮电机驱动电路,其中M1、M2为左轮的2个电机。
图3 电机驱动电路
采用 L298N作为直流电机驱动芯片[12],L298N是内含2个H桥的高电压大电流双全桥式驱动器。图3中,74HC245起信号放大和缓冲作用,L298进行电流放大,Atmega16L单片机通过调节PWM信号的占空比实现对电机的调速与转向。
为保证L298N驱动芯片正常工作,在其与每个直流电机之间加入四支续流二极管(BR1、BR2),用以将电机中反向电动势产生的电流分流到地或电源正极,以免反向电动势对L298N产生损害。L298的第1和15脚接电流采样电阻 R2、R3,形成 I1、I2电流传感信号,通过LM358运算放大器放大后产生模拟电压信号ADM1、ADM2,送到 Atmega16L中进行电流的测量和分析,以动态控制电机的电流及速度。
2.6 电源电路
机器人运行时不需交流电源,采用2组锂充电电池供电,每组锂电池的电压约12 V,主控制器和电机驱动电路所需的电源是相互独立的。
3 软件设计
主要有ARM9处理器Linux操作系统的移植、基于Linux的驱动程序及应用程序的开发、基于AVR单片机的电机控制程序的设计等。
3.1 Linux的移植及驱动程序的开发
(1)搭建基于linux系统的开发环境。
(2)BootLoader引导程序的配置和移植。主控制器采用ARM9嵌入式系统,通过BootlLoader完成对主控制器电路板上的 S3C2440A、HY57V561620FTP(SDRAM)、K9F1208(Flash)、串行口等进行初始化[13]。当教育机器人启动时,先运行BootLoader,再运行操作系统内核,分配内存空间的映射,将机器人系统的软硬件环境带到一个合适的状态,正确完成硬件系统的初始化和linux的引导。
(3)内核和文件系统的裁剪、移植和下载。
(4)驱动程序的开发。包括CMOS摄像头驱动、ADC驱动、IIC驱动、用于寻迹的GPIO驱动等。
3.2 无线通信协议的设计
教学机器人通过无线网卡与PC机上位机采用无线网络传输。无线网络采用标准的802.11g标准,无线接入点IP和网关由确定,如确定机器人的IP地址为 192.168.1.10,并配置好网关。
通信底层协议采用标准的TCP/IP协议完成PC机上位机和机器人通信,其中PC机作为TCP的服务器端,机器人作为TCP的客户端。
在应用层通信协议上,增加ACK确认机制的通信模式来增加通信的可靠性。机器人向上位机发送数据报文,PC上位机收到数据报文后向机器人发送一个确认数据供机器人处理。除传输图片数据外,应用层数据每次传输采用长度固定为40 Byte,数据不够的用0x00补满。图像通过2次通信过程来完成,第一次机器人发出上传图像请求报文,上位机接受请求后返回接收请求数据报,机器人收到接收请求数据报文后发送图像数据,图像大小为高128像素、宽160像素。
3.3 直流电机控制软件
系统主控制器不直接驱动电机,通过ARM9处理器S3C2440A以串行通信方式发送命令给AVR单片机ATmega16L,由AVR单片机控制电机和处理编码器信息。采用AVR单片机的C语言进行电机控制软件设计。ATmega16L输出脉冲宽度调制(Pulse Width Modulation,PWM)信号来改变电机的转速。电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成比例,占空比越大,电机转得越快。
AVR单片机在对直流电机的控制中,在采集电流反馈值和电机转速的基础上,采用了PID的控制算法,算式如下:
式中:Kp,Ki,Kd分别为调节器的比例、积分和微分系数;e(t)是PID算法的输入;u(t)是输出[14]。
对电机速度的控制采用模糊PID控制[15],AVR单片机程序根据测速系统反馈回来的左、右轮电机当前速度值和设定速度值进行比较,针对不同情况适当改变Kp,Ki,Kd参数,进而控制输出2组PWM信号的占空比,实现调速和改变转向作用,使系统始终处较好工作状态,达到加速、减速灵敏以及稳定性好的目的。
教学机器人属于典型的时变、非线性、模型不确定复杂系统。将机器人行驶的道路归纳为直道、大弯道、“S”型小弯道三种类型。利用教学机器人在相同的路况下其特性基本不变,可分别确定这3种道路参数下的最佳PID参数。研制过程中,根据多次实验、测试和分析,总结为:在直道上系统取Kp=3,Ki=5,Kd=0,测试环境为一条长度为4 m的长直道;在大弯道上系统取Kp=10,Ki=1,Kd=1,弯道半径为 70-140 cm的弧线;在“S”型小弯道上系统取 Kp=7,Ki=4,Kd=3,测试环境为3个90°圆弧构成的“S”型小弯道。
4 结语
通过对教学机器人的测试和运行,机器人能通过寻迹方式稳定行驶,在到达各地形标志物时,能对不同标志物进行温度、距离、光频率的测量,并通过无线网络向PC上位机发送数据或图像,PC机上位机上显示的温度、距离数据准确,标志物图片清晰。使用S3C2440A嵌入式处理器和Linux操作系统增强了机器人的智能化水平,确保了对系统的运行速度和转向控制的精确性。该机器人平台在教育部全国职业院校技能大赛机器人赛项中控制准确、运行稳定,获得了全国一等奖的好成绩,系统各项功能的实现验证了软、硬件设计的可行性。该机器人系统具有技术先进性和功能可扩展性,以机器人技术为实践教学平台,对于培养大学生的科技创新意识和能力[16]有着重要的意义。
(References):
[1] 郭 丹,陈兴瑞,张国民.不同教育阶段教育机器人功能设计分析研究[J].江苏技术师范学院学报,2010(12):45-47.
[2] 汪治华,刘 岩,白 军,等.基于TMS320LF2407A的教育机器人硬件系统设计[J].电子技术,2010(10):71-73.
[3] 刘延飞,李 琪,毕经存,等.一种全自主移动机器人实验平台的设计与研究[J].实验技术与管理,2009(2):67-70.
[4] 宋 健.开放式4自由度教学机器人设计与开发[J].实验室研究与探索,2010(7):34-36.
[5] Samsung.S3C2440A 32-Bit RISC MICROPROCESSOR USER’S MANUAL[R].June 30,2004.
[6] Chih-Yang Chen,Tzuu-Hseng S.Li,Ying-Chieh Yeh.EP-based Kinematic Control andAdaptive FuzzySliding-modeDy-namic Control for Wheeled Mobile Robots[J].Information Sciences,2009,179(1-2):180-195.
[7] 张 伟,陈 迎,韩丽娜.智能小车系统的设计[J].实验室研究与探索,2011(9):53-61.
[8] 王 玲,孙 波.红外光电传感器自动寻迹智能车的设计与实现[J].沈阳理工大学学报,2010(2):58-59.
[9] 许恩江,吴 波,姚 斌,等.智能机器人的安防和服务功能系统设计及应用[J].实验技术与管理,2010(11):341-344.
[10] 赵小川,刘培志,张 敏,等.一种适用于移动机器人的障碍物快速检测算法及其实现[J].机器人,2011(2):198-201.
[11] 杨桂林.基于AT89S52的智能小车的设计[J].微计算机信息,2010(20):124-125.
[12] 李明河,王 伟,王 健,等.一种全方位移动机器人的系统设计[J].安徽工业大学学报(自然科学版),2010(1):51-54.
[13] 董宗祥,石红瑞,杨 杰.嵌入式智能小车测控系统的设计与实现[J].计算机测量与控制,2010(2):357-362.
[14] 祁志生,李启光,王 潇.基于MC9S12DG128的寻线智能车系统设计[J].北京信息科技大学学报,2010(1):78-80.
[15] 江武志,许娜芬,孙 菁.基于STC12C5A60S2的教育机器人的设计与实现[J].山西电子技术,2011(4):32-34.
[16] 董翠敏,刘永强.以机器人教育为平台培养大学生创新意识和能力[J].实验室研究与探索,2011,30(9):243-244.