超冗余机器人控制技术发展现状与展望*
2023-03-23李佳轩田溢汕卢新建赵永杰
李佳轩,田溢汕,余 洁,卢新建,赵永杰
(1.汕头大学工学院,广东汕头 515063;2.广东省智行机器人科技有限公司,广东佛山 528000)
0 引言
随着世界经济和工业科技的不断发展,机器人的应用领域日益广泛,各式各样的机器人在人们的生产生活中发挥着重大的作用。传统机器人是结构简单、运动形式单一的刚性机器人,其承载能力较强,维护比较方便,一直沿用至今,并且在一些特定场合的应用不可替代[1]。但在一些复杂的工作环境下,传统机器人的刚性结构和有限的自由度限制了其运动的灵活性和复杂性,难以顺利完成任务,因此学界将目光转向超冗余机器人,以应对机器人在特殊工作环境下的应用需求。
超冗余机器人是指自由度数远远多于完成作业任务所需最少自由度的机器人[2]。目前研究较为成熟的传统机器人通常仅有6 个自由度,对于工作空间中的每一个位姿仅有一个对应的位置逆解,对狭窄、多障碍空间的适应性较差,而超冗余机器人的自由度可达10 个以上,对于同一个目标位姿可能拥有无穷多个位置逆解,这使它具有远超传统机器人的环境适应性和避障能力,能够在狭小、非结构化的环境中执行复杂的任务。迄今为止,超冗余机器人已在航天航空[3]、医疗[4]、核电[5]等高科技产业中投入使用,在复杂环境中的探测、搜救[6]等工作中更表现出了远超传统机器人的优势。随着相关研究的推进,可以预见超冗余机器人还会有更广阔的应用前景。但超冗余机器人的大量自由度也决定了它是一个高度耦合的多输入多输出非线性系统,不仅无法求得唯一的位置逆解,要建立精确的动力学模型也十分困难,用传统控制方法难以实现精准控制,其控制系统结构也更为复杂,这使得超冗余机器人控制系统的搭建和控制算法的设计尤为重要。
本文对超冗余机器人控制系统的研究现状进行总结。首先,介绍超冗余机器人控制系统的硬件部分和软件部分的结构及功能;随后,列举并简要分析当前用于超冗余机器人控制的常用算法;最后,对超冗余机器人控制系统的未来发展方向进行展望。
1 超冗余机器人控制系统架构
1.1 控制系统硬件
机器人控制系统主要由主控单元、执行机构与检测单元3 部分组成。主控单元是整个系统的核心,主要负责对机器人进行建模计算、运动规划、轨迹插补等,并和用户进行交互,获取用户的输入参数,将计算结果和机器人的状态反馈给用户。执行机构是直接对机器人运动驱动的机构,主要由运动控制单元和伺服电机等驱动器组成。检测单元则是机器人内部或外部安装的各种传感器。
在超冗余机器人的控制中,每次的轨迹插补运算后,还需要进行运动学逆解变换得到驱动关节的位置输入变量,而超冗余机器人的运动学逆解算法复杂,求解时间较长,对系统的运算能力有很高的要求。同时伺服驱动的控制周期通常只有数十微秒,周期内需要完成如PID演算、二次插补等工作,这要求系统具有相应的实时处理能力,加上超冗余机器人的驱动单元数量远多于传统机器人,这些都决定了超冗余机器人的实时控制需要极大的计算量,单一主控机难以完成所有计算任务。因此,超冗余机器人的控制系统通常采用开放式、模块化的设计方法来构建,以多个控制器作为上位机、下位机,各自执行一部分控制功能,控制众多驱动单元运动。超冗余机器人开放式控制系统硬件架构框图如图1所示。
图1 超冗余机器人开放式控制系统硬件架构
根据IEEE 的定义[7],开放式控制系统应当能够运行于多种平台上,并且能够与其他系统实现通信交互,具有风格一致的人机交互界面。开放式控制系统主要具有可移植性、可互换性、可伸缩性、互操作性4 个优点。PC 系统丰富的软硬件资源、友好的人机交互界面和成熟的计算机编程技术,使得基于PC的软硬件平台成为了机器人开放式控制系统的首选[8]。以通用PC 为主控机的开放式控制系统可兼容C、C++、VB 以及C#等多种编程语言,并可选用通用运动控制器,在一套共同的标准平台下简便地进行控制系统的开发、移植和改良。模块化的设计方法将控制任务分配给下位机或运动控制卡,由一个或多个下位机对超冗余机器人的众多驱动单元进行控制,再由上位机进行总体调度,从而弥补单PC在运算能力方面的不足。开放式控制系统的模块化设计允许用户根据自身需求选择合适的功能模块进行系统的集成和扩展,进一步提高了系统的灵活性和易用性。根据下位机的种类不同,超冗余机器人的开放式控制系统可进一步分为PC+PC、PC+分布式控制器、PC+多轴运动控制卡等多种控制模式[9]。PC虽然具有通用性强、开发环境良好、操作界面简单直观等作为上位机的优势,但它不是实时性操作系统,不适合在对实时性要求较高的控制任务中担当下位机的职责,而运动控制卡具有实时性好、伺服控制能力优秀的长处,能够和PC 实现很好的优势互补,因此PC+多轴运动控制卡的控制模式逐渐成为超冗余机器人开放式控制系统的主流选择[10]。
1.2 控制系统软件
控制系统软件是控制系统与用户之间的桥梁,用户通过控制软件界面发送各种指令控制机器人满足一定的功能需求。超冗余机器人的控制软件系统结构复杂,对控制软件的设计方法提出了更高的要求。要建立一个简洁、实用性强的控制软件系统需要遵循模块化和层次化的设计原则。模块化的设计原则即根据控制软件的不同功能需求将软件划分为不同的功能模块,每个模块既相对独立,又可以互相组合以实现更为复杂的功能。遵循这样的设计原则,不仅便于软件系统的开发和升级,而且方便开发人员对软件的故障诊断排查。而层次化的设计原则要求将软件不同的功能模块划分为职能各异的层次,每个职能层中的各个功能模块相互结合,在控制系统中担任不同的任务。对于软件结构复杂的系统,该设计准则方便开发人员在开发过程中对整个软件有一个清晰的认识,便于开发人员之间的分工合作。
根据不同的职能,超冗余机器人软件系统可以自上而下分为4个层次:应用层、功能层、执行层和驱动层,每个层次包含着多个功能模块[11]。各层次的关系和功能模块分布如图2所示。
图2 超冗余机器人控制系统软件架构
超冗余机器人控制软件各层次及模块的具体功能如下。
(1)应用层。包括面向用户的功能及对整个控制系统进行管理和调度的功能。该层主要包含的功能模块有人机交互界面模块、任务管理模块、系统参数管理模块和运动状态监控模块。人机交互界面模块便于用户输入和监控各项参数,以便对机器人进行控制和维护。任务管理模块为用户指定机器人任务提供接口。系统参数管理模块可对机器人的结构参数、运动控制参数等参数进行系统管理。状态监控模块能够帮助用户了解机器人的实时运动状态以及伺服驱动器状态。
(2)功能层。主要实现机器人的运动学计算、运动规划以及三维仿真。该层次主要包含的模块有运动学计算模块、轨迹规划模块、轨迹插补模块、仿真模块。运动学计算模块是针对不同的结构参数生成不同的运动学算法,轨迹规划模块是对任务模块中的特定任务进行轨迹规划,轨迹插补模块是在关节空间进行插补,使机器人能够平稳无冲击地运动。
(3)执行层。执行层是功能层和驱动层的枢纽,将具体的机器人运动任务转化为对每个伺服电机的控制。该层主要包括运动控制函数调用模块与数据传输函数调用模块。这些模块可以调用运动控制卡所提供的函数以实现对底层电机以及外围设备的控制。
(4)驱动层。驱动层主要实现对电机的精准控制,以及外围设备的控制,比如继电器、按钮、指示灯等。该层主要包括多轴伺服驱动模块与通讯、IO驱动模块。
以上层级与模块包括了超冗余机器人控制系统软件所需实现的各项基本功能。根据不同的任务要求及控制系统设计方法,也可以对这些模块进行进一步地重组或细分,以改进控制系统的性能,方便用户使用。
2 超冗余机器人控制方法
超冗余机器人的控制方法是超冗余机器人研究中最重要、也最复杂的问题之一[12]。超冗余机器人输入变量多,动力学非线性强,耦合程度高,因而难以建立精确的动力学模型,进而影响控制精度。此外,超冗余机器人的系统中还存在许多难以精确辨识的未知参数,其部分动力学参数也会在运动过程中不断变化,加上大量自由度带来的庞大计算量负担,这些都为超冗余机器人的实时控制带来了困难[13]。总的来说,传统的控制方法难以满足超冗余机器人实时控制的要求。目前学界已经针对超冗余机器人的控制提出了多种方法,如PID 控制、自适应控制、神经网络控制、滑模控制等[14]。
2.1 PID控制
超冗余机器人研究初期,由于缺乏合适的控制模型和理论,大多数机器人都选用传统的PID 算法进行控制[15]。最早研究超冗余机器人控制方法的Jones 和Walker[16]针对其研发的OctArm 超冗余机械臂,采用基于运动学模型的关节空间PD 控制器实现了实时位姿控制。Ivanescu等探讨了连续型机械臂卷曲抓取运动中的运动稳定性问题,基于Kahman-Yakubovich-Popov 引理和比例微分算法提出了连续型机械臂的稳定性标准,并对抓取物体运动过程中的载荷控制进行了分析[17]。传统PID 控制算法对复杂度极高的超冗余机器人来说效果并不是很理想,但是其原理简单、鲁棒性较强的优势使其适于针对复杂的控制对象进行改进。徐文福等[18]设计了一种结合动力学前馈环节的PD控制算法对绳驱动超冗余机器人进行了控制,并对绳索建立了精细的动力学模型,从而提高了控制精度。覃程锦等[19]研究了一种结合计算力矩PD控制与绳索拉力优化的绳驱动超冗余机器人控制算法,该算法能够在确保绳索拉力在许用范围内的前提下有效减小外力扰动带来的轨迹跟踪误差。
2.2 自适应控制
自适应控制是一种建立在模糊逻辑基础上的控制方法。模糊逻辑适合处理具有较强不确定和不精确性的系统,然而对时变的、非线性不确定的复杂系统采用模糊控制时控制规则的设定将会过于繁复;而自适应控制通过实时观测控制对象的运动状态变化,在线调节模糊控制规则,从而弥补模糊逻辑控制的不足,实现鲁棒控制[20]。Yi等[21]设计了一种模糊自适应PD控制策略,结合机器人本体的旋转运动对冗余机械臂进行控制,该方法利用模糊逻辑,考虑机器人仿人类姿态的运动特性,基于角动量误差主动调整各项控制参数。Benzaoui 等[22]设计了一种针对不确定模型的冗余机器人的模糊自适应控制方案,通过滤波跟踪误差将机械臂自运动并入自适应模糊控制,并验证了使用该方法控制的机械臂在复杂环境中的避障性能。
2.3 神经网络控制
神经网络控制即是利用神经网络对机器人的位置和误差进行预测和补偿,从而对机器人进行控制的技术。神经网络控制无需建立精确的动力学模型,而是通过非线性学习逼近控制对象的动力学规律,从而避开复杂的计算过程而较为准确地完成辨识任务,适合对复杂非线性、难以获得精确动力学模型的机器人进行控制和参数辨识[23]。Braganza 等[24]研究了连续型冗余机器人的神经网络控制方法,利用神经网络的前馈分量对机器人运动过程中的误差进行预补偿以应对机器人的动态不确定性,有效地改善了机器人的动态跟随误差。Jasour 等[25]设计了一种适用于非线性模型机器人的神经网络预测控制方法,该方法可以跟踪给定的运动路径或目标位姿,在运动过程中兼顾回避障碍物及奇异位形。对于模型复杂非线性的超冗余机器人来说,神经网络控制也是一个较好的选择,然而由于超冗余机器人自由度数量过多,神经网络的计算量较大,计算时间较长,难以用于实时控制。
2.4 滑模变结构控制
滑模变结构控制是一种使机器人的运动贴近预设的滑模面,从而动态补偿机器人运动的非线性控制方法,具有响应速度快、无需在线辨识、受扰动及参数变化影响小等优势,然而其控制对象在到达滑模面后容易在滑模面两侧反复穿越,引发抖振现象[26]。Popescu 等[27]对一类超冗余机器人的滑模控制展开了研究,将超冗余机器人视为一个无限维系统,并使用空间加权误差控制将其转换成有限维系统的控制问题,从而提出了基于加权误差滑模控制的算法,并对此方法控制的机器人进行了稳定性分析。Kapadia[28]和Rucker[29]设计了一种基于非线性全动态模型的连续型机器人滑模控制策略。该方法适用于同时具有伸缩及弯曲运动的连续型机器人。H K Lam等[30]将滑模变结构控制与模糊逻辑结合,设计了一种模糊滑模控制方法,将其用于具有弯曲和伸缩运动的柔性连续型超冗余机械臂的控制。该方法在滑模控制的基础上引入反馈增益,在维持滑模控制鲁棒性强的优势的同时抑制了系统的抖振问题,得到了良好的跟踪控制效果。
2.5 其他控制方法
除上述控制方法之外,还有很多被用于超冗余机器人控制的创新方法。Chang 等[31]提出了一种模块化控制方法,该方法将超冗余机器人分割成若干个较小的独立模块,并使用基于雅可比矩阵的控制算法对每个模块分别进行控制,该方法在充分发挥机器人各模块的冗余性优势的同时能够有效降低计算负担。Pomares等[32]提出了一种冗余机器人的动态视觉控制方法,该方法应用混沌控制器对机器人运动进行实时补偿,在不同速度状态下均具有较好的控制性能。Lafmejani 等[33]设计了一种用于仿章鱼触手型超冗余机器人的轨迹跟随控制的分散式控制器,该控制器能够将高自由度机器人的非线性控制问题转化为基于线性矩阵不等式的优化控制问题,从而显著降低了控制算法的复杂程度。
总的来说,现有的各种绳驱动超冗余机器人控制方法从不同的方面得到了更好的控制效果,然而由于绳驱动超冗余机器人固有的复杂性,这些计算方法通常有各自的局限性,有待进一步的研究予以发展和检验。
3 发展趋势
超冗余机器人控制系统研究面临的主要问题在于超冗余机器人的结构和数学模型的复杂性和强耦合性,以及由此带来的控制系统和控制算法的结构复杂、计算量大的问题。由此预见,未来超冗余机器人控制系统的主要研究方向将会侧重于以下方面:
(1)软硬件系统方面。超冗余机器人的优势不仅在于其结构带来的灵活性,也在于其在模块化可重构设计方面的潜力,可以通过拆装重组来实现自由度数目的改变或功能模块的更换,而为了发挥它的这一优势就需要对它的开放式控制系统展开进一步的研究,开发更具通用性、灵活性的软硬件框架,使超冗余机器人能够更方便的进行模块化设计,从而应对更加复杂多变的工作要求。
(2)数学模型方面。超冗余机器人的运动学逆解存在无穷多解,动力学解也存在高度的耦合性和不精确性,这些因素导致超冗余机器人数学模型计算效率低下、求解精度有限,从根本上制约了超冗余机器人的实时精确控制技术的发展。因此,通过引入智能高效算法对超冗余机器人的运动学逆解进行优化、用合适的方法对动力学模型的不确定性部分进行估算和补偿,可以显著降低超冗余机器人控制过程中的计算量,提高超冗余机器人的控制性能。
(3)控制算法方面。目前关于超冗余机器人的控制算法已经有了很多创造性的研究,能够实现较好的控制效果,但这些算法大多存在诸如计算过程繁琐、通用性不强、应对外部扰动效果不佳等不足。为了进一步提升超冗余机器人的控制性能,有必要继续研究超冗余机器人的实时控制算法和误差补偿技术,引入智能优化算法以提升控制算法的计算效率,并针对开放式超冗余机器人控制系统设计通用性更强的控制算法,在各种复杂的工作环境下对控制效果进行检验,以确定更适合超冗余机器人的控制算法。
4 结束语
超冗余机器人作为一种多自由度、高复杂度的机器人,在具有更好的灵活性的同时,其控制系统相关技术问题也比传统机器人更加困难。本文介绍了超冗余机器人控制系统的硬件部分和软件部分,划分并论述了开放式控制系统的硬件及软件各层次的功能,指出超冗余机器人控制系统应向开放式、模块化的方向发展。随后,列举了当前用于超冗余机器人控制的几种常用方法,并分析了它们各自的优势和不足。总的来说,目前超冗余机器人控制技术方面的研究已经有了相当多的成果,但在数学模型的建立方法和高效控制算法的研究等方面仍有不足,有待进一步的研究发展。随着未来超冗余机器人的应用场合越来越多,超冗余机器人控制技术相关的研究也必将更受瞩目。