论文笔记(五十九)A survey of robot manipulation in contact

news2025/2/7 7:23:12

A survey of robot manipulation in contact

  • 文章概括
  • 摘要
  • 1. 引言
      • 解释柔顺性控制的概念:
      • 应用实例:
  • 2. 需要接触操控的任务
    • 2.1 环境塑造
    • 2.2 工件对齐
    • 2.3 关节运动
    • 2.4 双臂接触操控
  • 3. 接触操控中的控制
    • 3.1 力控制
    • 3.2 阻抗控制
    • 3.3 顺应控制
  • 4. 接触操控中的表征
    • 4.1 连续表征
    • 4.2 离散表征
  • 5. 接触操控的学习与规划
    • 5.1. 接触操控的规划
    • 5.2. 接触操控中的强化学习
    • 5.3. 接触操控中的示范学习
  • 6. 结论与未来工作
  • 利益声明

文章概括

引用:

@article{suomalainen2022survey,
  title={A survey of robot manipulation in contact},
  author={Suomalainen, Markku and Karayiannidis, Yiannis and Kyrki, Ville},
  journal={Robotics and Autonomous Systems},
  volume={156},
  pages={104224},
  year={2022},
  publisher={Elsevier}
}
Suomalainen, M., Karayiannidis, Y. and Kyrki, V., 2022. A survey of robot manipulation in contact. Robotics and Autonomous Systems, 156, p.104224.

原文:https://www.sciencedirect.com/science/article/pii/S0921889022001312
代码、数据和视频:https


系列文章:
请在 《 《 文章 》 》 专栏中查找


摘要

在本综述中,我们介绍了当前机器人在执行需要与环境接触变化的操控任务方面的研究现状。这些任务要求机器人通过隐式或显式方式控制与环境的接触力以完成任务。机器人能够执行越来越多曾由人类完成的操控任务,并且在以下主题上的研究文献数量不断增加:(1) 执行始终需要接触的任务;(2) 在信息完美的情况下可以无需接触完成的任务中,通过利用环境来减轻不确定性。

最近的趋势显示,机器人开始执行一些以往由人类完成的任务,例如按摩;而在传统任务(如插销入孔)中,机器人表现出更高效的任务推广能力、更好的容错能力以及更快的任务规划或学习能力。因此,在本综述中,我们探讨了机器人执行此类任务的当前阶段,内容包括:首先回顾机器人能够执行的各种接触任务;接着观察这些任务是如何被控制和表示的;最后介绍完成这些任务所需技能的学习与规划。

关键词
机器人操控、接触中的操控、柔顺性、接触任务、阻抗控制


1. 引言

在很长一段时间内,机器人操控中的环境接触被认为是一个问题,且难以处理。然而,这一范式目前正在迅速改变。过去因需要人类对力的精细调节而被认为对机器人过于困难的任务,如今已逐渐被机器人执行。此外,在许多任务中,接触不仅被管理,而且被利用,使机器人能够借助接触来定位自身及其工具,从而在面对不确定性时完成任务。用于管理和利用接触的方法也在不断发展,使得计算负担不再不可承受。

近年来,多个主要机器人会议的研讨会围绕管理接触这一主题组织展开,并提出了诸如“与环境协作的操控”这样的术语。这种演变是预期中的,因为人类在执行各种有限间隙的操控任务时,充分利用了环境[1]。

在本综述中,我们概述了机器人如何执行丰富接触的任务,这些任务被称为“接触中的操控”;接触可以发生在机器人的手与环境之间,也可以是机器人持有的工具与环境之间。此类任务需要对交互力进行显式或隐式控制;机器人本身或其持有的工具需要与环境保持相当长时间的接触。这些任务范围广泛,从传统的装配任务(例如拧螺丝和插销入孔),到材料去除任务(如挖掘和刨木),甚至包括目前主要由人类完成的任务(例如挖瓜肉和按摩)。换句话说,这些任务要求机器人在与环境持续接触的同时管理与环境的多变接触。

特别是在中小型企业(SMEs)中,对协作机器人(cobots)的使用兴趣日益增长,即能够在此类任务中表现出柔顺行为的机器人[2]。更全面的任务清单将在第2节中给出。动态任务(例如投掷或击打)由于接触时间较短而更多依赖于运动学,因此不在本综述的讨论范围内;关于执行此类任务的机器人,请参阅最新综述[3]。

机器人在与环境持续接触的情况下执行任务的首要要求是一个适合的低级控制器。首选项是选择对力的显式控制还是隐式控制。对于显式控制,当设定了目标力水平时,经典的力控制器或常用的混合力/位置控制器[4]是常见选择;在经典版本中,一个具有高频更新的 PI 控制器尝试将机器人施加的力保持在期望水平。

对接触力的隐式控制通常被称为柔顺性(compliance)。

在机器人或自动化系统的控制领域中,对接触力进行隐式控制被称为柔顺性控制。这种控制方式涉及到系统在与环境接触时的物理特性的调整,以便系统能以一种自适应的方式响应外部力量的变化,从而实现更平滑和安全的交互。

解释柔顺性控制的概念:

柔顺性(Compliance)指的是机器人或设备在与外部世界接触时表现出的一种能动性质。在技术层面上,柔顺性通常与系统的刚度相对,指的是系统对外部力的响应能力。一个高柔顺性的系统可以在受到外部力作用时产生较大的位移,这表明系统具有较低的刚度;相反,刚度高的系统柔顺性较低,对外力的位移响应较小。

在机器人控制系统中,柔顺性控制通常涉及到通过调整机器人的机械结构或通过控制算法来实现对接触力的管理。例如,通过使用弹簧和阻尼器的组合,或者调整控制器参数,使机器人在与人或其他敏感环境交互时能够更安全、更有效地适应不同的接触条件和外部力。

应用实例:

  1. 机器人手臂:在装配或执行精密任务时,机器人手臂可能需要调整其对接触力的反应,以防止对工作对象造成损害。通过实施柔顺性控制,机器人可以自适应地调整其力度,确保接触过程中的安全和精确。

  2. 康复机器人:在康复机器人领域,柔顺性控制是非常关键的,因为它直接关系到患者的舒适度和治疗效果。机器人需要根据患者身体的反馈调整其力量和运动,以提供合适的治疗力度和支持。

  3. 人机交互:在需要与人直接交互的应用中,例如服务机器人或教育机器人,柔顺性控制能够使机器人在意外接触时更加柔软、安全,减少对人的潜在伤害。

柔顺性控制是实现高效、安全人机交互的重要技术,它涉及到复杂的动力学分析和控制系统设计,目的是使机器人或设备能够更智能地与其操作环境和人类用户协同工作。

通过软件实现柔顺性时,阻抗控制(impedance control)[5] 是一种流行选择。阻抗控制允许偏离期望轨迹,从而在不切换控制器的情况下同时实现自由空间和接触中的运动。柔顺性也可以通过机械装置实现,例如可变刚度驱动器(Variable Stiffness Actuator,VSA)或相对新兴的软体机器人领域[6]。在本综述中,我们不会深入探讨机械柔顺性,但会介绍一些使用机械柔顺性的研究成果。更先进版本的阻抗控制器已经被设计出来,我们将在第3节中介绍几种新颖的控制器;关于控制器的综述在六年前已发表[7]。

有时整个技能在控制层面上得以表示,但通常会使用更高层次的表示,然后将命令传递给控制器。形成这些表示的方法多种多样,且可能在控制层次之外进一步层级化。我们将在第4节中回顾与接触任务相关的表示方法。接着在第5节中,我们将技能传递给机器人的方法粗略划分为三类:规划、从示范中学习(Learning from Demonstration,LfD)和强化学习(Reinforcement Learning,RL)。

  • 规划(或运动规划)是根据已知信息规划机器人运动以避开障碍物的经典方法。尽管对接触任务进行精确规划非常困难,但有一些现代方法可以实现这一点,这些方法将在本综述中介绍。
  • 在 LfD 方法中,基本假设是人类用户能够高效地执行技能,将技能传递给机器人后,可以实现成功且高效的执行。
  • 最后,RL 是目前非常流行的机器学习方法,其中算法主动搜索良好的解决方案。本文结构概览如图1所示。

在这里插入图片描述图1. 论文结构 我们首先在第2节介绍机器人执行的接触操控任务,然后在第3节讨论用于接触操控的控制器。接着,我们在第4节展示不同的策略 Π \Pi Π 表示方法,最后在第5节介绍利用这些表示进行任务规划或学习的方法。


