文章编号:1002-0446(2001)04-0374-05
机器人 ROBOT
Vol.23,No.4 July,2001
开放式机器人控制器综述
孙 斌 杨汝请
(上海交通大学机器人研究所 上海 200030)
X
摘 要:本文对开放式机器人控制器的研究进行了概括和总结,综合叙述了开放式机器人控制器的思想及优点,从控制结构、硬件和软件实现的角度总结了已有的研究工作,指出了开放式机器人控制器的发展方向.
关键词:机器人控制器;开放结构控制中图分类号: TP24 文献标识码: B
ASUMMARIZATIONOFOPENARCHITECTURE
ROBOTCONTROLLER
SUNBin YANGRu-qing
(ResearchInstituteofRobotics,ShanghaiJiaotongUniversity Shanghai 200030)
Abstract:Inthisarticle,asummarizationonresearcheffortsforopenarchitecturerobotcontrollerisgiven.The
mainideaandadvantagesofORCaredescribedfirstly.Thenresearchworksavailableissummedfromtheviewpointofimplementation.Atlast,thetrendofORCispointedout. Keywords:robotcontroller,openarchitecturecontrol
1 引言(Introduction)
现代化工业生产和机器人研究对机器人控制器开放性的要求越来越迫切.制造业要求工业机器人具有更大的柔性和更强大的编程环境,适应不同的应用场合和多品种小批量的生产.计算机集成制造(CIM)要求机器人能和车间中的其它自动化设备集成在一起.研究人员为了提高机器人系统的性能和智能水平,要求机器人控制器具有开放结构和集成各种外部传感器的能力.然而,目前商品化的机器人系统均采用封闭结构的专用控制器,一般采用专用计算机(如PUMA机器人使用PDP-11)作为上层主控计算机,使用专用机器人语言(如VAL)作为离线编程工具,采用专用微处理器,并将控制算法固化在EPROM中.这种专用系统很难(或不可能)集成外部硬件(包括传感器和软件).修改封闭系统的的代价是非常昂贵的,如果不进行重新设计,多数情况下技术上是不可能的.解决这些问题的根本办法是研究和使用开放结构的机器人控制器.
[2]
2 开放式机器人控制器(ORC-OpenRobot
Controller)
目前,国际上对机器人控制器的开放性还没有明确的定义.根据IEEE对“开放”的官方定义,开放系统应满足系统的应用能在不同的平台之间移植,能与其他应用系统交互,为用户提供一致的交互方式.LotharRossol(TrellisSoftware&ControlInc.)认为开放系统应该运行在商品化的标准计算机硬件和操作系统上,具有开放的硬件和软件接口以及标准工业用户图形界面.BrainChristensen(DenebRoboticsInc.)认为开放意味着一种即插即用策略,系统的元素可以是真实的、虚拟的或两者兼有,实现真实或虚拟的机器人单元与真实的PLC/PC或整个虚拟工厂之间的无缝通讯.PeterManley(CimetrixInc.)认为开放系统应该基于标准计算机体系(如VME或ISA总线)和标准处理器(如Motorola680x0、PowerPC或基于IntelIx86/Pentium的系统),运行于UNIX或WindowsNT等
X收稿日期:2000-10-29第23卷第4期孙 斌等: 开放式机器人控制器综述375
标准操作系统,采用VisualBasic和VisualC++或C/C++和X+/Motif等标准语言编程,控制软件允许集成新的控制算法,如运动学、力控、运动和I/O子系统等.针对开放式机器人控制器已有的的研究工作集中于机器人控制结构的定义,实现系统部件的模块化,接口的标准化,提高软件代码的复用性、效率、可维护性、正确性以及程序的易读性,为用户提供方便的任务描述和编程环境.目的是提高系统的开放性和交互性,便于任何机器人控制研究,如综合和使用外部传感器,轨迹规划和生成,伺服控制算法研究,提高系统的可配置性和可扩展性,便于修改和扩展系统以适应新的应用,提供一致友好的用户接口.WilliamE.Ford总结了开放式机器人控制器的主要思想:(1)使用基于非专用计算机平台(如Sun,SGI,PC等)的开发系统;(2)使用标准的操作系统(如UNIX,VxWorks)和标准的控制语言(如C或C++);(3)硬件基于标准总线结构,能够与各种外围设备和传感器接口;(4)使用网络策略,允许工作单元控制器共享数据库,并允许远程操作.
开放结构控制器大大提高了系统的柔性、可配置性、可扩展性、交互性、可交换性、可移植性、可伸缩性、可靠性和复用性.与传统的专用系统相比,开放式机器人控制器的优点主要有[10]:
(1)开放式机器人控制器的设计可以由用户或第三方开发人员更换或修改,用户可以根据需要进行机器人控制器改型.开放式机器人系统的应用范围更广.
(2)硬件和软件结构很容易集成传感器、操作接口(如力反射),新的伺服控制规律等.
(3)开放式机器人控制器采用模块化技术,开发机器人系统的过程中可以使用经过测试、性能良好的子系统模块.功能模块的复用可以降低开发成本,提高系统的质量和安全性能,保证控制器能满足需求,不会产生意想不到的致命错误,使机器人系统安全性能得到可靠的保证.采用通用模块使得重复性的开发工作大大减少,简化了编程工作,从而减少了整个系统开发的时间和成本.
(4)开放式控制器便于实现平台、操作系统和用户接口的标准化.通用开放式控制器具有减少培训需求、降低系统支持需求和减少维护成本的前景.
(5)硬件和软件实现的开放式方法使得任何符合接口标准的第三方硬件和软件包都可以添加到系统中或替换功能相同的部件,从而刺激系统供应商之间的竞争.通过竞争,一方面用户可以获得更丰富[10][8]
的硬件和软件资源,降低实现成本.另一方面也加速了从研究系统向可操作系统的转化,这样缩短了从研究到商品化产品的周期.
3 开放式机器人控制结构(Architectureof
ORC)
机器人系统是一个复杂系统,处理复杂性的方法是定义一种控制结构,把复杂系统分解成若干个可处理的部分,每个部分对外部行为给出一个简单的接口,忽略或在某种程度上简化内部行为[5].这方面的研究工作都集中于定义一个与实现平台无关的抽象模型.Albus提出的模型包括七层:执行机构、传感器、传感器处理、环境建模、任务分解、数值判断和全局内存/通讯.每一层的反馈都是闭环的[17].GeorgeSaridis教授提出了基于分层递阶控制结构的智能机器结构
[19]
.该结构由组织层、协调层和执行
层三个基本层组成.组织层使用神经网络进行推理决策规划,而用Boltzmann机组织执行命令所需的动作和规则.协调层使用Petri网设置通讯协议.控制系统智能的分布基于一种提高精度降低智能(IPDI)的原则.熵函数被用作传感器集成的控制函数.Meystel[13]使用与Saridis相同的理论模型,但采用了一种“嵌套式分级层次”结构,该方法在计算能力有限的情况下比较有效.美国NASA/NBS的标准参考模型(NASREM)是一个分成三个等级层次的概念模型[18].每层分为任务分解、环境建模和传感器处理三段.每个模块都是一个有限状态机,接受输入、在状态和输入的基础上进行一些计算,并产生输出.美国能源部(DOE)的研究人员提出了一种基于通讯的通用智能系统控制器(GISC)概念.可以通过协调一系列有扩展功能的半自动子系统获得高级智能行为[20].每个子系统都有一个定义完整的控制和命令接口,并由一个监控程序通过这些接口协调系统全部活动.每个子系统也可以处理实时低层控制功能,这些控制功能可以自主、异步地执行.K.Nilson认为ORC应该基于分层结构,并从用户的角度把系统划分为任务级编程、离线编程、在线编程、执行、应用控制、运动控制、手臂控制和电机控制九个层次,并在此基础上提出了开放式机器人控制器的结构(见图1)[5].该结构把上述九个层次划分为用户级、系统级和伺服级.任务级编程位于用户级的最高层,在离线编程系统之上实现,可以通过线编程工具直接访问.系统级负责机器人专用库、I/O设备和传感器驱动的实现.分成两层:较高的一层用于实现专用机器人376 机 器 人2001年7月
库、机器人编程工具和机器人编程语言,叫做执行层,较低的一层用于特定应用运动控制,叫做应用层.伺服级从控制的角度划分为运动控制层、手臂控制层和电机控制层.运动控制层协调并指挥手臂控制单元和外部扩展轴的电机控制,手臂控制层封装了机器人运动的高级反馈控制功能.
可以大致分为两类:基于VME总线的系统[5~7]和基于PC总线的系统[2~4].基于VME总线的系统通常采用VxWorks、UNIX操作系统或UNIX的扩展版本(如LynxOS).VME总线是一种广泛应用于工业控制、军事、航空、交通、电信和办公设备的工业总线,图2是一种基于VME的机器人系统结构[6].该系统有若干个用于通用计算和控制的微处理器和一块带有六个浮点数字信号处理器的控制卡.执行机构和传感器通过专用接口直接连接到DSP的串口.基于PC的Windows95/98/NT系统因其友好的图形操作界面、广泛的用户基础而成为基于PC的机器人控制器的首选[2~4,8].Linux系统以其源代码的开放性而受到研究人员的关注[7,12].图3是一种已经商品化的开放式机器人控制系统NoVAL+,该系统基于IPC和Windows操作系统,用于工业机器人运动控制,特点是模块化和柔性.
采用通用PC作为机器人控制器的主控计算机的优点是:(1)成本低.PC硬件技术成熟、可靠性高、生产批量大、价格便宜.(2)具有开放性.PC总线是一种开放性总线,这使得系统体系结构具有开放性、模块化、可嵌入的特点.开发人员和用户一方面可以根据需要选择合适的软硬件模块,以最低的成本组成性能最佳系统,另一方面也可方便地进行二次开发.(3)完备的软件开发环境和丰富的软件资源.(4)良好的通讯功能.成熟的PC通讯技术很容易实现机器人系统与其它计算机系统或自动化设备通讯.(5)用户基础广泛.目前,MOTOMAN、SEIKO等均把基于PC的机器人作为主要发展方向.
由于目前绝大多数PC均采用单CPU,实时处理能力成为PC用于机器人控制的瓶颈.在PC的操作系统中,MS-DOS是一个非实时单任务内核,Windows95并不具有实时能力,虽然WindowsNT良好的健壮性和安全性,但它不具有严格的实时处理能力,而且它的硬件抽象层使硬件的接口非常困难,而且效率很低.系统的实时性能只能依赖系统设计和程序设计来保证,但Windows95/98/NT系统中硬件操作和中断编程非常复杂,软件开发的难度较大.解决实时性的另一种方案是采用实时操作系统(如QNX、LynxOS)或在非时实操作系统中使用实时补丁或扩展子系统(如RTX、RTLinux).RTX是微软提供的WindowsNT的实时子系统.RTLinux是Linux实时补丁.QNX是一个实时微内核操作系统,内核中不包括硬件驱动,拥有授权的程序员可以直接访问内存和I/O口,接触硬件中断服务程序,这[8]
[4]
图1 一种开放式机器人控制结构Fig.1 AarchitectureofORC
4 ORC的实现(ImplementationofORC)
4.1 硬件平台
实现开放结构控制器首先必须选择合适的平台,实现平台对系统的开放性、实现方式和开发工作量有很大影响.硬件平台应满足[5,10,11]:(1)硬件系统基于标准总线结构,具有可伸缩性,(2)硬件结构具有必要的实时计算能力,(3)开放性要求硬件系统模块化,便于添加或更换各种接口、传感器、特殊计算机等.(4)低成本.操作系统的选择应基于以下原则:(1)通用性,(2)必要的实时处理能力,(3)具有多任务处理、多线编程功能,(4)便于使用通用的软件开发工具(5)丰富的应用软件资源.
随着性能的提高和成本的降低,数字信号处理器(DSP)在机器人运动控制级的应用越来越广泛.DSP具有很强的浮点运算能力,执行滤波算法效率的很高,通过合理设计主机与DSP之间的通讯方式,可以降低对操作系统实时性的要求[15].近年来,基于DSP的多轴运动控制技术发展很快,以DSP为核心的运动控制卡商品化程度越来越高,目前已能将多至8轴的运动控制集成在一块卡上(如DeltaTau
[1]
Motion公司的PMAC运动控制卡).GalilMotionControl公司研制出基于USB总线的运动控制器DMC-2000.
到目前为止,开放式机器人控制器的硬件平台[9]
第23卷第4期孙 斌等: 开放式机器人控制器综述377
使得编写硬件接口非常容易.采用实时操作系统或补丁的缺点是降低了系统的通用性、增加了成本.优点是可以用单纯软件的PC控制取代PC+DSP的控
制方式.美国Clemson大学的研究人员成功地在
QNX系统下开发出基于PC的实时控制系统QMotor
[12]
,可望能用于机器人控制.
图2 一种基于VME总线的控制结构 图3 一种基于PC总线的机器人控制器Fig.2ArobotcontrollerbasedonVMEbus Fig.3ArobotcontrollerbasedonPCbus
4.2 软件系统
文献[7]认为开放式软件系统应具有以下特点:(1)可移植性,(2)便于升级和软件复用,(3)交互性和分布性,(4)效率,(5)健壮性[7].软件代码应根据实时操作需求,用具有数据抽象能力的语言编写,具有面向对象特征和模块化结构[5].最合适的语言或模式取决于系统层次、应用、成本-效益需求、实际硬件等.面向对象的编程似乎是最便于机器人系统内核设计和实现的
[5,11,14]
(ISOE)、监控和子系统通用接口(GENISAS)[22]、机器人编程环境和语言(RIPE/RIPL)
[14]
、机器人和遥
控操作的顺序模块结构(SMART)[16]和图形编程环境Sancho[23].TrellisSoftware&Control公司开发了
基于LynxOSTM的一系列运动控制软件模块NOMAD,包括(1)一个轨迹生成器,(2)一个用户环境,(3)图形伺服调节工具,机器仿真器,命令行接口,示教盒支持以及其他一些应用.这些模块可以与通用计算机硬件和软件组合,构造开放结构的机器人或运动控制器[24].CIMETRIXInc.研究的开放式控制器ROBOLINE[25]建立在标准工业平台上,使用Client/Server模型连接应用编程环境和底层控制功能.
Server由处理任务顺序、运动规划和I/O的多线程进程组成,保留一个世界模型、控制参数和其他信息的知识库.Client可以使用其他控制模块、通用工具或应用程序.它还为应用编程人员提供了一个非编程员接口和一个C语言应用函数库,包括运动控制函数、几何建模、用户接口函I/O和过程控制、数以及其他很多函数.CMU基于传感器的控制系统.系统编程一般采用工业上常
用的命令语言实现,例如C/C++,Modula-2和
Java等.现代软件工程通常采用基于模式和框架软件设计方法维护系统结构和支持代码重用[5].同步方法
[21]
为软件的逻辑和临时特性提供了一种统一的
方法和一些正式的验证工具.
为特定的应用开发一个机器人系统是非常复杂的过程,而开发一个完全开放、适合所有应用的机器人系统是不可能也是不必要的.比较可行的是使用混合方法,实现一个通用的、具有适应性的结构[10].美国能源部RTDP项目为构造基于GISC的系统提供了一系列开发工具,包括智能系统操作环境378 机 器 人2001年7月
foranUnmannedMobileRobot.In:IEEEJournalofRoboticsandAutomation,1998,4(3):241-255
的软件框架[26]采用面向对象的端口设计方法.对象的内部状态和方法对其他对象隐藏.只有对象的端口对其他对象可见.模块间通过全局状态信息数据库机制进行信息交换.文献[7]为集成机器人软件开发的开放式软件系统分为任务相关子系统(包括概念单元、服务、ICE(接口、代码和故障恢复)模块)、管理子系统(包括内部通讯管理和结构信息管理模块).文献[11]采用面向对象的方法实现了软件库MRROC+,库中包含的构造模块可以定制有特殊要求的多机器人系统的控制器.
14DavidJ.MillerR.CharleeneLennox.AnObject-oriented
EnviromentforRobotSystemArchitecture.1990IEEEInter.Conf.onRoboticsandAutomation,1990,1:352-361
15StefanoBattilotti,GiovanniUlivi.AnArchitectureforHigh
PerformanceControlUsingDigitalSignalProcessorChips.IEEEControlSystemsMagazine,1990,10(6):20-23
16RobertJ.Anderson.SMART:AModularArchitecturefor
Robotics!andTeleoperation.IEEEInternationalConferenceonRoboticsandAutomation,Atlanta,GA,May2-6,199317AlbusJS.ATheoryofIntelligentSytems.In:Proceedingsof5th
IEEE
International
Symposium
on
Intelligent
Control,
Philadelphia,PA,1990,2:866-875
18AlbusJS,McCainH.G.,LumiaR.NASA/NBSStandard
ReferenceModelforTelerobotControlSytemArchitecture(NASREM),NISTTechnicalNote1235,April198919SaridisGN.
ArchitectureforIntelligentControls.
IEEE
SymposiumonImplictandNonlinearSystems,Ft.Worth,TX,December14-15,1992
20GriesmeyerJM,McDinaldMJ,RWButlerPL.Rigion.
GenericIntelligentSystemController(GISC).SandiaInternalReport,SAND92-Mexico,October1992
21BenvenisteA,BerryG.TheSynchronousApproachtoReative
andReal-timeSystems.ProceedingsoftheIEEE,1991,79(9):1270-1282
22GriesmeyerJM.GeneralInterfaceforSupervisorandSubsystems
(GENISAS).
Sandia
Internal
Report,
Sandia
National
laboratories-NewMexico,October1992
23McDinaldMJ,PalmquistRD.GraphicalProgramming:Online
RobotSimulationforTeleroboticControl.ProceedingsoftheInternationalRoboticsandVisionDetroit,MI,April5-8,1993
24RossolL.NomadOpenArchitectureMotionControlSoftware.
ProceedingsoftheInternationalRoboticsandVisionAutomationConference,Detroit,MI,April5-8,1993
25SorensernS.OverviewofaModular,IndustryStandardsBased
OpenArchitectureMachineController.InternationalRoboticsandVisionDetroit,MI,April5-8,1993
26StewartDB,VolpeRA,KhoslaPK.IntegrationofReal-Time
SoftwareModulesforReconfigurableSensor-BasedControlSystems.Proceedings1992IEEE/RSJInternationalConferenceonIntelligentRoboticsandSystems,Raleigh,NC,July7-10,1992
ProceedingsoftheAutomationConference,AutomationConference,
2159,SandiaNationallaboratories-New
5 结论(Conclusion)
开放式机器人控制器的研究还处在开始阶段,还没有形成完整的标准.基于PC的机器人控制器开放程度高、用户基础广泛,具有良好的应用前景,但实时处理比较困难,而采用实时操作系统的纯软件型控制器是值得关注的研究方向.
参考文献 (References)
1 范永,谭民.机器人控制器现状和展望.机器人,1999,21(1)2 周学才,李卫平,李强.开放式机器人通用控制系统.机器人,
1998,20(1)
3 何永义,陈一民等.基于PC工控机及Windows95的机器人通用
控制器的研究.机器人,1998,4(1)
4 ChristianWurll,DominikHenrich,HeinzWorn,JanSchloen,
MartinDamm,WolfgangMeier.AdistributedPlanningandControl
System
for
Industrial
Robots.
The
5th
IEEE
InternationalAdvancedMotionControlWorkshop(AMC'98)5 KlasNilsson.IntegratedArchitectureforIndustrialRobot
ProgrammingandControl.RoboticsandAutonomousSystems,1999,29:205-226
6 KlasNilsson.SoftwareforEmbeddedDSPs.Proceedingsofthe
AmericanControlConference,Altimore,Maryland,Jun,19947 JuanA.Fernanderz,JavierGonazlez.TheNEXUSOpenSystem
forIntegratingRoboticSoftware.
RoboticsandComputer
IntegratedManufacturing,1999,15:431-440
8 Anonymous.OpenArchitecture:MythorPipeDream?Robotics
World,1996
9 ElizabethParks.USBMotionController.MachineDesign,
Cleveland,Mar11,199910WilliamE.
Ford.
What
isanOpenArchitectureRobot
Controller?1994IEEEInternationalSymposiumonIntelligentControl,16-18August,1994.Columbus,Ohio,USA
11CezaryZielinski.Objet-orientedRobotProgramming.Robotica,
1997,15:41-48
12CostescuN,DawsonD,LofflerM.QMator2.0-AReal-timePC
BasedControlEnvironment.IEEEControlSystemsMagazine,1999,19(3):68-76
13CanIsikAA.Meystel.PilotLevelofaHierarchicalController作者简介:
孙 斌(1975-),男,博士研究生.研究领域:机器人控制. 杨汝清(1945-),男,教授,博士生导师.研究领域:机器人
智能控制,机电一体化等.
因篇幅问题不能全部显示,请点此查看更多更全内容