学习灵巧的手部操作,强化学习赋能机械臂

一只机械臂,如何进行灵活的手部操作?在此论文中,作者们介绍了机器人进行手部操作的控制策略训练方法,表现出了前所未有的灵巧性。

论文标题:Learning Dexterous In-Hand Manipulation

链接:https://arxiv.org/pdf/1808.00177.pdf

图1:一只经过强化学习训练的五指人形手,利用视觉感知将一个块从初始配置操作到目标配置

摘要

我们通过强化学习(RL)学习灵巧的手部操作策略,这些策略可在物理“Shadow Dexterous Hand”上执行基于视觉的对象重定向。我们在模拟环境中进行训练,此时我们会随机设置系统的很多物理属性,例如摩擦系数和对象的外观。虽然完全在模拟的环境中进行训练,但我们将策略转移到了实体机器人上。我们的方法并不依赖任何人工示范,但很多我们在人为操纵中发现的行为会自然地出现,包括手指步态、多指协调和控制使用重力。我们使用与训练OpenAI Five【43】时使用的相同分布式RL系统得出结果。我们还包括了一个结果视频:https://youtu.be/jwSbzNHGflM.

1介绍

虽然对人来说,灵巧的操纵对象是一项基本的日常任务,但这对自主式机器人来说仍然具有挑战性。现代机器人通常专为特定任务而设计,适用设置有限,而且大多无法使用复杂的末端执行器。相反,人可在各种环境下执行很多灵巧的操纵任务,这让人手成为机器人操纵研究的灵感源泉。

图2:系统概况。(a)我们使用具有随机参数和外观的大量分散模拟,收集关于控制策略和基于视觉的位姿估计器的数据。(b)控制策略根据分布式模拟观察机器人状态并取得奖励,学习如何通过时间递归神经网络强化学习,将观察结果反映到行动中。(c)基于视觉的位姿估计器呈现出从分布式模拟中收集到的场景,并学习如何使用卷积神经网络(CNN)(与控制策略分开训练)根据对象的图片预测其位姿。(d)为了应用到现实世界中,我们根据卷积神经网络(CNN)内的3个真实摄像机馈送预测对象的姿势,使用3D运动捕捉系统测量机器人指尖位置,并将这些落实到控制策略中,预测机器人的动作。

Shadow Dexterous Hand【58】便是一种专为人类灵敏度设计的机器人手的例子;这种机器手有五根手指,每根手指有24°自由度。自2005年开始上市;然而,由于控制系统高度复杂,所以这种机器手并没有得到广泛应用。五指机器手的顶尖控制技术严重受限。之前的一些方法已经显示出了前景良好的模拟手部操作结果,但并未被转移到现实机器人应用中【5,40】。相反,由于这种复杂系统的建模难度较大,所以有些研究采用仅使用实体机器人【16, 67, 29, 30】进行训练的方法。然而,由于物理试验的速度非常慢,而且成本高昂,所以学习行为非常受限。

在本研究中,我们演示了进行手部操作的控制策略训练方法,并在实体机器人上部署了控制战略。由此产生的控制策略表现出了前所未有的灵巧性,并自然地发现了人类的抓握技巧,例如三脚架捏抓、棱柱形捏抓和尖端捏抓,并展现了大量接触的动态行为,例如手指步态、多指协调、控制性应用重力,以及在对象上的平移和扭转力的协调应用。我们的控制策略也可通过视觉感知对象的位姿——这是机器人的一个重要方面,因为机器人最终会离开受控的实验室环境设置,到外界工作。

图3:(左)“笼子”里是机器人手、16台PhaseSpace跟踪摄像机和3台Basler RGB摄像机。(右)描绘模拟环境

虽然训练完全使用模拟器,与现实世界大大不同,但我们获得了在实体机器人上表现良好的控制策略。我们将我们的转移结果归咎于(1)校准与模拟环境的广泛随机化和附加效应,(2)记忆强化控制策略,使机器人在运行中学习适应行为和隐式系统识别,以及(3)通过分布式强化学习来进行大规模训练。方法概述详见图2。