还有一些其他相关综述可能会引起读者兴趣。对于除了接触技能之外的其他技能的一般 LfD 综述,我们推荐[8]、[9] 和[10];同样,关于机器人强化学习的总体综述(例如[11])以及机器人学习各类方法的广泛综述[12]也值得参考。此外,关于 LfD 和 RL 在装配任务中的应用已有更详细的综述[13]、[14] 和[15]。最后,在考虑闭环中的视觉时,有一篇关于视觉与触觉相互作用的综述[16];因此,本综述也不会涉及基于视觉的操控,而是专注于以力为唯一反馈(如果有反馈)的研究工作。尽管许多框架可以扩展或用于接触中的操控任务,但本综述重点介绍在接触任务中明确展示性能的研究成果。


2. 需要接触操控的任务

我们将接触中的操控定义为需要对交互力进行显式或隐式控制的任务。实际上,很少有任务严格要求显式控制力;一个例子是以特定扭矩值拧紧螺丝。然而,即使许多任务(例如打磨)可以通过隐式控制力完成,使用显式力值仍可能提高学习或规划任务的成功率。

最后,有些任务在信息完全准确的情况下可以无需控制力完成,例如经典的插销入孔以及类似的工件对齐任务,以及诸如开门等关节运动任务。然而,此类任务中的任何不确定性都会增加控制接触力的需求,以防止过度碰撞。此外,通过利用柔顺性,机器人可以执行间隙小于自身精度的插销入孔任务[17]。

在本节中,将按照以下三个类别详细介绍需要控制力交互的操控技能:环境塑造、工件对齐和关节运动。表1列出了所包含文献中研究重点为任务本身的任务清单,图2展示了清单中的若干任务。本节使用的与控制相关的术语的更多细节,请参见第3节。


在这里插入图片描述图 2. 机器人执行的不同接触任务。


许多需要接触操控的任务还涉及工具。这些工具可以刚性连接到机器人手臂上,也可以由机器人抓握使用;在本综述中,我们不区分这两种情况,只是注意到抓握工具总会引入关于工具尖端位置的不确定性,从而增加接触时对柔顺性的需求。当然,如果能够充分测量工具的相关信息,也有方法可以减轻这种不确定性(例如,[99])。


在这里插入图片描述


我们还注意到,柔顺性在机器人领域中有其他用途,但这些用途并未在本综述中涉及。这些方法的一个关键点通常是利用轨迹的方差作为信号来判断是否需要柔顺性。假设在多次示范中的某一阶段,轨迹的低方差表示达到该特定位置的重要性,因此不应允许柔顺性;反之,当方差较高时,表示具体位置并不重要,此时可以增加柔顺性(参见例如[100], [101], [102], [103], [104])。然而,这一思想通常不适用于接触任务,因为在接触过程中,位置的方差较低,但仍然需要柔顺性。

这些方法在学习协作任务[100], [101]、物理人机交互(Human–Robot Interaction, HRI)[105], [106], [107]以及诸如递送和倒饮料等自由空间任务[102], [104]中表现良好。

2.1 环境塑造

环境塑造通常指以均匀或固定位置的方式移除一层薄材料。这类任务可根据所需精度进行区分;例如,表面擦拭(去除灰尘)本质上只是一个表面跟随任务,而雕刻和刨木则需要极高的精度,仅靠隐式控制交互力可能无法完成这类任务。另一种区分这些技能的方法是判断其是否具有周期性:擦拭可以被视为周期性任务,这一特性被一些方法所利用,而雕刻则沿着一个非常详细且固定的路径进行。

该领域中最简单的任务可能是擦拭[18],已有多篇论文通过不同的方法探讨这一任务[19], [20], [21], [22], [23]。在此任务中,原始材料并不受影响,因为擦拭主要是清洁材料的表面。另一个实际指代相同任务的术语是“抛光”[24], [25], [26], [27]。这些任务可以通过隐式或显式的力控制完成;隐式控制通常已足够,因为任务中的重要部分是保持与表面的接触。有趣的是,在上述文献中,只有[24], [26]使用了隐式控制,而其他研究显式控制了接触力(可能通过顺应性控制以提供误差容忍)。一个可能的原因是,使用隐式控制时,如果没有力反馈回路,可能会失去接触而不被察觉;而有了力反馈后,显式控制的使用变得自然。最后,与这些任务松散相关的是按摩[96],但这需要更准确的力控制和表面适应性。

当涉及移除环境材料时,任务变得更加复杂。通过使用工具去除材料的外层以使表面更光滑有多种变体。这类任务常见于工业和木工领域,包括刮擦[28]、刨木[29], [30], [31]、去毛刺[32]和打磨[33]。正如预期的那样,这些任务都采用了显式力控制,并且通常被认为是周期性的;而非周期性的类似任务是雕刻[98]。

此外,相关的有趣任务包括刨丝[108]、研磨[34], [35], [37], [38]和绘图[31], [109],这些任务中被移除的是工具本身的材料而非环境材料。正如预期,研磨和刨丝更具周期性,并需要更精确的力管理;而在绘图中,保持接触更为重要,但不具有周期性。在挖取任务中,通常会移除更大量的柔软材料[39],但也可以挖取用于装配任务的部件[40]。此外,机器人使用钻头需要对环境力进行精细控制[110], [111]。最后,一个本质上不同的材料移除任务是魔术贴的剥离[97],该任务有潜力催生更多类似的机器人研究。

上述例子通常是人类规模的任务,而类似的运动在更大型机器中也很常见,特别是在土方工程中,主要由挖掘机或轮式装载机完成[89]。主要区别在于大多数重型机器使用液压系统,由于液压阀的闭环运动学和交互较为复杂,使得力的控制更加具有挑战性;此外,被挖掘的材料通常在阻力上具有高度变化(例如,沙子中的岩石)。

基于上述原因,挖掘任务通常甚至无需力反馈完成;例如,已使用真实机械实现了自主挖掘[90], [91], [92], [93], [94]。不过,也有研究致力于力的估计[112]以及在液压操控器中使用阻抗控制器[95], [113]。

2.2 工件对齐

工件对齐主要指工业装配中常见的任务,通常是经典的插销入孔的变体。然而,这类任务在家庭中也很常见,例如插插头[41]或组装家具[42]。插销入孔的变体几乎无限多,从间隙大小的不同开始(工业装配通常需要非常小的间隙),到多插销入孔任务,例如一个插头有两个或三个插销需要同时滑入(例如[43])。另一种形式是双臂插销入孔;但在这种情况下,无论是人类还是机器人,通常一只手臂完成大部分运动[44]。从20世纪80年代起,人们开始研究插销入孔装配的力学、作用力和误差,以找到最佳执行方式[114],目前该领域仍在积极研究中[115]。

早在20世纪80年代,人们就发现柔顺性在执行插销入孔类型的装配运动中是一种有用的特性[116],而对插销入孔柔顺性的类似研究至今仍在进行[65]。在90年代,关于柔顺装配的研究集中于夹具,即装配过程中用于固定工件的装置。Schimmels 和 Peshkin[117] 展示了如何仅通过接触力将工件插入夹具,这一主题后来在至少[64]中再次被探讨。Yu 等[118], [119]随后将接触力引导形式化为平面传感器引导的柔顺运动规划问题,即前像规划问题[120]。随着接触状态估计精度的不断提高[121](这一领域仍在取得巨大进展[122]),这些方法得到了进一步发展。在最近的研究中,显式和隐式的力控制都被使用;尽管显式力控制可能并非严格必要,但通常是有益的,尤其是在任务的某些变体中。

尽管历史悠久,但在人类在某些指标上仍然优于机器人在插销入孔任务中的表现,例如泛化能力、处理意外情况和不确定性以及应对非常小的间隙[45]。然而,也有研究试图克服这些问题,例如利用元强化学习实现泛化[46],以及处理小于机器人精度的间隙[17]。

此外,还有更困难的变体,例如多插销入孔[43]、联轴器对齐与互锁[48], [49]、组件构建[123]、螺纹部件的孔中插销[124],或与关节运动结合的插销入孔任务,包括折叠[76]或卡扣[77], [78]等需要更复杂的运动或超过某一力阈值才能完成的任务。大多数研究假设工件是刚性的,但也有针对更具挑战性的弹性工件领域的研究[74]。由于插销入孔问题在工业和家庭中是如此标准化的问题,随着方法和硬件的发展,相关的积极研究仍在继续。例如,前像规划[120]曾被认为在规划接触中的柔顺运动时不可行[125],但如今已经可以规划出接近最优的计划[126];同样,更好的仿真工具正在开发中,这些工具可以极大地简化迁移学习的过程[127]。

