基于赛道记忆的迷宫智能小车的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于赛道记忆控制算法的智能小车的设计
摘要:本系统采用A T89S52芯片为核心进行设计,实现了小车智能寻迹,自主学习和信息无线传输等功能,从而在监测端对获取的信息进行实时显示及语音提示。
本系统真对现实中对未知区域实时探测的需求,适当进行了简化,利用迷宫寻迹进行模拟。
小车在迷宫中行进的过程中,会自动寻迹,通过一次迷宫遍历,就能自主学习,计算出最优路径,全过程可在监测端实时显示。
关键词:语音提示;自主学习;控制算法;无线通信
引言
当今社会,科学技术日新月异,应用自动化设备,计算机处理,现代化通讯,数字化信息,现代化显示设备等高新技术而建立的现代化智能监控等系统已经得到充分的发展与应用,智能机器人也就应运而生。
同时,在建设以人为本的和谐社会的过程中,智能服务机器人能够完成考古发掘,海底揭密,宇宙探索等危险作业,以保证人身安全。
本系统便是一个简化的智能机器人,能够实现智能寻迹和迷宫路径优化等功能,可进一步完善,应用到实际生活,为人们的生活提供便利。
1.系统框架
1.1 功能概述
本系统主要是让小车自主的从迷宫的入口走到出口,并把行走的轨迹传输给监测端,显示出小车的实时信息,并以语音形式播报,另外,无线传输模块还具有自动组网的功能,在多台小车之间也可以通信,这样,多台小车同时探测这一迷宫能大大的提高效率。
1.2 框图
如图1所示,首先传感器检测路面信息,将检测到信息传给单片机,单片机对信息进行分析、处理以后,一方面通过电机驱动控制电机转动,另一方面将数据通过无线电路发送给监测端,当监测端收到信息后,将数据转换为字符通过液晶显示,同时用语音模块提示相关信息。
图1 硬件框图
2.硬件系统设计
2.1 单片机最小系统
本系统采用AT89S52单片机作为核心控制器。
最小系统如图2所示。
图2 最小系统
2.2 电机驱动
采用专用芯片L297N作为电机驱动芯片。
L297N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L297N可以分别控制两个直流电机,而且还带有控制使能端。
用该芯片作为电机驱动,操作方便,稳定性好,性能优良。
图3 电机驱动
2.3 弯道检测与识别
图4 弯道检测与识别
2.4 无线发射与接收
无线通信模块的作用非常重要,它为小车的行走指明了方向,也拓展了小车的其他功能。
当小车行走时,每隔一定时间将转弯角等信息传送给监测端,可实时了解小车的行走信息。
该无线模块是仿Zigbee的,但又不同于它。
有了此无线通信模块,就可以用多辆小车共同探测迷宫了。
2.5 液晶显示与语音提示
液晶显示采用128*64LCD,语音芯片采用ISD1720。
3.软件系统设计
3.1 软件流程图
如图1.4所示,首先执行主程序,小车开始前进,判断是否为岔路口,如果是则进一步分析路口类型并通过无线发送路口信息,并依照“右手原则”执行对相应的转向操作;如果不是岔路口,则继续直行并判断路口信息。
如果路口为终点则停止运行,接着小车进行路径优化,并再次以最优路径走完迷宫。
图5 软件流程图
3.2 路口识别与处理
本设计采用寻线传感器实现对赛道的识别,当小车沿赛道行走时,寻线传感器会显示不同数据。
(说明:检测到赛道,用1表示,检测到地面,用0表示,2所示)。
为方便说明,首先定义两个概念,“右手原则”和“岔道口”。
右手原则:智能小车执行转向优先级:右转>直行>左转
即小车在线迷宫中,遇到右转路口,一定右转。
如果遇到“十字路口”(即有左转、直行和右转),小车会右转;如果遇到“直行或左转路口”,小车会直行;只有遇到“左转路口”,小车才左转。
“岔道口”:小车可以有一个以上行进方向的路口。
如图6所示,而图7则为非岔道口。
图6 岔道口
图7 非岔道口
3.2.1 死胡同的识别和处理
当寻八字传感器数值从“00100”变化为“00000”时,则说明小车遇到了死胡同,直接右转调头即可。
图8 死胡同
3.2.2“右转路口”和“右转或直行路口”识别和处理
当小车遇到这两种路口时,传感器输出模式都是“00111”,无法判断具体是哪一个路口,因此,使小车继续前行一定距离,使小车“越过”赛道,再检测一次,如果寻线传感器显示数值为“00000”,说明是“右转路口”;如果寻线传感器显示数值为“00100”,则一定为“右转或直行路口”。
依据“右手原则”,当遇到“右转路口”时小车就一定执行“右转”的动作,遇到“右转或直行路口”时,则执行“右转”的动作。
图9 右转路口和右转或直行路口
3.2.3 “左转路口”和“左转或直行路口”识别和处理
当小车遇到这两种路口时,传感器输出模式都是“11100”,依然无法确定是哪一个路口,因此采用同样的方式,让小车继续前行一定距离,使小车“越过”赛道再次检测赛道,如果寻线传感器显示数据为“00000”,则说明是左转路口,如果显示“00100”,就一定是左转或直行路口
依据“右手原则”,当遇到“左转路口”时,小车就一定执行“左转”的动作,遇到“右转或直行路口”时,则执行“直行”的动作。
图10 左转路口和左转或直行路口
3.2.4 “丁字路口”、“十字路口”和“终点路口”识别和处理
当小车遇到这三种路口时,传感器输出模式都是“11111”。
同样无法确定是哪一个路口,因此采用同样的方式,让小车继续前行一定距离,使小车“越过”赛道再次检测赛道,
如果寻线传感器显示数据为“00000”,则说明是“丁字路口”,如果为“00100”,则是“十字路口”,如果依然是“11111”,说明已到达“终点”。
依据“右手原则”,当遇到“丁字路口”时,小车就会执行“右转”的动作,遇到“十字路口”时,也会执行“右转”的动作,如果到达“终点”,则停止运行。
图11 “终点”、“丁字路口”和“十字路口”
3.3功能简介
在迷宫中,有十字路口、直行或左转路口、死胡同等,从下图可以看出,有些线路是无效线路,如死胡同,就可以绕行,但小车并不知道哪些路口是有效路口,哪些是无效路口,因此,小车首先依据“右手原则”穿越迷宫,路径如下图蓝线所示:
3.4 自主学习算法实现
前面已经定义了“岔道口”的概念,即小车可以有一个以上的行进方向的路口称为岔道口。
当小车穿越迷宫时,每经过一个“岔道口”,就在小车内记录一个字符:如果是直行就保存一个“S”;如果是左转就保存一个“L”;如果是右转就保存一个“R”;如果是掉头,就保存一个“U”。
只要是岔路口,就要记录一次。
右转和左转路口不属于“岔道口”,因此小车经过时就不必记录。
小车开始从起点出发,遇到第一个“岔路口”–“直行或左转路口”。
根据“右手原则”,小车将直行。
这时候,小车将在存储器中记录一个直行的标示符“S”,如图12所示:
图12 第一个转弯
小车直行后会遇到一个“死胡同”。
同样的,在存储器中记录一个标识符“U”,此时,存储器中的数据为“SU”。
从图中可以看出小车每记录一个死胡同类型的岔路口,在任何线迷宫中,最佳或最短路线都不包括死胡同线路,因此小车走了错误路线,需要更正。
图13 第二个转弯
小车掉头回来,又会遇到一个“直行或右转路口”,根据右手原则,小车会
右转。
同时,小车将在存储器中记录一个左转标示符“R”。
这样存储器中的标示符就变成了“SUR”。
图14 第三个转弯
从上面的介绍中可以知道死胡同类型的岔路口将不会在小车穿越迷宫的路径中,所以小车应该在第一个岔路口向左转“L”,才可以避免经过死胡同。
以上分析可以得出:SUR=L(即小车直行、掉头、右转就相当于小车直接左转)。
这样在存储器中“SUR”就被标示符“L”取代。
这就代表着当小车再次穿越这个线迷宫时,遇到第一个岔路口直接左转。
小车继续前进,就遇到了十字路口类型的岔路口,根据右手原则,小车将会右转,如图15所示。
这时候,小车将在存储器中记录一个右转的标示符“R”。
这样存储器中的标示符就变成了“LR”。
图15 第四个转弯
小车继续前进将遇到“左转路口”,前面介绍过,这种只有一种方向选择的路口不属于“岔路口”,所以这里小车不记录转弯标示符“L”。
接下来又是死胡同类型的岔路口,小车仍旧做掉头动作。
同时在存储器中记录一个掉头标示符“U”,这个时候存储器中的标示符就变成了“LRU”。
如图16所示。
图16 第五个转弯
小车掉头回来,再次遇到“十字路口”,根据右手原则,小车将做右转。
同时,小车将在存储器中记录一个右转标示符“R”。
这样存储器中的标示符就变成了“LRU R”。
从17可以看出,小车在第一遇到十字路口时不应该右转,而是应该前进“S”,这样才可以避免死胡同。
从以上分析我们可以得出:RUR=S。
这样在存储器中“RUR”就被标示符“S”所取代,这就代表小车再次穿越这个线迷宫时,遇到第一个十字路口将直行。
这个时候小车存储器中的标示符将变为“LS”。
图17 第六个转弯
小车右转后又遇到一个死胡同,同样的在存储器中将记录一个标示符“U”,这样存储器中的标示符就变为“LSU”,如图18所示。
图18 第七个转弯
小车掉头后,根据右手原则,再次遇到十字路口,将右转。
同样小车在存储器中记录一个标示符“R”。
这样存储器中的标示符就变为“LSUR”。
根据前面介绍的,SUR= L。
这样存储器中的LSUR标示符就被LL所替代。
如图19所示。
图19 第八个转弯
小车经过十字路口后,又将遇到两次“右转路口”,同样这不属于岔路口,小车不在存储器中做左转记录。
小车继续前进,然后小车走到了线迷宫的终点,此时小车存储器中的标识符为:LL。
图20 到达终点
当小车再次穿越这个线迷宫时,小车就不再遵循右手原则,而是按照存储器中的标识符的提示来完成转弯,如图所示。
此路径是整个迷宫中最短的路径。
那些死胡同则得到避免,这样小车就具备了自主学习的能力。
图21 自主学习
使用同样方法,共总结出五个公式:
RUR=S(右转+掉头+右转=直行)
SUR=L(直行+掉头+右转=左转)
RUS=L(右转+掉头+直行=左转)
SUS=U(直行+掉头+直行=掉头)
LUR=U(左转+掉头+右转=掉头)
通过这五个公式,小车就可以正确简化赛道,达到自主学习的目的。
4.结束语
本设计的特点是小车有自主学习能力,走完一遍赛道后,当再次行走时便会以最优路径行走,但也仍然存在一些问题,如封闭路口的算法还没有实现,有待改进和完善。
Based on the track of intelligent control algorithm of memory (Department of physics and electronic engineeringWeinan Teachers University )
Sun Yiming Pan Xiaolin Hao Luo
The system, whose core is the AT89S52 ,utilizes these rich resources reasonably from the core to realize functions such as intelligently tracing ,autonomously learning ,information’s wireless transmission and so on .And so it can display the real-time information which is obtained from the monitoring port ,and make the corresponding voice prompt .In order to satisfy the needs that realizing the real-time detection in an unknown area ,this system makes some appropriate predigestion .During the whole process ,we simulated the system with the labyrinth tracing .when the little car tracks in the maze ,it can trace autonomously ,and after a traverse through maze ,it can calculate the optimal path from learning .And the whole process can be displayed in the monitoring port .
Voice prompt:independent study and control algorithm, wireless communication
参考文献
[1] 陈少克,张辛献。
玩具机器人行走机构运动轨迹的研究与分析[J].轻工机械,2005,23 (3):54-56.
[2] 朱益斌,胡学龙,朱亚峰,郭晓星,自主式寻迹机器人小车的设计[J].国外电子测技术,2006.25 (7);40-42.
[3] 王超艺,王宜怀,基于红外传感器的自循迹小车控制系统的设计[J]。
电子工程师。
2008,34 (11):60-62.
[4] 吴建平,殷战国,曹思荣,等。
红外反射式传感器在自主式循迹小车导航中的应用[J].中国测试技术,2004,30 (6);21-23.
[5] 王晶,翁显耀,梁业宗。
自动循迹小车的传感器模块设计[J].传感器技术,2008,22:192-194.。