本文结构如下。第2节提供了系统综述,更加详细地介绍了提议任务,并列出了硬件设置。第3节介绍了关于控制策略、环境随机化,以及为了转移而在模拟器中添加的附加效应的观察。第4节简要介绍了控制策略训练程序和分布式RL系统。第5节介绍了视觉模型架构和训练程序。最后,第6节介绍了在实体机器人上部署控制策略和视觉模型的定性结果和定量结果。

任务与系统概述

在本研究中,我们考虑了手动对象再定位的问题。我们将对象放在仿真机器人的手上。目标是手动进行对象再定位,实现所需目标配置。一旦达到(靠近)当前目标,便提供新目标,直至对象被最终放弃为止。我们使用两个不同的对象,一个块状对象,一个八角形棱镜。图3描绘了我们的实体系统和我们的模拟环境。

2.1硬件

我们使用Shadow Dexterous Hand,这是一种具有24°自由度(DoF)的仿真机器人手,由20对激动剂-拮抗剂肌腱驱动。我们使用PhaseSpace运动捕捉系统,追踪全部五个指尖的卡地坐标位置。关于对象位姿,我们有两种设置:一种使用PhaseSpace标记来跟踪对象,另一种使用三台Basler RGB相机进行基于视觉的位姿估计。这是因为我们的目标是最终取得一个在实验室环境之外工作的系统,而基于视觉的系统能够更好地应对现实世界。我们不使用机器人手嵌入式触摸传感器,仅通过关节感应进行低级相对位置控制。我们更新了低级控制器的目标,该控制器的运行频率大约为1千赫,其相对位置可根据在大约12 赫兹运行时的控制策略估测。

关于硬件设置的更多细节,请查看附录B。

2.2模拟

我们使用MuJoCo物理引擎【64】模拟物理系统,同时使用描绘训练基于视觉的位姿估计器的图片。我们的Shadow Dexterous Hand模型立足于OpenAI Gym机器人环境【49】中使用的模型,但为了更密切地与物理系统匹配,已通过校准进行改进(更多细节详见附录C.3)。

虽然我们进行了校准,但模拟仍只是接近物理设置。例如,我们的模型直接将扭矩应用到关节上,取代肌腱致动,同时使用刚性体接触模型替换应变体接触模型。在刚体模拟器中,很难或几乎不可能模拟这些或其他可在现实世界中看到效应。这些差异造成了“现实差距”,进而导致无法很好地转移模拟时不准确训练的政策。

我们在附录C.1中列出了模拟的其他细节。

可转移的模拟结果

如上一节所述,我们的模拟大致接近现实世界。因此,我们面临一个两难局面:因为深层强化学习算法需要数百万个样本,所以我们无法在实体机器人上进行训练;相反,由于模拟环境和现实环境之间存在差距,所以仅在模拟环境中培训会产生无法良好转移的政策。为了克服模拟与现实的差距,我们将模拟的基本版本修改为一系列不同模拟,以促进转移【54,62,45】。通过仔细选择传感模式,随机设置模拟环境的各个方面,我们可进行策略训练,包括不太可能适应特定模拟环境,但能更成功的转移到实体机器人上的策略。

3.1观察结果

我们使用PhaseSpace标记,以及来自PhaseSpace标记或基于视觉的位姿估计器,给出指尖控制策略的观察结果。虽然Shadow Dexterous Hand含有很多内置传感器,但因为受限于依赖状态的噪声,很难在模拟器中进行模拟,所以我们尽量避免将这些作为政策观察结果。例如,指尖触觉感受器可测量指尖内置气球内存储流体的压力,其与应用在指尖上作用力有关,但也与很多混杂变量有关,包括大气压力、温度以及触头的形状和和交叉几何结构。虽然确定模拟器内触头的存在很简单,但很难模拟传感器数值的分布。类似的考虑适用于通过霍尔效应传感器测量的连接角,即那些用在低级控制器中,但由于易受噪音影响且很难校准,所以政策未予以考虑的连接角。

3.2随机化

根据之前关于域随机化【54, 62, 45】的研究,我们随机设置模拟环境的很多方面,以学习落实到现实应用中的政策和视觉模型。我们在下文中简要介绍了随机化的类型,而附录C.2更详细地讨论了更多关于随机化的信息,并提供了超参数

观察噪声。为了更好了模拟我们期望在现实世界中体验的噪声类别,我们在策略观察中添加了高斯噪声。尤其,我们使用了各场景采样一次的相关噪声,以及根据各时间步进行采样的不相关噪声。

