第 25 卷 第 7 期
2006 年 7 月
国 外 电 子 测 量 技 术
Foreign Elect ronic Measurement Technology
Vol. 25 , No. 7
J ul. , 2006
作者简介 : 朱益斌 (1983 - ) ,男 ,扬州大学电子信息工程专业。
胡学龙 (1960 - ) ,男 ,扬州大学电子信息工程学院教授 ,主要研究方向为信号与信息处理。
研究与
自主式寻迹机器人小车的设计
朱益斌 胡学龙 朱亚锋 过晓星
(扬州大学信息工程学院 扬州 225009)
摘 要 : 本文结合机器人竞赛 ,介绍了自主式寻迹机器人小车的设计和具体实现。机器人以凌阳公
司的 SPCE061A 为平台。机器人由传感器、控制器和驱动器等模块组成。采用反射式红外传感器
来辨别路线。传感器模块包括了消除干扰信号的电路。对反射光强进行测量 ,以此为依据设置阈值
电压以保证系统的可靠性和准确性。控制模块预置了导航地图并实现访问景点的 PID 控制算法。
驱动模块的电机速度采用 PWM 方式进行控制。
关键词 : 寻迹机器人 红外传感器 光电编码器 PID 算法 PWM
Design of auto2searching for track car in robot
Zhu Yibin Hu Xuelong Zhu Yafeng Guo Xiaoxing
( Yangz hou Universit y , Yangz hou 225009 , China)
Abstract : Combined wit h robot contest , t he design and implementation of auto2searching for t rack
vehicle in robot is int roduced. The robot is designed on t he basis of t he SPCE061A system. It con2
sist s of sensor , cont roller and driver . Inf rared sensor is used to recognize t he route. The sensor cir2
cuit can eliminate t he noise. The st rength of the reflected light is measured and suitable t hreshold
voltage is set to ensure t he reliability and precision of t he system. Certain elect ro2map is p re2set in
t he cont roller and t he PID algorit hm is run to visit t he scenic spot s following t he map . The velocity
of motor in driver is cont rolled in PWM manner .
Keywords : Robot of auto2searching for track , infrared sensor , photoelectric encoder , PID algorithm , PWM.
0 引 言
随着科学技术的发展 ,机器人在社会各领域的
作用越来越大。对机器人的研究已成为热门课题。
智能寻迹机器人是一种被广泛研究的机器人 ,而且
国内外都有许多重要的比赛。它是在给定的区域内
延着轨迹完成对各个目标点的访问。其主要指标是
速度和顺利完成访问得分点的能力。智能寻迹机器
人涉及到传感器技术 ,单片机控制、信号处理、电机
驱动、人工智能、驱动电源的设计等诸多领域。本文
描述的智能寻迹机器人采用的是凌阳 SPCE061A
十六位单片机 ,利用红外传感器感知外界信号、光电
编码器和 PID 算法控制直线行走姿态。
1 技术
1. 1 对机器人赛车的要求
机器人赛车必须是全自主方式。比赛场地内的
光线不能保证绝对均匀。在比赛过程中 ,除了启动
操作之外 ,不得用任何有线或无线方式对机器人赛
车进行操作。比赛在 6m ×6m 的场地进行。共有
12 个景点 (景点的难度不同 ,分值不同) 和起止点组
成 ,路径具有多个十字或丁字路口。所有的景点都
在道路的两旁 , 景点与主干道最短距离不小于
50cm ,两个路口之间的距离也不小于 50cm。赛道
的
面为绿色 ,没有明确的边界 ,赛道的中心线是宽
度为 2. 4cm 的白线 ,用于机器人的导航。在每个景
点处都安装有一块白色挡板 ,用于代表各景点。机
器人碰到白色挡板 ,即可获得该景点的分值。
1. 2 传感器模块
由于机器人活动场地的背景为绿色 ,行走路线
为白色导航线 ,所以首先要解决的是机器人如何分
辨白色和绿色 ,这就涉及到传感器的选择。
本机器人采用红外传感器 ,相对于 CCD 等传感
器 ,红外反射式传感器具有价格低廉 ,外围电路简
2006 年第 7 期 朱益斌 等 :自主式寻迹机器人小车的设计 41
单 ,并能够满足本机器人的要求。当发光管照射在
白色导航线上时 ,反射光强 ,光敏三极管导通 ;当照
射在绿色背景时反射光很弱 ,光敏三极管截止。反
射光的强弱受到多种因素的影响 ,如反射表面的形
状、颜色、阳光、灯光照射等。如果直接将测量到的
信号传输给单片机 ,容易受干扰而产生错误。采用
对反射光强进行测量 ,以此为依据设置阈值电压的
方法可以提高系统的可靠性和准确性。
反射光强度是反射面与传感器之间距离的非线
性函数 ,根据系统的实际情况 ,通过实验得出传感器
在测到导航线时的电压 ,运算放大器 L M324 就以
此作为比较的依据。表 1 列出了本系统的四个传感
器的测量数据。
表 1 实验数据
传感器编号 检测白线时的电压 检测绿纸时的电压
1 1. 18 V 0. 23 V
2 1. 36 V 0. 31 V
3 1. 41 V 0. 27 V
4 1. 59 V 0. 44 V
由此可见 ,传感器的特性差异很大 ,若直接作为
控制器的输入信号会产生误差 ,解决方法有以下几
种 :
(1)先把每个红外传感器的特性都测量好 ,然后
分别改变它们外围电阻值把它们的输出电压调节到
同一门限上。
(2)分别调节各个传感器的高度 ,让它们的输出
电压具有同样的门限。
(3)为比较器选择一个合适的比较电压。
前两种方法由于硬件电路不容易再改动 ,不能
很简单的实现 ,即使能实现 ,如果有传感器或相关器
件损坏 ,就不容易更换。本系统采用第三种方案 ,设
定阈值电压为 0. 9V。传感器实际电路如图 1 所示。
图 1 传感器原理图
1. 3 控制器模块
机器人以凌阳公司的 SPCE061A 开发板为实
现平台。SPCE061A 型单片机是凌阳公司的 16 位
微处理器 ,具有体积小、集成度高、易扩展、功耗低、
中断处 理 能 力 强 等特 点。内 嵌 32 K 字 闪 存
FL ASH ,处理速度高 ,能够方便地完成普通单片机
的功能 ,还具有较强的语音信号的处理能力。
1. 4 驱动模块
机器人的电机由单片机提供的不同占空比的方
波信号控制。电机驱动芯片是 L M293 ,它能最大提
供 1A 的驱动电流 ,能同时控制两组电机。电机的
驱动电路如图 2 所示。
图 2 电机驱动电路
若不采用适当的算法 ,机器人行走时会出现
“S”形曲线 ,不光影响速度 ,还容易偏离轨迹。采用
光电编码器和码盘 ,以及鲁棒性较强的算法 ,就能很
好地克服这种现象 ,并能够测出机器人的速度 ,以及
转弯的角度。
SPCE061A 的两个定时/ 计数器 TIMEA、TIMEB
和 LM293 的两使能端 EN1、EN2 连接 ,产生 PWM 信
号控制电机 ,控制方波的占空比可以控制机器人的速
度。LM293 的 4 个输入端 IN1~ IN4 被分为两组 ,通
过输入高/ 低或低/ 高电平实现电机的正/ 反转 ,从而
使机器人前进/ 倒退。值得注意的是每组输入端禁止
出现同高或同低 ,以免烧毁驱动芯片。
2 程序和算法
主程序流程图如图 3 所示。机器人能否成功访
问各点 ,关键就是能否走好直线和在各交叉点按照
人的意愿正确转向。为此 ,需要建立导航地图和编
写鲁棒性较强的直线行走算法。经实际使用 ,机器
人寻迹效果很好。
2. 1 导航地图
机器人寻迹的是一条连续的线路 ,在线路上有
不同的结点 ,而结点有可能只是转弯点 ,也有可能结
点上有景点。这和链表的数据结构类似 ,把线路上
的结点作为链表的结点 (设有 N - 1 个) ,结点是一
42 国 外 电 子 测 量 技 术 第 25 卷
图 3 程序流程图
结构体 ,结构体内包含了结点编号 ,如果只是转弯点
则提供转弯的方向、如果有景点则提供景点的方向
和编号。结点结构体如下 :
Struct Rdpoint
{ char PointNo ;
/ 3 结点编号 3 /
char RdBranch ;
/ 3 道路转弯方向 3 /
char SpotNo ;
/ 3 该结点上的景点的编号 3 /
char SpotOrnt ;
/ 3 该结点上的景点的方向 3 /
st ruct Rdpoint 3 next
}
当机器人走过一个结点后 ,就调用下一个结点为
它下一步的控制提供依据 ,直到最后一个结点结束。
2. 2 直线的主要程序
v_1 = (float) round (1) 3 d_1/ t ;
/ 3 v_1 为左轮的速度 , round (1) 为左轮在时间 t 内的
脉冲数 ,d_1 为左轮的分辨率 3 /
error_1_i = v - v_1 ; / 3 求速度差 ,v_1 为左轮当前
速度 ,v 为期望值 3 /
v_2 = (float) round (2) 3 d_2/ t ;
error_2_i = v - v_2 ; ??
u_1_i = k1 3 (error_1_i + t/ ti1 3 error_1_i2 + td1/ t 3
(error_1_i - error_1_i1) ) + v ;
/ 3 求左轮的控制量 3 /
u_2_i = k2 3 (error_2_i + t/ ti2 3 error_2_i2 + td2/ t 3
(error_2_i - error_2_i1) ) + v ;
drive (1 , (int) u_1_i) ; / 3 对左轮进行控制 3 /
drive (2 , (int) u_2_i) ;
该程序采用 PID 算法进行反馈控制。PID 控
制结构简单 ,参数容易调整 ,不必求出被控对象的数
学模型便可以进行调节。PID 公式如下 :
U = K ( Ei + T/ T I ×∑Ej + T d / T ×( Ei -
EI - 1 ) ) + U0
这里 U 是控制量 ,作为 Drive 的控制参数 ,U0是
控制量的基准即电机希望的速度 ,E 是实际速度与期
望速度的偏差 ,Ei 是第 i 次采样的偏差 ,Ei - 1是第 i - 1
次的偏差 , ∑Ej是偏差的累加 , K是调节的比例系数 ,
T 为采样周期 , Ti是积分时间 , Td是微分时间。
利用红外传感器来判断机器人处在直线上还是
结点上 ,在直线上就调用直线程序。此程序的执行
要结合硬件光电编码器和码盘来使用。码盘随着轮
子一起转动 ,码盘上的黑条和白条交替经过光电编
码器 ,构成脉冲串 ,脉冲串再输给单片机进行计数。
程序中 d_1 和 d_2 是左右轮的分辨率 ,在不同的时
间段内读出光电编码器的脉冲数以及轮胎的转动圈
数求取平均值 ,利用下面的公式 :d = ( m ×l) / p 计算
分辨率。
因为两个轮子可能存在偏差 ,所以 d_1 和 d_2
要分别求出 ,否则会影响系统的稳定性。比例系数
K和采样周期 T 通过实验得到。这些值的确定都
是为了尽可能地保证系统的稳定。转弯时通过已经
得到的第 i 个点的转弯方向 ,单片机同时控制两个
轮子互相反转 ,使机器人的中轴保持在导航线上。
利用红外传感器感测量转弯是否成功。
3 结论
本文给出了实现机器人寻迹的方法。利用红外
传感器进行寻迹 ,用光电编码器和 PID 算法对走直
线进行控制 ,以链表结构作为电子地图。制作的机
器人能很好的进行寻迹和访问目标点 ,运行过程稳
定 ,抗干扰能力较强 ,反应速度快。对进一步研究自
动行走机器人技术有借鉴作用 ,可运用于小区和仓
库等场所的自动巡视机器人的研发。
参考文献
[ 1 ] 雷思孝 ,李伯成 ,雷向莉. 单片机原理及实用技术 [ M ] .
西安 :西安电子科技大学出版社 ,2004.
[ 2 ] 罗亚非. 凌阳 16 位单片机应用基础[ M ] . 北京 :北京航
空航天大学出版社 ,2003.
[ 3 ] 吴建平 ,殷战国 ,曹思榕 ,等. 红外反射式传感器在自主
式寻迹机器人导航中的应用 [J ] . 中国测试技术 ,2004 ,
30 (6) :21223.
[ 4 ] 沈猛 ,徐德民 ,李俊 ,等. 轮式移动机器人组合导航方法
及试验研究[J ] . 计算机仿真 ,2005 ,22 (7) :85287 ,152.
[ 5 ] 王洪瑞 ,方一鸣 ,路宏广 ,等. 光电脉冲编码器在并联机
器人位移检测中的应用 [J ] . 工业仪表与自动化装置 ,
1994 (6) :35237.
[ 6 ] 本书编写组编. 最新国外线性器件手册 (下) [ M ] . 南
昌 :江西科学技术出版社 ,1998.