最后,随着针对插销入孔问题的越来越多的方法被提出,新的基准也被提议,以便在插销入孔方法之间进行比较实验。一个经典的机械装配系统,即所谓的 Cranfield 基准,早在1985年就被提出[128],其中包括不同种类的插销入孔变体以完成任务。然而,这个基准主要涉及机械结构,最近有两个更完整的基准被提议用于比较插销入孔算法:Van Wyk 等[60]提出了另一种插销入孔机械系统,并结合成功概率和方差等指标来衡量算法的成功性;Kimble 等[129]为小零件装配提出了类似的评估指标。

2.3 关节运动

在关节运动中,物体只能沿预定义路径移动,这种路径可能无法通过目视检查轻易发现;通常,机器人需要与关节物体交互以感知其潜在的运动学结构。日常生活中适合单臂操控的大多数关节物体可以建模为一个自由度的机构(如门、抽屉、把手),尽管带把手的门可以看作是一个组合的两个自由度机构。此外,许多开启任务,例如打开罐子[79]和阀门旋转[80], [81],也属于关节运动。

尽管不严格需要直接的力控制方案,但通常会使用一定程度的力控制。现代基于力的开门方法中,大部分沿袭了 Niemeyer 和 Slotine 的开创性研究[82],其基础包括:(i) 在允许的运动方向上实现阻尼期望行为,以及 (ii) 估计运动方向。期望行为的实现通过间接柔顺控制实现[83]。在[84]中,使用了比简单阻尼项更丰富的期望阻抗,并在顺应控制框架中实现。另一种方法是基于隐式实现的混合力/运动控制,允许使用速度控制的机器人[85], [86], [87]。传统上仅考虑线性运动,而在过去十年中,方向控制也得到了研究,无论是在自适应控制[87]还是学习控制[88]的背景下。

在开门或抽屉时运动方向的估计是受限运动估计的一个具体案例[130], [131]。基于速度(基于扭矩)的估计被用于减少因测量噪声引起的抖动,并处理慢速末端执行器运动(如空间滤波[82]、移动平均滤波[84])中的归一化问题,同时采用了简单的丢弃启发式方法[83]。

从控制的角度来看,解耦的估计与控制被视为间接自适应控制,与之相对的是直接自适应控制方法[87],后者更为稳健,特别是在估计动态受滞后影响的情况下。有关2015年之前门打开文献的更丰富总结,读者可参考[87]。对于简单,单自由度机构的运动方向估计,可以通过本体感知和力测量实现。然而,多体关节物体的跟踪需要更丰富的感知输入,包括视觉和概率方法,以应对模型中的噪声和不确定性,例如当接触丢失时[132]。

2.4 双臂接触操控

关于双臂操控的综述可参考[133],其中主要聚焦于两臂可以相互反馈的集中式设置。本文不会专注于双臂系统的具体细节,但文中提出的一些方法也适用于双臂操作。因此,我们将简要讨论使用双臂而非单臂执行任务,并在本综述的其余部分中将双臂任务与单臂任务一起处理。

在工业装配任务中,[134]对丰田汽车制造中的工业装配任务进行了深入分析,但未报告需要两臂同时运动的情况。因此,在许多任务中,第二只手臂的作用类似于夹具。然而,在经典的关节旋转任务中,例如打开罐子、旋转胡椒研磨器或手动拧紧螺母和螺栓[79], [135], [136],如果两臂协调运动,可以减少所需抓握更换的次数,从而更快地完成任务。

此外,在其他任务中,例如一个手臂固定、另一个手臂挖瓜肉[39],或者在另一个机器人握住的板上绘图[109],以及插销入孔任务中“孔”也被固定住的情况[44], [47],如果固定物体的手臂能够显式地表现出柔顺性,即使不进行主动运动,也能带来优势;这也是人类执行此类任务的方式[44]。

双臂操控还被用于操控具有共轴棱柱和旋转关节的两自由度关节物体,在此过程中利用了两臂的力/力矩感知和本体感知来定位关节并跟踪其状态[137]。这种方法可以用于建模和执行双臂折叠装配任务。


3. 接触操控中的控制

机器人执行复杂任务通常采用分层策略,其中控制是最低层级;本质上,它将运动或力指令以高频率转换为实际的电机电流。在本综述中,我们将更多关注高层策略,但仍会介绍与高层策略结合使用的不同控制方法;关于专注于柔顺控制方法的综述,可参见[7]等。

大多数力控制方法可以根据力控制目标分为以下几类:(i) 直接控制[4]和(ii) 间接控制[138];根据输入控制信号的性质,可以分为(i) 显式控制和(ii) 隐式控制。具体而言,我们将介绍直接控制力(直接力控制)以及控制力与位移之间动态关系的方法(阻抗控制和顺应控制),以及它们在接触技能中的应用。

3.1 力控制

一种简单的方法是在接触操控中管理机器人与环境的交互而不损坏机器人或环境,就是直接力控制[139], [140]。本质上,这是一种反馈控制器,旨在维持期望的接触力。在更通用的用例中,力控制通常与位置控制结合,以将接触力驱动到期望的设定点或轨迹(分别为调节/跟踪问题)。在控制动作中适应力与运动控制空间的方法至少有两种(详情见表2)。混合力/运动控制器基于运动约束对控制子空间进行显式分解,而并行力/运动控制则不使用约束来定义不同的控制子空间;相反,它通过基于积分动作的力控制回路主导柔顺性基础上的位置控制回路。

另一种对不同力控制应用的区分取决于机器人是否是力矩控制的[141]。由于力测量通常噪声较大,直接对其求导不会产生有意义的结果,因此通常在力控制回路中使用比例积分(PI)控制器,并且更新频率必须足够高以避免不稳定性[142]。

表2总结了几种用于控制机器人操控器与接触表面交互(为了表述清晰和简单起见,我们考虑一个不涉及方向和扭矩控制的接触问题。)的控制方案。前三行展示了针对力矩控制机器人的三种不同力/位置控制器,接下来的三行展示了同样适用于速度控制机器人的控制器。

在进一步讨论之前,重要的是要注意环境的柔顺性在目标位置和力是否能够达到方面起着作用。只有当设定的位置点根据接触柔顺性和平面位置定义时,该位置点才可能被达到;例如,施加一定压力可能导致环境发生变形,从而使设定点位置不再有效。因此,需要不同的方法来处理环境与机器人的相互作用。


表2
显式(力矩分辨 u u u)和隐式(速度分辨 v v v)力/位置控制器的集合:混合控制器(第1行和第4行)、并行控制器(第2行和第5行)以及刚度控制器(第3行和第6行)。表中第一列用蓝色突出显示了通用控制公理,第二列用绿色表示力回路,第三列用红色表示位置回路。

所展示的控制器适用于一个非冗余机器人,其雅可比矩阵为 J ( q ) ∈ R 3 × 3 J(q) \in \mathfrak{R}^{3 \times 3} J(q)R3×3(为了避免符号冗杂,控制器表达式中省略了参数 q q q),并与重力向量 g ( q ) ∈ R 3 g(q) \in \mathfrak{R}^3 g(q)R3 接触表面。机器人末端执行器相对于环境的方向由单位三维表面法向量 n n n 描述,向量 f , p ∈ R 3 f, p \in \mathfrak{R}^3 f,pR3 分别表示施加的线性力和末端执行器的位置。

期望任务通过目标位置设定点 p d p_d pd 和期望力 f d f_d fd(直接力控制)或正定刚度矩阵 K P K_P KP(间接力控制)进行编码。 K D K_D KD 是一个正定矩阵,可能依赖于配置 q q q,作为关节速度 q ˙ \dot{q} q˙ 的增益。当 K D K_D KD 为常数时,阻尼作用在关节空间中实现;当 K D ( q ) : = J T ( q ) K D J ( q ) K_D(q) := J^T(q)K_DJ(q) KD(q):=JT(q)KDJ(q) 时,阻尼作用在笛卡尔空间中实现。常数 k f , k I , k P k_f, k_I, k_P kf,kI,kP 一般为严格正的增益,但对于显式控制器, k f k_f kf 也可以设置为零。

投影矩阵 N = n n T N = nn^T N=nnT Q = I 3 − n n T Q = I_3 - nn^T Q=I3nnT 分别将投影作用于表面法线方向和切线方向。
在这里插入图片描述