表1:物理参数随机化的范围

参数

比例因子范围

附加项范围

对象尺寸

对象和机器人链路体

表面摩擦系数

机器人运动副阻尼系数

驱动力增益(P术语)

统一(【0.95,1.05】)

统一(【0.5,1.5】)

统一(【0.7,1.3】)

loguniform(【0.3,3.0】)

统一(【0.75,1.5】)


连接限制

重力矢量(各坐标)


N(0,0.15))rad 

N(0,0.4))m/s2

物理现象。随机化各场景开始时随机设置物理参数,例如摩擦,并使这些参数保持不变。很多参数以模型校准期间发现的值为中心,以使模拟分布更加贴近现实。表格1列出了随机设置的所有物理参数

未模拟影响。实体机器人会经历模拟并未建模的很多影响。为了解释不完美的驱动,我们使用一个简单的电机反冲模型,并在模拟进行应用之前引入动作延迟和动作噪声。我们的运动捕捉设置有时会暂时丢失追踪标记,通过在很短的模拟时间内冻结模拟标记位置(概率很低)进行模拟。通过冻结非常靠近其他标记或对象的模拟位置,我们也模拟了标记闭合。为了处理更多未模拟的动态,我们在对象上施加较小的随机作用力。关于具体实施的细节,详见附录C.2。

视觉外观随机化。我们随机设置了所描绘场景的以下方面:摄像机的位置和内在参数、光照条件、手和物体的姿势,以及场景中所有对象的材质和纹理。图4提供了关于随机设置环境的一些例子。关于随机设置属性及其范围的细节,详见附录C.2。

图4:具有不同随机设置视觉外观的模拟。行与同一台摄像机的图像对应,列与3台独立摄像机的图像对应,这些图像可同时输入中央网络。

4从状态中学习控制策略

4.1策略架构

在一个场景中,我们会进行很多随机化设置,因此可通过内存扩大策略确定当前环境的属性,并相应地调整其自身行为。例如,最初与环境相互交流的步骤可显示对象的重量,或食指的移动速度。因此,我们将策略表示为有内存的递归神经网络,即LSTM 【25】,其具有在输入和LSTM之间插入ReLU【41】激活函数的附加隐藏层。

通过近端策略优化(PPO)【57】进行策略训练。我们在附录A中非常详细地介绍了强化学习和PPO的背景知识。PPO需要训练两种网络——将观察反应到行动中的政策网络,以及预测从给定状态开始的未来奖励折扣总额的价值网络。两个网络的结构相同,但参数各不相同。由于训练期间仅使用价值网络,我们使用不对称的强化学习(Actor-Critic)【46】。不对称的强化学习(Actor-Critic)【46】依赖于价值网络可访问真实机器人系统3内不可用的信息这一事实。因为需要推断的信息较少,这可简化学习良好价值估计的问题。表2列出了两个网络的输入项列表。

4.2行动和奖励

策略行动与当前的理想关节角度对应5(例如,使关节旋转10度)虽然PPO可处理连续和离散的行动空间,但我们注意到其更适用于离散行动空间。这可能是因为离散概率分布比多变量高斯分布更具表现力,或者因为动作的离散化使学习优势函数更加简单。我们将每个动作的坐标离散到11个箱子内。

时间步t给出的奖励是rt = dt-dt + 1,其中dt和dt + 1分别是转换前后的理想对象取向与当前对象取向之间的旋转角。每当达到目标时,我们会额外奖励5,每当丢弃对象时,奖励为-20(惩罚)。关于模拟环境的更多信息,详见附录C.1.

4.3快速分布式训练

我们使用与训练OpenAI Five【43】相同的分布式PPO执行策略,未做任何修改。总体来说,我们发现PPO容易扩展,而且几乎不需要进行超参数调整。我们的分布式培训系统的架构如图5所示。

图5:我们在Rapid中的分布式训练结构。蓝色的正方形表示单独的线程。工人机器随机连接Redis服务器,从中提取新的策略参数并向其发送新体验。优化器机为每个GPU设置了一个MPI进程,其中各进程都有一个专用的Redis服务器。各进程都有一个Puller线程,可将从Redis中得到的新体验带入缓冲区。各进程还有一个Stager线程,可从缓冲区进行小批量采样,并在GPU上进行分级。最后,各优化器线程使用GPU进行小批量优化,此后梯度跨线程累积,并将新参数发送至Redis服务器。

