您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 走迷宫机器人控制系统的设计
走迷宫机器人——控制系统的设计上海交通大学:钱真彦(F9903406班)苏稚英(F9903501班)摘要走迷宫机器人主要是基于自动导引小车(AGV——auto-guidedvehicle)的原理,实现小车识别路线,判断并自动规避障碍,选择正确的行进路线。导引方式采用与地面颜色有较大差别的导引线,使用反射式光电传感器感知导引线,障碍判断采用机械式传感器。驱动电机采用直流电机,电机控制方式为单向PWM开环控制。控制核心采用51单片机,控制系统与电路用光耦完全隔离以避免干扰。控制上采用分时复用技术,仅用一块单片机就实现了信号采集,路线判断,电机控制。该技术可以应用于无人工厂,仓库,服务机器人等领域。总体规划对于走迷宫小车控制系统设计主要有三个方面:一、控制电路设计;二、传感器选择以及安放位置设计;三、程序设计。从总的方面来考虑,传感器的使用数量应该尽量少以减少单片机的信号处理量,但是又必须能使小车行驶自如。控制电路要根据选用的电机和传感器来设计,主要考虑稳定性,抗干扰性。一、电路设计控制电路主要有电机驱动电路,单片机接口电路,电源电路三个部分。考虑到电机的起动电流和制动时比较大,会造成电源电压不稳定容易对单片机和传感器的工作产生干扰,所以,电机驱动电路和单片机以及传感器电路用光耦隔离。传感器的电源直接使用24V蓄电池,单片机的电源则通过7805将24V电源转换到5V。这里主要对驱动电路进行一下介绍:小车使用24V直流电机,对于这种小功率直流电机的调速方法一般有两种。(1)线性型使用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,成本低,加速能力强,但功率损耗大,特别是低速大转距运行时,通过电阻R的电流大,发热厉害,损耗大。(2)脉宽调制另外一种是较常用的脉宽调速(PULSEWIDEMODULATION——PWM),这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转的等优点。因此决定采用PWM方式控制直流电机。PWM调速分为双向式和单向式两种①双向式图一即为较常用的PWM调速电路,在一个脉冲周期内(T=Ta+Tb),T1和T3导通的时间为Ta,T2和T4导通的时间为Tb,这样在Ta这段时间内,电机通过的是正向电流,在Tb这段时间内为反相电流。当Ta=Tb时电机停转,TaTb时电机正转,Ta图一②单向式单向式的电路更双向式相同。不同的是,在电机正转时,Tb这段时间内不通过反向电流,电机反转时,Ta内不通过正向电流。其调速原理基本与双向式相同。单向式与双向式相比,三极管的开关频率少一半,比较不容易发生上下三极管导通而造成电源短路的情况,故可靠性有所提高,但控制性能比双向式稍差。外特性、低速性能也不如双向式好。图二图三如上左图所示为双向式调速方式下速度与占空比关系曲线,右图为单向式调速方式曲线。综合以上两种方式的优缺点,并考虑到走迷宫机器人对调速精度不太高,以及省电,器件损耗等各方面因素,决定采用单向式PWM。考虑到编程时可能会产生使T1、T2、T3、T4都导通的情况,以至电源短路,烧毁器件。为避免出现这种情况,设计了图四所示的电路。此电路只用一个三极管控制电路的通断,用四个继电器控制电流的流向,从而控制电机的转向。这样无论如何,都不会出现因编程原因而造成电源短路的情况。由于采用单片机控制电机,如果单片机的电源采用与电机同一电源,虽然经过稳压、滤波,但是单片机仍然容易受到电机以及继电器的干扰,为了避免干扰,采用光电隔离,单片机和电机采用两套电源。如图二红色方框所示,4N26光耦一般需要2mA以上的驱动电流,由于单片机的输出电流只有几百微安,故需要先接74LS245或者接一个三极管增加驱动能力(74LS245的高电平驱动能力为15mA)。光耦的输出再接给达林顿管,考虑到电机的短路电流有2A,故选用TIP132型号的达林顿管(允许通过的最大瞬时电流为8A)。另外在达林顿管的C极和电源的正极之间接一个耐流为2A的二极管(蓝色方框中),这样在关断电源后,使继电器反相,可以让电机放电,这样小车不至于因为惯性而滑行太远(实验证明,如果不加二极管,同样的初速度,小车要在断电后继续前进20-30cm,如加了二级管则只要继续前进10cm左右)。考虑到走迷宫机器人对电机转速,距离控制的要求不高,为了简化程序和外接电路,所以没有考虑采用闭环PWM控制,用开环PWM控制就可以实现小车的功能。图四二、传感器:1、传感器的选择:小车要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当与给小车一个视觉功能。实现机器人的视觉功能有多种方式,有使用CCD摄像头进行图象采集和识别方法,但是此方法,在资金上耗费较多,而且还牵涉到图象采集,图象识别等领域,为了简单起见,使用多个反射式光电传感器。反射式光电传感器的光源有多种,有来自于红外发光二极管,普通发光二极管,以及激光二极管,前两种光源容易受到外界光源的干扰,而激光二极管发出的光的频率较集中,传感器只接收很小个频率范围内的信号,不容易被干扰。对于障碍物的检测方面,可以使用超声波传感器,效果也较好,但相比之下,用机械式的传感器(微动开关)价格便宜,使用方便,无需提供电源。 图五2、传感器安放位置(1)机械传感器:放置在小车的最前端,当小车碰到障碍物后者墙壁时,机械传感器就能给单片机一个中断信号,通知单片机遇到障碍,需要改变方向。(2)光电传感器摆放位置:(如图六)中间四个传感器用来检测小车是否走偏,前面两个用来判断小车是否到达路口,后面两个用于转弯时,小车的位置调整。图六下表列举了几种主要传感器输入情况:三、程序设计主程序主要起到一个导向和决策功能,决定什么时候小车该做什么。小车各种功能的实现主要通过调用具体的子程序。子程序有以下几个:(1)检测光电传感器子程序:根据需要直接从端口读取即可,不过为了防止出现干扰和错误信号,采用延时读取的方法,即在第一次读取后延时一段时间再读取,如果第二次读取的信号和第一次的不一样,则说明可能存在干扰信号,就重新读取并比较,直到两次读取的信号一致为止。(2)行走路线子程序:用于设定行走路线。(3)PWM子程序:用于控制马达转速。89C51芯片没有PWM输出功能,需要通过编程实现。为了在输出PWM波时,单片机仍能执行其他程序,可以利用单片机内部的定时器溢出中断来实现。占空比占用一个字节的RAM,占空比D=N/256。(4)判断路口子程序:对传感器的输入值进行判断,以判断是否到达路口。(5)延时子程序:定时功能。(6)转弯子程序:当小车到达岔口并需要转弯时调用此程序。主要让小车在到达需要转向的路口时减速,调整位置,转向,然后继续前进。(7)走直线子程序:小车在直导引线行驶时的调整程序。根据中间的四个光电传感器的反馈值来判断小车偏离导引线的距离,并根据偏离距离的不同,对电机进行调速,使左右电机有差速,以实现对小车的偏离进行调整(脉宽调速是使用单片机内部中断产生周期约为8ms的方波,通过改变高电平的宽度来进行改变电机的转速)。如图六所示,下半张是小车偏离导引线的情况,此时左轮减速,直到小车图六的2、3号传感器再次检测到导引线,即上半张图的情况,虽然此时小车回归导引线,但是小车的行进方向与导引线并不平行,小车仍会再次偏离,这样下去小车的行驶路线就变成了S型曲线,而且弧度会越来越大最终脱离导引线,因此如果小车出现偏离,就做下标记,当小车行驶回导引线时(中间四个光电的值为0110),调用一个调整子程序,根据前次小车偏离的程序,进行不同程度的调整。也就是在小车回归导引线的时候让(如图中的情况)右电机停转一端时间,使小车的行驶方向纠正回来,与导引线平行。以下是主程序的流程图:四、走迷宫策略:如果迷宫不太复杂,且主要为纵横方向的直线,可采用让小车在路口始终左转或者始终右转的方法走迷宫,也就是让小车沿迷宫的边沿走,只要在出口处放置一个标记,让小车用光电传感器识别即可。另外也可以让小车在每个路口处记录下支路数,以及已经走过的支路,如果此路口不通,退回选择没有走过的支路。这样最终也能走处迷宫。附录参考文献:[1]胡汉才编著。单片机原理及接口技术。北京:清华大学出版社,1996年。[2]钟约先,林亨编著。机械系统计算机控制。北京:清华大学出版社,2001年。[3]王彦平,任延群,危胜军等编著。PROTEL99电路设计指南。北京:清华大学出版社,2000年。
本文标题:走迷宫机器人控制系统的设计
链接地址:https://www.777doc.com/doc-2007394 .html