为了管理甚至是变形的环境,混合(表2第1行和第4行)和并行(第2行和第5行)力/位置控制结构通过实现平衡 Q ( p − p d ) = 0 Q(p - p_d) = 0 Q(ppd)=0 来最小化位置误差,而无需了解接触的柔顺性和平面的位置。然而,这两种方法都假设已知法向量 n n n,以便定义投影矩阵 N N N Q Q Q(混合力/位置控制)或定义几何上一致的期望力 Q f d = 0 Q f_d = 0 Qfd=0(并行力/位置控制)。关于表面斜率不确定性的研究可以参见[143, 144](混合)和[145](并行)中的调节问题,以及[146, 147](柔顺接触)和[148](刚性接触)中的力/位置跟踪问题。

表2第3行和第6行展示了一个标准的刚度控制器(刚度控制器也可视为第 3.2 节中介绍的阻抗控制器的一种特例,剔除了 (1) 中的惯性和阻尼。),可以用于接触和非接触场景;而并行和混合力控制器由于期望非零接触力值,不适用于自由空间运动,刚度控制器也可以在自由空间中执行轨迹。当刚度值较高时,控制器的行为类似于位置控制器;这减少了由于低刚度值引起的位置误差,但与环境的接触可能产生较高且不希望的接触力。

还需记住,系统(机器人和环境)的整体行为取决于机器人与环境刚度之间的比率;因此,严格的稳定性证明还需要对环境的假设或了解。矩阵 K P K_P KP 编码的不同方向的刚度值需要根据任务、环境和所有约束仔细选择,特别需要注意环境不能被视为刚性的情况。

刚度控制方案不一定需要力测量,但如果尝试隐式实现,则需要力测量;有关第6行中的(反向)阻尼速度控制方案,可参见表2。

对于混合力控制和并行力控制所需的力数据测量,有多种方法。在笛卡尔控制中,一种直接的方法是将力-力矩传感器(F/T传感器)安装在机器人操控器的腕部,这种传感器可以后期添加到大多数机器人上。对于电驱动机器人,其他方法包括使用电机电流、输出扭矩[25,149]或关节处的扭矩传感器,其中显式力感测相比关节电机的隐式方法提供了更高的精度。

对于液压驱动的操控器,可能高达数百千克的负载所产生的力很容易损坏大多数现有的F/T传感器。在这种情况下,与电机电流估计类似的方法是利用液压流体腔的压力来估计笛卡尔力矩[150]。

3.2 阻抗控制

阻抗控制是一种隐式力控制;其基本思想是让机器人沿着空间中的轨迹运动,但允许根据设定的增益比例发生偏移,本质上是在机器人的末端执行器上放置一个虚拟弹簧。考虑一个简单的接触任务,机器人需要跟随期望的位置轨迹 p d ( t ) , p ˙ d ( t ) , p ¨ d ( t ) p_d(t), \dot{p}_d(t), \ddot{p}_d(t) pd(t),p˙d(t),p¨d(t),同时可能与环境接触并施加一个力 f f f。在阻抗控制中,目标不是直接控制力,而是通过一个虚拟弹簧-阻尼-质量系统来实现期望的阻抗:

M ( p ¨ − p ¨ d ) + K D ( p ˙ − p ˙ d ) + K P ( p − p d ) = − f (1) M(\ddot{p} - \ddot{p}_d) + K_D(\dot{p} - \dot{p}_d) + K_P(p - p_d) = -f \tag{1} M(p¨p¨d)+KD(p˙p˙d)+KP(ppd)=f(1)

其中, M , K D , K P M, K_D, K_P M,KD,KP 分别是期望的表观惯性、阻尼和刚度参数。图3(a)显示了基本的控制结构;基于方程(1),通过使用 f f f 和状态 s s s(由 p p p p ˙ \dot{p} p˙ 组成)的反馈,可以为逆动力学控制器生成一个加速度指令[151]。

如果没有力测量,期望的表观惯性将无法实现。在调节问题(即常量 p d p_d pd)中,使用带阻尼和重力补偿的比例控制器(不包含力测量)等效于刚度控制器(参见表2第3行),可以赋予机器人末端执行器一种可调的“刚性”行为。此外,与环境刚度相关的类似考量在阻抗控制器中与刚度控制器中一样重要。


在这里插入图片描述图3. 阻抗控制器和顺应控制器的框图: s , f , u s, f, u s,f,u 分别表示状态、测量的力和控制输入。两个控制器都以期望状态 s d s_d sd 作为输入。需要注意的是,在顺应控制中,参考状态 s r s_r sr(可能是位置、速度或两者)由滤波器生成,与生成控制输入的内部运动控制器之间有明确的划分。在阻抗控制的逆动力学实现中,也采用了类似的内外控制回路划分,这一点可以通过阻抗控制模块(a)中的两个子模块隐含体现。


尽管 Hogan [5,138] 的原始研究认为阻抗保持不变,但目前已有许多研究考虑了在执行过程中改变阻抗以及这种变化如何影响系统的稳定性[152–154]。与传统弹簧类似,虚拟弹簧也可以存储能量,因此传统的阻抗控制器并非被动的[152],这可能导致不稳定性,尤其是在与学习方法结合或处理非刚性环境时[68]。

对此问题有多种可能的解决方案,例如将能量耗散到非相关方向[155]、将能量存储到一个“能量罐”中[156],或者在阻抗特性引发不稳定时对其进行滤波[157]。此外,需要注意的是,阻抗控制器还可以作为前馈控制器,从而避免对力传感器或其他反馈回路的需求,以简化机器人的要求[48,158]。

对于复杂任务,例如切割食物[159],线性阻抗模型(方程(1))无法捕捉所需的复杂交互行为,因此提出了一种基于学习的模型预测控制(MPC)实现期望的有限时间范围成本。最后,尽管大多数研究是在电动操控器的背景下开发的,但稳定的阻抗控制也已经为液压操控器设计出来[113]。

3.3 顺应控制

顺应控制的基本思想是允许指令力的偏差按设定的增益比例发生变化,类似于阻抗控制允许轨迹偏移。顺应控制可以实现期望的阻抗,而不一定依赖于力矩控制的机器人。在顺应控制中,我们指所有将力转换为期望运动关系的控制方法,这些关系可以作为输入馈送到内部运动控制回路中,如图3(b)所示;需要注意的是,输入运动控制的参考状态 s r s_r sr(位置和/或速度)是通过测量到的外力强制作用在微分方程(期望顺应性)输出的基础上对期望状态 s d s_d sd 进行修改后确定的。

期望的顺应性传统上基于类似于方程(1)的线性弹簧-阻尼-质量系统定义,但 p p p p ˙ \dot{p} p˙ 是滤波器的输出。对于还涉及方向控制的任务,期望顺应性(阻抗)的定义取决于合适方向表示的选择;最近的研究使用双四元数对末端执行器的广义位置进行编码以用于顺应控制[160]。

顺应控制长期以来被用于执行柔顺运动[161]以及力引导的机器人装配应用中的适应控制[162],并且最近被应用于挖掘任务[92,93]和插销入孔任务[22,51,52]。顺应控制还被广泛应用于物理人机交互(HRI)[163]。在此背景下,近期研究[164,165]探讨了顺应性参数的选择,提出了可变顺应性结构[166],甚至基于自适应动态运动基元(Dynamic Movement Primitives, DMP)设计了非线性顺应滤波器[167]。


4. 接触操控中的表征

为了让机器人执行技能以完成任务,机器人必须对技能有一个表征,本质上是一个从任务需求和传感器反馈到控制器输入的映射。这个映射通常称为策略(policy),它告诉机器人在接收到状态 x x x 下的感知输入(尽管一些综述中的方法在没有力传感器反馈的情况下也能工作,但几乎所有应用中至少都会使用来自本体感知的反馈,例如来自操控器关节编码器的反馈。因此,我们不认为任何方法是完全前馈的,即使我们稍后将这一术语用于不需要力信息的方法。) h h h 时应采取什么行动,从而指挥低级控制器施加特定的力或移动到某个位置,执行动作 u u u。因此,策略 π \pi π 将状态和传感器输入 h h h 映射到动作: u = π ( h ( x ) ) u = \pi(h(x)) u=π(h(x))。在最简单的形式中, π \pi π 可以是状态-动作对的离散集合,但这仅在小规模问题中可行。因此, π \pi π 通常是这些状态-动作对的一个精简表示。