我们的研究采用了一个由384台工人机器(每台均装配了16个CPU核心)构成的集合,通过在从随机分配模拟样本中运用当前版本的策略得出经验。在各场景开始时,工人从优化器中下载最新的政策参数,产生训练场景并将产生的场景返回优化器优化器和工人通过Redis内存数据存储进行交流。我们使用多个Redis实例进行负载平衡,并在示例中随机分配工人。本项设置每小时可产生大约2年的模拟经验。

使用装配了8件CPU的一台机器进行优化。优化器线程推翻从Redis中取得的经验,随后分步将其输入到相应的CPU内存中进行处理。计算本地梯度后,使用MPI平均所有线程,随后我们使用MPI更新网络参数

我们使用的超参数可在附录D.1中找到。

5根据视觉进行状态估计

我们在上一章节介绍的策略将对象的位置设为输入点,因此需要使用在实体机器人上安装动作捕捉系统,用于追踪对象。因为追踪系统追踪的对象仅在实验室设置环境下可行,此时可在各对象上设置标记,所以不合需要。由于我们的最终目标是建立现实可用且可与任意对象相互作用的机器人,因此利用视觉感知是一个很重要方面。因此在本项研究中,我们希望仅根据视角推断对象的位姿。与策略类似的是,我们仅使用来自模拟器的综合数据训练这种估算器。

5.1模型结构

为了解决歧义并提高稳健性,我们使用三个带不同场景视角的RGB摄像机。记录图片通过卷积神经网络传送,详见图6。网络预测对象的位置和取向。当在实体机器人上执行控制策略时,我们将位姿估算器的预测导入策略中,其反过来可产生下一个动作。

5.2 训练

我们在模拟器上实施训练策略,直到收集一百万个状态。然后利用小批量梯度下降法,通过最小化归一化预测和实际情况之间的均方误差,来训练视觉网络。对于每个小批量的处理,我们在将图像馈给网络之前随机渲染其外观。此外,我们还通过修改物体位姿来增加数据。我们使用2个GPU进行呈现,1个GPU运行网络并进行训练。

附录D.2提供了额外的训练细节,附录C.2提供了随机化细节。­

结果

在本节中,我们将评估拟设的系统。首先,我们在实体机器人上部署该系统,评估机器人手部操作方块和八角形棱镜的性能。然后,关注系统的各个方面:我们对随机化和具有记忆功能的策略的重要性进行了模型简化测试,以便成功迁移。接下来,我们考虑所提出方法的样本复杂度。最后,我们研究了所提出的视觉位姿估计器的性能,并证明仅使用合成图像就足以获得良好的性能。

6.1 定性结果

在机器人部署和仿真过程中,我们注意到我们的策略很自然地展示了许多可在人类身上发现的抓取动作(见图7)。而且,该策略还自然地发现了许多由机器人社区【37】描述的灵巧的手部操作对策,如手指旋转、手指移动、多手指协调、重力控制使用以及对物体平移力和扭转力的协调应用。值得注意的是,我们并没有直接进行激励:不使用任何人类演示,也不将任何先前代码编码到奖励函数中。

对于精准抓取,我们的策略倾向于使用小手指而不是食指或中指。这可能是因为跟食指、中指和无名指相比,Shadow Dexterous Hand的小手指有额外的自由度,使它更加灵巧。但是人类的食指和中指通常更灵巧。这意味着我们的系统可以重新发现已在人类身上发现的抓握特征,但要让它们更好地适应自身身体的限制和能力。

图7:从我们的策略中学到的不同抓握类型。从左上角到右下角:指尖捏抓、手掌捏抓、三脚架捏抓、四脚架捏抓、五个手指精准捏抓和力量捏抓。按照【18】分类。

我们观察到人类手指旋转和我们的机器手指旋转策略之间的另一个有趣的相似之处,这是一种用两根手指握住一个物体并绕着这个轴旋转的策略。研究发现儿童还没有完全发展好他们的运动技能,因此倾向于使用手指近端或中间指骨旋转物体【44】。只有在以后的生活中,他们才会逐渐转向主要使用远端指骨,这是在成年人中发现的优势策略。有趣的是,我们的策略通常也依赖于使用远端指骨的手指旋转。

