基于红外传感器的机器人避障控制的研究.docx
- 文档编号:8947538
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:27
- 大小:273.34KB
基于红外传感器的机器人避障控制的研究.docx
《基于红外传感器的机器人避障控制的研究.docx》由会员分享,可在线阅读,更多相关《基于红外传感器的机器人避障控制的研究.docx(27页珍藏版)》请在冰豆网上搜索。
基于红外传感器的机器人避障控制的研究
基于红外传感器的机器人避障控制的研究
產f■!
w■T■jTha■I■BaT■i・kT■'■J■■rf'ii■rWAiwJ
本科毕业论文(设计、创作)
题目:
基于红外传感器的机器人避障控制的研究
学生姓名:
XXX学号:
XXXXXX
所在院系:
信息与通信技术系
专业:
电气工程及其自动化
入学时间:
2010年09
月
导师姓名:
XXX职称/学位:
xxxx/xxx
导师所在单位:
XXXXXXXXXXXXX
完成时间:
2014年5
安徽二联学院教务处制
基于红外传感器的机器人避障控制的研究
摘要:
自主避障功能是移动机器人的重要且必要的功能之一。
本文基于红外传感器研究并实现了机器人的自主避障设计。
以AT89C51单片机为控制核心,采用红外发射管发射红外光,红外接收管将接受到的障碍物信息,即反射回的红外光通过ADC0808将其转化为数字信号送入单片机,在单片机中通过汇编程序实现对数字信号进行变换和判断——此判断结果反映了该红外传感器探测方向上的障碍物情况,单片机内置程序对各个红外传感器返回后的障碍物情况进行编码——此编码则反映了避障机器人周围环境情况,根据此编码选择合适的避障策略,然后单片机会发出PWM波,经L298芯片驱动左右电机的转动,从而控制机器人的行进,同时为了能够精确控制车轮的行进速度,采用光电码盘的方法测取车轮速度并返回到单片机中,由单片机中的数字PI控制器将返回速度和给定速度相比较,输出增量值对电机速度校正,从而能很好的保持机器人速度的稳定。
本设计结构简单,较容易实现,比较成功的实现自主避障功能要求。
关键词:
自主避障;单片机;红外光
Basedoninfraredsensorrobotobstacle
avoidancecontrol
Abstract:
Autonomousobstacleavoidancefunctionisoneofthemobilerobotimportantandnecessaryfunctions.Thispaperdescribestheinfraredsensor-basedautonomousobstacleavoidancerobotdesign.BythismethodAT89C51SCMcore,theuseofinfraredemissiontubeemitsinfraredlight,infraredreceiverwillreceivetheobstacleinformation,namelyinfraredlightreflectedbackbyADC0808convertittoadigitalsignalintotheSCM,theSCMtheprocedureforconvertingthedigitalsignalandjudgment-thisjudgmentresultsreflectthesituationoftheinfraredsensortodetectobstaclesinthedirectionoftheSCMbuilt-inprogramonthecircumstancesofeachobstacleinfraredsensorandreturnedtoencode-thiscodereflectstheavoidanceimpairedenvironmentalconditionsaroundtherobot,andthenselecttheappropriatecodingbasedonthisavoidancestrategy,MCUwillissueaPWMwave,turningaroundafterL298motordrivertocontrolthetraveloftherobot,andinordertobeabletopreciselycontrolthetravelingspeedofthewheel,usingphotoelectricmethodcodediscwheelspeedmeasurementstakenandreturnedtotheMCU,theMCUdigitalPIcontrollerwillreturntothespeedandthegivenspeedcomparedtotheoutputoftheincrementalvalueofthemotorspeedcorrection,sothatitcanmaintainagoodspeedrobotstable.Thedesignofthestructureissimple,relativelyeasytoachieve,themoresuccessfulcompletionoftherequest.Keywords:
selfobstacleavoidance;SCM;infraredlight
第一章前言0..
1.1移动机器人的发展历程及定义0
1.2移动机器人的国内外研究现状与意义0
1.3自主避障小车的主要内容1
第二章自主避障机器人的结构设计方案3
2.1自主避障机器人的走行结构设计3
2.2电机驱动单元设计3
2.2.1驱动电机的选型3
2.2.2电机驱动方式的选择3
2.2.3光电测速方式一槽式光电开关4
2.3红外传感器检测单元设计4
2.3.1红外传感器4
2.3.2红外测距原理4
2.4软件设计部分4.
2.5主控单元的设计5.
第三章自主避障机器人的硬件设计7.
3.1稳压电路设计7.
3.2自主避障机器人的单片机控制电路设计7
第四章自主避障机器人软件设计12
4.1主程序流程12
4.2检测子程序流程1.3
4.3策略选择程序流程15
4.4电机驱动程序流程16
4.4.1电机驱动程序流程17
4.4.2测速中断程序流程18
第五章总结与展望20
5.1工作总结20
5.2工作展望20
致谢22
参考文献23
第一章前言
1.1移动机器人的发展历程及定义
机器人技术涉及到了了很多学科的发展成果,是现代高新技术的发展前沿,是当前科学研究讨论的热门话题。
而移动机器人又是机器人学中的一个大的分支,也是机器人学发展的不可或缺的一部分。
随着传感技术、计算机科学、人工智能及其他有关学科的广泛应用,移动机器人正在朝着智能化和功能多样化的方向进行深入,它的应用亦然愈来愈普遍,几乎融入到各个领域。
移动机器人的最初建议开始于20世纪60年代末期的一个简单的想法,随后各种类型的机器人接踵而至出现并迅速在工业生产中呈现出实用化应用,抬高了许多相关产品质量。
紧跟着机器人的不断发展,人们发觉到,这些机器人不能满足很多方面产品的需求。
20世纪80年代末期,许多国家有策略地展开了移动机器人技术的研发,主要方针是人工智能技术的应用,在一定的环境下完成机器人体系的自主化,解决了目前所有机器人只能固定化的难题。
自主是移动机器人探测目的物时且不对操作环境作任何的改变和移动并且在无人为干预的前提下,有目标的运动和完成所要求的避障操作任务。
自主化运转是移动机器人的重要前提,也是当前研究的难题。
移动机器人是一种可通过传感器信息和自己的状态,实现在有障碍的环境下自主运动,从而完成某一任务的机器人。
1.2移动机器人的国内外研究现状与意义
80年代初期,美国国防高级研究计划局(DARPA)特意立项声明,订立对地无人作战设备平台的战略战术规划。
自那时以来,世界各地开设了一个前奏,一个室外移动机器人的综合研究。
不仅在算法的研究进展,对移动机器人的避障研究工作的仿真工作,和一些已经成功地付诸实践,科研项目,2004由美国宇航局发射的“勇气”和“机遇”探测器登陆火星,相应的传感器获取环境信息来决定绕过障碍物。
它们的自主性和智能性再次向前迈了一大步。
而我国清华大学开发的THMR-IH,THMR-V型机器人,其行动决策与规划技术已达国际先进水平。
移动机器人的避障是一个伟大的成就,随着传感器技术,控制理论和人工智能技术的成熟,在移动机器人的应用领域不断扩大的同时,机器人
所处环境也越来越复杂,避障技术要求越来越高。
1.3自主避障小车的主要内容
目前,移动机器人现在正朝着功能智能化和功能多样化等方向迈进,其应用也越来越普遍,成为时代发展的制高点。
例如,在工业生产中,越来越多的移动机器人已广泛应用于工业生产,从事多种生产研发应用,工业生产实现自动化程度高。
因此,更多的代替人类完成那些沉重的,重复的,有害的工业生产劳动避开危险因素。
在宇宙的危险环境的探索和发展,海洋和地下未知的环境,机器人可以完整的替代和资源开发利用等,降低了对人类的危险性——我国的“蛟龙”号就是这方面的一个例子。
机器人技术的发展水平是一个国家高科技水平和工业自动化程度的一个重要的风向标和表现。
在移动机器人上的研究成果必将能提高我国的科技水平,使我国在21世纪科技浪潮中占据技术制高点。
本文中自主避障机器人采用主要模块化设计方案,主要分为三个模块:
控制模块,驱动模块和检测模块;然后分别对三个模块进行硬件设计,以期最后能很好的完成对整个避障机器人硬件的整体设计。
其次运用C语言编程完成机器人的软件设计部分。
机器人主要采用光电红外管为检测传感器,自主的探测周围环境,在探测到障碍物后,根据障碍物的分布情况,选择一个比较合理的避障策略,然后驱动电机,使机器人能主动的避开障碍物。
检测模块主要用于驱动发光二极管发出红外光,同时驱动红外接收管接收发射出的红外光的发射光,由于在空间中,红外光的能量会有所消耗,这样接受光接收到的红外光的光强就会由于障碍物远近不同而不同,由此接受光输出的电流值就会不同,采用放大,整形,滤波和V/I变换就能将电流值装换成与光强成一定关系的模拟电压,通过A/D转化数字电压,就可以根据数字电压计算出电压值。
驱动模块主要作用是应用于驱动电机带动驱动轮行走。
自主避障机器人采用四轮移动的方式,通过两驱动轮的差速调节方式来实现控制机器人的前进,后退和转弯的功能,所以单片机要发出两路可调占空比的PWM波,然后通过驱动芯片分别控制左、右轮电机速度,分别带动驱动轮运动,以方向和速度控制机器人来避障。
同时,为了精确控制左右轮的转速和机器人的位置,采用在左右电机上加入光电码盘,以精确测出左右轮转速和行进距离,信息返回到单片机中,进入
数字PI调节器中,从而可以调节单片机输出的PWM的占空比,接着调节电机转速,即构成测速负反馈系统。
主控模块以单片机为处理核心,通过采集红外接收管信号,将信号转换为一定的距离值,通过分析判断,由外部障碍物分布情况,作出合理的避障决策,然后向电机发出指令,控制其车轮转速和机器人的速度和转向,从而避开障碍物。
下图是本次研究的主题框架,以单片机为核心的自主避障机器人的实现。
左直逐电机
極
图1.1以单片机为核心的原理框图
第二章自主避障机器人的结构设计方案
2.1自主避障机器人的走行结构设计
四轮式移动方式:
典型的四轮式移动机器人通常采用两个万向轮和两个驱动轮装置,车辆配置相对简单,在碰撞或遇到地面较粗糙时通常会影响到其稳定性,自主避障机器人主要的运动场合是室内,而室内环境较简单,不需要很强的驱动能力,在行进过程中难免会碰到障碍物,在碰到障碍物时,有可能会导致机器人倾倒,而四轮式的稳定性较好,不太可能会出现倾倒的状况。
故选用四轮移动方式是较为合理的。
2.2电机驱动单元设计
2.2.1驱动电机的选型
(1)直流电机转矩大,能很好的克服摩擦力矩和负载转矩,转速范围较宽、稳定的运行速度,响应速度快,负载特性硬,可以保证运行速度不受负载的影响。
(2)步进电机简单耐用,可以用微处理器直接驱动或驱动电路驱动;可以直接接受计算机控制方向和速度,抗干扰能力强,控制信号较为简单,易于数字化,定位准确,快速便捷的优势,误差不积累。
但由于转动惯量,负载转矩和距频特性等因素影响,电机的调速需要按照一定的调速曲线平缓的进行;这种调速过程是不利于电机控制的。
自主避障机器人在实际运动过程中难免会碰到各种类型的探测物,主要有动态的和静态两种,对于动态障碍物需要快速的改变避障机器人的速度,快速地避开障碍物。
这就需要驱动电机具有很好的快速响应能力,便于调速和较大的转矩,而步进电机明显符合以上要求,所以避障机器人选择步进电机作为驱动电机比较好。
2.2.2电机驱动方式的选择
(1)线性放大驱动方式:
它有一个简单的控制原理,在输出波动小,线性度好,不会影响相邻的电路等。
这些优点对相邻器件干扰小,但会产生更多的热量,效率低,散热问题严重。
(2)开关驱动方式:
运用脉宽调制PWM来控制电动机电枢电压,使半导体器件工作在开关状态,便于用微控制器来完成,实现调速。
并且自主避障机器人的电源部分采用的是容量有限的蓄电池,所以选择开关驱动方式是较为可行的。
2.2.3光电测速方式—槽式光电开关
槽型光电开关:
U形结构是通常采用的标准,当对象是U槽和挡住光轴后检测,两个发射器和接收器位于U型槽,形成光轴,光电开关就产生了开关量信号。
槽式光电开关能识别透明与半透明物体,相对会适合检测高速运动的物体,使用起来安全可靠。
这是较为可行的测速选择。
2.3红外传感器检测单元设计
2.3.1红外传感器光子传感器:
一些半导体材料在入射光的照射下,使得材料的电性能发生
变化,同时产生光子效应。
光子效应所制成的红外传感器通过测量电学性质的变化,得出红外辐射光线的强弱。
这样的传感器我们统称光子传感器。
光子传感器的主要特点是灵敏度高,响应速度快,以及具备较高的响应频率。
但一般须在低温下工作,探测波段较窄。
自主避障机器人的红外探测器主要是用来探测障碍物的距离,根据反馈回的障碍物距离的信息引导避障机器人进行电机驱动的准确避障。
2.3.2红外测距原理反射能量的方法:
仪器发出的光束(通常是近红外光)照射到被测物体表
面,仪器接收到反射测量物体的光能量,来判断被测物体的距离是否是安全距离。
2.4软件设计部分软件编写同样采用多模块编程方法,将软件部分分为四个模块,其中包含检测模块、策略选择模块、电机驱动模块和主函数模块。
检测模块用于检测周围环境中的障碍物,策略选择模块根据周围障碍物的情况选择合适的避障策略,电机驱动模块用于驱动左右轮电机正反转与加减速,从而使机器人前进,后退和左右转弯,而主函数模块则调用上述模块中函数使机器人能按照程序自主的探测障碍物。
在软件编程语言上选择使用C语言。
汇编语言虽然在执行效率等方面高于C语言,但其在可读性和移植性上远远低于C语言。
用汇编语言编程过程较长,比较繁琐,同时对编程人员要求较高,需要了解硬件内部的结构,而C语言的编程过程则简单明了,对编程人员要求也比较低,易于快速开发,同时其执行效率也高。
所以本项目选择C语言作为主要编程语言。
2.5主控单元的设计
(1)51系类单片机产品的硬件结构十分合理,指令系统正规,使用十分普遍。
从内部的硬件或软件,一套完整的位操作系统,可以处理一些特殊功能寄存器,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用方便;且具有专门的乘法,除法和二进制至十进制的调整指令。
该系类单片机的I/O口操作较为简单,但驱动能力不足,并且运行速度较慢,满足不了运行需求。
而新式单片机完全改善了这样的缺点。
(2)PIC单片机采用精简指令集,指令使用较为简单,运行速度较快;I/O是一个双向互补推免输出电路,驱动能力,内置的10位A/D,能力已调试和在线编程,但数据传输和逻辑工作寄存器的瓶颈现象较为严重,需反复选择存储体。
对于移动机器人则不太适合。
(3)AVR单片机运行速度较快,部分通用寄存器不能直接与函数操作,在程序复杂情况下,通用寄存器不能满足多方面的要求。
I/O口同为双向电路,驱动能力相比较PIC弱,比51单片机相比更强。
AVR单片机和PIC单片机的功能较51系类强,内部集成模块较多,使用起来可以减少外部元器件的使用和连接,但价格较高,指令集较复杂,编程复杂,而老式51单片机功能较弱,运算较慢,内部集成模块很少,难以适应处理快速的信号,所以综合以上各式单片机优缺点,选择新式51单片机,比较适合避障机器人的使用。
Hi.Oc
Pl.1匚
PL2c
BL4匸匚卩1飞匚卩1.7c
RS17Vri}匚
P比O/RXJ}匚
P3.MTXJJ匚P3.2;c
P3,3/lVTl匚丨昭.1m匸R1.5/22c
P3.6Oc
P3,7/rTTe
XIAE.2t
ALlu
昭:
;匚
-S6OO二5S
图2.151
o987
Z)
Vcc
3
PO.0
Z3
101
□
HI.2
=1
P(».3
P0+1
3
卩氐5
n
P».6
□
P(>.7
=J
IlA/Vpp
ALE/PROC
□
IV^EN
3
P2.7
Zl
I吆.6
□
吆召
□
P2.4
□
PZ.3
3
P2.2
卜巴.1
3
卩2.0
单片机
89C51
第三章自主避障机器人的硬件设计
3.1稳压电路设计
我选择使用铅酸电池的机器人自主避障,额定电压为12V,额定电流为1A,
和电源电压的直流5V单片机,直接相连则会机器人导致单片机及其他芯片的损坏,需要改良,所以采用7805三端集成稳压电路对蓄电池电压进行降压处理,以保护电路元器件的正常使用。
7805的三端稳压集成电路形成一个稳压电源的内部电路的保护电路,只需要很少的外围元件,包括流量,过热和调整管的保护电路,使用起来安全,可靠,方便,而且价格相对便宜。
7805有三条引脚输出,分别是输入端、接地端和输出端。
采用标准的TO-
220封装,样子就像普通的三极管。
下图为7805稳压管实物图
图3.17805稳压管
3.2自主避障机器人的单片机控制电路设计
针对机器人的主控单元本文采取使用新式51系类单片机,片内含有通用八
位的中央处理器(CPU)Flash存储单元,此单片机可以灵活应用于各种控制领域并兼容标准MCS-51指令系统。
由于老式的51单片机功能过于简单,功能很难满足移动机器人的要求,所以选择采用AT89C51单片机。
AT89C51单片机主要性能参数如下:
•与MCS-51产品指令系统完全兼容
•4k字节可重擦写Flash闪速存储器
•1000次擦写周期
•全静态操作:
0Hz—24MHz
•128X8字节内部RAM
•32个可编程I/O口线
•2个16位疋时计数器
•6个中断源
•可编程串行UART通道
•低功耗空闲和掉电模式
AT89C51有如下的标准功能:
两个十六位定时计数器的功能,一个5向量
两级中断构造的功能,一个全双工串行通信口功能,字节内部RAM的功能,
4k12832个I/O口线的功能,4k字节Flash闪速存储器功能,片内振荡器功能及时钟电路的功能。
掉电方式存载RAM中的数据,但振荡器停止工作并停止其余部件工作直到下一个元器件复位。
空闲模式时允许串行通信口,定时计数器,中断体系继续工作以及RAM的运转,但停止CPU的运转。
同时,AT89C51可降至OHz的静态逻辑操作,并兼容两种软件的省电工作形式。
图3.2AT89C51实物图
Z37UU
□Pgnpfr.i(Aoi)
Zl
Z1F-0.4CAD4)Zl尸O$idOB二IPAW二|尸07^ADTJ二1■ver
ZUALE'PR&二i—n二II*
二IFN.g■血
□崩£A1
1A12J二IF2.StAH3LIRiJS二jFN.-l
图3.3AT89C51管脚图
引脚功能说明:
Vcc:
电源电压
GND:
接地端
P0口:
P0口是地址数据总线的复用端口,也是八位漏极开路型的一组双方向I/O口,即。
P0口接收指令字节是在Flash编程时,而输出指令字节则是在程序进行检验时。
检验时,要求外接上拉电阻。
在访问外部数据存储器或程序存储器时,激活内部上拉电阻。
此时,这组口线分时转换地址(低八位)和数据总线复用。
当作输出口使用时,每位以吸收电流的方式,对端口写“1”可
作为高阻抗输入端使用,来带动八个TTL逻辑门电路的运行。
P1口:
P1是一个八位双向I/O口并且内部带有上拉电阻,P1的输出缓冲级可驱动(吸收或输出电流)四个TTL逻辑门电路。
程序检验和Flash编程期间,P1口会收到低八位的地址指令。
对端口输入“1”指令,内部的上拉电阻会把端口拉到高电平,此时端口可以作为输入口。
作为输入口用时,由于内部存在上拉电阻,引脚被外部信号拉低会产生电流(IIL)。
P2口:
P2是一个八位双向I/O口并带有上拉电阻,4个TTL逻辑门电路需要P2的输出缓冲级来驱动(吸收或输出电流)。
对P2端口输入“T指令,P2端口通过上拉电阻被拉到单片机高电平的位置,此时P2端口可作输入口。
因
为在单片机的内部存在一个上拉电阻,其中一个引脚被外部信号拉低产生一个输出电流。
在访问八位地址的外部数据存储器时,口线上的P2(也即特殊功能
寄存器(SFR)区中R2寄存器的内容),在整个访问期间内容没有变化。
Flash编程以及进行系统校验时,P2口亦可收到高位地址和其它端口的控制信号。
在访问十六位地址的外部程序存储器或外部数据存储器时,P2口输出一组高八位地址数据。
P3口:
P3口的主要组成是一组八位双向I/O端口,并且内部带有一个上拉电阻。
4个TTL逻辑门电路会被P3口所输出的缓冲级所驱动(吸收或输出电流)。
对P3口输入“1”指令时,内部上拉电阻拉高所输入的指令作为输入端口。
当P3口作为输入端时,P3口被外部原件拉低来用作上拉电阻的输出电流(IIL)。
P3口不仅仅是一般的I/O口线,它在这里最重要的作用是它的第二功能,如
下表所示:
端口引脚第二功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INT0(外中断为0)
P3.3INT1(外中断为1)
P3.4TO(定时计数器0的外部输入)
P3.5T1(定时计数器1的外部输入)
P3.6WR(外部存储器写选通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 红外传感器 机器人 控制 研究