策略通常是分层的,这意味着一个策略 Π \Pi Π 首先根据 h ( x ) h(x) h(x) 选择执行策略 π 1 \pi_1 π1 π 2 \pi_2 π2,然后 π 1 \pi_1 π1 π 2 \pi_2 π2 提供低级控制器可以解释的指令。这些连续的(我们所说的“连续”是指“连续”策略具有广泛的、通常是连续的输出范围(例如可以馈送给控制器的运动或力指令),而“离散”策略仅在子策略之间进行选择。)表征将在4.1节中介绍。接下来,在4.2节中,我们将介绍离散表征 Π \Pi Π,这些表征关注每时每刻选择一个合适的子策略。需要注意的是,某些方法(例如隐马尔可夫模型(HMM)及其扩展)通常既用作 Π \Pi Π 又用作 π i \pi_i πi,但为了清晰起见,我们仅在4.1节中介绍它们。本综述中使用某些表征的论文列表见表3


在这里插入图片描述


4.1 连续表征

或许最直接的连续表征是多项式,实际上,即使在最近的研究中,多项式样条也被用于表示机器人运动策略[188]。然而,在接触技能中,策略通常采用其他类型的表征。因此,本节将重点介绍在接触任务中成功使用的表征。

许多这些表征是概率性的,通常利用高斯混合模型(GMM)等结构来建模接触任务中始终存在的不确定性;这些模型通常与动力系统相结合,以实现时间不变和稳定的行为。其他表征则是简单的参数化函数近似器,例如神经网络,或围绕函数近似器构建的弹簧-阻尼系统,例如动态运动基元(DMP)。在本节中,我们将展示如何使用这些表征使自动化机器执行需要与环境接触的运动。

动态运动基元(Dynamic Movement Primitives, DMP)是一类非常受欢迎的运动基元,主要用于示范学习(LfD),但也用于强化学习(RL),特别是在人类示范之后进一步优化(例如[29])。DMP的主要结构可以分解如下:核心组件是变换系统,其数学形式为:

κ x ¨ = k z ( d z ( g − x ) − x ˙ ) + f ( q ; y ) (2) \kappa \ddot{x} = k_z \left(d_z (g - x) - \dot{x}\right) + f(q; y) \tag{2} κx¨=kz(dz(gx)x˙)+f(q;y)(2)

其中, κ \kappa κ 是时间常数(时间缩放因子), g g g 是目标, x , x ˙ , x ¨ x, \dot{x}, \ddot{x} x,x˙,x¨ 分别是位置、速度和加速度(系统的输出)。正参数 k z k_z kz d z d_z dz 分别与阻尼和刚度相关。这是一个简单的线性动力系统,作用如弹簧-阻尼器,推动系统向前运动;强制函数 f ( q ; y ) f(q; y) f(q;y) 是一个函数近似器,它扰动系统,使其不再是简单的吸引子,从而本质上生成轨迹。

传统上,强制函数是一个径向基函数(RBF)[190],但也提出了其他选项,例如神经网络(NN)[75]。由于DMP是针对每个自由度(DoF)分别学习的,无论是在笛卡尔空间还是关节空间,自由度之间需要同步。同步通过第三个组件 q q q 来实现,它是强制函数所依赖的规范化函数,其形式为:

q ˙ = − τ a q q , \dot{q} = -\tau a_q q, q˙=τaqq,

其中 τ = 1 / T \tau = 1/T τ=1/T T T T 是示范的时长, a q a_q aq 是管理运动速度的一个参数。

经典的DMP最初仅用于位置控制。然而,已有许多对其的改进,其中一些允许DMP用于接触任务。最简单的方法是直接将DMP与显式力控制结合[19,21,29–31,36],或者与顺应控制结合[22,40]。另一种合理的方式是在空间轨迹上叠加一个力或顺应特性曲线[50,53,168],或者阻抗特性曲线[103],使其与规范化函数 q q q同步,如同任何其他自由度。这种方法有时被称为柔顺运动基元(Compliant Movement Primitive, CMP)[169],其中叠加的力矩信号用称为“力矩基元”的RBF进行编码。

此外,CMP也被任务参数化[51,52],从而在任务参数已知的情况下可以推广到新场景。例如,对于插销入孔任务,可以根据孔的深度直接映射任务参数到基元权重,从而轻松执行类似任务的变化。此外,还可以利用任务参数化构建不同CMP技能的库[170]。

DMP的其他改进包括与阻抗控制结合的增量学习[171]、概率运动基元(Probabilistic Movement Primitive, ProMP)[191]和核化运动基元(Kernelized Movement Primitives, KMP)[192]。不过,在撰写本综述时,这些方法尚未明确展示其在接触任务中的表现,但理论上是可行的。

另一种方法是使用高斯混合模型(GMM)对轨迹进行编码,本质上是在轨迹上分布一系列多维高斯分布 N ( μ i , Σ i ) \mathcal{N}(\mu_i, \Sigma_i) N(μi,Σi),并为这些分布学习合适的均值 μ i \mu_i μi和协方差 Σ i \Sigma_i Σi参数,如图4所示。基于GMM的许多方法之间的主要区别在于如何处理不同高斯分布之间的过渡。一个简单的解决方案是使用高斯混合回归(GMR),该方法首先构建高斯分布的联合分布,然后从联合分布中导出回归函数[193,194]。与DMP类似,GMM-GMR的原始形式不适用于接触任务,但通过叠加力特性曲线可以使其能够完成接触任务[172]。同样地,基于GMM-GMR的方法也可以通过强化学习在示范后进一步优化以适应接触任务,例如多插销入孔任务[72]。


在这里插入图片描述图4 高斯混合模型(GMM)中高斯分布的示意图(右)用于编码一组示范轨迹(左)[194]。


另一种在学习任务中利用高斯混合模型(GMM)的方法是稳定动态系统估计器(Stable Estimator of Dynamical Systems, SEDS)[195]。与DMP和GMR不同,由于动态系统的特性,SEDS是时间不变的,并且已被证明在非线性动态系统(DS)下是稳定的。尽管其原始版本仅用于位置控制,但已扩展支持在接触任务中的应用。动态系统已被证明可以在接触任务中管理可变阻抗控制[39,96,173],并且最近也被用于在未知表面上提供精确的力控制[26,27]。

随着近年来深度学习(Deep Learning, DL)的快速兴起,神经网络(NN)作为通用函数近似器,已经在示范学习(LfD)和强化学习(RL)中流行开来,可能使用人类示范作为起点。使用深度学习的方法可以根据建模目标分类:深度网络可以直接编码控制策略(例如[186])或为预定义的低级控制器编码轨迹(例如[187])。此外,也可以用深度网络编码环境动力学,但这在接触操控中很少见,可能是因为为数据需求高的模型收集足够的训练数据很困难。为了解决数据需求问题,可以使用其他方法(如轨迹优化)生成足够的数据,同时神经网络可以通过插值训练数据实现策略的单一化和泛化[186]。对于提供完整轨迹的策略,可以通过从未标注数据中学习低维潜在轨迹嵌入来提高数据效率[187]。

最后,还有一些其他方法用于编码接触任务。除了SEDS利用动态系统之外,统一运动与可变阻抗控制(Unified Motion and variable Impedance Control, UMIC)[196]也将运动和可变阻抗结合在时间不变的系统中,展示了系统的稳定性。与之前的方法不同,UMIC不是轨迹跟踪系统,需要多个示范。

线性运动与柔顺性(Linear Motion with Compliance, LMC)[48]是为工件对准任务中的示范学习设计的较狭窄的应用场景,也被用于液压操控器[95]和双臂设置中[47]。另一种用于保持两个表面接触的特殊情况的方法是表面-表面接触基元(Surface–Surface Contact Primitive, SSCP),在[20]中提出。此外,还有一些方法可以将阻抗特性添加到任何类型的轨迹表征中,这些轨迹可以通过示范学习[103]或贝叶斯优化[158]进行学习。

4.2 离散表征

离散表征通常处于分层策略中比上一节的连续表征更高的层级。一个经典的例子是为机器人在与环境接触前后分别设计不同的策略[180],或者完全交替使用这两种策略[181]。另一个经常被提出的想法是建立一个连续策略的库(通常被称为技能库),机器人可以在合适的时间、适当的上下文中选择正确的技能[120,197–200]。

在技能或策略之间建立过渡的方法有很多,通常使用不同类型的概率方法来学习并平滑这一过程。因此,在本节中,我们综述了在不同条件下表示接触操控中不同行为的方法。

一种直接的方法,特别是对于涉及接触的任务,是使用检测到的力的阈值(例如[201])。这些阈值有时在机器人领域被称为保护性运动(guarded motions)[202,203]。Johansson等人针对基于检测到的接触扭矩对技能进行排序提出了大量研究。他们通过使用瞬态信号[201],使基于力的片段编程对人类更加友好[204],并在无需F/T传感器的情况下检测到卡扣装配的成功[205]。