在实体机器人的实验中,我们注意到最常见的故障模式是在旋转到腕关节向下时掉落物体。然而,垂直关节是机器人最常见的断裂部位,可能是因为该部位承受的负载最大。考虑到这些困难 ,我们还训练了手腕关节的锁定策略。6我们注意到,这种策略不仅能更好地迁移到实体机器人上,而且似乎能更有意地处理对象,在这种设置中经常出现许多上述的抓取动作。我们观察到的其他故障模式是在试验刚开始就掉落物体(这种情况可解释为错误地识别了某些方面的环境),并因为物体边缘卡在螺纹孔里而卡住了(此类情况我们不做模拟)。

我们鼓励读者观看附带的视频,更好地了解学习行为。

6.2 定量结果

在本节中,我们定量地评估了我们的实验结果。为此,我们测量连续成功旋转的次数,直到物体掉落(目标在80秒内没有实现),或者直到完成50次旋转。所有结果如表3所示。

表3:仿真实验中和实体机器人连续成功旋转的次数。所有策略都在使用所有随机化的环境中进行了训练。我们进行了100次仿真试验,每个策略在实体机器人上做10次试验。每次试验在物体掉落、完成50次旋转或超时时终止。在物理试验中,不同时间对实体机器人进行试验。

我们的研究结果使我们能够直接比较每个任务在仿真和真实机器人上的性能。例如,在仿真试验中操作一个方块能获得50次成功中位数,而在物理设置中,成功中位数仅为13。这是我们观察到的总体趋势:虽然随机化和校准缩小了现实差距,但是差距仍然存在,

实际系统的性能仍比仿真系统的性能差。我们将在第6.3节更详细地讨论个体随机化的重要性。

当使用视觉进行位姿估计时,我们在仿真试验和真实机器人上都获得了稍差的结果。这是因为即使是在仿真试验中,我们的模型仍必须进行迁移,因为它仅受了Unity渲染图像的训练,但是在仿真试验中我们使用MuJoCo呈现评估(因此这是一个仿真到仿真的迁移问题)。就真实机器人而言,我们的视觉模型比PhaseSpace的位姿估计稍微差些。然而,两者之间的差异非常小,这表明仅在仿真中训练视觉模型足以在真实机器人上获得良好的性能。进行视觉位姿估计时,我们发现使用白色背景并在试验间用喷漆除尘布擦拭对象有助于移除机器手上的碎屑。

我们也评估了在第二类对象——八角形棱镜上的性能。为此,我们微调了相同随机分布环境中的训练方块旋转控制策略,但是使用八角形棱镜作为目标对象而不是方块。虽然我们的随机化最初都是针对方块设计的,但是我们能够学习到成功迁移的策略。然而跟方块相比,在仿真和真实机器人上仍然存在性能上的差距。这表明进一步的调优是必要的,引入额外的随机化可以改进对物理系统的迁移。

我们还对一个球体进行了简单试验,但是连续几次旋转都失败了,这可能是因为我们没有对任何与滚动行为相关的MuJoCo参数进行随机化,或是因为滚动物体对手部未建模的缺陷(比如螺纹)更敏感。训练一个可以处理多个对象的统一策略也很有趣,但是我们把它留到以后再研究。 

表3中获得的研究结果是一个挑战,因为机器人在试验过程中发生了断裂。修复机器人需要时间,而且经常会改变系统的某些方面,这就是为什么在不同的时间获得结果的原因。一般来讲,我们发现硬件损坏问题是我们在这项工作中必须克服的关键挑战之一。

6.3 随机化简化

在第3.2节中,我们详细列出了一组参数,随机并添加在模拟器中未建模的效果。在本节中,我们将证明这些添加到模拟器的对迁移来说至关重要。我们在各种随机化的环境中训练了5个独立的RL策略:所有随机化(基准)、没有观测噪声、没有未建模影响、没有物理现象随机化且没有随机化(基本模拟器,例如没有域随机化)。

