智能机器人所具备的感知、规划、动作和协同等能力确定了其硬件的组成与结构。为了感知和识别对象和环境,其需要丰富的内部传感器和外部传感器;为了作用于对象并影响周围环境,其需要多种能力的动作执行器;智能机器人的核心是一个相当发达的“大脑”——控制计算机,其用于实现机器人的实时管控和智能处理;智能机器人具有人机协同、多机器人协作等能力,因此需要配置多样化交互接口和网络通信接口。综上所述其硬件组成如图1-1所示。
(1)内部传感器组
完成机器人自身位置、速度、力度等实时测量和感知,为实现伺服控制提供依据。
·位置(位移)传感器:感知机器人当前位置和位移状态,其又可分为直线移动传感器和角位移传感器;例如,实现角位移感知的光电编码器能够得到对应于编码器初始锁定位置的驱动轴瞬时角度值。当设备感受到压力时,只要读出每个关节编码器的读数,就能及时调整伺服控制的给定值,以防止机器人启动时产生过于剧烈的运动。
图1-1 智能机器人的硬件组成与基本结构
·速度和加速度传感器:主要用于感知旋转运动的速度,常用光电脉冲式转速传感器来实现;加速度传感器可用于测量机器人的动态控制信号,一般由速度测量进行推演。主流的传感器有应力传感器和振动式加速度传感器。
·力觉传感器:主要用于测量两个物体之间的作用力分量和力矩分量。主要有半导体型力觉传感器、转矩传感器及基于弦振动原理的力觉传感器等。例如,斯坦福研究所研制的光腕力传感器是由6个小型差动变压器组成的,能够测量作用于腕部X、Y和Z三个方向的动力及各轴动转矩。
(2)外部传感器组
通过视觉、触觉及声觉等的感知,实现智能机器人及时反映环境变化、自主调整自身行为的能力。
·视觉传感器:机器视觉已成为智能机器人的主要感知手段,微型化智能数字摄像机是其主要选择。
·触觉传感器:用于感知动作执行器与对象的接触及其程度;微型开关是触觉传感器的常用选择,隔离式双态接触传感器、矩阵传感器、光反射触觉传感器等也是新发展的触觉传感器。
·声觉传感器:用于感受和解释气体(非接触感受)、液体或固体(接触感受)中的声波。声波传感器可以从简单的声波存在检测到复杂的声波频率分析,直到对连续自然语言中单独语音和词汇的辨别。
·滑觉传感器:用于检测物体的滑动。当要求智能机器人抓住特性未知的物体时,必须确定最适当的握力值,所以要事先检测出握力不够时所产生的物体滑动信号。目前已有基于光学和利用晶体接收器等不同原理的滑觉传感器,后者的检测灵敏度与滑动方向无关。
·其他外传感器:用于智能移动机器人的距离感知的激光测距仪、声呐传感器等距离传感器;用于感知环境温度的接触式或非接触式温度传感器;用于检测物体的存在和测量距离的超声波接近度传感器等。
(3)驱动与作动器
驱动与作动器是驱动智能机器人活动的动力机构。驱动器可将电能、液压能和气压能转化为机器人的动力,并驱动自身移动或机械臂关节的移动。
·驱动电动机是智能机器人的基本驱动器:机器人驱动器的本质问题是控制电动机,控制电动机的转数就可以控制机器人移动的距离和方向、机械臂的弯曲度或移动距离等,驱动电动机主要有步进电动机和伺服电动机。步进电动机是通过给内部多个线圈依次施加脉冲电流实现电动机的连续转动,改变脉冲的频率即可改变电动机的转速,改变施加脉冲的顺序即可改变电动机的转动方向,实现机器人的位置控制。而伺服电动机是一个连续转动的直流电机,通过闭环反馈控制回路,以实现精确的位置控制。
·新型驱动器可实现优良的特色驱动特性:静电驱动器可利用电荷间引力和排斥力的互相作用顺序驱动电极而产生平移或旋转;形状记忆合金驱动器由于具有形状记忆效应,即力作用后会发生弹性变形;压电效应驱动器在外力作用下不仅几何尺寸会发生变化,而且内部也会出现极化,当外力消失时,材料重新恢复到原来的状态,电场也随即消失,因此称为压电效应;为了更好地模拟生物体的运动功能以应用于智能机器人,目前已经研制出了各种不同类型的人工肌肉。
(4)控制计算机
控制计算机可实现智能机器人的智能感知、认知理解、决策控制、任务协同等处理与管理任务。其发展具有以下趋势:
·从通用到专用,从联机到嵌入:采用通用计算机作为机器人的计算与控制平台,与机器人主体通过专线或网络在线连接,这是早期的纯软件解决方案,其具有系统开发的方便性和功能实现的灵活性,但其难以支持智能机器人的集成性、移动性及微型化等需求。因此,采用嵌入式计算机,配置专用处理硬件的软硬件结合解决方案成为智能机器人控制计算机的主流方案。例如,采用大规模集成电路芯片微控制器(MCU)作为智能机器人控制计算机,其内部集成中央处理器单元(CPU)、各种存储器(RAM、ROM、EPROM、EEPROM和Flash ROM)、多种输入/输出接口等众多功能部件,一片芯片构成了一个基本的嵌入式微型计算系统。例如,意法半导体(GT)公可研发的微控制器STM32F7已在新一代智能机器人系统中得到了应用。
·从单处理器到多处理器,从集中结构到分布结构:随着智能机器人智能程度的不断提高,其处理系统对实时性、数据量和计算要求的不断提高,采用高性能嵌入式处理器与高速DSP处理器、单片微控制器结合组成的异构多处理器成为智能机器人处理平台的主要方式;随着智能传感器的发展,大型智能工业机器人的功能与结构更加复杂,集中处理方式已经难以满足功能扩展、结构演化的需求,基于机器人内部网络的分布式处理成为一种新型结构。
(5)人机交互与网络通信接口
为了实现智能机器人与操作人员的交互与协同,以及与其他智能机器人的通信与协作,智能机器人必须配置多样化的人机交互与网络通信接口。
·人机交互多样化:机器人的人机交互实现了操作人员参与智能机器人控制并与机器人交流。最早的机器人人机交互的方式是通过鼠标、键盘等接触式接口实现的,交互方式呈机械化。随着传感器技术的发展,机器人人机交互的方式体现出了多样化。基于视觉或语音的人机交互方式是主流交互方式之一,但其感知范围和操作员的临场感受到了限制;基于穿戴式设备的交互方式可以大大增强操作员的临场感,但价格昂贵,以及对人类肢体的束缚使其目前还难以大范围推广;采用深度摄像机获取人手三维位置数据、采用惯性测量单元获取人手三维姿态数据形成混合传感器的交互方法,可实现人与机器人之间基于手势的自然交互;为了突破传统机器人控制的专用复杂性与封闭性,有研究者创新地将iPhone等智能手机和先进的交互技术(如MULTI-TOUCH、加速计等)与机器人技术有机融合,实现了具有基于HMM和人体动作控制解析能力的高易用性人机接口;诞生于20世纪的虚拟现实眼镜基于眼球追踪技术,具有良好的沉浸性和实时交互性,已成为聊天等智能服务机器人的主流人机交互方式;利用4G技术接入Internet构建具有实时网络视频反馈的远程智能机器人控制平台,可形成控制灵活、无距离限制的高友好度的机器人人机交互模式;未来的智能机器人人机交互是一种包括语音、肢体动作、面部特征等综合的自然人机交互方式。
·多机协同网络化:在工业、军事等应用领域,往往需要发挥多个智能机器人的功能分布及时空分布等特点,多机器人协同操作,共同完成预定的复杂任务,这就需要相应的通信网络对其提供支持。基于有线局域网和无线局域网通信技术及其应用已经普及,多智能机器人通信网络大多在有线局域网或无线局域网的基础上依据多机器人组成结构和应用场景等特点进行扩展和优化实现。例如,多移动机器人采用Ad hoc网络,依据多机器人的主从结构采用C/S通信控制,为了组网的方便性和增强抗毁性采用点对点的对等通信模式等。需要优化之处主要是提高网络通信的实时性和可靠性、网络组织的灵活性和快捷性。
除了上述智能机器人的机械本体和硬件组成之外,软件系统也是智能机器人的重要组成部分。其运行在智能机器人特定的硬件平台之上,不仅实现了机器人运动位置控制、姿态轨迹计划、操作顺序管理、人机友好交互及多机通信与协同等功能,而且支持智能机器人软件与系统的仿真、开发、测试与验证等环节。
智能机器人的软件系统一般分为运行时支持系统和仿真开发平台两大部分。如图1-2所示。
图1-2 智能机器人的软件系统
运行时支持系统驻留在智能机器人的处理机平台之上,通常采用层次化结构。自底向上的第一层是开源多任务操作系统Linux或专用嵌入式实时操作系统,其除了实现基本的处理资源管理、多任务调度之外,还实现了与智能机器人硬件驱动的适配;第二层是核心通用构件层,实现运动控制、坐标变换、人机交互等通用功能;第三层是特定应用构件层,其实现图像处理、路径规划、定位导航等应用支持功能。三个层次分别面对不同的功能需求,对应于不同层次的开发,系统中各个层次内部均是由若干个功能相对应的系统构件组成的,这些功能构件相互协作共同实现该层次所提供的功能。
智能机器人仿真开发平台可以在宿主机上运行,主要支持实现智能机器人运行软件的高效开发。不仅支持智能机器人的模型构建,而且具有驱动描述、编程语言支持等能力;不仅支持功能设计验证,而且具有运行环境仿真、动态可视演示等能力。由此可知,智能机器人仿真开发平台是其软件系统必不可少的一部分,并且具有面向特定领域的适应性和智能化软件应用开发的高效性等特点。
如前所述,可以将智能机器人看作一个特殊用途的专用嵌入式控制系统,犹如智能手机作为移动终端专用嵌入式系统,配置安卓等操作系统后,不仅使用方便,而且有利于高效应用开发,更可通过APP下载无限扩展其能力,智能机器人也可配置相应的操作系统。智能机器人操作系统的主要功能是屏蔽异构的机器人硬件资源,实现实时多任务调度与分布式实时通信、支持多模式人机交互,并支持智能机器人应用软件的高效开发,从而有效管理机器人硬件与软件资源。智能机器人操作系统的实现存在多种途径,主流途径是基于已有的Linux、Windows等操作系统内核,依据智能机器人的特点与需求进行优化和扩展,也有完全设计适应智能机器人特点的全新操作系统。需要说明的是,有的虽称为智能机器人操作系统,但其本质已超越了传统计算机操作系统的职能,以智能机器人中间件和开发环境为主体。
构件化是一种提高机器人软件重用性和降低系统设计难度的主流方法。实现机器人软件系统构件化的前提是机器人系统从功能上被分解成了各种可重用的构件。为此需要建立构件的静态模型和运行时模型,并设计基于模型的构件接口定义语言,不同构件之间的通信可通过相应的中间件来实现,最终通过构件之间的聚集和整合高效地形成完整的机器人软件系统。
首先,机器人系统被分成控制系统和被控系统。控制系统是机器人控制软件或者算法,被控系统是机器人硬件。为了实现机器人系统的构件化设计和软件的重用,可采用基于构件的抽象模型以解除控制系统和被控系统之间的紧耦合。如图1-3a所示,机器人中间件把机器人系统分成软件系统和硬件系统两个部分,机器人中间件的下层是机器人硬件系统,由不同的传感器、执行器和其他硬件设备组成。中间件的上层是机器人控制软件,由不同的机器人软件构件、控制算法和服务组成。机器人中间件隐藏了底层硬件的异构性,同时还提供了独立于机器人硬件系统的构件接口,这些接口可用于上层构件或具体应用。为了提高软件的可重用性,机器人软件系统被分解成一系列的不同类型和不同粒度的可重用软构件。
在图1-3b中,水平方向的机器人系统被分成不同的功能构件。这些不同功能构件的设计开发者能够专注于他们各自的功能实现,机器人系统集成者能够根据标准接口快速地集成不同的功能构件并开发机器人软件系统,而不需要理解功能构件特定的实现细节。
图1-3 构件化机器人软件系统架构
在垂直方向存在4种不同程度细粒度的构件,这些都是基于不同程度的抽象和重用性,具体如下。
·原子构件:原子构件适合于硬件组件有直接联系的唯一构件,其是一种特殊的硬件抽象,并且提供了对高层构件调用的统一接口,如电动机控制原子构件、传感器控制原子构件等。
·复合构件:根据一些功能需求和组合规则,一些原子构件被组合在一起形成复合构件,这些构件提供了更高层次和更大粒度的构件抽象。
·算法构件:算法构件是一种与平台独立的机器人算法实现,或者是一般机器人控制算法,如路径规划、卡尔曼滤波等。
·应用构件:应用构件包括原子构件、复合构件和算法构件各种类型构件的组合,用于实现机器人系统的应用功能。
目前世界上各大工业机器人厂商均开发了各自的机器人软件系统。这些软件系统往往是私有且封闭的,厂商只提供了固定的操作方式和十分有限的编程接口供用户使用。对于机器人研发者来说,如果购买这些厂商的机器人进行进一步研发,会受到很多限制;而自行开发从底层到上层的完整软件系统,又会成本过高并且不现实。
另外,虽然不同的机器人和不同的应用环境对机器人软件系统的要求是不同的,但是有不少功能是每个开发者都要面对的共性问题,比如坐标变换、模块间通信等。如果每个研发者都要自行开发这些共性功能,不仅浪费时间,分散研发者的资源,并且使研发者无法充分投入到更有意义及价值的目标研发中。
针对这些问题的解决需求,开放源代码的机器人操作系统(RobotOperating System,ROS)应运而生。2010年Willow Garage公司发布了开源机器人操作系统ROS,很快在机器人研究领域展开了学习和使用ROS的热潮。其宗旨在于构建一个能够整合不同研究成果,实现算法发布、代码重用的机器人软件平台。ROS中实现了大量的机器人技术中的共性问题,这使得ROS的使用者可以充分复用ROS中已有的高质量代码,而不必自己重复开发。