此外,也有针对机器人此类任务的概率方法,例如贝叶斯在线变点检测方法(Bayesian Online Changepoint method)[59]。稍微复杂一些的方法是在接触形成空间中使用阈值,并基于快速扩展随机树(RRT)设计合适的运动基元[206]。

基于马尔可夫过程(即状态 x t + 1 x_{t+1} xt+1仅依赖于先前状态 x t x_t xt,且已知之前的状态不会增加预测能力)的方法有很多种。由于观测中总是存在不确定性,一种解决这一问题的常用方法是隐马尔可夫模型(Hidden Markov Model, HMM),其假设状态无法直接观测,而是通过依赖于状态 x t x_t xt的观测值 y t y_t yt间接观测。这一过程如图5所示。


在这里插入图片描述图5 一般隐马尔可夫模型(HMM)的图形化表示,其中 x x x是隐藏状态, y y y是观测值。红色节点为可观测状态,灰色节点为隐藏状态。


早在1996年,就已经有研究使用HMM将示范学习(LfD)中的演示划分为不同策略的区段(即自动将人类演示分成多个部分,每部分需要不同的策略),并在运行时选择合适的策略[207]。一种流行的扩展方法是为HMM引入自回归模型和Beta过程先验[208–210]。尽管这种模型并非专为接触任务设计,但进一步的修改允许在自回归状态空间模型中结合HMM,应用于如旋转胡椒磨[135,174]这样的任务,也用于需要持续接触的阻抗控制装配任务[49]。如图6所示,展示了HMM自回归的一个示例。更进一步的扩展还展示了学习切菜和擦菜等需要持续且变化接触的任务[173,175]。


在这里插入图片描述
图6 来自文献[49]的一个自回归HMM示例,其中 x x x是隐藏状态, y y y是观测值, a a a是动作,例如与环境的接触。红色节点为可观测状态,灰色节点为隐藏状态。


最后,在接触技能中,某些情况下将时间作为变量也是有用的。隐半马尔可夫模型(Hidden Semi-Markov Models, HSMM) 已被证明适用于这种情况[176],并且可以像之前介绍的运动基元一样进行任务参数化[178]。

当模型中直接涉及决策和奖励时,马尔可夫过程便成为了马尔可夫决策过程(Markov Decision Process, MDP),如图7所示。MDP及其扩展,尤其是部分可观测马尔可夫决策过程(Partially Observable Markov Decision Process, POMDP),已被广泛用于规划[126,179]和学习[61,97]框架。尽管这两者在机器人领域非常流行,并且有多种技术可以减轻POMDP计算复杂度带来的问题,但它们在接触任务中的应用数量有限。较为典型的例子包括[180,181],他们使用POMDP处理需要兼顾自由空间运动和接触运动的任务。此外,POMDP还被用来利用接触进行定位,无论是在经典任务中[182],还是在从人类示范中教会机器人搜索目标时[183–185]。


在这里插入图片描述图 7. MDP 图解,其中 x x x 为(可见)状态, r r r 为奖励, a a a 为行动


特别是在装配类接触任务中,一个有趣的应用案例是异常处理策略。这些任务可以通过多种方法完成,但在复杂的接触任务中,机器人可能会部分失败或出现工件卡住的情况,此时可以通过切换策略来管理。例如,为检测此类错误,可使用隐马尔可夫模型(HMM)[177]和支持向量机(SVM)[211]。Abu-dakka等人[53]在装配任务失败且需要重新搜索时使用了随机游走方法。Jasim、Plapper和Voos[63]采用了阿基米德螺线,该方法在正确的分辨率和起始位置下可以保证找到目标。[212]的第5章中提出了增量学习,在人类协助机器人插入操作时,当机器人卡住时提供帮助。Ehlers等人[41]建议借鉴区域覆盖的文献,而不是单纯地跟随轨迹,以学习基于区域或力的搜索策略;Shetty等人[213]在插销入孔任务的类似搜索问题中采用了遍历控制(ergodic control)。Hayami等人[78]通过装配过程中产生的力信号判断问题出现的时机和原因。同时,[66]使用主成分分析(PCA) 检测装配任务的上下文,以应用正确的异常处理策略,而[214]则通过多个F/T传感器的反馈训练了一个神经网络(NN),用于检测装配过程中的错误。

5. 接触操控的学习与规划

当为任务选择了合适的表示方法后,就需要找到实际的策略(通常指表示方法的参数),使机器人能够使用该技能完成任务。这个阶段通常被称为规划学习。尽管许多人将他们的方法归类为其中之一,但这两者之间常有相似性,如今也出现了这些方法的组合。此外,多种表示方法可以用于任一方法。

经典的运动规划问题是这两种方法的核心,其定义如下:我们希望机器人的末端执行器 E E E在笛卡尔工作空间 W ⊂ ℜ 3 W \subset ℜ^3 W3(可能是一个子空间,取决于机械手的关节数量。)中移动。机器人操纵器可以通过状态转移函数 f : X × U → X f: X × U → X f:X×UX根据动作 U U U移动末端执行器。规划 π \pi π的目标是找到适合的参数(如第4节中的某种表示),以便应用动作 u ∈ U u \in U uU,使末端执行器从初始状态 x i ∈ W x_i \in W xiW移动到目标区域 X G ∈ W X_G \in W XGW,同时满足一组约束。这些约束可能包括工作空间的定义约束,如关节限制或自碰撞。

传统上,规划通常需要避开障碍区域,而在接触任务中,机器人需要与“障碍”保持接触。这意味着规划不仅需要在笛卡尔或关节空间中进行,还需要表示机器人的力或阻抗分布。基于第3节中的控制方法,有两种主要方法:

  1. 策略可以由一系列力接触(可能结合运动)组成,利用接触进行定位;
  2. 策略可以由带有阻抗分布的运动组成,提供必要的柔顺性以应对接触中的不确定性。

本节将探讨这两种方法的相关技术。表4列出了根据策略找到方法的类别对文章的分类,这些文章的主要贡献是如何找到策略。


在这里插入图片描述


5.1节介绍了接触操控的规划方法,以及如何利用接触进行更优或更快的规划。5.2节介绍了强化学习(Reinforcement Learning, RL)方法。最后,5.3节介绍了接触操控的模仿学习方法,其核心思想是利用人类的专业知识为机器人找到合适的策略。

5.1. 接触操控的规划

由于柔顺运动需要与环境保持持续互动,我们关注的是前面定义的运动学运动规划,而非符号化的高层任务规划。柔顺运动规划的起源可以追溯到精细运动规划(fine motion planning)[232,233],但这一方法始终面临高计算负载的问题。另一种早期方法是前景规划(preimage planning)[120],但同样存在类似的问题。此外,早期还尝试通过设置阈值来规划装配任务,例如[117],并尝试将其他流行方法(如概率路线图(probabilistic roadmaps))应用于接触技能[234]。尽管本节中大部分方法的应用局限于小规模任务,但诸如挖掘这样的任务也已成功通过规划完成[91]。

在规划中使用力值或许比使用柔顺性更为普遍。在插销入孔装配任务中,有多种利用接触的规划方法:较简单的方法是将力传感器安装到机器人手臂上[44,60,63],但也可以在没有力传感器的情况下规划基于力的装配任务[149,215]。有时这些阈值也被称为瞬态(transients)[201,205]。另一个常见术语是治具装载(fixture loading),治具是指用于引导装配任务的物理引导装置,其中运动规划被证明是有用的[118,119]。在这一领域也有新进展,例如通过优化治具的位置以降低不确定性[69]。

此外,规划还被用于需要精确组合力和运动的装配任务,例如折叠(folding)[76]或卡扣(snapping)[216]。一般的力分布也可用于结合力控制规划柔顺运动[65]。

尽管规划最优柔顺运动是不可行的,但通过许多近似方法可以找到接近最优的解决方案。Phillips-Grafflin和Berenson[179]使用马尔可夫决策过程(MDP) 来克服执行器的不确定性,以规划利用柔顺性的装配任务。此外,针对信息不完备的情况,部分可观察马尔可夫决策过程(POMDP)也被用作规划的表示形式[180],例如针对基于接触状态切换的推送任务,或完全交替进行接触和自由空间运动[181]。前面提到的概率路线图也被用于结合接触状态规划柔顺运动[222]。一个显著成果由Guan、Vega-Brown和Roy[126]实现,他们利用反馈MDP展示了柔顺运动的近最优规划。在复杂的规划问题中,通过认识到在柔顺运动中机器人的不同动作可能导致物体相同的运动模式,可以简化问题[223]。最后,当预先已知工件的丰富信息(例如CAD模型[224]或网格模型[62])时,规划可以更高效地进行。

