运动仿真毕业设计.docx
《运动仿真毕业设计.docx》由会员分享,可在线阅读,更多相关《运动仿真毕业设计.docx(31页珍藏版)》请在冰豆网上搜索。
![运动仿真毕业设计.docx](https://file1.bdocx.com/fileroot1/2022-11/23/51e0d551-ce06-4b23-921c-0c876f4b5808/51e0d551-ce06-4b23-921c-0c876f4b58081.gif)
运动仿真毕业设计
本科毕业设计
毕业设计题目:
“龙人宝贝”机器人的
结构设计与控制
学生姓名:
学号:
系别:
专业班级:
指导教师姓名及职称:
起止时间:
2011年3月—2011年6月
摘要
本文所设计的机器人是以学校实验室中的“龙人宝贝”为参考而设计的。
内容是对基于单片机的机器人的结构设计与控制系统的设计,综合运用C51单片机,电子电路等知识进行智能移动机器人的控制系统设计以及研究。
本论文不仅注重理论知识的探讨,更注重于理论知识在实际中的应用。
本文详细介绍机器人的硬件机构以及软件的设计,同时利用传感器使机器人前行、智能壁障,并对其进行运动仿真。
关键词:
机器人单片机控制系统运动仿真
Abstract
Thisrobotisdesignedforlaboratoriesinschools,"DragonBaby"asareferenceanddesign. Contentistherobotcontrolsystembasedonsinglechipdesign,theintegrateduseofC51microcontroller,electroniccircuitsandotherknowledgeforintelligentmobilerobotcontrolsystemdesignandresearch. Thisthesisnotonlyoftheoreticalknowledge-oriented,morefocusedontheoreticalknowledgeinpracticalapplication.
Thispaperdescribestherobothardwareandsoftwaredesignofinstitutions.
Whiletakingadvantageofthesensortotherobotforward,smartbarrier,anditsmotionsimulation.
Keywords:
robotcontrolsystemformotionsimulationofsinglechip
“龙人宝贝”机器人的结构设计与控制
孙浩
1、前言
机器人(Robot)是自动执行工作的机器装置。
它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动。
它的任务是协助或取代人类工作的工作,例如生产业、建筑业,或是危险的工作。
现在,国际上对机器人的概念已经逐渐趋近一致。
一般来说,人们都可以接受这种说法,即机器人是靠自身动力和控制能力来实现各种功能的一种机器。
联合国标准化组织采纳了美国机器人协会给机器人下的定义:
“一种可编程和多功能的、用来搬运材料、零件、工具的操作机;或是为了执行不同的任务而具有可用电脑改变和可编程动作的专门系统。
”机器人一般由执行机构、驱动装置、检测装置和控制系统和复杂机械等组成。
随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、并行和串行接口A/D转换器等多种电路,这种技术促使机器人技术也有了突飞猛进的发展。
本文研究的机器人,它根据学校实验室中的“龙人宝贝”机器人为基础而设计与调试以及程序代码的编写,掌握机器人设计的基本方法。
为此,该机器人硬件的核心采用C51单片机作为机器人的大脑,把它设计成控制板,通过控制板实现机器人的运动,以此机器人作为典型工程对象,可以完成机器人所需具备的探测周边环境、做出决策、控制机器人运动的基本能力,使机器人具有基本的智能。
2、智能机器人研究的概况
2.1智能机器人研究的目的和意义
机器人是集机械、电子、控制、计算机、传感器、人工智能等多学科先进技术于一体的现代制造业重要的自动化装备。
自从1962年美国研制出世界上第一台工业机器人以来,机器人技术及其产品发展很快,已成为柔性制造系(FMS)、自动化工厂(FA)、计算机集成制造系统(CIMS)的自动化工具。
广泛采用工业机器人,不仅可提高产品的质量与数量,而且保障人身安全、改善劳动环境、减轻劳动强度、提高劳动生产率、节约材料消耗以及降低生产成本有着十分重要的意义。
和计算机、网络技术一样,机器人的广泛应用正在日益改变着人类的生产和生活方式。
20世纪80年代以来,工业机器人技术逐渐成熟,并很快得到推广,目前已经在工业生产的许多领域得到应用。
在工业机器人逐渐得到推广和普及的过程中,下面三个方面的技术进步起着非常重要的作用。
(1)驱动方式的改变
20世纪70年代后期,日本安川电动机公司研制开发出了第一台全电动的工业机器人,而此前的工业机器人基本上采用液压驱动方式。
与采用液压驱动的机器人相比,采用伺服电动机驱动的机器人在响应速度、精度、灵活性等方面都有很大提高,因此,也逐步代替了采用液压驱动的机器人,成为工业机器人驱动方式的主流。
在此过程中,谐波减速器、RV减速器等高性能减速机构的发展也功不可没。
近年来,交流伺服驱动已经逐渐代替传统的直流伺服驱动方式,直线电动机等新型驱动方式在许多应用领域也有了长足发展。
(2)信息处理速度的提高
机器人的动作通常是通过机器人各个关节的驱动电动机的运动而实现的。
为了使机器人完成各种复杂动作,机器人控制器需要进行大量计算,并在此基础上向机器人的各个关节的驱动电动机发出必要的控制指令。
随着信息技术的不断发展,CPU的计算能力有了很大提高,机器人控制器的性能也有了很大提高,高性能机器人控制器甚至可以同时控制20多个关节。
机器人控制器性能的提高也进一步促进了工业机器人本身性能的提高,并扩大了工业机器人的应用范围。
近年来,随着信息技术和网络技术的发展,已经出现了多台机器人通过网络共享信息,并在此基础上进行协调控制的技术趋势。
(3)传感器技术的发展
机器人技术发展初期,工业机器人只具备检测自身位置、角度和速度的内部传感器。
近年来,随着信息处理技术和传感器技术的迅速发展,触觉、力觉、视觉等外部传感器已经在工业机器人中得到广泛应用。
各种新型传感器的使用不但提高了工业机器人的智能程度,也进一步拓宽了工业机器人的应用范围。
2.2智能机器人的研究现状与发展趋势
智能机器人是具有思维、感知和行动功学、人工智能,微电子学,光学,传感技术、材料科学仿生学等学科的综合成果。
智能机器人可获取、处理和识别多种信息,建立并实时修正环境模型,自主地完成较为复杂的操作任务,因此,比一般的工业机器人具有更大的灵活性、机动性和更广泛的应用领域。
2O世纪电子计算机的发明,使人类的脑力劳动自动化成为可能,60年代智能机器人的出现开辟了智能生产自动化的新纪元。
机器和生产系统的智能化,用机器人代替人完成各种任务,这是人类智慧发展和机器进化的飞跃。
智能机器人作为新一代的生产工具,在制造领域中应用,能排腺人为的不可控因素,实现高节奏、高效和高质量生产,并是未来智能生产系统(如CIMS)的重要组成部分。
在非制造领域,如核工业、水下、空间,建筑、采掘,教灾排险和作战等方面,可代替人完成人所不适或力所不及的各种工作,在原子能、水下和外层空间可开辟新的产业。
目前,我国和许多国家都把智能机器人列为迎接未来挑战的高技术课题,并制订发展规划,拨出巨款给予支持。
因此,预计9O年代,智能机器人技术将会有突破性的进展。
(1)主要研究领域及相关课题
典型的智能机器人主要技术内容包括以下方面:
1.感觉识别技术
1) 视觉研究
如三维视觉系统、图像传感器,颜色识别传感器、特殊环境中用的传感器、视觉通用实时高速处理系统、状况识别技术等;
2) 触觉研究
如接触觉、灵巧传感器、6轴力传感器等;除此之外还有其它如距离觉,味觉,嗅觉等。
2.操作、移动技术
1) 操作技术
如直流驱动电机、执行机构、多指手爪,操作器的作业坐标控制,定标,小型轻量化技术、柔性操作器等;
2) 移动技术
在楼梯移动、恶劣道路上行走、省能,两足步行等;
3.控制、信息处理、人工智能控制、协调控制,、多层递阶控制、远距离控制、高速高精度控制等;
(2)智能机器人研究的发展趋势
自动化的需要推动了机器人进步,而机器人的发展提高了自动化水平。
为了解决工业、原子能利用、空间探测,海洋开发、排险,医疗、军事等领域自动化需要而研制有特定应用背景的智能机器人,基本上沿两条道路发展t一是在一般工业机器人基础上,增加各种高性能传感器和知识库,使之具感知能力和动作规划能力}二是在遥控操作器基础上增加移动能力、环境感知能力、自诊断自学习力及自主能力。
其中包括知识库和专家系统。
由于研究目的性明确,针对性强,实际需要迫切,制造单位与应用单位结合,资金和人力集中使用,因此成果显著见效快。
目前应用研究主要集中在精密装配机器人、水下机器人、移动机器人等方面。
另外,利用神经网络等新技术的智能机器人也引起了人们的重视。
近几年来,许多国家都把智能机器人列为高技术发展规划的重要内容。
从研究方式来看,已打破单位和国家的聂限,出现了单位联合,跨国共同研究的趋势。
如西欧七国高级机器人合作计划、日本的极限作业机器人研究计划、“尤里卡的欧洲机器人研究计划等。
从各国和国际间制订的研究计划来看,虽然项目各异,但在研究特种作业的移动机器人方面都是不约面同,说明特种作业的移动机器人是近期竞相研究的重点。
目前,基于感觉控制的第二代机器人已进入普及应用阶段。
下一代机器人是具有自适应性、自主性和自然性的高级机器人,预计不久的将来可在技术上实现,并开始应用。
2.3本课题的主要内容
1、机器人的结构和外观的设计。
2、机器人的造型建模,绘制各零件的二维、三维图形和运动仿真。
3、编写程序,实现对机器人的各种运动控制。
3、机器人的结构和外观设计
3.1“龙人宝贝”机器人的介绍
图3.1“龙人宝贝”机器人
龙人宝贝是一个为学习单片机技术与C语言程序设计而开发的基础教育机器人平台,包括一个由两个伺服舵机驱动的铝合金机器人对象和一块带有面包板的C51+AVR教学板,并根据不同课程的需要配有一些基本的传感器和电子元器件包。
使用者可跟随所配的教材的章节和步骤,进行平台搭建、电路搭接、编写程序、联机调试、下载至单片机微控制器,以执行各种机器人操作,包括:
沿线行走,走迷宫,跟随光源,距离检测或与其他机器人进行通讯沟通。
通过以上学习和操作,不仅可以学习C51和AVR单片机的原理和应用技术,同时可以学习C语言程序设计的技能和方法。
3.2“龙人宝贝”结构及参数
龙人宝贝是一个基于单片机技术与C语言程序设计的创新教育车型机器人,包括一个由两个伺服舵机驱动的机器人对象和一块带有面包板的AVR控制板。
性能参数:
控制板:
C51+AVR
编程语言:
C语言
电源:
4.5V~6V(1800mAh充电电池)
电机性能参数:
扭力:
2.8kg•cm(4.8V)3.4kg•cm(6.0V)
重量:
41g
3.3机器人结构与外观设计
图3.2“龙人宝贝”机器人三维模型
本文的机器人是以“龙人宝贝”机器人为基础而设计的,图3-2为龙人机器人三维图。
他具有水、路两用功能,装有红外线避障装置。
由C51单片机控制,两台伺服电动机实现机器人的运动。
设计灵感来源于水路两栖坦克,水路两栖坦克利用与军事方面,我的设计的机器人的用途范围可用于军事侦查等方面。
3.4三维建模
利用三维软件proe4.0建模,首先利用用proe4.0对机器人的每个零件进行建模,最后进行装配,组成最终的三维结构图。
Pro/Engineer是由美国PTC公司推出的新一代CAD/CAE/CAM产品,它广泛应用于机械、汽车、航天、家电、玩具、模具、工业设计等行业。
Pro/Engineer的功能特点:
一、Pro/Engineer的核心技术特点
1、基于特征
Pro/Engineer以最自然的思考方式从事设计工作,如钻孔、槽、倒圆角等,均视为零件设计的基本特征,除了充分掌握设计概念外,还在设计过程中导入实际的制造观念;也因为以特征作为设计的单元,因此可随时对特征做顺序调整、插入特征、删除特征、重新定义特征等修改操作
2、全参数化驱动
Pro/Engineer可以通过尺寸驱动设计进行修改,既通过编辑尺寸数值来驱动几何形状的改变,并且可以利用关系生成各类关系式,使某些几何模型可随其他几何尺寸的改变自动改变
3、全尺寸约束
Pro/Engineer将几何形状与尺寸结合考虑,通过尺寸约束实现对几何形状的控制,造型必须以完整的尺寸参数为出发点(全约束),不能欠约束或过约束。
4、单一数据库
整个Pro/Engineer建立在统一的数据库上,这样使软件的各模块都在存取同一个数据库中的数据,当修改某一模块中的尺寸参数时,其他相关模块中的相关尺寸也会自动更新。
5、支持并行工程
Pro/Engineer的产品开发环境支持并行工作,它通过一系列完全相关的模块表述产品的外形、装配及其他功能,可以让多个部门的所有用户同时对同一产品开展设计制造工作,包括对大型项目的装配体管理、功能仿真、制造和数据管理等,具有真正的管理并发进程、实现并行工程的能力。
二、Pro/Engineer的功能模块
1、工业设计模组(CAID)
包含:
用于对产品进行几何及外形、外观设计、Pro/Animate(动画仿真)、Pro/Photoreder(效果渲染)
2、机械设计模组(CAD)
本模块是一个高效的三维机械设计工具,他可以绘制任意复杂形状的零件。
图3.3机械设计模型
3、功能仿真模组(CAE)
本模块主要进行有限元分析。
利用提供的分析功能,在满足零件受力要求的基础上,便可充分优化零件的设计
4、制造模组(CAM)
在机械行业中用到的制造模块中的功能主要是注塑模具型腔设计与数控加工。
5、数据交换模组(GenometryTranslator)
本模块自动跟综和管理所创建的数据,这些数据包括存储在模型文件或库零件中的数据。
主要完成与其它的CAD系统,如UGⅡ、EUCLID、CIMATRTON、MDT等进行几何数据交换。
利用三维软件proe4.0建模的机器人的部分零件和三维结构如下图所示:
图3.4浆和轴套
图3.5电路板
图3.6“龙人宝贝”机器人三维模型
3.5龙人机器人二维图
上面已经在preo4.0里面画出了三维实体图,现在生成工程图,然后转化成CAD图纸打印出来!
在生成工程图的时候,有几点应该必须值得我们去注意的。
首先,我们要记得把绘图单位改成mm,因为系统默认的绘图单位是inch,修改方法如下:
文件—属性—绘图选项—杂项选项—drawing_units—在下面弹出选项对话框里把inch改成mm,
其次,在主视图投影俯视图之前,应该在属性-绘图选项-projection_type里把third_angle改为first_angle.,
最后,在保存副本时应该把保存类型设为dwg或者dxf格式。
图3.7机器人二维图
4、机器人的控制与实现
4.1硬件模块
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
1、与MCS-51单片机产品兼容;
2、8K字节在系统可编程Flash存储器;
3、1000次擦写周期;
4、全静态操作:
0Hz-33MHz;
5、三级加密程序存储器;
6、32个可编程I/O口线;
7、三个16位定时器/计数器;
8、六个中断源;
9、全双工UART串行通道;
10、低功耗空闲和掉电模式;
11、掉电后中断可唤醒;
12、看门狗定时器;
13、双数据指针;
14、掉电标识符。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程
图4.1引脚图
AT89S52引脚图DIP封装
Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0不具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能:
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动
图4.2引脚图
AT89S52引脚图PLCC封装
4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
4.2软件模块
keiluvision2 简介
KeiluVision2是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。
系统功能
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,使您能在很短的时间内就能学会使用keilc51来开发您的单片机应用程序。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
4.3控制程序
4.3.1所用相关函数作用及代码
以下是部分相关函数作用及代码,所用的全部相关函数代码在附件中。
#include
头文件的作用:
包含程序中需要用到的标准数据类型、标准函数和自定义函数等信息。
uart.h的作用:
函数uart_Init()的定义和实现。
uart_Init();//串口初始化
串口初始化函数,用来规定单片机串口是如何与PC通信的。
其代码如下:
/*--