在仿真试验中增加随机化或效果并不是不需要成本;在图8中,我们显示了在壁钟时间内绘制的每个环境的仿真训练性能。策略在更困难的随机化环境(例如所有随机化以及没有观测噪声)中训练收敛更慢,因此需要更多计算和模拟经验来训练。然而,在真实机器人上部署这些策略时,我们发现随机化训练对迁移来说至关重要。表4总结了我们的研究结果。具体来说,我们发现所有随机化训练连续实现13个目标的中位数,而没有随机化、没有物理现象随机化和没有未建模影响下进行的训练策略,分别只能实现0个、2个和2个连续目标的中位数。

表4:在不同的随机化环境中,5个策略在实体机器人上分别训练连续成功旋转的次数 前5行使用PhaseSpace 进行物体位姿评估,并在同一机器人上同时进行。每一行的试验都是交错进行的,以防试验期间机器人的状态发生改变。最后两行与前5行的测量时间不同,并使用视觉模型估计物体位姿。

当进行观测噪声随机化时,与其他随机化组相比,其性能差距不明显。我们认为,这是因为我们的动作捕捉系统噪声很小。然而,我们仍要包括这种随机化,因为在组成视觉和控制策略时,其很重要。在这种情况下,物体的位姿估计会有很大噪声。因此,进行观测噪声训练就显得尤为重要。表4中的结果表明情况确实如此,如果不进行观测噪声随机化,性能的中位数将从11.5降至3.5。

绝大部分训练时间都花在了为不同的物理动态制定稳健策略上。在没有随机化的情况下,学习仿真试验中旋转物体需要大约3年的模拟经验,而在完全随机化的仿真中实现相同的性能需要大约100年的经验。在我们的仿真设置中,对应的壁钟时间分别为1.5小时和50小时左右。

6.4 策略记忆效应

我们发现,在随机化仿真试验中,使用记忆功能有助于获得良好的性能。在图9中,我们显示了三种不同RL结构的仿真性能:具有LSTM策略和价值函数的基准、前馈(FF)策略和LSTM价值函数、及FF策略和FF价值函数。我们将带有LSTM价值函数的FF策略结果包括进来,因为更具有表现力的价值函数可能会加快训练,并允许策略在聚合后没有内存的情况下更稳健地进行。然而,我们可以看出基线的性能高于这两种变体,这表明在实际策略中有一定的内存是有益的。

此外,我们还发现LSTM状态对环境随机化有预测作用。尤其是,我们发现,在80%的情况下,在与方块模拟互交5秒后,LSTM的隐藏状态可以预测方块大于还是小于平均值。

为了研究内存增强策略对迁移的重要性,我们在实体机器人上评估了上述相同的三种网络架构。表5总结了我们的研究结果。我们的研究结果表明,具有访问内存的策略可以获得更高的成功旋转的中位数,这表明该策略可能使用内存来适应当前环境。定性地说,我们也发现FF策略经常卡住且超时。

表5: 在所有随机化环境中训练3种不同网络架构的策略在实体机器人上连续成功旋转的次数在实体机器人上,在不同的时间收集每行的结果。

网络架构

平均值

中位数

个体试验(分类)

LSTM策略/LSTM价值(状态)

18.8土17.1

13

50, 41,29, 27,14,12, 6, 4, 4,1

FF策略/LSTM价值(状态)

4.7土4.1

3.5

15, 7, 6, 5, 4, 3, 3, 2, 2, 0

FF策略/FF价值(状态)

4.6土4.3

3

15, 8, 6, 5, 3, 3, 2, 2, 2, 0

6.5 样本复杂度&规模

图10中显示了改变训练中使用CPU内核和GPU的数量时的结果,我们保持每个GPU批量大小固定 ,这样总批大小与GPU数量直接成正比。因为我们可以通过简单使用较少的CPU机器并让GPU等待数据时间更长来线性减慢训练速度,更有益于改变批量大小。我们可以看出,我们的默认设置使用8个GPU优化器和6144个推出CPU内核,实现连续完成20目标,比使用1个GPU优化器和768个推出内核的设置大约快5.5倍。此外,当使用16个GPU时,我们实现连续完成40个目标的速度大约是使用8个默认的GPU设置时的1.8倍。进一步扩展会导致收益递减,但似乎扩展到16个GPU和12288个CPU内核时更接近线性加速。 

