机器人控制系统相关知识大汇集
什么是机器人控制系统
如果仅仅有感官和肌肉,人的四肢还是不能动作。一方面是因为来自感官的信号没有器官去接收和处理,另一方面也是因为没有器官发出神经信号,驱使肌肉发生收缩或舒张。同样,如果机器人只有传感器和驱动器,机械臂也不能正常工作。原因是传感器输出的信号没有起作用,驱动电动机也得不到驱动电压和电流,所以机器人需要有一个控制器,用硬件坨和软件组成一个的控制系统。
机器人控制系统的功能是接收来自传感器的检测信号,根据操作任务的要求,驱动机械臂中的各台电动机就像我们人的活动需要依赖自身的感官一样,机器人的运动控制离不开传感器。机器人需要用传感器来检测各种状态。机器人的内部传感器信号被用来反映机械臂关节的实际运动状态,机器人的外部传感器信号被用来检测工作环境的变化。
所以机器人的神经与大脑组合起来才能成一个完整的机器人控制系统。
机器人的运动控制系统包含哪些方面?
执行机构----伺服电机或步进电机;
驱动机构----伺服或者步进驱动器;
控制机构----运动控制器,做路径和电机联动的算法运算控制;
控制方式----有固定执行动作方式的,那就编好固定参数的程序给运动控制器;如果有加视觉系统或者其他传感器的,根据传感器信号,就编好不固定参数的程序给运动控制器。
机器人控制系统的基本功能
控制机械臂末端执行器的运动位置( 即控制末端执行器经过的点和移动路径);
控制机械臂的运动姿态(即控制相邻两个活动构件的相对位置);
控制运动速度(即控制末端执行器运动位置随时间变化的规律);
控制运动加速度(即控制末端执行器在运动过程中的速度变化);
控制机械臂中各动力关节的输出转矩:(即控制对操作对象施加的作用力);
具备操作方便的人机交互功能,机器人通过记忆和再现来完成规定的任务;
使机器人对外部环境有检测和感觉功能。工业机器人配备视觉、力觉、触觉等传感器进行测量、识别,判断作业条件的变化。
工业机器人控制系统
1、工业机器人控制系统硬件结构
控制器是机器人系统的核心,国外有关公司对我国实行严密封锁。近年来随着微电子技术的发展,微处理器的性能越来越高,而价格则越来越便宜,目前市场上已经出现了1-2美金的32位微处理器。高性价比的微处理器为机器人控制器带来了新的发展机遇,使开发低成本、高性能的机器人控制器成为可能。为了保证系统具有足够的计算与存储能力,目前机器人控制器多采用计算能力较强的ARM系列、DSP系列、POWERPC系列、Intel系列等芯片组成。
此外,由于已有的通用芯片在功能和性能上不能完全满足某些机器人系统在价格、性能、集成度和接口等方面的要求,这就产生了机器人系统对SoC(SystemonChip)技术的需求,将特定的处理器与所需要的接口集成在一起,可简化系统外围电路的设计,缩小系统尺寸,并降低成本。例如,Actel公司将NEOS或ARM7的处理器内核集成在其FPGA产品上,形成了一个完整的SoC系统。在机器人运动控制器方面,其研究主要集中在美国和日本,并有成熟的产品,如美国DELTATAU公司、日本朋立株式会社等。其运动控制器以DSP技术为核心,采用基于PC的开放式结构。
2、工业机器人控制系统体系结构
在控制器体系结构方面,其研究重点是功能划分和功能之间信息交换的规范。在开放式控制器体系结构研究方面,有两种基本结构,一种是基于硬件层次划分的结构,该类型结构比较简单,在日本,体系结构以硬件为基础来划分,如三菱重工株式会社将其生产的PA210可携带式通用智能臂式机器人的结构划分为五层结构;另一种是基于功能划分的结构,它将软硬件一同考虑,其是机器人控制器体系结构研究和发展的方向。
3、控制软件开发环境
在机器人软件开发环境方面,一般工业机器人公司都有自己独立的开发环境和独立的机器人编程语言,如日本Motoman公司、德国KUKA公司、美国的Adept公司、瑞典的ABB公司等。很多大学在机器人开发环境(RobotDevelopmentEnvironment)方面已有大量研究工作,提供了很多开放源码,可在部分机器人硬件结构下进行集成和控制操作,目前已在实验室环境下进行了许多相关实验。国内外现有的机器人系统开发环境有TeamBots,v.2.0e、ARIA,V.2.4.1、Player/Stage,v.1.6.5.1.6.2、Pyro.v.4.6.0、CARMEN.v.1.1.1、MissionLab.v.6.0、ADE.V.1.0beta、Miro.v.CVS-March17.2006、MARIE.V.0.4.0、FlowDesigner.v.0.9.0、RobotFlow.v.0.2.6等等。从机器人产业发展来看,对机器人软件开发环境有两方面的需求。一方面是来自机器人最终用户,他们不仅使用机器人,而且希望能够通过编程的方式赋予机器人更多的功能,这种编程往往是采用可视化编程语言实现的,如乐高MindStormsNXT的图形化编程环境和微软RoboticsStudio提供的可视化编程环境。
4、机器人专用操作系统
(1)VxWorks,VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是Tornado嵌入式开发环境的关键组成部分。VxWorks具有可裁剪微内核结构;高效的任务管理;灵活的任务间通信;微秒级的中断处理;支持POSIX1003.1b实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。
(2)WindowsCE,WindowsCE与Windows系列有较好的兼容性,无疑是WindowsCE推广的一大优势。WindowsCE为建立针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,它能在多种处理器体系结构上运行,并且通常适用于那些对内存占用空间具有一定限制的设备。
(3)嵌入式Linux,由于其源代码公开,人们可以任意修改,以满足自己的应用。其中大部分都遵从GPL,是开放源代码和免费的。可以稍加修改后应用于用户自己的系统。有庞大的开发人员群体,无需专门的人才,只要懂Unix/Linux和C语言即可。支持的硬件数量庞大。嵌入式Linux和普通Linux并无本质区别,PC上用到的硬件嵌入式Linux几乎都支持。而且各种硬件的驱动程序源代码都可以得到,为用户编写自己专有硬件的驱动程序带来很大方便。
(4)μC/OS-Ⅱ,μC/OS-Ⅱ是著名的源代码公开的实时内核,是专为嵌入式应用设计的,可用于8位,16位和32位单片机或数字信号处理器(DSP)。它的主要特点是公开源代码、可移植性好、可固化、可裁剪性、占先式内核、可确定性等。
(5)DSP/BIOS,DSP/BIOS是TI公司特别为其TMS320C6000TM,TMS320C5000TM和TMS320C28xTM系列DSP平台所设计开发的一个尺寸可裁剪的实时多任务操作系统内核,是TI公司的CodeComposerStudioTM开发工具的组成部分之一。DSP/BIOS主要由三部分组成:多线程实时内核;实时分析工具;芯片支持库。利用实时操作系统开发程序,可以方便快速的开发复杂的DSP程序。
5、机器人伺服通信总线技术
目前国际上还没有专用于机器人系统中的伺服通信总线,在实际应用过程中,通常根据系统需求,把常用的一些总线,如以太网、CAN、1394、SERCOS、USB、RS-485等用于机器人系统中。当前大部分通信控制总线可以归纳为两类,即基于RS-485和线驱动技术的串行总线技术和基于实时工业以太网的高速串行总线技术。
智能机器人控制系统
(1)开放性模块化的控制系统体系结构:采用分布式CPU计算机结构,分为机器人控制器(RC),运动控制器(MC),光电隔离I/O控制板、传感器处理板和编程示教盒等。机器人控制器(RC)和编程示教盒通过串口/CAN总线进行通讯。机器人控制器(RC)的主计算机完成机器人的运动规划、插补和位置伺服以及主控逻辑、数字I/O、传感器处理等功能,而编程示教盒完成信息的显示和按键的输入。
(2)模块化层次化的控制器软件系统:软件系统建立在基于开源的实时多任务操作系统Linux上,采用分层和模块化结构设计,以实现软件系统的开放性。整个控制器软件系统分为三个层次:硬件驱动层、核心层和应用层。三个层次分别面对不同的功能需求,对应不同层次的开发,系统中各个层次内部由若干个功能相对对立的模块组成,这些功能模块相互协作共同实现该层次所提供的功能。
(3)机器人的故障诊断与安全维护技术:通过各种信息,对机器人故障进行
诊断,并进行相应维护,是保证机器人安全性的关键技术。
(4)网络化机器人控制器技术:目前机器人的应用工程由单台机器人工作站向机器人生产线发展,机器人控制器的联网技术变得越来越重要。控制器上具有串口、现场总线及以太网的联网功能。可用于机器人控制器之间和机器人控制器同上位机的通讯,便于对机器人生产线进行监控、诊断和管理。
机器人控制架构
如果说驱动子系统是机器人的肌肉,能源子系统是机器人的心脏,那么控制和决策子系统就是机器人的大脑。这是机器人最重要、最复杂的一个子系统。
机器人是一种高度复杂的自动化装置。其控制子系统也是直接来源于自动化领域的其他应用,例如工厂自动化领域中所用到的处理器、电路以及标准。本章仅仅列举并对比了几种常见的、典型的控制系统拓扑结构,然后分析了几个典型的机器人控制子系统的构成,特别是详细说明了“创意之星”机器人的控制架构。
典型的几种机器人控制架构(ARCHITECHURE)
这里我们不讨论传统的工业机器人,主要关注的是自主移动机器人、仿生机器人等新形态的机器人。通常,机器人的架构是指如何把感知、建模、规划、决策、行动等多种模块有机地结合起来,从而在动态环境中,完成目标任务的一个或多个机器人的结构框架。总的说来,当前自主机器人的控制架构可分为下述几类:
1. 程控架构,又称规划式架构,即根据给定初始状态和目标状态规划器给出一个行为动作的序列,按部就班地执行。较复杂的程控模型也会根据传感器的反馈对控制策略进行调整,例如在程序的序列中采用“条件判断+跳转”这样的方法。
2. 包容式架构和基于行为的控制模型,又称为反应式模型,复杂任务被分解成为一系列相对简单的具体特定行为,这些行为均基于传感器信息并针对综合目标的一个方面进行控制。基于行为的机器人系统对周围环境的变化能作出快速的响应,实时性好,但它没有对任务做出全局规划,因而不能保证目标的实现是最优的。
3. 混合式架构,是规划和基于行为的集成体系,不仅对环境的变化敏感,而且能确保目标的实现效率。通常混合式架构有两种模式:一种模式是,决策系统的大框架是基于规划的,在遇到动态情况时再由行为模型主导;另一种模式是,决策系统的大框架基于行为,在具体某些行为中采用规划模型。总之,混合式架构的设计目的是尽可能综合程控架构和包容式架构的优点,避免其缺点。
下面几小节对以上三种架构进行初步的讨论。更进一步的资料,请参阅相关文献。本书的附录中列出了一些可供参考阅读的书籍资料。
1.1 集中程控架构
传统的机器人大都是工业机器人。他们通常工作在流水线的一个工位上,每个机器人的位置是已知、确定的;设计者在每台机器人开始工作之前也很清楚他的工作是什么,他的工作对象在什么位置。这种情况下,对机器人的控制就变成了数值计算,或者说“符号化”的计算。例如,我们通过实地测量可以得到一台搬运机器人的底座的坐标;再通过空间机构几何学的计算(空间机器人的正解、逆解),可以得到机器人的各个关节处于什么样的位置的时候其末端的搬运装置可以到达给定位置。这样,机器人控制策略设计者是在一个静态的、结构化的、符号化的环境中编写策略;他不需要考虑太多的突发情况,至多需要考虑一些意外,例如利用简单的传感器检测应该被搬运的工件是否在正确的位置,从而决定是否报警或者停止工作等等。
这类机器人通常由一个单独的控制器。这个控制器收集从机器人各个关节、各个附加传感器传送来的位置、角度等信息,通过控制器处理后,计算机器人下一步的工作。整个机器人是在这个控制器的控制下运作,对于一些异常的处理也在程序的设定范围内。下图是两个典型的采用集中式系统架构的移动机器人框图。左侧的框图的控制器是一台PC机,它担负了所有的信息采集、处理和控制功能;右图是经过改进的机器人架构:在PC机之外,增加了一个DSP控制器,承担了PC 机的部分工作。但是,这两种架构下控制器的负担都相当重,并且如果控制器出现故障,整个机器人将会瘫痪。
对于上面描述的工作内容,程控式、集中控制式结构是非常理想的。如前所述,机器人不会遇到太多动态的、非符号化的环境变化,并且控制器能够得到足够多的、准确的环境信息。设计者可以在机器人工作前预先设计好最优的策略,然后让机器人开始工作,过程中只需要处理一些可以预料到的异常事件。
但是,假设我们要设计一个在房间里漫游的移动机器人,房间的大小未知;并且我们也无法准确地得到机器人在房间中的相对位置,这种架构将无法获得足够的信息,并且无法处理未知的突发情况。因此对于传统意义之外的机器人,例如移动机器人、宠物机器人等,程控式控制架构就很难适应了。
集中式程控架构的优点是系统结构简单明了,所有逻辑决策和计算均在集中式的控制器中完成。这种架构很清晰:控制器是大脑,其他的部分不需要有处理能力。
而对于仿生机器人、在未知环境中工作的机器人,一个大脑处理所有事情真的合适吗?
考虑蚯蚓、蜈蚣之类的低等生物。它们的大脑很不发达(甚至没有大脑),反而具有一个很发达的脊索或者很夺个神经节。大部分是这些分布在全身的神经节在主导它们的活动和反应,而不是大脑。
读者在中学生物课中应该做过这么一个试验:
用一个小锤子,轻轻地敲膝盖以下的位置。你会发现小腿不受控制地自动抬起。这是著名的“膝跳反射”试验。这个实验说明,即使是人类这样的高等生物,也不是全部的生命活动都在大脑的控制之下。设想一个具有人类全部功能的机器人。它有数百个电动机对应人类的数百块肌肉,有数万个传感器,对应人类的皮肤、眼睛、鼻子和耳朵等。如果采用集中式控制架构,这个机器人的大脑将很难负荷如此庞大的数据运算和决策。
因此对于工业机器人之外的其他机器人,发展出了分层式控制架构、包容式架构,以及混合式架构等更适合其特点的控制架构。
1.2 分层式架构(LAYERED ARCHITECTURE)
分层式架构是随着分布式控制理论和技术的发展而发展起来的。分布式控制通常由一个或多个主控制器和很多个节点组成,主控制器和节点均具有处理能力。其中心思想是:主控制器可以比较弱,但是大部分的非符号化信息已经在其各自的节点被处理、符号化,再传递给主控制器来进行决策判断。单个节点分布式控制模型已经被广泛应用在大型工厂、楼宇等结构复杂、传感器和执行器很多的场合中。
分层式架构是基于认知的人工智能(Artificial Intelligence, AI)模型,因此也称之为基于知识的架构。在AI模型中,智能任务由运行于模型之上的推理过程来实现,它强调带有环境模型的中央规划器,它是机器人智能不可缺少的组成部分,而且该模型必须准确、一致。分层式架构是把各种模块分成若干层次,使不同层次上的模块具有不同的工作性能和操作方式。
通过对分布式系统中不同功能的节点进行功能层次划分,即得到了分层式架构。
分层式架构中最有代表性的是由20世纪80年代智能控制领域著名学者Saridis提出的三层模型。Saridis认为随着控制精度的增加,智能能力减弱,即层次向上智能增加,但是精度降低,层次向下则相反。按照这一原则,他把整个结构按功能分为三个层次,即执行级、协调级和组织级。其中,组织级是系统的“大脑”,它以人工智能实现在任务组织中的认知、表达、规划和决策;协调级是上层和下层的智能接口,它以人工智能和运筹学实现对下一层的协调,确定执行的序列和条件;执行级是以控制理论为理论基础,实现高精度的控制要求,执行确定的运动。需要指出的是,这仅仅是一个概念模型,实际的物理结构可多于或少于三级,无论多少级,从功能上来说由上到下一般均可分为这三个层次。信息流程是从低层传感器开始,经过内外状态的形势评估、归纳,逐层向上,且在高层进行总体决策;高层接受总体任务,根据信息系统提供的信息进行规划,确定总体策略,形成宏观命令,再经协调级的规划设计,形成若干子命令和工作序列,分配给各个控制器加以执行。
在分层式架构中,最广泛遵循的原则是依据时间和功能来划分架构中的层次和模块。其中,最有代表性的是美国航天航空局(NASA)和美国国家标准局(NBS)提出的NASREM的结构。其出发点之一是考虑到一个智能机器人可能有作业手、通讯、声纳等多个被控分系统,而这样的机器人可能组成一个组或组合到更高级的系统中,相互协调工作;出发点之二是考虑已有的单元技术和正在研究的技术可以应用到这一系统中来,包括现代控制技术和人工智能技术等。整个系统横向上分成信息处理、环境建模和任务分解三列,纵向上分为坐标变换与伺服控制、动力学计算、基本运动、单体任务、成组任务和总任务六层,所有模块共享一个全局数据库,如下图所示。
NASREM结构的各模块功能和关系非常清楚,有利于系统的构成和各模块内算法的添加和更换。它具有全局规划和推理的能力,对复杂的环境可以做出合理的反应,适合于一个或一组机器人的控制。但同其它的分层式架构一样,NASREM的问题在于输入环境的信息必须通过信息处理列的所有模块。结果往往是将简单问题复杂化,影响了机器人对环境变化的响应速度,而机器人非常重要的一个性能就是对环境变化、意外事件的发生等要求作出迅速反应。因此,分层式架构从理论上只适合于那些有一定的位置环境信息、在轻微非结构化环境工作的机器人。但是由于总线技术、实时控制技术的高速发展,分层式架构的最致命弱点之一:响应较慢等问题也得到了一定程度的缓解。由于分层式架构也较为成熟,因此还有大量的移动机器人、玩具机器人使用这种架构,并在一定程度上融入了包容式架构和混合式架构中。
1.3 包容式架构(SUBSUMPTION ARCHITECTURE)
假设我们的机器人是在一个虚拟的环境中运行。这个虚拟的环境中,地面是绝对水平的,墙壁是绝对垂直的;同时,传感器是没有误差的,机器人的轮子也是不会打滑的,我们可以精确地通过编码器等传感器来得到机器人的所处位置,以及他与周围环境的相对关系,从而根据程序作出决策。
但是事实上情况完全不是这么理想。再平坦的地面也会有起伏,更不要说野外的地形环境;超声声纳返回的数据有时候会产生很大的误差,甚至激烈地跳变;当机器人启动和停下的时候,它的轮子是一定会打滑的。由于机器人所处的真实世界主要为非结构化的动态环境,往往会遇到事先完成的程序规划说没有考虑到的问题。这样的环境下,我们遇到的情况往往是,预先规划好的决策程序,在实际中会遇到各种各样的麻烦而根本无法像我们设想的那样工作。
包容式架构和基于行为的机器人控制模型就是主要为了解决这一问题而产生的。集中式架构、分层式架构在机器人控制中产生的种种问题主要根源于:
1、环境的复杂性和环境模型的误差;
2、环境的不可预知性;
3、对环境感知不精确带来的不稳定性。
程控架构解决不了后两个问题。而通过包容式架构和基于行为的控制模型却可以较好地解决这两个问题,虽然可能会牺牲一些效率。
为了简单地说明这两种控制架构之间的差别,我们举一个简单的例子(可能不太贴切):假设有一台扫地机器人,它的任务是要走遍整个房间,同时把房间打扫干净。如果我们采用规划模型完成这个任务,那么机器人可能会按照预先设定的一定的路径,把整个地面遍历一次或多次,但是如果中间碰到了一个规划的时候忽略了的椅子,那么这个机器人很可能就会偏航,从而永远无法完成扫地的任务;如果采用基于行为的模型,那么机器人可能会到处乱走,并根据碰到的情况调整行走的方向,但是最终这个机器人也能够磕磕碰碰地完成打扫房间的任务。
分层式结构能够较好地解决智能和控制精度的关系,创造一种良好的自主式控制方式。然而由于上文所述的三种问题,使得分层式体系结构在灵活性、实时性和适应性方面经常存有缺陷。
针对上述缺点,美国麻省理工学院的R.Brooks从研究移动机器人控制系统结构的角度出发,提出了基于行为的体系结构―包容式体系结构(Subsumption Architecture)。与分层式体系结构把系统分解成功能模块,并按感知―规划―行动(Sense-Planning-Action,SPA)过程进行构造的串行结构不同(如下图所示);
包容式体系结构是一种完全的反应式体系结构,是基于感知与行为(Sense-Action,SA)之间映射关系的并行结构(如下图所示)。在包容式结构中,上层行为包含了所有的下层行为,上层只有在下层的辅助下才能完成自己的任务;另一方面下层并不依赖于上层,虽然上层有时可以利用或制约下层,然而下层的内部控制与上层无关,增减上层不会影响下层。
在基于行为的模型中,参与控制的是各异的、并有可能不兼容的多个行为,每个行为负责机器人某一特定目标的实现或维护,如跟踪目标或避障等。多个行为往往可能产生互相冲突的控制输出命令。因而系统首先需解决的一个问题是多行为的协作,即通过构造有效的多行为活动协调机制,实现合理一致的整体行为。
同样以上面的扫地机器人为例子。我们可以把“打扫整个房间”分解为“前进并扫地”、“避开左侧障碍物”、“避开右侧障碍物”、“避开前方障碍物”这几个基本的行为。机器人一开始对自己的任务不做任何规划,只是简单地前进。当遇到障碍物时,相应的行为被激活,产生一个给驱动执行机构的输出,执行相应的动作。再通过一个合理的仲裁器(例如一个FSM状态机),来决定如果多种行为产生冲突时的优先级。
这样看似简单的逻辑却具有很好的适应能力。这样一个扫地机器人最终必然能够把屋子打扫干净。但是不幸的是,如果运气不够好,他打扫完整个房间可能要花上几个小时。
上面谈到行为协作机制的实现方法可分为两类:仲裁和命令合成。采用仲裁方法的行为协作在同一时间允许一个或一系列行为实施控制,下一时间又转向另一组行为。而命令合成关心的是如何将各个行为的结果最终合成为一个命令,输入到机器人的执行机构。它允许多个行为都对机器人的最终控制产生作用,这种方法适用于解决典型多行为问题,如在自由空间漫游的机器人,同时需避开遇到的障碍物。仲裁机制和命令合成机制均有着许多具体的实现策略,各有其优势和不足之处。
1.4 混合式架构(HYBRID ARCHITECTURE)
包容式架构强调模块的独立、平行工作,但缺乏全局性的指导和协调,虽然在局部行动上可显示出灵活的反应能力和鲁棒性,但是对于长远的全局性目标跟踪显得缺少主动性,目的性较差。例如上文举例的扫地机器人。包容式架构和行为模型为机器人提供了一个高鲁棒性、高适应能力和对外界信息依赖更少的控制方法。但是它的致命问题是效率。因此对于一些更加复杂的应用,可能需要混合式架构,以融合程控架构和包容式架构/行为模型的优点,尽量避免它们各自的缺点。
通常,混合式架构在较高级的决策层面采用程控架构,以获得较好的目的性和效率;在较低级的反应层面采用包容式架构,以获得较好的环境适应能力、鲁棒性和实时性。