摘要:开放式机器人控制器是机器人控制器的发展方向,本文在总结传统机器人控制器缺点的基础上,提出了一种新型开放式机器人控制器结构,并从硬件和软件两方面对该结构的具体实现方法做了介绍,目前该控制器在本实验室已完成了软硬件调试。最后对本控制器的优点及不足进行了总结。
关键词:机器人;开放式;控制器;PC
目前商品化的机器人系统大多采用封闭结构的专用控制器:采用专用计算机作为上层主控计算机,使用专用机器人语言作为离线编程工具,采用专用控制器进行各关节伺服控制,并将控制算法固化在ROM中。这种封闭系统很难(或不可能)进行修改。另外,商品化的机器人系统均没有网络功能。然而,现代化工业生产和机器人研究对机器人控制器开放性的要求越来越迫切。近年来,研究和使用开放式机器人控制器成为迫切需求和研究热点。目前,针对开放式机器人控制已有的研究工作主要集中于机器人结构的定义、实现系统部件的模块化、接口的标准化、提高软件代码的复用性、效率、可维护性、正确性以及程序的易读性,为用户提供方便的任务描述和编程环境等方面。
Willian E-Ford总结了开放式机器人控制器的主要思想:
(1)使用基于非专用计算机平台(如PC,SUN)的开发系统。
(2)使用标准的操作系统(如Windows,Unix)和标准的控制语言(如C/C++,VB)。
(3)硬件基于标准总线结构(如ISA,PC/104,STD),能够与各种外围设备和传感器接口。
(4)使用网络策略,实现远程通讯,并允许对机器人远程操作。
可以根据上述思想设计开放式机器人控制器,而且设计过程中要尽可能做到模块化。
1、开放式机器人控制器结构设计
机器人控制系统是一个复杂系统,处理复杂性的方法是定义一种结构,把复杂系统分解成 若干个可处理的模块,每个模块对外部行为给出一个简单的接口,忽略或在某种程度上简化内部行为。这方面的研究工作都集中于定义一个与实现平台无关的抽象模型。
本实验室按照功能模块化进行机器人控制器结构设计,提出了如图1所示的开放式机器人控制器结构。该结构由以下功能模块构成:机器人本体模块,运动控制模块,本地操作模块和网络操作模块。各模块功能由下至上,构成功能独立的层次结构。
机器人本体模块构成机器人控制系统的被控对象。
运动控制模块完成对被控对象的伺服控制。
本地操作模块提供给定位置输入,本体模块提供位置、速度等反馈,运动控制模块根据输入和反馈构成闭环,完成对被控对象的伺服控制。
本地操作模块完成本地操作任务,包括运动操作、算法操作、设备操作等。运动操作指提 供人机接口,使用户完成机器人运动方面的操作。算法操作是指对运动控制算法进行修改或替换的操作。设备操作是指对系统内I/O设备、传感器设备等的操作。
网络操作模块完成机器人网络操作功能。如局域网机器人操作、Internet机器人操作。
2、开放式机器人控制器的实现
机器人控制器的结构设计是与实现平台无关的抽象模型,他仅从功能层次上对控制器进行了描述。结构设计完成后可通过具体软硬件进行实现,下文就该控制器结构在本实验室中的实现进行介绍。
2.1硬件实现及讨论
目前开放式机器人控制器硬件平台大致可以分为2类:基于PC总线的系统和基于VME总线的系统。PC总线系统具有一系列的优点,如成本低、开放性好、完备的软件开发环境和丰富的软件资源、良好的通讯功能、用户基础广泛等,因此成为未来的主要发展方向。本实验室控制器的实现采用了基于PC/104总线的系统。PC/104为一个标准PC总线,各引脚信号完全等同于ISA总线,但排列方式比ISA更为紧凑,广泛应用于嵌入式系统中。
本实验室系统中主要使用了以下硬件设备:
(1)台湾安勤公司PCM3610嵌入式PC,PC/104总线,带双以太网口。
(2)美国Delta Tau公司的PMAC2PC/104多轴运动控制卡一套(含DPRAM)。
(3)安川SGDM伺服放大器和SGMPH电机(含绝对位置码盘)6套。
(4)新松示教盒一个(RS232接口)。
(5)新松机器人本体。
(6)I/O卡,A/D卡,D/A卡若干。
具体硬件实现如图2所示。
2.1.1机器人本体模块
机器人本体模块由新松机器人本体、安川交流伺服电机和绝对位置码盘等构成。他们构成机器人控制系统的被控对象。
2.1.2运动控制模块
运动控制模块主要由安川交流伺服放大器、PMAC卡、DPRAM(PMAC自带)等构成。PMACPC/104为美国Delta公司生产的开放式运动控制卡,PC/104总线,以摩托罗拉DSP为核心,可与各种类型伺服放大器配合使用,并且该卡提供用户伺服算法接口。安川交流伺服放大器通过参数设置和跳线可工作于多种模式,如位置量输入模式、速度量输入模式、力矩量输入模式。本实验室通过一块自制电路板,完成了PMAC和伺服放大器间的信号连接,以及对系统内各I/O信号的逻辑控制。 ?
运动控制模块完成对各电机的伺服控制。系统的运动控制闭环都在该模块中,分别为位置环、速度环和电流环。由于电机中的电流和力矩成比例关系,所以电流环也可称为力矩环。对于开放式系统,当控制对象发生变化或运动控制模块进行修改时,要求系统通过简单的调整即能构成所需控制系统和控制功能,并对上层模块不产生影响。本系统通过PMAC卡和安川伺服放大器的配合使用,以及完善的系统连线和电路板设计,能够仅通过跳线和参数设定完成3种控制方式,如图3所示。
方式一中,位置环、速度环、电流环都在伺服放大器中,运动控制卡中没有闭环,运动控 制卡仅完成传输中介的功能,可理解为一比例增益。当该比例增益为1时,运动控制卡可直接从系统中去除,此时本地操作模块直接将给定位置发送至伺服放大器,由伺服放大器完成运动控制。大部分商品化机器人均采用这种上位机加伺服放大器的控制系统。由于在伺服放大器内部,伺服算法固化在ROM中并通过专用CPU进行伺服计算,因此用户在该方式下无法修改运动控制模块及伺服算法。
方式二中,位置环在运动控制卡中,速度环和电流环在伺服放大器中。运动控制卡接受位 置给定量并完成位置控制,而后发送给定速度量至伺服放大器,由伺服放大器闭合速度环和电流环。在该方式下,伺服放大器提供了较高的速度环刚性和抗干扰能力,由于这些高增益,位置环只需以较小的比例增益Pp即可达到完成位置控制。但是,由于大部分速度环刚性来自于速度积分增益Iv,而积分增益会导致一个滞后,增加速度环调节时间,从而使系统对位置指令反应迟缓。因此不适合快速启动和停止的系统。用于机器人控制时,可减小速度环积分增益或者设为0。方式二时位置环控制算法对用户开放,可使用Motorola DSP汇编语言编写户伺服算法,编译转换后并通过DELTA公司提供接口下载实现。
方式三中,位置环和速度环在运动控制卡中,电流环在伺服放大器中。运动控制卡接受给 定位置并完成位置控制和速度控制,而后发送给定力矩量至伺服放大器,由伺服放大器闭合力矩环/电流环。由于力矩模式伺服放大器性能与误差积分控制没有太大关系,而误差积分控制会导致响应滞后,因此在要求快速加速或减速的系统中,该方式控制性能较好,本实验室在实现机器人控制时在该方式下取得了较好的效果。方式三时位置环、速度环控制算法对用户开放,可使用Motorola DSP汇编语言编写户伺服算法,编译转换后并通过DELTA公司提供接口下载实现。
2.1.3本地操作模块
本地操作模块由PC/104嵌入式PC,新松示教盒以及其他PC/104总线设备等构成。采用Wind ows 2000操作系统,采用VB,VC作为开发工具。示教盒通过RS232串口与PC连接,PMAC、I/O卡、A/D卡、D/A卡等总线设备通过PC/104总线与PC连接,PC机通过集成网卡连接至以太网。该模块完成本地操作任务,包括运动操作、算法操作、设备操作、机器人网络操作服务等。
机器人运动操作指首先通过示教盒或机器人语言获得运动任务,然后经过任务规划、轨迹规划、轨迹插补得到轨迹点序列,而后将轨迹点序列送至运动控制模块的过程,最终由运动控制模块完成匹配轨迹点序列的机器人运动控制。本实验室机器人系统中,PC机和P MAC卡间可通过两种方式进行通讯:DPRAM方式和总线方式。采用DPRAM方式时,PC和运动控制卡通过对DPRAM内同一单元的访问实现数据交换,DPRAM方式可实现高速数据交换,轨迹点序列的传送即采用该方式;采用总线方式时,运动控制卡类似其他总线设备,PC通过地址线、数据线对其进行访问。
算法操作包括运动控制卡内置PID算法参数修改和用户伺服算法实现。内置PID算法参数修改通过调用DELTA公司的动态链接库函数实现。用户伺服算法通过PMAC的用户伺服算法接口实现,用户算法使用Motorola DSP汇编语言编写。
为确保机器人系统的正常工作及系统扩展的要求,机器人系统中须对一些I/O量进行控制,如报警、伺服使能、松抱闸等,机器人系统还须对一些传感器信号进行采集,如电流、电压等,本地操作模块完成对这些I/O设备和传感器设备的操作。由于采用了标准PC和标准总线,因此任何符合PC/104规范的外设均可方便的加入到本控制器中,如I/O板,A/D卡、D/A卡、图像采集卡等,另外由于PC中使用了Windows操作系统,因此能广泛获得各外设厂商驱动上的支持,给用户提供极大的方便。
本地操作模块中的PC机通过集成以太网卡连接至HUB或交换机,从而实现了机器人控制器与网络的连接,通过该连接本地操作模块为网络操作模块提供网络操作服务。
2.1.4网络操作模块
网络操作模块由Web服务器、局域网操作客户端、以太网操作客户端等构成,该模块完成机器人网络操作功能,包括局域网机器人操作和基于Web的互联网远程机器人操作。
现在的过程控制中大多采用现场总线技术,但是现场总线的根本性缺点是他的开放性是有条件,不彻底的。由于以太网的速度很快(可以达到100 Mb/s甚至更高),并且因其具有很好的兼容性、普及性,现场总线控制网络已经逐步转向以太控制网络,以太网+TCP/IP协议的模式逐步进入程控领域。同时,由于以太网和互联网能够方便地实现互连,因此, 采用以太网结合互联网为机器人网络操作的理想方式。
通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA)是一种新兴的面向对象分布式计算技术,使用CORBA体系结构,不同操作系统、不同编程语言、不用网络协议的应用系统可以方便的进行互操作,很容易地集成在一起。
本实验室系统实现网络操作采用了CORBA技术,本地操作模块中的PC机作为CORBA服务器,提供机器人网络操作的CORBA服务,局域网内的其他PC机作为CORBA客户端,调用CORBA服务从而实现机器人的局域网网络操作。Internet远程机器人操作采取二级调用的策略,局域网内的Web服务器在互联网上提供Web服务,同时在局域网中他又是CORBA客户端。互联网远程操作客户端首先通过Web服务向Web服务器发出远程操作请求,然后,Web服务器根据请求再向CORBA服务器发出局域网操作请求,从而实现Internet机器人操作。
2.2软件实现及讨论
本实验室采用模块化设计方法开发软件系统,模块采用面向对象的端口设计方法,对象内部状态和方法对其他模块隐藏,只有对象的端口对其他对象可见,模块间通过全局状态信息数据库机制进行信息交换。本系统中采用Windows 2000操作系统和 VB语言。软件结构如图5所示。
首先基于运动控制卡及其他设备的驱动建立一函数库,该函数库向应用程序提供一组标准服务,通过此函数库的访问即可完成用户所需功能,同时该函数库将应用程序与底层软硬件隔离。本结构中将基于函数库的各软件模块进行了分类,分别为:运动操作类、算法操作类、总线设备操作类和网络服务类。
2.2.1运动操作类
运动操作类完成机器人运动操作的软件实现。示教模块通过再现示教得到运动任务,机器 人语言输入与解释模块通过机器人语言得到运动任务,运动任务包含目标点、运动速度、插补方式等信息。规划与插补模块根据运动任务完成任务规划、轨迹规划和轨迹插补,得到机器人轨迹再现点序列。最终再现模块启动运动控制卡再现程序并将再现点序列顺序送入DPRA M,供PMAC读取并控制机器人完成相应运动。位置、速度、加速度采集模块完成机器人各轴或末端的位置、速度、加速度信息采集及信息显示。
2.2.2算法操作类
该操作类包括内置PID参数修改模块和用户伺服算法模块。PID参数修改模块调用delta公司提供的动态链接库函数,提供图形化人机接口,使用户能够对PMAC卡上PID算法各参数进行实时调整。用户伺服算法模块完成用户算法在系统中的实现,首先使用摩托罗拉DSP汇编语言进行用户算法编写,然后经编译转换后生成目标文件,最后通过PAMC提供的接口将目标文件下载到运动控制卡中。DELTA公司还提供了用户算法评估包,通过该评估包可进行系统性能实时评估,给用户以很大方便。
2.2.3总线设备操作类
I/O设备操作模块完成系统内I/O量的读写和逻辑控制,如报警、上电允许、运行灯、继电器控制等。传感器设备控制模块完成系统内传感器信号的采集,如电流、电压等。其他总线设备操作模块完成其他扩展总线设备的操作。
2.2.4网络服务类
网络操作CORBA服务模块为一独立类。该模块提供CORBA规范的网络机器人操作服务。具体 实现本实验室另有文章进行叙述,该文章将CORBA服务器与CORBA客户端构成独立整体,进行软件编写和叙述。
3、结语
本控制器符合开放式机器人控制器的主要思想。并且软硬件设计均采用模块化方法,各模 块间功能相对独立、完整。目前,本实验室已完成了机器人系统的软硬件调试,实现了要求 控制功能,充分验证了本设计的正确性和开放性。与传统的封闭式控制器相比,本实验室机 器人系统体现出了诸多的优点:
(1) 可以由用户或第三方开发人员更换或修改,用户可以根据需要进行机器人控制器改型,机器人系统的应用范围更广。
(2)硬件和软件结合很容易集成外部传感器、操作接口 (如力反射)、新的伺服控制规律等。
(3)控制器采用模块化技术,开发机器人系统的过程中可以使用经过测试、性能良好的子系统模块,功能模块的复用可以降低开发成本,提高系统的质量和安全性能,保证控制器能满足需求,不会产生意想不到的致命错误,使机器人系统安全性能得到可靠的保证。采用通用模块使得重复性的开发工作大大减少,简化了编程工作,从而减少了整个系统开发的时间和成本。
(4)实现了平台、操作系统和用户接口的标准化,具有减少培训需求、降低系统支持需求和减少维护成本的前景。
(5)硬件和软件实现的开放式方法使得任何符合接口标准的第三方硬件和软件包都可以添加到系统中或替换功能相同的部件,从而刺激系统供应商之间的竞争。通过竞争,一方面用户可以获得更丰富的硬件和软件资源,降低实现成本,另一方面也加速了从研究系统向可操作系统的转化,这样缩短了从研究到商品化产品的周期。
虽然本控制器具有了较多的优越性,但仍存在许多需要改进的问题。如提供更好实时处理 能力,提供方便的图形开发环境等。随着这一系列问题的解决,开放式机器人系统必然会得到更广泛的应用。?