图10:我们在仿真试验中当改变训练中的计算量和壁钟训练时间(左)和多年经验消耗的恐慌时来显示性能。使用的批量大小与使用的GPU数量成正比,除因跨优化器机器的梯度同步而导致速度下降之外,每个优化步骤的时间应保持不变。

6.6 视觉性能

在表3中,试验结果表明,在不给目标对象嵌入传感器的情况下,我们可以结合基于视觉的姿势估计器和控制策略成功迁移到真实机器人上。为了更好地理解为什么这是可能的,我们评估了姿势估计器对合成数据和真实数据的精度。在仿真试验中评估系统很容易,因为我们可以生成必要的数据且能够对精确的对象姿势进行比较。相比之下,真实的图像必须通过在我们的机器人平台上基于运行状态的策略来收集。我们使用 PhaseSpace来估计对象的姿势,因此很容易出错。所收集的测试集的结果包括992个实际样本。 我们使用经Unity 和 MuJoCo渲染的测试集进行仿真。MuJoCo投标者没有在训练期间没有使用,因此此评估也可以作为仿真到仿真迁移的一个实例。表6总结了我们的研究结果。

表6:基于视觉的合成和真实数据姿势估计器的性能 

测试集

旋转误差

位置误差

渲染图像(Unity)

2.71°土1.62

3.12mm士1.52

渲染图像(MuJoCo)

3.230土2.91

3.71mm土4.07

真实图像

5.01°土2.47

9.27mm土4.02

本研究结果表明,该模型在测试合成数据时,对旋转和位置预测均获得了较低的误差。10

在用MuJoCo渲染的图像上,只有误差略微增加,这表明成功实现从仿真到仿真的迁移。真实数据误差进一步增加,是由于仿真和现实之间的差距,也是因为噪声、遮挡、不完善的标记位置和传感器读数延迟等原因,使实际情况更具有挑战性。尽管预测误差大于策略训练期间使用的观测噪声(表7),基于视觉的策略在实体机器人上获得了较好的体现(表3)。

相关工作

为了更容易理解灵巧的手部操作的顶尖技术,我们收集了一组具有代表性的相关工作的视频,并从中创建了一个播放列表11

7.1 灵巧操纵

几十年来,灵巧操纵一直是机器人研究的活跃领域【17, 52, 7, 42, 37】。多年来,人们提出了许多不同的方法和策略。这包括滚动【8,22, 23, 9,13】、滑动【9, 59】、手指步态 【23】、手指跟踪【51】、推【11】、重新抓取【65,12】。对于某些手型,还可以选择旋转【3】、倾斜【15】、翻筋斗【55】、轻敲【26】、两点操作【2】和双手操作【14】等策略。这些方法使用规划,因此需要精确的手和对象模型。在计算轨迹后,该计划通常是开环执行的,因此如果模型不准确,这些方法就很容易失败。12

其他方法采用闭环方法实现灵巧操作,并在执行期间整合传感器反馈,例如触觉感测【60, 34, 35, 36】。虽然这些方法允许在运行过程中纠正错误,他们仍需要合理的机器人运动学和动力学模型,而获得许多自由度的欠驱动机器手可能是一个挑战。

深度强化学习也被成功应用于学习实体机器人的复杂操作技能。指导性的策略搜索【31,33】直接在机器人上学习简单的局部政策,并将它们提炼成一个由神经网络表示的全局策略。另一种方法是同时使用许多实体机器人,以便能够收集足够的经验【20, 32, 27】。

7.2 灵巧的手部操作

由于过去有大量关于灵巧操作的研究,我们将更详细的讨论限制在与我们的灵巧的手部操作工作最紧密相关的设置上。

Mordatch等人【40】和Bai 等人【5】提出了为复杂和动态的手部操作生成轨迹的方法,但是研究结果仅限于仿真。在学习复杂的手部灵巧操作【49, 6】,甚至在使用工具【50】深度强化学习方面也取得了重大进展,但是这些方法也只是在仿真中进行了评估。

相比之下,许多作者直接在机器人上学习灵巧的手部操作策略。 Hoof 等人【67】学习用手部操作 一个简单的三指夹持器,而Kumar等人【30, 29】和Falco等人【16】学习针对更复杂的人形手策略。直接在机器人上学习意味着建模系统不是问题,这也意味着学习只能通过少量的试验来完成。这只有在学习非常简单的(例如线性或局部)策略时才可实现,而这些策略不表现处复杂的行为。

