迷宫机器人软件设计.docx
- 文档编号:2371828
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:34
- 大小:1.12MB
迷宫机器人软件设计.docx
《迷宫机器人软件设计.docx》由会员分享,可在线阅读,更多相关《迷宫机器人软件设计.docx(34页珍藏版)》请在冰豆网上搜索。
迷宫机器人软件设计
摘要
人类科技的进步促使机器人技术的智能化水平越来越高。
可移动机器人的路径规划是机器人研究中的一个重要领域,得到越来越多研究者的关注,并取得了丰厚的成果。
行进方向选择问题是智能机器人控制的关键技术之一,可移动机器人如何在复杂和未知的环境中自主选择路线到达目标地点,并躲避障碍物,是其重要的判断条件之一,也是功能实现的基础。
迷宫机器人是一种基于ARM1138的具备人工智能的小型机器人,可在没有人工干预的情况下,在16×16未知的迷宫中自行完成一系列动作。
看似简单的小型机器人,其中却包含了光学、力学、信息科学等多种学科的综合应用,是对机器智能化的实现。
本设计从软件设计的角度对迷宫机器人的智能控制做了较有深度的探讨。
通过软件编程,实现迷宫机器人的智能控制,完成在16×16的迷宫中,由起点自动探索到终点并探测返回,随后完成冲刺的功能。
论文中讲述的重点是迷宫机器人在路径选择中逻辑方面的判断,以及墙壁信息的获取和车身的控制。
关键词:
人工智能;迷宫机器人;软件
1绪论
1.1课题的研究背景和发展历程
进入21世纪,伴随着电子、信息技术的发展与迅速普及,人们对电子技术的要求也越来越高,智能化、信息化的高尖技术逐步融入人们的日常生活。
现如今为满足社会需要,许多人正工作在未知的、恶劣的、高风险的环境下,所以由机器人代替人承担危险、繁重的工作已成为时代发展的必然要求,也体现出以人为本的和谐社会理念,而迷宫机器人技术很好的满足了这一要求,所以受到了各界人士的广泛关注。
以迷宫机器人为主题的“电脑鼠走迷宫竞赛”在世界范围内兴起,成为深受高校大学生喜爱的一项电子类竞赛[1]。
1.2课题研究的目的和意义
人工智能是智能机器人所执行的通常与人类智能有关的功能,如判断、推理、证明、识别、感知、理解、设计、思考、规划学习和问题求解等思维活动。
智能化要求具有获取外界信息的能力、演绎推理的能力、学习的能力、自适应能力等[2]。
迷宫机器人成功的实现了信息获取、可行路线判断和最优路径选择的功能,很好的突出了其学术价值。
同时在实时性、效率性上得很好的体现,是对人工智能的一次很好的应用和发展。
选择迷宫机器人这个课题,对人工智能的理解,对人类思维方式与机器编程衔接的理解具有很大的帮助。
完善后的迷宫机器人可代替人类在高温、缺氧、有毒、辐射等危险环境下作业,且能在复杂环境中自行探寻目标并安全返回,对火灾现场、外太空等复杂、危险环境下的应用具有很好的前景。
迷宫机器人的研制是智能控制领域的新突破,也是学术价值与实际应用价值的一个重要衔接。
1.3课题研究的主要内容
迷宫机器人拟采用左右双轮驱动控制车身,通过控制左右电机的不同运动状态实现车身的前进、后退、身姿调整和转向。
由传感器单元获取周围墙壁信息,并通过嵌入式系统对墙壁信息进行记忆存储、判断最优路径,进而控制电机完成一系列动作。
研究的主要内容有:
1)墙壁信息的获取
2)等高图的制作
3)转角的精确度
4)冲刺的速度和稳定性
1.4本章小结
随着科技的进步,机器人的智能控制已经成为现实,通过简单的逻辑指令的叠加,机器人便可完成复杂的动作。
本设计便是通过软件编程,完成迷宫机器人的自动化智能控制。
2系统的总体设计
随着科技的进步和发展,对机器人信息化、自动化和智能化的要求越来越高。
迷宫机器人作为智能控制的典型代表,因为其控制理论的先进性和本身的趣味性,越来越受到广大大学生的关注。
本设计意在使用简单器件,通过C语言编程控制制作一台能在迷宫中自动完成探索至终点、探索返回和冲刺的迷宫机器人。
2.1系统方案的设计
迷宫机器人是结合光学、信息学等多种学科,以及软硬件综合应用制作出来的一种智能机器人。
为实现迷宫机器人在迷宫中的自由行进,需完成墙壁信息的采集、数据的存储、等高图的制作、转角的设置等。
因此在软件设计中,将电脑鼠的控制程序主要分成搜索模块、等高图制作模块、转弯模块和冲刺模块等四大模块。
本设计采用单片机作为控制芯片,红外传感器作为探测装置,步进电机为驱动设备,制作一款采用双轮驱动的车型迷宫机器人。
迷宫机器人以单片机作为主控制芯片,外部扩展分为传感器、驱动电路、按键电路、电源电路等。
框图如图2-1所示。
图2-1迷宫机器人控制系统框图
迷宫机器人软件设计中,主程序主要包括:
初始化、按键等待、探索至终点、探索返回、冲刺等五个部分。
打开电源,单片机启动,开始等待。
按键按下后,迷宫机器人开始运行,搜索到达终点后再搜索返回至起点。
迷宫机器人根据探测到的迷宫信息自动选择最优路径,以最快速度冲刺到终点后重新返回到起点,然后转身进入再次等待状态。
迷宫机器人运行主程序的流程图如下所示:
图2-2主程序流程图
2.2单片机和开发工具的选择
2.2.1单片机的选择
单片机自70年代以来就以微处理器及超大规模集成电路技术的发展为重心,以其广泛的应用而得到迅速的发展,现在单片机的功能已经比较完善[3]。
由于单片机的迅速发展,基于单片机应用的产品也越来越多。
主要的单片机有51系列、ARM系列等。
本设计拟采用拥有32位ARMCortex-M3内核的LM3S1138作为主控制芯片。
它具有50MHZ运行频率,完全可以担负起迷宫机器人的实时性控制。
64KB单周期Flash,16KB单周期SRAM,使单片机的功能给加强大[4]。
其外设具有7组GPIO,可以很好的实现与外部设备的连接,4个32位Timer,3路全双工UART,6路16位PWM波,8通道,10位ADC等,能够有效实现对外设的控制。
单片机内置看门狗定时器,可使芯片可靠运行。
图2-3LM3S1138引脚图
2.2.2开发工具的选择
IAREmbeddedWorkbenchforARM(下面简称IAREWARM)是一个针对ARM处理器的集成开发环境,它包含项目管理器、编辑器、C/C++编译器和ARM汇编器、连接器XLINK和支持RTOS的调试工具C-SPY[5]。
将开发工具设置在EWARM环境下,则可以使用C/C++和汇编语言等对嵌入式应用程序进行开发。
比较其它的ARM开发环境,IAREWARM具有入门容易、使用方便和代码紧凑等特点[6]。
在本设计中,软件设计是通过IAR环境下的C语言编程实现。
IAR软件编程实例如下,迷宫机器人软件控制较为复杂,程序内容庞大,为使逻辑较为调理和方便编程,本设计中除主程序之外,另分别设置按键读取、迷宫机器人运行总体控制、传感器、步进电机、坐标、算法等多种子程序文件。
通过设置全局变量和程序之间的相互调用,可实现各个程序模块间的协调工作。
图2-4IAR软件示意图
2.3本章小结
迷宫机器人主要由单片机、光电传感器、步进电机和电源组成,通过电路设计等,将各部分合理的链接到一起,再通过程序控制,使得各器件协调工作。
在此基础上,便可以实现迷宫机器人的功能。
3迷宫机器人的软件设计
3.1迷宫介绍
3.1.1迷宫的结构
正规迷宫的地板为黑色,墙壁为白色,分成16×16的共计256块边长为18cm的方格,每块方格由白色立柱和隔墙分割。
除四周边界外,每块隔墙和立柱都可自由拆卸组装,随机组成迷宫。
其中隔墙高5cm,厚1.2cm,立柱长1.2cm宽1.2cm,高5cm。
迷宫可以四角处任意一点作为起点,起点必须三面设有墙壁,只在一面留有出口,迷宫机器人起始时朝向出口方向。
以迷宫左下角作为原点,以每块方格长度作为一个标准单位,设置迷宫二维坐标,则X、Y轴同时被分为0~15共16个单位长度,则终点坐标为(7,7)(7,8)(8,7)(8,8)四点,迷宫机器人到达四个坐标的任意位置,及算到达终点。
图3-1迷宫例图
3.1.2起点坐标的确立
坐标的设置是迷宫机器人正常探索的基础,只有确定迷宫机器人所处位置的坐标,才能完成等高图的设置,控制机器人按照正确路线行驶至指定位置。
而起点坐标与终点坐标的正确设置是完成迷宫机器人冲刺的前提。
机器人起始位置的坐标不同,与终点的相对位置也有所不同,所以起点坐标的确立至关重要。
因为机器人是在迷宫四角的任意位置作为起点,所以在起始时,机器人一侧始终有墙壁存在,可根据此点确定起点坐标。
在本设计中,迷宫机器人自起点处开始运行,同时检测两侧墙壁信息,若右侧首先探测到出口,则起点坐标默认为(0,0),若左侧首先探测到出口,则起点坐标默认为(15,0)。
3.2主要外设的软件控制
3.2.1红外传感器的软件控制
迷宫机器人采用IRM8601S红外一体式传感器。
该传感器内部的带通滤波器中心频率为38KHZ,所以驱动红外线的载波信号为38KHZ时传感器最灵敏,其调制信号应该为12us的方波,通过调节驱动红外线的载波信号频率可以改变传感器的探测距离。
本设计中迷宫机器人前方共设有五个红外一体传感器,分别探测左方、左前方、前方、右前方、右方共五个方向的墙壁信息。
单片机输出PWM波驱动红外传感器的运行,通过更改PWM波的频率,可控制红外发射管的强度,从而实现远近距离的切换探测。
左前、右前用于身姿的矫正,防止与墙壁发生碰撞,左、右、前三个
传感器用于探测墙壁信息,判断可行路线。
红外传感器的流程图如下所示。
图3-2红外发射接收一体化程序流程图
红外传感器的发射管以单片机输出的PWM波作为供电电源,红外探测则可通过程序中对PWM波的设置来实现控制。
红外光线的发射强度与PWM波的占空比和频率有关,频率越高、占空比越高,其红外发生强度越大。
在本设计中,为方便程序的调试,将占空比设定为固定值50%,只通过调节PWM波频率控制红外发射管的强度。
对PWM波的设定和使能程序如下图所示:
图3-3红外发射程序图
3.2.2步进电机的软件控制
步进电机是将电脉冲的信号转变成线位移或角位移的开环控制元件,给电机送一个脉冲信号,电机则转过一个步距角[7]。
这一线性关系的存在,加上步进电机只有周期性误差而无累计的误差等特点,使得在速度、位置等控制领域里,用步进电机来操纵变的非常的简单[8]。
步进电机带动车轮的正确运转是迷宫机器人在迷宫中自由行使以及完成各种不同动作的基础。
通过软件编程,可实现左右电机的前进、后退、暂停一步和停止四个状态,同时可设置步进电机的前进步数以及最大行驶速度。
步进电机也可通过设置运行步数判断行驶距离,在本设计中,迷宫机器人每行驶完一个,步进电机需前进125步。
双轮驱动的迷宫机器人,通过对左右步进电机状态与速度的分别控制,则可完成迷宫机器人车身的前进、转弯、后退等复杂动作,实现迷宫机器人在狭窄迷宫中的自由穿梭。
电机状态在程序中的控制如表3-1所示。
表3-1电机状态的程序设置
宏定义
取代值
电机状态
__MOTORSTOP
0
电机停止
__WAITONESTEP
1
电机暂停一步
__MOTORRUN
2
电机运行
__MOTORGOAHEAD
0
电机前进
__MOTORGOBACK
1
电机后退
3.3迷宫机器人的姿势矫正
迷宫机器人行驶过程中,会因为电压因素、外界光线因素、摩擦力因素等多种无法避免的原因影响其运行效果,造成车身偏移等。
若不加以处理,随着行驶距离的增加,偏移量也会累加,会出现碰壁等现象,所以必须在运行过程中自行对以上现象造成的偏移进行校正。
机器人的智能化要求能对外界干扰自行作出调整,本设计中迷宫机器人通过红外传感器与步进电机的协调控制实现车身的姿势矫正。
迷宫机器人设置为双轮驱动,并通过五个不同方向的红外传感器探测墙壁信息。
其实物图如下所示:
图3-4迷宫机器人实物图
为更直观的展现迷宫机器人的运行方式,在本论文中,采用迷宫机器人简图作为解说对象。
如下图所示,简图中只罗列出车身以及五个不同方向的红外传感器和两个由步进电机驱动的车轮。
图3-5迷宫机器人简图
3.3.1双板的身姿矫正
当机器人左右两边都有挡板时,左前、右前两个传感器以较低频率的PWM波检测两边墙
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 迷宫 机器人 软件设计