精品毕设FPGA的机器人设计系统.docx
《精品毕设FPGA的机器人设计系统.docx》由会员分享,可在线阅读,更多相关《精品毕设FPGA的机器人设计系统.docx(42页珍藏版)》请在冰豆网上搜索。
精品毕设FPGA的机器人设计系统
本科毕业设计(论文)
题目:
基于FPGA的六足仿生机器人控制
系统设计
姓名:
李国超
学院:
机械电子工程学院
专业:
测控技术与仪器
班级:
1003071
学号:
100307110
指导教师:
姜树海职称:
副教授
二○一4年5月15日
摘要
六足仿生机器人因其很好的复杂地形适应能力,被越来越多的运用在野外侦查、救灾抢险中。
由于六足仿生机器人在这方面的出色表现,科研人员们对六足机器人的研究也越来多。
本课题将多足昆虫的行为学研究成果,融入到六足仿生机器人的设计与控制中,开发能在复杂自然环境中灵活运动的六足仿生机器人,对执行野外侦查、减灾救援等具有重大现实意义,对仿生机器人的发展具有重要的实际意义[1]。
六足仿生机器人嵌入式控制系统包括两个部分,第一部分是在NiosII处理器内以软件方式实现,采用C语言编写应用程序,主要功能是实现机器人直行、转弯。
第二部分是在FPGA芯片内完成系统复位,串口收发等模块的实现,以及NiosII的例化和周边I/O信号读取与输出。
硬件实现计算简单且计算速度较快,有多组并行处理的能力。
采用VerilogHDL硬件描述语言实现硬件代码的编写。
论文以Bioloid公司生产的智能伺服舵机AX-12组成六足机器人架构,利用内嵌NiosII处理器的FPGA控制实现机器人完成各种动作。
研究采用QuartusII软件实现设计输入和硬件配置,使用QuartusII中的SOPCBuiler构架SOPC系统,实现了NiosII处理器核、SDRAM控制器、EPCS控制器、PLL、232UART等的配置。
六足仿生机器人的软件开发过程是利用软件开发工具NiosII9.1SoftwareBuildToolsforEclipse(简称EDS),对硬件系统中组件的驱动及应用程序进行设计。
[1]鉴于课题的前期工作基础,设计实现了六足仿生机器人嵌入式控制系统,并进行了整机测试,测试结果表明:
机器人实现单舵机灵活控制和多舵机协调控制,机器人行走平稳,达到预期要求。
关键词:
六足;仿生机器人;控制;FPGA;SOPC
ResearchonEmbeddedControlSystemforHexapodBionic
RobotBasedonFPGA
Abstract
Moreandmorehexapodbionicrobotisapplytofieldinvestigation,mitigationrescuewiththegoodabilityofadaptationtocomplexterrain.Becauseofthegoodbehaveofhexapodbionicrobotinthisfield,moreandmoreresearchspecialiststaffbegaintoresearchonhexapodbionicrobot.Somakethemyriapodinsectbehaviorstudiesresultsintorobotdesignandcontrol,developmenthexapodbionicrobotflexiblemovementincomplexnaturalenvironmenttoimplementationoffieldinvestigation,mitigationrescueisgreatpracticalsignificanceandimportantpracticalsignificancetodevelopmentofbionicrobot.
Onthebasisofdetailedanalysishexapodbionicrobotcontrolsystemresearchstatus,DesignhexapodrobotembeddedcontrolsystemBasedonSOPC(systemintegratedchip)servocontroltechnologydevelopmentenvironment,usingFPGAembeddedNiosIIprocessor.TheFPGAcontrolchipproducedbyAlteraCycloneIIEP2C8Q,anduseSF-NiosIIcontrolpanelbasedonthischipasrobotcontroller.Hexapodbionicrobotembeddedcontrolsystemconsistsoftwoparts.Inthefirstpart,UsingClanguageImplementatefunctionsinNiosIIprocessor,themainfunctionistorealizethetrajectoryplanningofrobottogostraight,turn,obstacleavoidanceandtemperaturedetectionandstorageandsoon.Thesecondpartincludingcompletesystemreset,serialtransceivermodule,andTheNiosIIinstantiatedandperipheralI/OsignalreadandoutputintheFPGAchip.Thehardwareimplementationissimpleandcalculationspeedisfast,andhaveapluralityofparallelprocessingcapabilities.HardwaredescriptionlanguagebasedonVerilogHDL.BasedonBioloidcompanyproductionofintelligentservosteeringgearofAX-12six-leggedrobotarchitecture,usingNiosIIembeddedprocessorinFPGAtocompletevariousactions.HardwareconfigurationrealizedbyusingtheQuartusIIsoftware,andusetheQuartusIISOPCBuilerframeworkofSOPCsystem,realizedtheconfigurationofTheNiosIIprocessor,SDRAMcontroller,EPCScontroller,PLL,232UART,andsoon.ThesoftwaredevelopmentprocessofHexapodbionicrobotiswritinghardwaredriversandapplicationprogramwithEclipse(EDS)andNiosII9.1
Software.Giventopicpreliminarybasiswork,thedesignhasrealizedthehexapodbionic
robotembeddedcontrolsystem,andthewholeexperiment.Theexperimentalresultsshowthattherobottoachievesingleflexiblecontrolofthesteeringgearandcoordinatedcontrolwithservalservos,obstacleavoidanceanddetectionoftheexternalenvironment,steadywalk,thedesignrechievedtheexpectedrequirements.
Keywords:
Hexapod;bionicrobot;control;FPGA;SOPC
第一章绪论
1.1课题来源及背景
课题来源于南京林业大学引进高层次人才和高层次留学回国人员科研基金项目“多功能移动智能机器人系统实现的研究”课题。
在众多的生物群体之中,占动物种数80%以上的节肢动物,以其复杂精妙的肢体结构、简易灵巧的运动控制策略和顽强的生命力,占据了陆地上的所有生境,成为重要的仿生资源。
依据仿生学理论,借鉴多足昆虫的肢体结构和运动控制策略,开发多足仿生机器人来进行结构、运动、感知及控制研究,成为六足仿生移动机器人技术的重要研究方向。
六足仿生机器人的优点使其尤为适合在复杂的自然环境中执行野外侦查、水下搜寻以及太空探测等对自主性、可靠性要求比较高的任务[7]。
现场可编程门阵列(FPGA-FieldProgrammableGateArray)是近年来发展迅速的大规模可编程逻辑器件,具有设计周期短、片内资源丰富、可无限次加载和现场可编程等特点[3]。
在FPGA上实现嵌入式控制器是一种介于专用集成电路(ASIC)和通用处理器之间的方案,具有电子产品的高速度、高可靠性、小型化、集成化、低功耗、保密性能好、具有自主知识产权、产品上市快等优势。
因此,从仿生学、仿生运动控制系统等方面提出“基于FPGA的六足仿生机器人嵌入式控制系统”研究[4]。
1.2课题的研究目的及意义
目前,机器人控制器主要通过单片机来实现。
但是,单片机是基于顺序语言的,其描述过程繁琐,处理速度受单片机时钟频率的限制,难于实现高速实时控制,并且外围电路复杂,不易在线修改。
利用现场可编程门阵列(FPGA)器件实现六足仿生机器人控制系统则集成度高、高速、高效率,易于现场重新编程,实现多重配置,对仿生六足机器人的单电机控制、腿控制和步态规划的实现具有重要的意义和实际价值[2]。
1.3国内外六足仿生机器人控制系统研究现状
随着科技的进一步发展,足式机器人的应用越来越广泛,现代足式机器人不但具有良好的运动能力,还具有了高平衡性的越障和爬坡能力,为人类进行星球探索、能量补充、人类救援等高危险任务提供良好的保障。
1.国内现状:
我国对足式机器人的控制系统研究相较与国外起步比较晚,主要起步于八十年代,在上海交通大学、北京理工大学、燕山大学等均展开过研究工作,并取得一定的成果。
2.国外现状:
国外足式机器人研究起步早,发展也比较迅速,其中波士顿动力学工程公司研制出一种能在战场上帮助士兵驮东西的机器狗一BigDog代表了当今世界足式机器人的最高水平[5]。
经过50多年的发展,足式机器人已经发展出了多种类,多样式的机器人,有二足、四足、六足、八足机器人,其中四足和六足机器人最受研究人员的青睐。
1.4课题研究内容和主要工作
以仿生六足甲虫为研究对象,进行六足仿生机器人控制系统的研究。
(1)基于仿生学原理,以六足甲虫的结构和运动特性为对象,进行六足仿生机器人的整体结构设计和步态分析;
(2)根据机器人控制系统的要求,进行硬件控制器选型和软件系统的选型及设计;
(3)系统内核配置及相关外围电路配置和设计;
(4)设计串口通信舵机控制、机器人行等功能,并编写相应软件程序;
(5)实现机器人单腿多关节控制及六足协调控制;
(6)对机器人进行实验验证,并分析总结。
1.5小结
绪论主要阐述了课题的来源和课题的研究目的及其意义,详细综述了国内外六足仿生机器人控制系统研究现状,给出了课题的研究内容和主要工作。
第二章六足仿生机器人控制系统总体设计
2.1引言
根据机器人减灾救援的设计思想,为了是机器人有能适应各种复杂的环境的运动系统和完整的控制系统,既要安全又能友好的和人协作。
本机器人系统主要包括以下几个部分:
机体结构:
实现机器人灵活运动的机构;
运动方式:
实现机器人直行和左右转弯;
驱动系统:
实现机器人运动控制的核心部分;
控制系统:
实时处理感知系统反馈信息的输入,并按照反馈的信息指示驱动系统动作,机体执行相应的动作[17]。
在对机器人进行嵌入式设计之前,要多控制系统进行硬件选型和软件选择。
2.2六足仿生机器人结构
六足甲虫基本组成分躯体和足两部分,基于仿生学原理六足仿生机器人也由躯体和足两部分组成,采用正相对称分布。
以甲虫躯体结构和腿部结构为模型,开发的六足仿生机器人结构图和机器人腿部结构如图2-1和图2-2所示。
六足机器人躯干与各肢体的连接关节设计为椭圆形,椭圆形肢体分布具有优势,一是减少腿间运动干涉的发生概率,二是能够增加步行的稳定性。
图2-1整体结构图图2-2单腿结构图图2-3腿部实体模型
Fig.2-1OverallstructureFig.2-4SinglelegstructureFig.2-5Solidmodelofleg
六足仿生机器人结构采用以中轴对称的八边形设计,两边均匀分布3条腿,每条腿有三个自由度,一个沿垂直轴水平运动、两个沿水平轴垂直运动。
机器人每条腿有三个关节。
共有18个自由度,机器人由18个伺服舵机组成。
每条腿3个舵机。
机器人腿结构腿部实体模型如图2-3所示。
2.3机器人步态产生
六足机器人大多运用仿生学方法,采用爬行的行走方式,其步态方式也很多,常见的三种步态分别是二步态、三步态、六步态。
课题采用直行时用三步态行走,转弯时用六步态转弯。
图2-4三步态行走图2-5六步态行走
Fig.2—4ThreegaitwalkingstyleFig.2—5Sixgaitwalkingstyle
六足机器人的三步态行走方式摆腿顺序为153-246-153,如图2-4所示。
六步态行走方式摆腿顺序为4-2-6-1-5-3-4-2-6,如图2-5所示。
2.4六足仿生机器人舵机选择
机器人的运动控制常用的电机有直流电机、步进电机和舵机,课题考虑到经济性以及控制要求等,采用Dynamixel系列AX-12舵机,它是机器人专用的伺服电机。
AX-12舵机如图2-6,2-7所示。
图2-6DynamixelAX-12舵机
Fig.2-6DynamixelAX-12Actuator
2.5AX-12舵机介绍
2.5.1AX-12数字舵机概述及特性
AX-12舵机是一款智能化、模块化的动力装置,主要由一个微处理器、一个精确的直流电机、齿轮减速器、位置传感器、温度传感器以及具备通讯功能的控制芯片等组成,其内部机械结构和电路控制如图2-10所示。
舵机能产生的最大扭矩为16.5kgf·cm,材料坚固,保证承受极大外力必需的强度和韧性。
工作时可反馈内部状况,例如内部温度或输入电压。
位置和速度可设为1024等分控制。
支持通讯速度最高达1Mbps。
AX-12数字舵机作为舵机用时,最大转角为300°,作为电机用时可以自由旋转,应用范围广;采用数字信号控制,控制起来更方便;每个舵机都拥有唯一的ID号,采用网络驱动模式、Daisy总线连接方式,可以多个网状串连控制,连接方便。
它的具体参数如表2-2所示。
由于AX-12内部配有一个ATmega8微处理器,用来接收控制器发送的数据包,通过相应的处理后给伺服电机发送PWM信号来控制电机的起停。
因此,控制舵机实际上是去控制ATmega8,舵机的状态和参数都存储在ATmega8的RAM和EEPROM相应的地址里,对舵机进行控制也就是对舵机的相应地址读和写数据的过程。
因此,要了解舵机的通信协议[23]。
图2-7舵机内部结构和控制图
Fig.2-7InternalstructureandcontrolchartsofActuator
2.5.2AX-12舵机通信协议
AX-12Dynamixel舵机内置有通信功能的芯片,所以要使舵机运行,主控制器必须具备合适TTL电平的半双工异步串行通道。
通过控制器向舵机发送动作控制指令及查询,等待动作执行结束后,继续发送下一条动作控制指令。
因为控制板的UART接口是全双工标准的接口,而AX-12Dynamixel舵机的通信方式为UART半双工信号,所以主控制器要转换UART信号为半双工信号,需要搭建一个全双工转半双工的电路,电路图如图2-11所示。
把UART信号转换为半双工信号也可直接使用RS485。
设计直接采用RS485通信。
图2-8全双工转半双工的电路原理图
Fig.2-8CircuitSchematicofFull-duplextoHalf–duplex
AX-12Dynamixel能接收主控制器发送的“指令包”,并根据主控制器的要求反馈回传“状态包”。
AX-12Dynamixel规定能接收的“指令包”结构如下:
0XFF0XFFIDLengthInstrctionParameter1…ParameterNChecksum
0XFF0XFF2个0XFF表示开始传送指令包。
ID每个舵机对应唯一ID。
可连接254个ID,范围从0X00至0XFD。
Length指令包的长度,该值表示为“参数个数(N)+2”。
Instruction要求舵机执行的指令。
如表2-3所示。
ParameterN除指令本身之外,如果还有附加信息需要传送,用该值表示。
Checksum“校验码”的计算方法如下:
CheckSum=~(ID+Length+Instruction+Parameter1+…+ParameterN)如果计算结果大于255,则后面字节的值设为校验码的值。
“~”表示非逻辑运算。
AX-12Dynamixel规定反馈的“状态包”结构如下:
0XFF0XFFIDLengthErrorParameter1Parameter2…ParameterNChecksum
Error为反馈的错误信息。
2.6六足仿生机器人控制系统
图2-9控制系统设计框图
Fig.2-9Designdigramofcontrolsystem
方案以微控制器为核心,分模块化设计,各子模块功能如下:
(1)微处理器模块:
是控制系统的核心,包括微控制器及其相关外围电路,主要进行各种信息、数据的处理,协调系统中各功能模块完成预定的任务;
(2)驱动模块:
控制机器人系统中的舵机和传感器模块,实现舵机速度和位置的控制,完成直行、转弯等动作;
(3)电源模块:
负责整个六足仿生机器人的电源供给,使系统能离线运动,主要由12V蓄电池及相关调压稳压电路组成;
(4)串口通信模块:
根据串口通信标准与上位机进行串口通信;
(5)JTAG模块:
可以实现在线编程、调试仿真。
2.7嵌入式控制系统硬件选择
机器人设计和研究中,国内外普遍采用微控制器(MCU)、微处理器(MPU)、数字信号处理器(DSP)以及片上系统(SOC)作为机器人的主控制器[55]。
微控制器有ARM,DSP,FPGA等。
不同的处理器针对不同的应用场合。
ARM(AdvancedRISCMachines)是面向低预算市场设计的第一款RISC微处理器。
ARM处理器本身是32位设计,但也配备16位指令集。
一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。
在控制领域具有较大的优势,尤其在操作系统运行、事务管理以及界面显示与应用程序方面具有较大优势。
DSP(DigitalSignalProcessor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。
其工作原理是接收模拟信号,转换为0或1的数字信号。
再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
利用现场可编程门阵列(FPGA)器件实现机器人控制系统,集成度高,高速、高效率,易于现场重新编程,实现多重配置,可以把其它控制模块集成在FPGA中,体积小、可靠性高,整个控制系统由硬件实现。
综合以上各微控制器的特点、应用场合等因素后,主控制器核心选用FPGA作为主控制芯片。
CycloneII器件支持NiosII嵌入式处理器,这样可以帮助用户更好的执行个性化的嵌入式处理方案。
CycloneII器件还具有可扩展外设、存储器、I/O、或嵌入式处理器的性能。
用户可以在CycloneII设备中设计单个或多个NiosII嵌入式处理器,来提供额外的协作处理的能力,甚至替代当前的嵌入式处理器。
使用基于CycloneII的低成本、高性能NiosII嵌入式处理方案,可以延长产品寿命周期并加速产品的上市时间。
设计选用Altera公司的CycloneII系列的EP2C8Q208作为主控制芯片,芯片价格便宜,性能优越[13]。
2.8嵌入式控制系统软件选择
NiosII系列软核处理器是Altera的第二代FPGA嵌入式处理器,32位RSIC嵌入式处理器,其性能超过200DMIPS,在AlteraFPGA中实现仅需35美分。
NiosⅡ处理器具有完善的软件开发套件,包括编译器、集成开发环境(IDE)、JTAG调试器、实时操作系统(RTOS)和TCP/IP协议栈。
使用NiosⅡ软件开发工具能够为NiosⅡ系统构建软件,即一键式自动生成适用于系统硬件的专用C/C++运行环境。
NiosⅡ集成开发环境(IDE)提供了许多软件模板,简化了项目设置。
此外,NiosⅡ开发套件包括两个第三方实时操作系统(RTOS)—MicroC/OS-Ⅱ(Micrium),NucleusPlus(ATI/Mentor)以及供网络应用使用的TCP/IP协议栈。
设计者能够用AlteraQuartusⅡ开发软件中的SOPCBuilder系统开发工具很容易地创建专用的处理器系统,并能够根据系统的需求添加NiosⅡ