学年论文系统详细设计报告_第1页
学年论文系统详细设计报告_第2页
学年论文系统详细设计报告_第3页
学年论文系统详细设计报告_第4页
学年论文系统详细设计报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2012中国机器人大赛暨Robocup公开赛双足竞步机器人(交叉足印)双足竞步机器人交叉足印 学校:西北师范大学学院:物电学院姓名:王东梅班级:09级电子一班指导教师:王全州目录第1章绪论 11.1机器人的简述 11.2机器人的组成 21.3双足竞步机器人的主要研究 2第2章机器人的总体设计 32.1双足竞步机器人竞赛规程的解读 3 32.4机器人的功能定位2.5机器人的自由度配置 3第3章双足竞步机器人的步态规划 43.1步态规划的基本原则 43.2步态规划的基本方法 6第4章控制系统软件设计 74.1流程逻辑 74.1.1程序流程图 74.1.2程序流程图简述 7第5章控制系统的硬件设计 11第6章系统调试总结 11附录一系统源程序 26第一章绪论1.1机器人的简述机器人是作为现代高新技术的重要象征和发展结果,已经广泛应用于国民生产的各个领域,并正在给人类传统的生产模式带来革命性的变化,影响着人们生活的方方面面。在研究和开发及不确定环境下作业的机器人的过程中,人们逐步认识到机器人技术的本质是感知、决策、行动和交互技术的结合。随着人们对机器人技术智能化本质认识的加深,机器人技术开始源源不断地向人类活动的各个领域渗透。结合这些领域的应用特点,人们发展了各式各样的具有感知、决策、行动和交互能力的特种机器人和各种智能机器,如移动机器人、微机器人、水下机器人、医疗机器人、军用机器人、空中空间机器人、娱乐机器人等。机器人技术是一门综合了传感与检测、运动控制、图形图像处理等技术的新型学科,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,涉及到当前许多前沿领域的技术。随着电子技术的飞速发展,智能机器人在越来越多的领域发挥着人类无法代替的作用。机器人能力的评价标准包括:智能,指感觉和感知,包括记忆、运算、比较、鉴别、判断、决策、学习和逻辑推理等;机能,指变通性、通用性或空间占有性等;物理能,指力、速度、连续运行能力、可靠性、联用性、寿命等。因此,可以说机器人是具有生物功能的三维空间坐标机器。1.2机器人的组成机器人一般由执行机构、驱动装置、检测装置和控制系统等组成。执行机构:即机器人本体,其臂部一般采用空间开链连杆机构,其中的运动副(转动副或移动副)常称为关节,关节个数通常即为机器人的自由度数。根据关节配置型式和运动坐标形式的不同,机器人执行机构可分为直角坐标式、圆柱坐标式、极坐标式和关节坐标式等类型。出于拟人化的考虑,常将机器人本体的有关部位分别称为基座、腰部、臂部、腕部、手部(夹持器或末端执行器)和行走部(对于移动机器人)等。驱动装置:其按其动力源的形式,分为电动、气压驱动、液压驱动或其组合形式的驱动,其运动过程可由行程、转矩或轴向推力的大小来控制。具体的实现形式,可以是轮式,履带式或者是关节式。检测装置:其作用是实时检测机器人的运动及工作情况,根据需要反馈给控制系统,与设定信息进行比较后,对执行机构进行调整,以保证机器人的动作符合预定的要求。作为检测装置的传感器大致可以分为两类:一类是内部信息传感器,用于检测机器人各部分的内部状况,如各关节的位置、速度、加速度等,并将所测得的信息作为反馈信号送至控制器,形成闭环控制。另一类是外部信息传感器,用于获取有关机器人的作业对象及外界环境等方面的信息,以使机器人的动作能适应外界情况的变化,使之达到更高层次的自动化,甚至使机器人具有某种“感觉”,向智能化发展,例如视觉、声觉等外部传感器给出工作对象、工作环境的有关信息,利用这些信息构成一个大的反馈回路,从而将大大提高机器人的工作精度。机器人产业在二十一世纪将成为和汽车、电脑并驾齐驱的主干产业。从庞大的工业机器人到微观的纳米机器人,从代表尖端技术的仿人型机器人到孩子们喜爱的宠物机器人,机器人正在日益走近我们的生活,成为人类最亲密的伙伴。机器人技术和产业化在全中国甚至全世界拥有一定的现实基础和广阔的市场前景1.3双足竞步机器人的主要研究本本次设计采用ATmega128单片机作为双足竞步机器人控制单元的核心,具备自主决策和智能判断的能力。使用六个模拟舵机作为关节驱动和一个模拟舵机控制板作为模拟舵机的驱动控制机器人完成各种动作。其实现的主要功能有:机器人自主地由步行的方式从起点线走到终点线(场地:相距200cm,限宽60cm),利用身体的各关节做一些预定的动作;先从起点走出3步距离、立正、然后卧下、向前翻跟斗3次,再起立、向前走出3步距离、立正、然后卧下(身体向后)、再向后翻跟斗3次、再起立;然后以轻快步履走向终点,机器人会在4分钟以内完成所有动作。第2章机器人的总体方案设计2.1双足竞步机器人竞赛规程的解读2.1.1竞赛内容概述机器人通过步行的方式从起点线走到终点线(相距200cm,限宽60cm)。竞赛开始时,机器人先向前走出3步距离、立正、然后卧下(身体向前)、向前翻跟斗3次,再起立、向前走出3步距离、立正、然后卧下(身体向后)、再向后翻跟斗3次、再起立、然后以轻快步履走向终点、参赛机器人要在4分钟以内完成所有动作。双足竞步机器人计分规则:1.机器人行走时跌倒一次扣10分,由裁判指定将机器人重新放在原位并继续竞赛,不另补时。2.不按指定动作次序运行的机器人将按次序偏差次数扣分,每次偏差扣10分。3.机器人行走每出线一次扣10分。4.在未经裁判允许的情况下,人为干预一次扣10分。5.以扣分少者为胜;在扣分相同条件下,以使用时间短者为胜。从上面的竞赛内容可知,首先应该确保机器人在规定的区域内活动,然后自主向前行走按照要求执行相应的动作,不会跌倒、踩线等错误的动作,这是比赛顺利进行的前提条件;其次机器人应该在可以准确无误的完成相应制定动作的情况下,尽量使整个过程的耗时最少,这是比赛能否取得胜利的关键。2.1.2双足竞步机器人的限制结构只有双足、并只能以走路的方式来移动,机器人要分清楚正面及背面,以箭头方向作为正面,是自主式脱线控制,用不多于6只伺服马达和一个伺服马达控制板来完成,机器人最大尺寸为200mm(长)X200mm(宽)X300mm(高),重量不超过1Kg.,机器人头部要能放入(长)200mmX(宽)100mm长方格内。机器人通过步行的方式从起点线走到终点线(相距200cm,限宽60cm)。竞赛开始时,机器人先向前走出3步距离、立正、然后卧下(身体向前)、向前翻跟斗3次,再起立、向前走出3步距离、立正、卧下(身体向后)、再向后翻跟斗3次、再起立、然后以轻快步履走向终点、参赛机器人要在4分钟以内完成所有动作。因此,从上面的限制条件可以知道,对参赛队员制作机器人的材料高度和重量都具有了要求,制作机器人的材料按照使用场合的不同来决定轻重,比如说底盘(机器人的脚底板)在符合条件的情况下,越重越好,这样能使机器人的重心低,在移动过程中保持稳定不会跌倒;而机器人的腿部以上的重量,在符合条件的情况下,越重越好,否则机器人的重心太高,前后卧下的情况下,容易倾倒;这需要参赛队员根据自己的实际情况处理好重量和高度的分配,才能取得满意的效果。2.1.3场地规格分析及说明比赛场地(即擂台,如图2.1所示)大小为长、宽分别为是2000mm,宽600mm的长方形矮台,台上表面即为擂台场地。机器人从出发区启动后,沿着起点线走上擂台。图2-1比赛场地从场地来看,双足竞步机器人的做工一定要精细,做工的精度一定要高,必要时做到标准化。另一方面由于在机器人身上没有各种辅助措施,机器人的稳定性一地要强,应用程序要稳定,各关节的设计要合理可靠等。由于比赛中规定在完成全部动作且得分相同的情况下,按耗时越少排名越高的原则确定名次。所以,最重要的一点是要尽量减少机器人完成动作所用的时间。2.2双足竞步机器人总体分析要设计和开发一个步行机器人,首先应该对其进行总体分析和设计,确定步行机器人的功能、基本结构和系统配置等。2.2.1功能定位根据参赛要求,首先使其能够完成一些基本动作,既开始时先走3步、立正、然后卧下(身体向前)、向前翻跟斗3次,再起立、向前走3步、立正、然后卧下(身体向后)、再向后翻跟斗3次、再起立、然后以轻快步履走向终点、要在指定4分钟或少于指定时间内完成所有动作,及要走到终点。2.2.2自由度的配置该双足竞步机器人设计的目的是要实现拟人下肢多自由度得平稳行走,在实现这个功能的前提下为降低设计的难度,我们按照目前世界上各研究机构普通采用的下肢6个自由度的关节配置形式,来实现行走功能所必须的各关节自由度分布,具体自由度配置为单腿髋关节1个,膝关节1个,踝关节1个。髋关节用于摆动腿,实现迈步,并起到了辅助平衡作用。膝关节主要用来调节重心的高度,及改变摆动腿的着地高度,使之与地形相适应。踝关节用来和髋关节相配合实现支撑腿的移动,以及调整与地面的接触状态。基于郑元芳博士的理论,来规划自己所要设计的双足机器人的自由度。为了实现这款双足步行机器人的稳步行走,可以规划其运动过程,假设机器人行走步骤:先走3步,立正,然后卧下,向前翻跟斗3次,再起立,向前走3步,立正,然后卧下(身体向后),再向后翻跟斗3次,再起立,然后走向终点。其结构图见下图2-2。第3章双足竞步机器人步态规划步态规划是双足竞步机器人研究中的一项重要工作,步态规划的好坏将直接影响机器人行走过程中的稳定性、所需驱动力矩的大小以及姿态的美观性等多个方面,同它也直接影响到控制方法及其实现的难易程度。3.1步态规划的基本原则双足竞步机器人的步态规划,是指机器人行走过程中其各组成部分运动轨迹的规划,比如说,脚掌何时离开地面、摆动相中整个脚掌在空中的轨迹、何时落地等。关键之就在于所规划的轨迹必须满足零力矩点(ZMP)稳定条件,否则,机器人不能稳定步行步态规划要解决的问题主要有:1.保证机器人本体不和环境或者自身发生干涉,从而导致无法实现预定的轨迹。2.保证机器人的稳定性。机器人的稳定性问题一直是困扰两足步行机器人发展的重要问题,由于各个关节间的藕合作用,很难设计出理想的ZMP轨迹。现在使用的步态规划方法主要有如下几种:(1)基于实验的规划方法这种规划方法基于力学的相似原理,基本过程如下:让人模仿机器人行走(如果机器人有几个自由度,那么人在模仿行走的时候也尽量只动相应的关节),同时对此人的行走过程进行正面和侧面的录像,然后对这些录像进行分析,得到此人在步行过程各个主要关节的角度变化与时间的函数,然后根据力学相似原理把这些函数相似地推广到机器人的关节变化上。(2)基于能量原理的规划方法这种方法来源于一个生物学假设:人经过千百万年的进化,其行走方式是能量消耗最低的,而且还能保持步行的稳定性。如果机器人也能满足这个假设,则其行走方式将与人一样或很接近。根据能耗最小原则可以建立一个变分方程,并最终得到机器人的轨迹方程。(3)基于力学稳定性的规划方法在机器人行走过程中,其ZMP点必须落在某个区域范围之内,只有这样才能保证步行机器人稳定地行走。实现方法有两种:a.计算出理想的ZMP轨迹,然后推导出各个关节的运动函数以实现理想行走。b.先大致规划出双足和躯干的运动轨迹,然后进行ZMP计算,最后选出稳定性最好的结果作为控制方程。相比前一种方法,后一种可以较快地得到规划结果。在保证了机器人基本性能的前提下,尽量减少控制的工作量,降低成本。所以本文设计将采用第二种方法,结合三次样条插值和机器人的逆运动学规划进行机器人步态的参数化设计。3.2步态规划的具体方法合适的步态设计是机器人实现动态行走的关键。在计算各关节轨迹之前,首先要建立机器人所在的空间坐标系。坐标系的x轴指向机器人的正面,y轴由右侧指向左侧,z轴垂直向上,原点0位于后脚完全落地时踝关节在地面上的垂直投影处。当机器人沿着直线往前走时,由于只考虑前向运动,双脚和腰部在侧方向(y轴)上的位置是不变的,因为设定条件为机器人在水平地面行走,且脚面抬起高度为0,所以z轴位置不变。因此,仅仅讨论在x平面内的轨迹。机器人所在的空间坐标系如图3-1所示。图3-1机器人的空间坐标系双足机器人完整的步行过程包括三个阶段(1)起步阶段:由初始的双腿并立静止状态变化到行走状态,一条腿向前跨出了半步距离,髋部速度从零上升到恒定值;(2)整步阶段:两条腿交替地向前跨出一步距离,髋部速率保持不变;(3)落步阶段:后腿向前跨出半步,落在与另一条腿并行的部位,髋部速度减少到零,恢复成双腿并立静止状态。主要讨论整步的轨迹计算。前向运动的规划步骤如下:(1)确定步速和步长;(2)设定初始参数,计算踝关节和髋关节轨迹;(3)根据踝关节和髋关节轨迹计算膝关节轨迹;(4)计算ZMP轨迹;(5)改变参数值,返回第2步;(6)选取具有最大稳定性的轨迹。步态规划的流程图如图3-2所示。图3-2双足机器人的步态规划流程图双足步行机器人行走控制的关键是根据踝关节和髋关节的运动轨迹确定膝关节的运动轨迹。在脚面抬起高度为0的情况下,膝关节的轨迹由步幅唯一决定,而步幅和步速则可唯一确定出髋关节的轨迹,其步态周期图如图3-3所示。图3-3步态周期图因为单支撑和双支撑是一个交替的过程,双腿支撑需要有一定时间来保证ZMP点由后脚移动到前脚,所以我们取双支撑的时间间隔为20%个周期。从上图可以看出在一个完整的步态周期里包括了两个双支撑和两个单支撑时间段,双支撑占20%个周期,单支撑占80%个周期。对于单腿来说整个周期里只有一个摆动周期,占40%个周期,支撑周期由一个单支撑和两个双支撑组成,占60%个周期。根据机器人自身结构特点,在行走时采用“平行步态”,如图所示。机器人采用这种步态行走时,两脚的落脚痕迹是相互平行的,实现这种步态行走的机器人对其自由度要求较少,但对稳定平衡提出了较高的要求。第4章控制系统的软件设计为了实现模型样机的实验调试,在硬件基础上进行了系统软件设计,通过对实际机械系统运动控制理论研究,规划了一套简便的调试方案以验证样机设计的合理性,并进行对预订步态的相应关节控制调试和可行性验证。4.1ATmega128的介绍DMAVR-128型AVR单片机学习开发板的设计思想是模块化,将各个模块单独形成功能,再实现与单片机的连接,同时,各个模块与单片机的连接没有完全固定,而是通过跳线帽连接,如果你只是需要学AVR单片机知识,不必自行配置单片机I/O口连接,各个模块的引线和单片机所有的I/O口全部引出,这样的设计是为了方便用户在后期的扩展使用,可以自由良好的使用单片机的I/O口,体现出良好的扩展性和使用的灵活性。AVR单片机采用Atmel公司的megaAVR系列单ATmega128L(ATmega128的宽电压版)支持3.3V-5V电源系统,该型号单片机内部含有128K的FLASH空间、4KB的RAM空间以及4KB的EEPROM空间,其他资源在后面会详细介绍,共有6.5组双向I/O口计53个,分别为PA,PB,PC,PD,PE,PF,PG,所有I/O口全部引出,方便使用,系统板给各个模块分配了对应的控制I/O口。4.2程序设计 在程序设计前首先必须明白舵机控制的原理,并先从单个舵机的控制开始到多个舵机的控制。对于舵机,其转角为一个绝对位置,即给一定脉宽的信号,舵机会转动到固定的转角位置,不管其上一个时刻的位置如何。例如:当输入信号的脉宽为2.0ms时,舵机便会转到135°的位置,这个位置的定位是由舵机内部电路自动反馈校正完成的。对于舵机的控制就是利用PWM波对舵机进行控制,不同脉宽的PWM波会使舵机转动一定的角度。Meg-128芯片有专门的输出PWM波的I/O口,当控制一个舵机可以用专用口进行控制。但由于控制六个舵机,专用口不够用,因此必须采用模拟PWM波进行控制,即使用六个通用的I/O口,输出六路PWM波,对六个舵机进行控制。PWM波制作方式:通过让普通的I/O口输出高低电平以产生PWM波。使用两个定时器,一个8位的T0用来控制PWM的脉宽,一个16位的T1用来控制PWM的周期。第五章控制系统硬件设计利用AltiumDesigner6.9绘制最小系统板原理图,绘制其PCB,并刻板焊接调试。Meg-128最小系统板原理图如下:电路图主要分主芯片,复位电路,电源电路,晶振电路,JTAG仿真接口,几大部分。在最小电路的设计中基本上按照Meg-128所给资料画出原理图即可,需要主要的一点是在画原理图时将模拟地和数字地要用一个零欧电阻隔开,以免在电路中产生干扰。还有一个就是给主控芯片供电和给舵机供电要分开,给芯片供电我们采用一个输出5V的直流稳压电源,而给舵机供电就直接用动力电池(输出7.4)V即可。第六章系统调试总结在软件部分,就双足竞步机器人的编程中可以体会到,整个程序并不复杂。主要围绕PWM波的控制,通过让单片机输出端口产生高低平而产生PWM波,从控制一个舵机动到控制多个舵机同时动。主要用到两个定时器,一个用来控制PWM波的周期,一个定时器用来控制PWM波的脉宽,通过给舵机赋不同脉宽的PWM波,使得舵机产生不同的角度,以形成一系列的动作,让机器人动起来。用C语言编程,可以用一些简单的C语言语句实现机器人功能,但这样写出来的程序有点繁琐,最好就是用函数调用写,这样写出来的程序简洁明了。软件调试中,程序的仿真很重要,AVR单片机中有仿真,很好的运用仿真程序,可以帮助我们较快地发现并解决程序编写上出现的问题。硬件电路部分,由于原理图的简单而正确,所以画的PCB,刻出来的单片机的最小系统板也基本是没什么问题的,电路调试阶段主要出现一些焊接上的问题,因为是AD的初学者,所以也会有一点画板子过程当中出现的问题,比如封转画的不合适等。贴片元件的焊接,主要难度在主控芯片的焊接,这是个熟能生巧的活,当然自己的细心很重要。测试时,一点一点的测,发现有问题耐心解决,勿要动不动就重新焊板子,这样解决不了任何问题,只是一味浪费元件材料和时间。机械制作方面,尤其对于双足竞步机器人机械构造决不可疏忽。在后期的机器人的调试中,大部分精力都放在了机器人的步伐的分解上。好的硬件结构能够轻松分解出好的步伐,并在成功的程序中很好地执行。我们每年买的电池都有点大,并且有时是用两块电池,一个普通电池给接稳压部分使其输出5V给芯片供电,另一块动力电池,由于两块电池不仅大小不一,且重量不同,所以机械上造成机器人的重量增加和不稳定。建议可以采用两节3.7V的那种圆形的干电池(动力电池,里面只有一节电芯,输出3.7V),这样一样的两块既小又轻的电池放在两条腿上,很好。这次我们做的交叉足印机器人始终没有调好的主要问题出在机械结构上,机器人做的太高,后面连接件的螺丝没办法拧紧,导致机器人的两条腿在调试的过程中一直是松松的,而导致很难分解出步伐,总感觉舵机软软的,不能保持动作。程序附件:#include<avr/io.h>#include<avr/interrupt.h>//定义动作作态及动作数unsignedintdj_number=6;//定义舵机的个数unsignedintdj_state=1;//舵机状态数volatileunsignedintcount=0,count1=0;unsignedintdata[12][6]={{95,93,85,82,98,85},//立正到起步 {93,93,81,90,98,104}, {93,96,81,53,113,90}, {82,113,81,53,113,90}, {82,113,95,53,113,90}, {81,104,95,60,117,90},//循环走路 {81,104,81,60,117,99}, {117,77,90,89,81,99}, {113,72,90,93,81,81}, {113,72,81,93,81,90}, {95,95,81,60,117,90}, {81,104,95,60,117,90}}; volatileunsignedintstate=0;volatileunsignedintinit_dj[6]={90,90,80,80,90,80};unsignedinti=10;//是一个全局常量,主要是在舵机角度是否到位数组中用unsignedintxunji(void);//引导机器人行走函数voidchange(unsignedintangle);//将角度装换成计数初值得函数voidservo(intdn,ints);//判断一个舵机是否转到位的函数voidDelay_us(unsignedintcount){unsignedintj=0,s;for(s=count;s>0;s--) { for(j=16;j>0;j--); }}//函数名:Delay_ms(unsignedintcount)voidDelay_ms(unsignedintcount1){unsignedintj;for(j=count1;j>0;j--) { Delay_us(400); }}////角度与时间转换及初值计算voidchange(unsignedintangle){intt=0;//将角度转换为时间//t=500+(2/180)*angle*1000; t=2*(angle*100/9+600);//因为是16M的晶振,如是8m则无需*2//TCNT1H=(int)(65536-t)/256;//在将时间转化为计数初值TCNT1L=(int)(65536-t)%256; sei();//开定时器1,0X02=8分频}////确定输出端口voidwhichout(unsignedinti){switch(i){ case1:PORTA=0X01;break; case2:PORTA=0X02;break; case3:PORTA=0X04;break;case4:PORTA=0X08;break;case5:PORTA=0X10;break;case6:PORTA=0X20;break; case7:PORTA=0X40;break;case8:PORTA=0X80;break; case0:break;default:break; }}////函数名://输入参数://输出参数://创建者://修改时间://voidservo(intdn,ints){if(init_dj[dn]!=data[s][dn]) { if(init_dj[dn]>data[s][dn]) { init_dj[dn]--; }else { init_dj[dn]++; }whichout(dn); change(init_dj[dn]);} else change(1);/*一个极端的延时,主要是为了让程序在执行完比较 后可以顺利进入中断,也是为什么不用delay延迟的 原因,大约为1.4ms*/ }//中断服务程序,判断舵机是否执行到位,完成一组状态SIGNAL(SIG_OVERFLOW1)//定时器一溢出中断{PORTA=0X00;cli();//关闭定时器1的时钟源unsignedint

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论