一种有趣的方法是利用接触进行定位以缓解不确定性。最直接的方法是考虑点接触进行定位[217]。超越接触阈值的一种方法是接触状态(Contact State, CS)的概念,这意味着找到工具的精确接触点或多个接触点。这可以仅通过力-位置映射解决任务,例如插销入孔[64]。此外,还有大量文献研究如何检测装配部件接触的位置,并据此制定更通用的规划:首先需要检测接触的状态(例如点接触或面接触)[218],然后通过卡尔曼滤波和贝叶斯估计加以利用,以实现自主柔顺运动[219,220]。为改进这些策略,[69]研究了如何在环境中放置治具以优化接触提供的不确定性缓解能力。最后,物理探索有时也是完成复杂和新任务所必需的,这在文献[221]中得到了探讨。

5.2. 接触操控中的强化学习

强化学习(Reinforcement Learning, RL)方法旨在通过探索环境动态,为随机时间序列系统学习最优控制策略[235]。近年来,强化学习在机器人领域受到广泛关注,并有多个综述涵盖了RL的全部领域,如[11]。本节专注于强化学习在接触操控任务中的应用。已通过RL解决的任务类型包括推送[225]、关节化对象的操控(如开门)[226]、工具使用[29]、插销入孔及类似的装配任务[43,45,186]。

直接在物理机器人系统中使用强化学习学习接触操控任务面临诸多挑战,因为学习所需的探索可能因高刚性环境中的高接触力而存在安全隐患。在物理系统中进行探索的方法通过以下方式减轻潜在危险:使用力矩控制限制接触力(例如[186])、使用有限刚度的阻抗控制(例如[29]),或通过基于安全的约束显式限制动作[227,236]。此外,RL对数据的高需求也对直接在物理系统中学习提出了额外挑战。为解决这一问题,通常使用人类示范作为RL策略优化的起点[29,55,228]。

与物理系统中的学习相对,策略也可以在仿真环境中学习后再在物理系统中执行。这种方法允许在仿真中安全地进行探索,并获得大量训练数据。然而,这种方法带来了另一个挑战,即仿真与物理系统之间的现实差距。这一差距可以通过系统识别来校准仿真[71],或者通过在训练中加入模拟噪声[42,225],或通过在已知的模拟器参数分布上进行训练(即域随机化)[61]来减少。此外,在真实环境中进一步调整通过仿真训练的策略也是可行的,例如通过元学习来学习适应性策略[46,237]。

目前有针对使用RL方法完成接触技能的模拟器研究。例如,尽管Mujoco[238]在经过10年的发展后依然流行,但也出现了一些更新且更专业的模拟工具:用于多种简单或多阶段任务的RLBench[239]、用于评估基于元强化学习和多任务学习的操控任务的Meta-world[240]、涵盖包括关节化运动在内的家庭任务的SAPIEN[241]以及用于线性可变形对象的ReForm[242]。模拟器还被用于评估方法跨越现实差距的能力,并作为现实实验的可重复替代方案。然而,实际能力只能通过物理世界实验评估,因为模拟中的现实差距与物理上的差异存在不同,同时预先记录的数据集无法用于评估闭环系统的性能。

RL已被用来优化接触策略的多个方面,包括控制器设定点轨迹(假设控制器已知)、控制器参数(假设目标轨迹和控制器结构已知)、以及整个反馈策略。例如,设定点轨迹可以为阻抗控制机械手的末端执行器姿态学习[29,229]。另一种常见方法是使用RL优化控制参数,例如增益[61]或柔顺参数[73,228,229]。在反馈策略的情况下,动作空间的选择(如速度与力)被发现是与具体应用相关的[230]。RL还可以与其他控制和决策方法结合,包括经典控制方法(如阻抗控制[231]和操作空间控制[70])、规划[123]或模糊逻辑[43]。

5.3. 接触操控中的示范学习

在示范学习(Learning from Demonstration, LfD)中,也称为模仿学习(Imitation Learning)或示范编程(Programming by Demonstration, PbD),用户通过向机器人演示任务如何完成来教授机器人。需要指出的是,许多针对接触任务的LfD研究都集中在寻找能够更好编码任务的新颖表示方法。这些方法(例如扩展到接触任务的DMP、GMM、SEDS等)以及一些专门针对接触任务的表示方法已在第4节讨论。因此,本节将更多地关注如何进行优质示范、力数据采集以及所需示范的数量等问题。

尽管LfD在机器人领域已经是一种成熟的理念[10],但在接触任务中有一个特定需求:必须测量或估计示范中的接触力。这一点对于决定示范方法至关重要。例如,最流行的示范方法之一是通过抓住机器人并引导其完成动作(也称为运动教学),这通常需要力/力矩(F/T)传感器,因为如果用户在工具附近握住机器人,关节力矩传感器无法观测到力(然而,有多种方式放置传感器,例如[24,30]中提出的两种不同方式)。对于使用电驱动机器人的远程操作,可以利用电机电流、输出力矩[149]或像Franka Emika Panda机器人这样的关节力矩传感器来估计接触力;对于液压驱动机器人,则可以利用液压腔压力来估计接触力[150]。其他经过验证的方法包括使用能够调节阻抗的手持设备[104,243,244]或示范者佩戴的肌电传感器[110]。此外,某些人类行为(如抓握时滑动)需要机器人使用特殊方法在示范中检测[245]。

一旦采集到力数据,就有多种选项可用于编码数据,其中大多数在第4节已经讨论。这些要求可能因方法而异:DMP及其变体可以从单一示范中学习,但如果使用多次示范,则需要对其进行时间对齐,例如使用动态时间规整(DTW),尽管也有提出更简单的方法[75]。此外,还需要预先决定“原语”的数量(例如强制函数的数量),这一点对大多数表示方法(如GMM的高斯分布数量)都是通用的。GMM方法可以自然地处理多次示范,但通常需要多个示范才能开始。此外,基于GMM并采用动态系统的方法是时间不变的,并且可以证明是稳定的,而基于DMP的方法通常不能提供这一特性。这些表示方法及其扩展是LfD中最流行的技术,第4节已深入探讨了它们,包括连续和离散表示,且通常以层级方式使用。此外,一些主要用于规划的方法也已适配到LfD中,例如接触状态估计[58]。许多上述策略的一个常见问题是分段往往产生过多的片段;因此,无论采用何种表示,建议对这些片段进行修剪和合并以简化执行[246,247]。

在接触任务的LfD中,另一个挑战是机器人通常需要利用环境以提高定位精度。然而,由于示范者通常会尽可能提供好的示范,因此很难采集到示范者在不确定性情况下利用环境的行为。关于如何提供优质示范,有若干研究表明明确的指导能够帮助示范者[248,249]。更隐式的方法包括增量学习[171,250],即机器人通过多次示范和修正逐步发展正确行为,以及主动学习[251],即机器人向教师传达所需的示范类型。尽管最近已有关于操控的主动学习研究[252,253],但目前尚未有针对接触任务的主动学习方法。此外,通过使示范者处于更困难的环境(例如使用模糊眼镜[254]或直接蒙住示范者的眼睛[41,183]),也能促使示范者展现所需行为。

最后,一个有趣的问题是LfD是否是学习此类任务的好方法,或者人类示范是否已经次优。尽管没有明确答案,但至少对于经典的插销入孔任务,人类确实有高效的策略可供学习[255]。尽管LfD通常可快速学习任务(如装配线任务),当需要更多优化时,一个有效策略是将LfD与RL结合,利用强化学习或优化方法进一步离线优化机器人的策略[29,158,228],或者利用示范增强经典运动规划方法的效率[256]。


6. 结论与未来工作

在本综述中,我们为读者提供了一个全面的视角,介绍了使机器人执行接触任务的各种最新方法,这些任务是提高工厂和家庭自动化水平的自然下一步。在描述了机器人执行的接触任务的类型之后,我们进一步展示了在这些任务中如何控制机器人,接着是用于编码这些任务的表示方法,最后是如何以正确方式利用这些表示的方法。

接触任务在工厂装配和服务任务中经常需要。对于工厂,利用柔顺性可以进一步增加机器人可完成的任务数量,包括在产品经常变化的情况下;在家庭、餐馆及其他类似环境中,掌握接触任务将使未来的服务机器人具备越来越多的能力。尽管机器人与环境之间的接触已不再被视为一种麻烦,但距离将其视为如人类一般有用仍有很长的路要走。因此,我们希望本综述能帮助人们深入研究接触任务领域,利用已有的研究成果并提出新想法。

