关键词:机器人控制
一、引言
机器人诞生以来,特别是工业机器人所采用的控制系统基本上是设计者基于自己的独立结构而开发的,它采用了专用的计算机、专用的机器人语言、专用的操作系统、专用的微处理器。这种专用的系统很难集成外部硬件和软件,对这种封闭的系统进行改造,基本上是不可能的。随着科学技术的不断发展,现代化工业生产和机器人研究对机器人控制器开放性的要求越来越迫切。制造业要求工业机器人具有更大的柔性和更强大的编程环境,适应不同的应用场合和多品种小批量的生产。研究人员为了提高机器人系统的性能和智能水平,要求机器人控制器具有开放结构和集成各种外部传感器的能力。
在此,本文设计了一种基于DSP和CPLD的开放式机器人控制器。该控制器采用两级控制结构。以通用IBM-PC作为上位机,完成坐标变换、轨迹生成等;以TI公司的TMS320LF2407数字信号处理器(DSP)和AItera公司的EPM7128 SLC84-15 复杂编程逻辑器件(CPLD)为核心,构造了机器人的关节伺服控制系统,作为机器人控制器的下位机。该控制器充分应用了DSP运算的高速性和CPLD的高集成度,提高了系统的实时性和稳定性。
二、控制器硬件的设计
控制器的硬件结构控制器采用模块化的设计结构,整个系统以IBM-PC为硬件平台。IBM-PC作为上位计算机,完成运动学求解、轨迹规划等功能,用一块DSP运动控制卡对机器人的4关节进行插补计算和伺服控制,采用PCI标准总线进行上、下位机的通讯,实现双速率运行。控制箱面板提供了各关节工作状态显示及伺服报警提示,还可以对任一关节进行手动控制。整个系统如图1所示。
运动控制卡原理图如图2所示。
图中来自驱动器编码器输出的OA (/OA),OB(/OB),OZ(/OZ)信号作为位置反馈,在CPLD内进行鉴相、加减计数得到实际位置,位置信息保存在位置寄存器中,供DSP随时读取。运动控制的目标位置通过上位IBM-PC机通过轨迹规划和DSP的插补得到,然后通过DSP内部的位置偏差计数器获得位置误差。位置误差作为自调整模糊控制器的一个输人,输出为驱动器所需的速度模拟信号。
系统的通讯在传统的机器人控制器中,大多采用RS232和RS485进行通讯,速度慢,误码率高,不能满足机器人系统的高速性和稳定性。在此,本文采用了PCI总线进行通讯。PCI总线的主要优点是性能高(数据传输率可达到132/264 Mbps),总线通用性强,成本低,使用方便灵活。
系统通讯采用PLX9054接口芯片,结合双口RAM,实现了DSP和PCI总线间的双向高速实时数据交换。PCI总线与双口RAM的数据交换,采用了定时传送加握手信号的方式进行。具体实现如下。
上位机每隔一个固定的时间T下传一组数据,数据传送完成后,发出一个发送完信号,下位机接受到这个数据后,立即从双口RAM中读取数据。下位机上传数据也采用同样的处理方式。这种方式特别适合于机器人控制系统的通讯。
驱动组件的选择驱动组件选择的是MI-NAS A系列交流伺服系统。MINAS A型驱动器可以实现位置、速度和转矩三种不同的控制方式;采用松下公司独特算法,使速度频率响应高达500 Hz;具有共振抑制和控制功能,可弥补机械的刚性不足,从而实现高速定位。同时,它还具有一系列方便使用的功能:
内藏频率解析功能(FFT),从而可检测出机械的共振点,便于系统调整。②有两种自动增益调整方式:常规自动增益调整和实时自动增益调整。因此非常适合应用于机器人控制系统。
三、控制器的软件设计和机器人的控制策略
1.控制器的软件的结构与图1所对应的软件结构如图3所示。
它由上位机程序模块和下位机程序模块两大部分组成。上位机模块由用户操作平台、可扩展模块和通讯模块构成。用户操作平台是在Windows环境下用VC++6.0开发的机器人控制系统的集成环境,是用户与机器人进行交互的界面。其主要功能是:对系统的可调参数进行设置和在线调节,对系统运行状态进行监控等,并为扩展模块提供了必要的接口。扩展模块是根据实际需要编写的应用软件模块,包括运动仿真及离线编程、运动学和动力学建模、运动学的正、逆解、轨迹插补算法和其它功能模块。通讯程序则把运动控制卡的底层控制程序与上位机控制程序在逻辑上连接起来。
下位机模块由主控程序、运动程序和通讯程序构成。主控程序主要完成DSP初始化任务。运动程序又包括手动模块、自动插补模块和控制算法三部分。其中,手动部分主要处理的是控制箱面板的操作;自动部分处理的是机器人多轴协调运动。
2.运动控制卡的控制算法MINAS A型驱动器的控制参数虽能在调试时进行自动优化,但不能在运行中实时修改。而机器人各关节的负载是时变的,这将使得对象参数时变。如果仍采用简单的PI控制,将使控制性能下降。因此,在PR机器人控制系统中,驱动器设置为速度环控制,速度环采用的是常规PI控制,而位置环则由运动控制卡实现,采用参数自调整模糊控制,增强系统的鲁棒性和抗干扰能力,使控制性能达到较高水平。系统采用双输人单输出模糊控制器。
控制算法结构如图4所示。
图中,e,ec分别为误差和误差变化率;u为输出控制变量,与之相对应的模糊变量分别为E,EC,U各模糊集合的语言值都分7档,表示为{负大,负中,负小,零,正小,正中,正大},或者{NL,NM,NS,ZO,PS,PM,PL}。E和U对应语言变量的论域为[+6,-6];EC对应语言变量的论域为[+3,-3];Ke,Kec为量化因子,ku为比例因子。
国内外学者经过大量的仿真与卖验研究表明,在模糊控制系统中,当E和EC很大时,控制系统要减小误差,加快动态过程,取较大的控制量,这要求减小Ke和Kec,增大ku;当E和EC很小时,则要提高系统精度,减小超调,即增大Ke和Kec,同时减小ku。这就是自调整机构的设计准则。为了方便设计,本文取Ke和Kec减小(增大)的倍数与ku增大(减小)的倍数相同。
这个系数的选择采用普通模糊控制,输人为误差和误差变化率,输出为调节系数h。h对应模糊变量H的语言值分7档:{很小,较小,小,中,大,较大,很大}或者{VS,RS,S,M,L,RL,VL};论域为{0.125,0.25,0.5,1,2,4,8}。
根据调整规则,可以得到控制规则表,见表1。
调整后的
然后由调整后的参数Ke ',Kec ',对e,ec重新量化后再查询控制规则表得控制量U,再乘以ku'即得到新的控制输出u。
3.双速率控制。机器人连续路径运行方式下,由于上位机要承担轨迹插补算法、逆运动学求解等复杂控制算法,完成一次计算约为几毫秒。而DSP具有很高的运算速率,在μs级内可完成一次算法。因此,下位机可采用很高的伺服控制速率,对上位机给定的运动量进行精插补,从而使机器人的运行轨迹更为平滑,提高机器人的运行品质。4结语 本机器人控制器采用了功能强大的MINAS A型驱动器,同时结合了模块化的设计方法,因此,既保证了系统的性能,又大大缩短了开发周期。运动控制卡采用DSP+CPLD结构,使硬件控制模块具有结构简单、抗干扰能力强、可靠性高等特点。控制器采用PCI总线通讯,同时应用了双速率控制策略和自调整模糊控制算法,实现了机器人控制系统的高速率实时控制,增强了系统的鲁棒性和抗干扰能力。此外,在系统的软、硬件设计时,提供了许多标准的扩展接口,因此能更根据实际需要扩展机器人的功能,满足开放式机器人系统的要求。系统在实验室进行的画圆弧演示实验中,各电机轴运转平稳,动作协调,运动迹线非常平滑,轨迹跟踪实时性好,机器没有出现抖动、喘振等现象。