基于单片机的关节机器人控制系统设计_第1页
基于单片机的关节机器人控制系统设计_第2页
基于单片机的关节机器人控制系统设计_第3页
基于单片机的关节机器人控制系统设计_第4页
基于单片机的关节机器人控制系统设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的关节机器人控制系统设计基于单片机的关节机器人控制系统设计全文共26页,当前为第1页。1绪论基于单片机的关节机器人控制系统设计全文共26页,当前为第1页。1.1选题背景和意义随着现代计算机技术的发展,工业生产的自动化水平不断提高,机器人在工业中发挥了重要作用,并被广泛应用于生产中。许多高校研究所,学者开始对机器人智能控制进行了广泛研究的研究。工业机器人控制系统的研究是其研究领域的一个重要方向。工业机器人智能控制的研究已经成为各国的热门话题。工业机器人是一种多关节,强耦合,非线性多变量系统,其控制数学模型非常复杂,由运动学和动力学方程组成。要实现对多关节机器人在位置和力进行精确控制,需要大量很复杂的数学分析和计算,同时需要高速计算机进行实时计算控制。目前,大部分机器人在生产应用时都是预先编好程序的,来完成装配和焊接等工作。要完成任务必须有精确的定位和对位置控制。对于动车组玻璃的安装等操作时,当多关节机器人需要和物体接触时,要和外部环境接触时,就不仅仅只需要位置的精确。因为当多关节机器人与玻璃接触时,接触力过大会损坏,过小则会因为接触力达不到要求,而不能完成任务。为了让多关节机器人准确实现每个动作,完成工作,多关节机器人应能根据外部的环境变化作出相对应调整,多关节机器人一般通过视觉和力传感器来对外部环境进行采集,然后反馈给控制系统,这样多关节机器人可以以根据外界的变化来进行控制。主动力控制是多关节机器人通过反馈的力信息,然后运用一些控制算法去控制环境的作用力;被动力控制是多关节机器人使用一些辅助机构,来使多关节机器人与环境接触时能对外部作用的力作出反应。机器人主动力控制不需要外部机构的作用,可以克服被动力控制的不足。因此,对多关节机器人进行主动力控制研究在工业生产接触运用有十分广泛的应用前景。在多关节机器人控制系统中,除了控制系统算法,还有交流伺服控制系统部分,其中交流伺服系统在多关节机器人控制系统中也占有重要地位。进行位置和力控制时,为了适应环境的需求,需要多关节机器人交流伺服系统具有更高的精度和扩展性。所以随着人工智能控制的出现,人们也开始研究多关节机器人交流伺服控制系统的性能改进研究。本课题的意义,是通过对多关节机器人控制法研究和交流伺服控制系统的设计,使多关节机器人在位置和力的控制,可以运用到特殊环境工作当中。基于单片机的关节机器人控制系统设计全文共26基于单片机的关节机器人控制系统设计全文共26页,当前为第2页。1.2机器人控制系统的发展与现状近年来,工业机器人技术快速发展,很多高校和公司都在对机器人进行研究,机器人的发展是和其控制算法,伺服驱动器,传感器的发展息息相关的。提高机器人适应复杂生产环境的能力将成为工业机器人的发展趋势。机器人控制系统主要由三部分组成:运动控制策略、运动控制卡和交流伺服电机驱动系统。目前,机器人控制系统的研发主要集中在以下几个方面:1.2.1机器人运动控制策略的发展目前对机器人的控制策略研究有很多方面,有进行机器人轨迹优化的,机器人避障控制的和双臂机器人协同控制的,这些控制主要是机器人在自由空间里运动控制研究。目前在工业生产中,很多场合需要机器人与环境接触,这时不仅需要对机器人进行位置控制,而且需要对其进行接触力的控制。这时,一些专家开始对机器人在复杂环境下,与物体接触时进行大量的控制算法研究。从早期的机器人拖动控制到后来的试教控制,都经历机器人控制的快速发展。但在发展的过程中,各自研究机构,企业都研究出自己独有的控制系统,并且控制算法也不对外开放,都有自己的编程语言,因此人们在使用时,需要对多和编程进行学习。在工业生产应用了各个公司生产的控制系统不兼容,不能很好的对各种机器人进行协调控制,这也是目前制约机器人发展的主要因素之一。1979年,梅森首次提出了控制力和位置的概念,并根据具体任务分别对机器人的不同关节进行力控制和位置控制。这种控制策略存在不足的地方是不能很好的适应外部环境变化时的情况。多关节机器人具有非常复杂的控制系统,通常其具有实时变化等不确定因素。姿态随时间的变化而变化,外部环境则是未知的。鉴于以上存在的问题,许多专家研究了自适应的控制算法。用该算法可以对多关节机器人接触力进行控制。有代表性的研究是:KucTae-Yong等运用一些混合的控制算法对机器人接触力进行研究,在稳定性上非常好。NicolettiG.M利用李亚普诺夫理论分析了在一定条件下,自适应的PID控制算法的的快速稳定性条件。此外,很多专家根据多关节机器人接触力控制的方法,在此基础上研究了滑模控制算法。目前,这些控制算法都只是对其进行了理论方面的研究和分析,并没有实现真正意义上的应用。当前,人们开始研究更加智能的机器人,这就需要对机器人智能控制算法进行研究。代表性研究如下:Connolly等采用神经网络进行力/位置混合控制。并利用神经网络选择矩阵和力约束条件,对所测到的力和位置进行了基于单片机的关节机器人控制系统设计全文共26页,当前为第3页。计算;日本学者Kazuo与Toshio研究了一种模糊神经网络的控制算法,同时对机器人进行力的控制试验,在一些方面对机器人的力控制效果比较好。然而,由于实验控制比较容易、控制对象比较单一,因而不能广泛运用。国内,一些高校,知名学者也对机器人力控制进行研究,乔兵等研究了基于位置控制的机器人力/位置同时进行控制的算法。这种控制算法主要是用得到的机器人反馈的力数据,对不确定环境下位置控制和力控制方向进行预测,然后根据位置控制和力控制方向规划机器人末端的轨迹,采用阻抗控制律,使机器人具有更好的柔顺性。李杰等通过力的误差对参考位置进行校正,研究自适应力的控制策略,使机器人的实际接触力能够跟踪预期的力。该控制算法对于在不确定环境下运用具有一定的稳定性。徐阳生等提出了将主动力控制与被动力控制相结合的策略,开发了新的机器人腕,并且通过运用了模糊控制方法实现了插孔。对这些研究进行分析可知,机器人智能控制只是进行理论上研究,运用到实际当中的智能控制算法还是不多。只是将模糊理论和神经网络理论等智能控制理论应用于一些理论研究中比较复杂的问题,还存在一些不足之处。基于单片机的关节机器人控制系统设计全文共26页,当前为第3页。1.2.2高性能机器人交流伺服驱动器的发展机器人控制系统是一种比较复杂,涉及多个方面的系统,因此控制系统的发展一般都是整体一起发展的。在研究智能控制算法的同时,人们也开始对机器人的其他控制部分进行研究,如机器人伺服电机驱动器。交流伺服驱动部分是机器人控制系统中最重要的组成部分之一,其控制算法已经转向智能控制方向。机器人交流驱动器主要由硬件部分和控制软件部分组成,软件部分主要是对交流伺服电机的控制算法,目前对伺服电机控制算法的研究非常多,也形成了一些比较经典的控制算法,如矢量控制,PID控制等。在对伺服电机控制算法研究的同时,对伺服电机驱动器硬件的开发,也在不断的更新,驱动器硬件的设计对机器人交流伺服驱动器性能将产生直接的影响。现在的伺服驱动器硬件的发展主要是向数字化,高精度,容易扩展和支持多种运行方式等方面。国内对机器人伺服驱动器的研究时间比国外晚,这几年国内一些公司也开始对机器人伺服驱动器进行研究,并开发出了一些比较好的产品,但和国外的相比还是有很多不足。目前在一些控制精度要求比较高的机器人上,大多运用的是国外生产伺服驱动器,国内在高性能伺服驱动器的研究还有很大的空间。国内的伺服驱动器从无经历到研究,开发,然后应用这一过程。国内一些科研院所已经开始加大对高性能的伺服驱动器的研发,这将对提升机器人控制系统整体性能也起到重要作用。国内机器人制造商主要有航空航天赛能公司等。目前,中国最大的机器人生产公司为首钢MOTOUENMan公司。广州数控机床不仅自主研发机器人,还独立开发高精度伺服驱动系统,提高控制性能。目前同国外机器人相比,国内机器人智能控制,高性能,高精度控基于单片机的关节机器人控制系统设计全文共26页,当前为第4页。制器方面还存在不足。国内机器人交流伺服驱动器主要面临的问题是:高精准度,适应性强,可靠的稳定性等。在中国也有很多大学和研究所对机器人进行研究,主要包括哈尔滨工业大学,上海交通大学,燕山大学、东南大学,但大多数的研究结果在实验室阶段。目前,机器人交流伺服驱动器的未来发展方向将有以下几个方面:更加智能性和数字模块化。交流伺服驱动器在提高控制精度的同时,对其进行维护和扩展也是非常重要,所以模块化的设计有利于对驱动器的扩展和方便维护。对机器人交流伺服驱动器进行数字化控制研究,主要是实现硬件内部和外部控制的进行数字化控制。机器人各个关节主要是由伺服驱动器进行驱动控制,研究高性能数字化控制技术是十分重要的,它将提升机器人各个关节的控制精度和稳定度,从而使得机器人控制系统的整个控制性能也得到很大的提升。基于单片机的关节机器人控制系统设计全文共26页,当前为第4页。1.2.3高精度伺服电机的发展随着电力电子技术和集成电路的快速发展,伺服电机也得到了快速发展。目前,伺服电机的发展主要是朝着精度更高、体积更小的方向发展。机器人的到达各个目标主要是由交流伺服电机提供所需要的动力,所以交流伺服电机的体积大小和精确性对机器人的控制性能有重大影响,因此世界各国对伺服电机进行大量研究。目前机器人常用交流伺服电机,而永磁伺服电机精度更高,能为机器人提供更加精准的位置控制。机器人上目前运用的伺服电机大多都是交流伺服电动机,国外的一些公司,比如安川、法那科他们的机器人现在都是自己生产的专用伺服电机,其也有一些公司也运用一些通用性的伺服电机。德国库卡公司生产机器人运用的是西门子研发的伺服电机;ABB公司则运用的是来自多个不同公司生产的伺服电机,有日本多摩川、德国西门子等。而最近几年,ABB公司也开始研发伺服电机。在2007年国内开始研发机器人专用伺服永磁同步电机,公司生产的机器人的也开始使用自行研发的伺服电机。南京埃斯顿是一个国内自动化生产公司,生产的大部分机器人已经开始使用自行研发的伺服电机;国内还有一些电机生产公司,如洛阳诚冠、上海翡叶动力,也开始研发伺服永磁同步电机,其中一些产品已经运用到国内的一些机器人上。国内具有高性能的伺服电机还是不足,相比国外有一定差距,因此在高精度机器人运用的伺服电机还是国外生产。1.3本设计研究的任务本设计以单片机为核心控制器,完成机械手控制系统的设计,主要集中在四自由度机械臂抓取货物的任务:分析机械手的结构,查阅数据,选择合适的单片机型号;建立机械臂的空间坐标模型,并确定指定的运动控制要求;设计控制系统各部分的各功能电路、驱动电路、控制电路和元件选择;根据机械臂各关节的运动控制要求,完成了控制系统的软件设计。使手臂的行程运动,手臂可以实现基于单片机的关节机器人控制系统设计全文共26页,当前为第5页。基于单片机的关节机器人控制系统设计全文共26页,当前为第5页。2机械结构与控制系统概述2.1机械结构机械臂的动力驱动方式包括气动式、齿轮式和绳索式。其中,齿轮式是应用最广泛的机械臂驱动方法之一,主要是因为齿轮式机械臂具有传动精度高、体积小、速度快、运行稳定的优点。随着制造业的发展,对机械臂的自由度、精度和稳定性的要求越来越高。机械臂正朝着多自由度、高速、高精度的方向发展。考虑到齿轮式机械臂结构简单,易于安装和拆卸;重量轻、关节转动惯量小、灵活性强等优点,本文选择齿轮式(转向器驱动方式)。在本设计中,综合考虑机械臂的结构、功能要求、提升扭矩等因素,确定机械臂具有四个自由度。四自由度机械臂由四个转向发动机控制。如图2.1所示,舵机1控制基座实现自由旋转,舵机2控制机械臂上下移动,舵机3控制末端机械爪的水平倾斜,舵机4控制机械爪的开合抓取物体。其中,驱动机械臂的最大扭矩出现在水平提升过程中。为了使机械臂平稳准确地完成水平提升,机械臂舵机2选择输出扭矩较大的数字舵机,其他舵机考虑性价比采用模拟舵机。为了使机械手运行得越来越轻,选用轻型的U型铝合金连杆作为关节连接件,使机械手动作更加灵活,能够完成各种困难的动作。本机械臂各关节的最大运动范围:关节1基座的旋转范围受转向机极限旋转范围的限制为-90-90度。关节2的最大旋转角度最低为0度,最高为90度。关节3的机械爪的倾斜角控制在最小-90度和最大90度。关节4的机械爪的打开和关闭最小为0,最大为90度。关节关节1关节2关节3关节4图2.1机械臂关节运动范围图基于单片机的关节机器人控制系统设计全文共26页,当前为第6页。2.2控制系统基于单片机的关节机器人控制系统设计全文共26页,当前为第6页。控制系统的直接控制对象是驱动机械臂的舵机,舵机的控制信号是占空比可调的脉宽调制波。因此,该设计考虑了从脉宽调制信号的产生中选择主控制器。机械臂舵机产生脉宽调制信号有三种主要方法。第一种是模拟电路法,用一些独立的元件来建立模拟电路。该电路原理简单易实现,但存在脉宽精度低、脉宽调节困难、对环境影响大的缺点;第二种是通过使用可编程逻辑器件来实现的。FPGA具有丰富的编程指令、强大的计算能力和并行处理功能,能够产生稳定可靠的脉宽调制信号。然而,现场可编程门阵列系统电路复杂,编程困难,开发效率低,成本高。第三种方法是用单片机作为控制系统的主控制器来产生脉宽调制信号。该方法具有输出性能稳定、编程灵活、控制精度高等优点。此外,这种电路体积小,是目前最常用的为转向器和DC电机调速产生脉宽调制信号的方案。通过以上三种方法的比较,本设计决定采用性价比较高的新一代8051微控制器STC12C5A60S2作为主控芯片。控制系统方案如图2.2所示。STC12C5A60S2是一种新型8051单片机。它最大的特点是具有8-12倍的单时钟/机器周期(1T)速度,并有自己的模数转换功能。它还可以产生脉宽调制信号、双串口和与传统8051完全兼容的指令代码。以下传统8051单片机与新一代STC12C5A60S2系列单片机的区别:STC12C5A60S2系列微控制器的定时器T0/定时器T1和串口与传统的8051完全兼容,但没有定时器T2。上电复位后,默认情况下,定时器模式控制寄存器仍除以12,以便再次计数。STC12C5A60S2与传统8051的111指令完全兼容,执行速度全面提高。最高速度可以提高24倍,最低速度也可以提高3倍。新STC12C5Axx取消了传统8051单片机ALE引脚-6分频输出,不能向外输出时钟。但是,它可以使用新添加的可编程时钟输出控制器向外输出时钟(CLKOUT0/CLKOUT1/CLKOUT2),或者使用带200欧姆电阻的XTAL2引脚串向外输出时钟。由于STC12系列从高到低或从低到高更快地执行输入/输出端口操作,因此只需要4个时钟周期,而传统的8051需要12个时钟。传统的8051单片机在读取外部状态时需要将相应的引脚拉高,否则读取错误。主要特性:增强型8051CPU,1T单时钟/机器周期工作频率范围:0~35MHz,相当于普通8051的0~420MHz片上集成1280字节RAM通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统基于单片机的关节机器人控制系统设计全文共26页,当前为第7页。I/O口)可设置成四种模式:准双向口/弱上拉,强推挽/弱上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA[10]基于单片机的关节机器人控制系统设计全文共26页,当前为第7页。共4个16位定时器,两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器[11]。电源舵机控制系统编程接口STC12C5A60S2电源舵机控制系统编程接口STC12C5A60S2时钟电路复位电路2.3系统功能介绍本设计采用电动四自由度机械臂结构方案。控制器方案由单片机系统提供,采用舵机作为动力传输方式驱动机械臂。手臂有四个关节,每个关节可以旋转180度,手臂的旋转由四个舵机驱动,可以完成点对点物体夹紧的简单动作。系统控制图如图2.3所示。单片机单片机驱动器1驱动器2驱动器3驱动器4电机1电机2电机3电机4单片机驱动器1驱动器2驱动器3图2.3四自由度机械臂控制基于单片机的关节机器人控制系统设计全文共26页,当前为第8页。基于单片机的关节机器人控制系统设计全文共26页,当前为第8页。2.4舵机工作原理与控制方法2.4.1概述舵机是一种伺服控制系统,因为它可以通过程序连续控制其旋转角度,所以通常用于各种需要实现角度旋转控制的关节运动中。转向器是联合转向的控制和驱动机构。它具有体积小、扭矩大、外部机械设计简单、控制精度高等特点。无论是硬件设计还是软件设计,转向器的设计都是机械臂传动的重要组成部分。2.4.2舵机的组成一般来讲,舵机主要由舵盘、减速齿轮组、位置反馈电位计、直流电机、控制电路几部分组成,如图2.4所示。图2.4舵机的组成示意图转向器有三条输入线。电源线、接地线和控制线如图2.5所示。中间的红线是电源线,黑色的是地线。转向机的接地线应连接到控制电路的接地端子(公共接地)。方向舵主要由这两条线驱动。转向器的电源电压一般有两种规格,一种是4.8V,另一种是7.2V。7.2V通常适用于扭矩要求高的场合,4.8V主要适用于超小型和长期连续运行的场合。另一条黄线是控制信号线。转向机从控制系统接收脉宽调制信号。图2.5舵机的输出线图基于单片机的关节机器人控制系统设计全文共26页,当前为第9页。基于单片机的关节机器人控制系统设计全文共26页,当前为第9页。2.4.3舵机工作原理。PWM波PWM波-控制电路电机减速齿轮电位器角度图2.6舵机控制原理图转向器的控制信号是周期为20毫秒的脉宽调制信号,脉宽的调节范围为0.5毫秒至2.5毫秒,对应于-90°至90°的输出角,线性变化如图2.7所示。对于模拟转向机,只有提供稳定连续的脉冲宽度信号,其输出轴才会保持相应的角度。对于数字转向器,只向其提供相应的脉宽信号,其输出轴将保持在相应的角度,而不保持该脉宽信号。转向器控制电路产生周期为20毫秒、宽度为1.5毫秒的参考脉宽调制信号,在参考脉宽调制信号内部设置比较器,比较外部信号和内部参考信号,判断电机的旋转方向和大小。通过调节脉宽调制信号的占空比,可以方便地控制舵机的转向角度,因此舵机广泛应用于角度控制系统中,如机器人的联合驱动、智能汽车的转向控制等。图2.7舵机输出转角与输入脉冲的关系基于单片机的关节机器人控制系统设计全文共26页,当前为第10页。基于单片机的关节机器人控制系统设计全文共26页,当前为第10页。3系统硬件电路设计3.1时钟电路设计STC12C5A60S2的时钟源可以来自外部时钟信号或振荡器。一般来说,单片机系统使用外部时钟输入,因为外部时钟可变且灵活,可以根据处理速度选择不同频率的时钟芯片。同时,外部时钟精度高,稳定性好。时钟电路如图3.1所示图3.1时钟电路3.2复位电路设计复位操作完成单片机片上电路的初始化,使单片机从某一状态开始运行。当8051微控制器的复位引脚RST的高电平超过5毫秒时,微控制器完成复位操作。常用的上电和开关复位电路如图3.2所示。通电后,由于电容充电,RST会持续一段高电平时间。当微控制器已经运行时,按下复位键也可以使RST持续一段高电平时间。从而实现上电和开关复位的操作。通常选择C=10~30F,R=10k。图3.2复位电路图基于单片机的关节机器人控制系统设计全文共26页,当前为第11页。3.3控制器电源电路设计基于单片机的关节机器人控制系统设计全文共26页,当前为第11页。该电路所需的5V直流电源为工频220伏电源。变压器降压后,用电桥整流,用三端稳压芯片稳压。。常见的三端稳压集成电路包括78x系列正电压输出和79x系列负电压输出。三端集成电路的三个引脚分别是输入端、接地端和输出端。78/79系列三端稳定集成电路用于形成稳定的电源,只需要很少的外围器件。电路内部还有过流、过温和调节管保护电路。使用可靠、方便、便宜。因为这种设计只需要5V的正电压,所以这里选择7805。整流桥选择耐受电压为25V的正向电流1A。整流后的是脉动的波形。为了获得稳定的电压,一个大电容连接到整流桥的输出端。7805的最高输出电流约为1.5A,最高输出功率为:P=UI=5V*1.5A=7.5W因此,可以设计一件7805来满足要求。下图中的C1和C3用作平面波,因此选择了大电容。C2和C4选择消除长导线的电感效应,并选择小电容,如图3.3所示。图3.3控制器电源电路图3.4舵机驱动电路通过实验发现,转向器在工作过程中需要吸收大量的电源电流。如果舵机与单片机控制器共用电源,舵机会对单片机造成很大干扰。因此,舵机和单片机控制器由两个电源供电。如图3.4所示,两者共用一个接地,转向器的电源最好是输出功率较高的开关电源。基于单片机的关节机器人控制系统设计全文共26页,当前为第12页。图3.4基于单片机的关节机器人控制系统设计全文共26页,当前为第12页。3.5串口通信电路设计图3.5RS232串口通信电路4系统软件设计随着单片机技术的发展,越来越多的人在研究和应用单片机技术。相应单片机的编程语言也在不断发展、完善和丰富。目前,有三种相对完善且常用的编程语言,即汇编语言、C语言和BASIC语言。BASIC是美国科学家托马斯·库尔茨(ThomasKurtz)在1965年5月开发的高级语言。几十年来,BASIC语言一直被认为是初学者编程的语言。有许多结构化的思想和编程方法,如函数、模块、局部变量、全局变量、数据传输等。BASIC对所有变量使用浮点值,以简化变量的使用。此外,它还具有为单片机硬件设计的命令,如:液晶命令可以用一个命令来实现液晶显示操作。Cls /清LCD屏Lcd“Howareyou” /向LCD输入字符“Howareyou”这样的命令主要为单片机及其外部硬件提供直接操作,大大简化了开发过程。基于单片机的关节机器人控制系统设计全文共26页,当前为第13页。汇编语言是面向机器的。为了克服机器语言的缺点,用英文字符代替机器语言。这些英文字符被称为助记符。用汇编语言编写的程序效率高、存储空间小、时效性强、运行速度快,优化后的程序可以用汇编语言编写。然而,汇编语言可读性差,编程耗时,汇编语言和机器语言一样,不能与特定的机器硬件分开。对于不同类型的单片机,它们的汇编语言可能有些不同,因此缺乏通用性不容易移植。例如,如果使用汇编语言在PICl2CESl8微控制器上编译程序,就不能在STC89C51微控制器上运行,因为它们的指令系统不同。基于单片机的关节机器人控制系统设计全文共26页,当前为第13页。c语言是嵌入式系统中常见的编程语言。它具有丰富的数据类型和操作符、高码率、良好的可移植性和丰富的功能,以及良好的程序结构。适用于各种应用程序的设计。它目前是嵌入式系统中广泛使用的编程语言。51单片机的C语言采用C51编译器(简称C51)。C51是一种结构化编程语言。其源程序易读、易学、易调试,符合通用语言标准。非常适合单片机等微处理编程语言,可以与A51汇编语言目标代码混合使用。应用C51变成具有以下优点:编程时不需要考虑内部寄存器和存储器的分配,从而减少了用户编程的工作量;该程序由多个功能组成,具有良好的模块化结构;丰富的子程序库可以直接引用,大大提高了编程速度;c语言和汇编语言可以互换使用。本设计总结了上述编程语言的优缺点,决定采用汇编语言和C51的混合编程方法。为了使程序结构清晰,为了方便调试,采用了结构化编程方法。该设计程序由6部分组成:主程序、初始和最终位置替换功能、速度控制功能、机械爪控制功能、定时器T0子程序和定时器T1子程序。4.1四自由机械臂轨迹规划在工业生产中,装配机器人广泛应用于生产线。生产线上典型的机器人,即机械臂,主要是自动完成往复操作。基于此,本设计的机械臂执行往复操作。执行往复操作的机械臂在运行之前设置程序中的执行轨迹,即预先设置机械臂末端的机械爪的姿态和过程的姿态。为了确保机械臂末端的稳定运动,机械臂的每个关节必须保持稳定运动。然而,为了保证关节的平稳运动,机械臂关节旋转变量的增量在运动过程中不会出现突变。为了实现机械手末端按照给定路径的运动,需要规划机械手各个自由度的姿态。即,设置机械臂的控制参数,转向器的旋转范围为0-180度,脉冲宽度为0.5毫秒-2.5毫秒,相应的占空比参数为5000-25000。机械臂组装后,应首先基于单片机的关节机器人控制系统设计全文共26页,当前为第14页。确定每个关节的旋转范围。转向机通常可以承受10秒内的锁定旋转。调整转向机时,应防止转向机进入锁定旋转状态。在测试开始时,每个接头都要单独测试。测试一个转向机时,另一个转向机需要保持断电状态。通过修改转向机测试程序的占空比参数,同时观察相应转向机的实际工作范围。记录转向器运行时角位置和占空比之间的对应关系。然后确定机械臂的初始位置。机械臂的初始位置是机械臂的复位状态,这需要机械臂保持平衡,有利于其抓取操作。在确定机械臂的每个自由度的关节运动范围之后,占空比参数被设置为转向器运动范围的中间值。角度和占空比参数之间的对应关系见表4.1。在设置机械臂的初始参数之后,确保机械臂能够在相对安全的空间中移动。机械臂末端的运动空间如图4.1所示。由于机械臂自身结构的限制,本系统中的机械臂只能在XOY平面内旋转180度,末端只能在1/4球体内移动,如图4.1所示。机械臂在XYZ空间的最大伸展长度为20厘米。基于单片机的关节机器人控制系统设计全文共26页,当前为第14页。表4.1舵机角度与占空比参数的对应关系表位置A位置B初始位置占空比参数占空比占空比参数占空比占空比参数占空比舵机112006%5002.5%9004.5%舵机2200010%14007%17008.5%舵机310005%16508.25%13006.5%舵机421004.5%15007.5%18009%xxZY位置A位置BZYX位置A位置B图4.1机械臂运动空间图基于单片机的关节机器人控制系统设计全文共26页,当前为第15页。4.2主程序设计基于单片机的关节机器人控制系统设计全文共26页,当前为第15页。主程序是模块化程序的主干,它协调程序执行的顺序,连接子程序,并在子程序之间传输参数。本设计的主程序主要执行以下4项任务第一步是在程序启动后完成全局变量的声明,初始化占空比参数数组,初始化定时器T0和T1,并将管脚设置为强推挽输出,以便能够为舵机提供足够的电流。在第二步中,启动计时器被中断,计时器被赋予初始值,启动计时器程序被真正启动,程序进入循环执行状态。在第三步中,再循环体判断计时器中断是否设置为1。如果是,则调用脉宽调制[阵列更新功能vpwm()。如果没有,那么等待中断到达。流程图如图4.2所示。全区变量声明,占空比参数数组声明,定时器初始化,P口设为强推挽输出开始Flag_vpwm=1?全区变量声明,占空比参数数组声明,定时器初始化,P口设为强推挽输出开始Flag_vpwm=1?调用vpwm()开中断,定时器赋初值Flag_vpwm=04.3舵机调速程序设计为了使机械手平稳运行,有必要调整转向器的速度。其实质是调整转向器控制信号的脉宽调制占空比。将首先引入脉宽调制信号。基于单片机的关节机器人控制系统设计全文共26页,当前为第16页。4.3.1舵机PWM信号基于单片机的关节机器人控制系统设计全文共26页,当前为第16页。PWM是一种脉宽调制信号,具有控制简单、速度快、动态响应好的优点。它广泛应用于机器人和航模设计中的舵机和DC电机的控制。注意到其脉宽调制格式的几个关键点:(1)要求连续供给PWM信号,这时表现出来的跟随性能很好、很紧密(2)上升沿最少为0.5mS,为0.5mS---2.5mS之间PWM信号生成方法合理性的四个原则:(1)占空比的可调整性(2)PWM信号输出的丰富性(3)PWM信号输出的同步性(4)PWM信号周期的适应性原则一是脉宽调制控制的核心,因为只有实时改变脉宽调制控制信号的占空比,平均电压才能被脉宽调制信号调节,并且脉宽调制控制功能在一些控制系统中得以实现,体现了脉宽调制控制的意义。原则二要求可以输出多通道脉宽调制信号。在大多数控制系统中,协调控制通常需要多通道脉宽调制信号。例如,在机器人控制系统中,通常有几十或几百个转向机协同工作,因此单独控制需要相同数量的脉宽调制信号。如果机器人不能在没有产生足够脉宽调制信号的情况下被控制,这种产生脉宽调制信号的方法不是一种合理的方法。原则三是多路PWM的关键。如果多通道脉宽调制信号不能同步输出,多通道脉宽调制控制信号的重要性将会丧失。特别是对于机械臂同步要求高的场合,如果无法实现多路脉宽调制信号的同步输出,就无法实现各关节运动的协调控制,也无法完成各种高精度的复杂动作。其中原则四,PWM信号周期的适应性意味着脉宽调制信号周期能够满足不同应用的要求。例如,转向器的脉宽调制控制信号周期要求为20毫秒,而DC电机控制的脉宽调制信号周期一般小于0.1毫秒。产生的脉宽调制信号只能在脉宽调制信号周期可调或正好是要求的周期时应用。因此,原则四是评估脉宽调制信号产生方法合理性的最基本原则,4.3.2利用微分插补法实现对多路PWM信号的输出(1)微分插补法的原理在舵机的控制中,不仅位置和角度的控制非常重要,速度的控制也是一个必须考虑的问题。特别是对于机械臂这样的控制器,其运动平稳性决定了其工作稳定性,精度是一个重要的评价指标。这需要对驱动机械臂关节的转向机进行速度调节控制。事实上,转向机的速度控制是使转向机不直接从初始位置到达目标位基于单片机的关节机器人控制系统设计全文共26页,当前为第17页。置,而是将其分成许多小过程,让它逐渐到达。例如,如果舵机的初始位置是0度,并且他运行到90度,并且90度的数据被直接发送,则由于转向器的相对较快的响应速度,舵机将几乎立即运行到90度。如果我们在达到90度的过程中为他做了很多缓冲,也就是说,让他从0度到1度逐渐过渡到2度和3度...到90度,那么效果是转向机以相对较慢的速度到达目标位置,从而达到速度控制的目的,并且通过控制每个间隔的切换时间可以获得我们想要的特定转速。因为有许多分割过程,转向器的旋转看起来像是平稳旋转的。这就是微分插补法。微分插补法的核心思想是先求微分,将某个过程量分成几个(通常越多越好)基于单片机的关节机器人控制系统设计全文共26页,当前为第17页。根据微分插补法的思想设计多路舵机PWM速度控制程序。(2)微分插补法生成多路舵机PWM速度控制信号的程序实现VPWM()函数采用微分插补法控制舵机速度使机械臂能从一个位置平稳的过度到另一个位置。VPWM()是数组pwm[]更新函数,其功能是数据插补,由定时器T0控制,使舵机实现平稳的速度控制;另一个功能是执行完一行后更新下一行数据,即调用change()函数。此程序的执行的流程图如图4.3所示。第一步,说明一些判断标志:flag_how,用来表示是否4个舵机都达到目标位置,是则置1;flag_Tover,用来表示运行时间是否结束,是则置1;m用来累加插补的次数。第二步,进入VPWM()函数,首先执行m++,表示插补累加一次,并判断是否等于总的插补次数n,是,则flag_Tover置1。并且判断是否4个舵机都达到目标位置,是,则flag_how置1。第三步,若flag_Tover=1且flag_how=1,则本行作业完成,先后执行jiazi(),change()子程序,并清零标志,返回主程序;否则直接返回主程序。基于单片机的关节机器人控制系统设计全文共26页,当前为第18页。基于单片机的关节机器人控制系统设计全文共26页,当前为第18页。声明局部变量声明局部变量累加插补次数(m++)m==nFlag_Tover=1Flag_Tover=1Flag_how=1本行作业完成判断标志清零执行夹子程序jiazi()返回开始第j个舵机是否到终点how++继续插补How==4Flag_how=1;How=0;调用change()YNYNYNYN基于单片机的关节机器人控制系统设计全文共26基于单片机的关节机器人控制系统设计全文共26页,当前为第19页。图4.3多路舵机PWM速度控制程序流程图4.4初末位置置换子程序由于机械臂执行在两个位置承载物体,则机械臂是一种简单的自动往复运动。Change()函数的功能是替换初始位置和最终位置,并计算插值增量dp[j]和插值数n。程序流程如图4.4所示。第一步,进行初末位置置换,初位置占空比参数给pos[point_now][s],末位置占空比参数给pos[point_aim][s],并给循环计数s赋值1。第二步,判断是否pos[point_aim][s]>pos[point_now][s]。第三步,根据第二步的结果,是,则执行dp=pos[point_aim][s]-pos[point_now][s];dp[s]=dp/n;否,则执行dp=pos[point_now[s]-pos[point_aim][s];dp[s]=-dp/n。开始首末位置互换S=1pos[point_aim][s]>pos[point_now开始首末位置互换S=1pos[point_aim][s]>pos[point_now][s]?S++S>5?m=0返回dp=pos[point_aim][s]-pos[point_now][s]dp[s]=dp/n;dp=pos[point_now[s]-pos[point_aim][s]dp[s]=-dp/nYNYN基于单片机的关节机器人控制系统设计全文共26页,当前为第20页。图4.4基于单片机的关节机器人控制系统设计全文共26页,当前为第20页。4.5机械爪控制程序只有在机械臂末端到达目标位置后,机械爪才开始抓取和堆叠。因此,机械爪和机械臂不能同时操作,因此需要单独控制机械爪。机械爪控制程序的主要功能是在机械臂到达目标位置后,改变产生机械爪转向器脉宽调制控制信号的定时器T1的定时初始值,从而完成机械爪的打开和关闭。第一步,当执行机械爪程序jiazi()时,首先判断机械爪的当前状态,当机械爪处于闭合状态时,执行第二步骤;如果机械爪处于打开状态,则执行第三步。第二步,将打开机械爪的占空比参数赋给定时器T1的TH1,TL1寄存器。第三步,将闭合机械爪的占空比参数赋给定时器T1的TH1,TL1寄存器。开始机械爪状态更改T1开始机械爪状态更改T1的定时初值,使机械爪闭合更改T1的定时初值,使机械爪打开返回打开闭合图4.5机械爪控制程序流程图4.6定时器中断子程序4.6.1定时器T1中断程序由于机械爪的状态在打开或闭合后需保持不动,故需连续不断的向机械爪舵机输出PWM信号,以维持其状态不变,此舵机的PWM信号有定时器T1中断函数单独输出。程序流程如图4.6所示。第一步,声明静态变量statici=1。此变量只在第一次赋值有效,i是高低电平标志,i=1输出高电平,i=2输出低电平。第二步,根据标志i输出相应的电平,若i=1,输出高电平,赋定时初值pwmj;基于单片机的关节机器人控制系统设计全文共26页,当前为第21页。若i=2,输出低电平,赋定时初值20000-pwmj,i=0基于单片机的关节机器人控制系统设计全文共26页,当前为第21页。第三步,执行i++,中断返回。定时器T1定时中断声明静态变量定时器T1定时中断声明静态变量i=1i=1?I=2?输出高电平输出低电平赋定时初值pwmj赋定时初值20000-pwmji++中断返回i=0YNYN4.6.2定时器T0中断子程序机械臂的关节1,2,3的舵机PWM控制信号有定时器T0产生,其中第2路PWM信号输出原理同第1、3路,其中第1、3路程序流程,如图4.7所示。第一步,声明静态变量statici=1。此变量只在第一次赋值有效,i是高低电平标志,i=1,3,5输出高电平,i=2,4,6输出低电平。第二步,根据标志i输出相应的电平,若i=1,3,5输出高电平,赋定时初值pwm[x];若i=2,4,6输出低电平,赋定时初值5000-pwm[x],i=0。第三步,执行i++,中断返回。基于单片机的关节机器人控制系统设计全文共26页,当前为第22页。定时器T0定时中断声明静态变量i基于单片机的关节机器人控制系统设计全文共26页,当前为第22页。定时器T0定时中断声明静态变量i=1i=1?i=2?P0.1输出1P0.1输出0赋定时初值pwm[3]赋定时初值5000-pwm[1]i++中断返回YNYNi=5?i=6?P0.3输出1P0.3输出0赋定时初值5000-pwm[3]i=0赋定时初值pwm[1].……YNYX5系统软硬件调试机械臂控制系统的调试是开发中的一个重要环节。只有通过对系统软硬件的调试,我们才能对控制系统的实际运行效果有一个深刻的了解,才能更好的将软硬件结合起来。系统软硬件的联合调试也是软硬件的磨合过程。机械臂通常以高速、高精度和高稳定性工作。因此,只有在硬件电路绝对可靠的前提下,才能准确调试软件系统。因此,硬件和软件的调试在整个调试过程中非常重要。。5.1单片机系统开发调试工具基于单片机的关节机器人控制系统设计全文共26页,当前为第23页。基于单片机的关节机器人控制系统设计全文共26页,当前为第23页。嵌入式系统的设计、软硬件调试称为开发。嵌入式本身没有开发能力,必须使用开发工具。单片机的开发工具包括PC机、编程器和模拟器。最基本和必要的工具是个人电脑和程序员。模拟器和编程器通过串行接口连接到PC机的串口COM1或COM2,通过PC机的键盘、监视器和相应的软件完成人机通信。5.1.1编程器编程器也称为烧录器和下载器(burneranddownloader),通过它被调试的程序被烧录到程序存储器中(单片机内部的程序存储器或芯片外部的EPROM、E2PROM或闪存)。一般来说,专用程序员具有以下功能:读、写、擦除、刻录、加密等。适用于各种类型的单片机、可编程只读存储器、闪存、只读存储器等。5.1.2集成开发环境Keil和Protues目前嵌入式系统的仿真调试软件很多,如Ware、Keil、Protues等,它们都带有汇编器,Keil还带有C51编译器。C51工具包中Vision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后C51和A51编译器编译目标文件(.OBJ)。目标文件可以由LIB51创建以生成库文件,或者可以通过L51连接和定位与库文件一起使用以生成绝对目标文件。防抱死制动系统文件从OH51转换为标准十六进制文件,供调试器dScope51或tScope51用于源代码级调试,或者仿真器可用于直接调试目标板,或者可直接写入程序存储器,如EPROM。开发过程如图5.1所示。设计方案设计方案编辑、编译和连接调试、语法检查和断点设置仿真、实时观测、分析统计图5.1开发调试流程5.2控制系统的仿真为了使控制系统的开发更加高效和方便,在硬件电路焊接前进行了仿真。根据上面提到的控制系统设计,由Protus仿真软件构建的仿真系统的电路图如图5.2所示:由于Protus组件库中没有增加舵机,仿真被Protus构建的虚拟示波器示波器示波器(示波器)代替。通过观察示波器显示的脉宽调制控制信号的占空基于单片机的关节机器人控制系统设计全文共26页,当前为第24页。比来判断控制系统的控制性能。模拟结果如图5.3所示。基于单

温馨提示

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

评论

0/150

提交评论