从本综述中可以识别出多个未来研究方向。目前,大多数任务都是在处理刚性物体;然而,仅有少量研究(例如[224,242])涉及可弯曲物体。尽管折叠布料是一个已有研究的话题(例如[257,258]),但处理可弯曲物体的装配任务更为复杂,因为变形和摩擦的相互作用会产生一个复杂的物理问题需要推理。尽管异常处理策略的研究正逐渐受到关注(见表1),但仍有很大的改进空间,因为这种行为正是人类在工业应用中通常仍能超越机器人的领域。如果机器人在每次出现非典型错误时都需要人工干预,那么对工业并无太大益处。另一个有趣的接触任务是油漆,它提出了尚未解决的独特挑战。虽然与擦拭类似,但油漆墙壁的结果不均匀问题需要非常精细的力操控,这对物理引擎的仿真能力提出了很高的要求,或者需要非常准确的动作记录以用于示范学习(LfD),并且控制器需要能够重复这些力。此外,即使是刚性物体的一些装配任务(如电路板对接),其精度仍可通过利用接触进一步提高。

除了教机器人新任务外,学习时间和泛化能力也必须改进。教机器人新接触任务必须快速;例如一次性模仿学习迁移学习等方法可以在工厂中更容易部署,并能够从单次示范中学习甚至复杂的任务。此外,物理仿真的改进可以允许更好的迁移学习,使得即使是复杂任务(如利用接触和摩擦)也可以在仿真中学习,然后再部署到现实世界中。然而,目前利用动态域随机化[259]在接触任务中的工作仍然相对较少,即使这一主题在机器人其他领域很受欢迎。然而,由于域随机化速度较慢,拥有足够准确的模拟器以完全避免其使用将是有益的[260]。在模拟中,还可以通过虚拟现实(VR)提供示范,只要物理引擎足够好,这也是一个正在积极开发的方向[261,262]。另一个与LfD相关的未来研究是**人机交互(HRI)**方面:普通用户如何理解什么是适合机器人学习复杂任务(如处理木材)的良好示范?最后,尽管已有研究尝试通过纯视觉推断接触力[263,264],但目前仅限于抓取任务。借助新的深度学习方法,机器人应该可以仅通过观看视频学习诸如锯木这类任务。

利益声明

作者声明他们没有任何已知的经济利益或个人关系会对本文报道的工作产生影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2251784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

881.救生艇

目录 题目过程 题目 给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船数 。 过程 cla…

【汇编】逻辑指令

文章目录 一、逻辑运算指令(一)各逻辑运算指令格式及操作(1)逻辑非指令 NOT(2)逻辑与指令 AND(3)逻辑或指令 OR(4)异或指令 XOR(5)测试…

网页开发的http基础知识

请求方式-GET:请求参数在请求行中,没有请求体,如:/brand/findAll?nameoPPo&status1。GET请求大小在浏览器中是有限制的请求方式-POST:请求参数在请求体中,POST请求大小是没有限制的 HTTP请求&#xf…

如何做好一份技术文档

如何做好一份技术文档 以下是本人的一些微不足道的经验,希望可以与大家互相交流学习 方向一:技术文档的规划布局 确定整体架构 创建一份优秀技术文档的第一步是规划其整体架构。一个好的架构应能引导读者理解文档的内容,同时提供一个逻辑清…

Springboot——SseEmitter流式输出

文章目录 前言SseEmitter 简介测试demo注意点异常一 ResponseBodyEmitter is already set complete 前言 最近做AI类的开发,看到各大AI模型的输出方式都是采取的一种EventStream的方式实现。 不是通常的等接口处理完成后,一次性返回。 而是片段式的处理…

Java 虚拟机:承载 Java 生态的神奇魔盒

在软件开发的世界里,Java 虚拟机(JVM)就像一位智慧的管家,默默守护着 Java 生态系统的运行。它不仅让 Java 实现了"一次编写,到处运行"的梦想,更是成为了多种编程语言的运行平台。让我们一起走进…

sqlmap详细使用

SQLmap使用详解 SQLmap(常规)使用步骤 1、查询注入点 python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id12、查询所有数据库 python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id1 --dbs3、查询当前数据库 python sqlmap.py -u htt…

【Linux】Linux2.6内核进程调度队列与调度原理

目录 一、进程管理中的部分概念二、寄存器三、进程切换四、Linux2.6内核进程调度队列与调度原理结尾 一、进程管理中的部分概念 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务&#…

Qt 详解QRubberBand

文章目录 QRubberBand 简介前言 QRubberBand 的作用QRubberBand 的主要功能QRubberBand 的常用方法QRubberBand 的典型应用场景示例代码总结 QRubberBand 简介 前言 在 Qt 中,QRubberBand 是一个非常实用的控件,它通常用于图形界面中的“选择区域”功能…

python股票数据分析(Pandas)练习

需求: 使用pandas读取一个CSV文件,文件内容包括股票名称、价格和交易量。完成以下任务: 找出价格最高的股票; 计算总交易量; 绘制价格折线图。 代码实现: import pandas as pd import matplotlib.pyplot …

Jenkins Nginx Vue项目自动化部署

目录 一、环境准备 1.1 Jenkins搭建 1.2 NVM和Nodejs安装 1.3 Nginx安装 二、Jenkins配置 2.1 相关插件安装 2.2 全局工具安装 2.3 环境变量配置 2.4 邮箱配置(构建后发送邮件) 2.5 任务配置 三、Nginx配置 3.1 配置路由转发 四、部署项目 …

JUnit介绍:单元测试

1、什么是单元测试 单元测试是针对最小的功能单元编写测试代码(Java 程序最小的功能单元是方法)单元测试就是针对单个Java方法的测试。 2、为什么要使用单元测试 确保单个方法运行正常; 如果修改了代码,只需要确保其对应的单元…

乘积求导法则、除法求导法则和链式求导法则

乘积求导法则、除法求导法则和链式求导法则 1. Constant multiples of functions (函数的常数倍)2. Sums and differences of functions (函数和与函数差)3. Products of functions via the product rule (通过乘积法则求积函数的导数)4. Quotients of functions via the quoti…

飞塔防火墙只允许国内IP访问

飞塔防火墙只允许国内IP访问 方法1 新增地址对象,注意里面已经细分为中国内地、中国香港、中国澳门和中国台湾 方法2 手动新增国内IP的对象组,目前好像一共有8632个,每个对象最多支持600个IP段

深度学习 | pytorch + torchvision + python 版本对应及环境安装

Hi,大家好,我是半亩花海。要让一个基于 torch 框架开发的深度学习模型正确运行起来,配置环境是个重要的问题,本文介绍了 pytorch、torchvision、torchaudio 及 python 的对应版本以及环境安装的相关流程。 目录 一、版本对应 二…

JVM:即时编译器,C2 Compiler,堆外内存排查

1,即时编译器 1.1,基本概念 常见的编译型语言如C,通常会把代码直接编译成CPU所能理解的机器码来运行。而Java为了实现“一次编译,处处运行”的特性,把编译的过程分成两部分,首先它会先由javac编译成通用的…

5G学习笔记之随机接入

目录 1. 概述 2. MSG1 2.1 选择SSB 2.2 选择Preamble Index 2.3 选择发送Preamble的时频资源 2.4 确定RA-RNTI 2.5 确定发送功率 3. MSG2 4. MSG3 5. MSG4 6. 其它 6.1 切换中的随机接入 6.2 SI请求的随机接入 6.3 通过PDCCH order重新建立同步 1. 概述 随机接入…

B站狂神说Mybatis+Spring+SpringMVC整合理解(ssm框架整合)

文章目录 0.写在前面(对mybatis,spring的理解)(不看可跳过)0.1 为什么需要mybatis0.2 为什么需要spring0.3为什么需要springmvc 1.新建ssmbuild数据库2.新建Maven项目3.初始化步骤3.1 配置下载maven依赖,构建资源导出3.2 连接数据库3.3建包&a…

JS的魔法三角:constructor、prototype与__proto__

在JavaScript中,constructor、prototype和__proto__是与对象创建和继承机制紧密相关的三个概念。理解它们之间的关系对于掌握JavaScript的面向对象编程至关重要。下面将详细介绍这个魔法三角: 1. constructor 定义:constructor是一个函数&am…

SQL调优分析200倍性能提升

原始SQL: selectdistinct cert.emp_id fromcm_log cl inner join(selectemp.id as emp_id,emp_cert.id as cert_id fromemployee emp left joinemp_certificate emp_cert on emp.id emp_cert.emp_id whereemp.is_deleted0) cert on (cl.ref_tableEmployee and c…