7.3 仿真与真实世界无缝衔接

域适应方法【66,21】、渐进网【53】、学习逆动力学模型【10】都被提出来,以帮助实现仿真与真实世界无缝衔接。所有这些方法都假定可使用真实数据。另一种方法是,使策略本身在使用域随机化仿真训练过程中具有更强的适应性。域随机化用于无人机【54】的对象姿势估计【62】和视觉策略的迁移。这个想法也被扩展到动态随机化【4, 61, 68】,学习迁移至相似但不同动态环境中的稳健策略。域随机化还被用来针对相对简单的机器人,设计牢固的抓取【38, 39, 63】,并迁移习得的运动【61】和抓取【69】策略。Pinto等人【48】提出使用对抗训练获得更多稳健策略,并证明它也有助于迁移到实体机器人上【47】。

结论

在本研究中,我们证明了RL在模拟器上习得的手部操作技巧能在物理五指机器手上达到前所未有的灵巧水平。由于模拟器的广泛随机化、大规模的分布式训练基础设计、具有记忆功能的策略和能在模拟器上进行建模的感应模式选择使其有可能现实。我们的研究结果表明,与普遍的看法相反,当代深度RL算法可用于解决复杂的现实机器人问题,这些问题是现有的非基于学习的方法无法解决的。

理论卷积神经网络时间递归神经网络机械臂强化学习
3
相关数据
深度强化学习技术

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

概率分布技术

概率分布(probability distribution)或简称分布,是概率论的一个概念。广义地,它指称随机变量的概率性质--当我们说概率空间中的两个随机变量具有同样的分布(或同分布)时,我们是无法用概率来区别它们的。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

L系统技术

L-系统是匈牙利生物学家Aristid LinderMayer于1968年提出的。.L-系统的本质是一个重写系统,通过对植物对象生长过程的经验式概括和抽象,初始状态与描述规则,进行有限次迭代,生成字符发展序列以表现植物的拓扑结构,并对产生的字符串进行几何解释,就能生成非常复杂的分形图形。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

时间递归神经网络技术

时间递归神经网络 (aka.循环神经网络, RNN) 是一类擅长处理序列数据的神经网络,其单元连接形成一个有向环。一般人工神经网络(ANN)由多层神经元组成,典型的连接方式是在前馈神经网络中,仅存在层与层之间的互相连接,而同层神经元之间没有连接。RNN在此基础上结合了隐藏层的循环连接,从而能从序列或时序数据中学习特征和长期依赖关系。RNN隐藏层的每一单独计算单元对应了数据中某个时间节点的状态,它可以是简单神经元、神经元层或各式的门控系统。 每一单元通过参数共享的层间顺序连接,并随着数据序列传播。这一特性使得RNN中每一单元的状态都取决于它的过去状态,从而具有类似“记忆”的功能,可以储存并处理长时期的数据信号。 大多数RNN能处理可变长度的序列,理论上也可以建模任何动态系统。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

噪音技术

噪音是一个随机误差或观测变量的方差。在拟合数据的过程中,我们常见的公式$y=f(x)+\epsilon$中$\epsilon$即为噪音。 数据通常包含噪音,错误,例外或不确定性,或者不完整。 错误和噪音可能会混淆数据挖掘过程,从而导致错误模式的衍生。去除噪音是数据挖掘(data mining)或知识发现(Knowledge Discovery in Database,KDD)的一个重要步骤。

对抗训练技术

对抗训练涉及两个模型的联合训练:一个模型是生成器,学习生成假样本,目标是骗过另一个模型;这另一个模型是判别器,通过对比真实数据学习判别生成器生成样本的真伪,目标是不要被骗。一般而言,两者的目标函数是相反的。

无人机技术

无人机(Uncrewed vehicle、Unmanned vehicle、Drone)或称无人载具是一种无搭载人员的载具。通常使用遥控、导引或自动驾驶来控制。可在科学研究、军事、休闲娱乐用途上使用。

策略搜索技术

策略搜索是强化学习中的一个子领域,其重点是为给定的策略找到合适的表示参数。它非常适合机器人学,因为它可以处理高维状态和动作空间这类机器人学习中的主要挑战。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

暂无评论
暂无评论~