机器人操纵的深度强化学习的制作方法

文档序号:17941909发布日期:2019-06-18 23:11阅读:215来源:国知局
机器人操纵的深度强化学习的制作方法

许多机器人被编程以利用一个或多个末端执行器来操纵一个或多个对象。例如,机器人可以利用末端执行器向对象施加力并引起该对象的移动。例如,机器人可以利用抓取末端执行器或其他末端执行器来转移对象,而不一定要抓取该对象。而且,例如,机器人可以利用诸如“冲击(impactive)”抓取器或“侵入(ingressive)”抓取器的抓取末端执行器(例如,使用钉、针等物理地穿透对象)来从第一位置拾取对象,将该对象移动到第二位置,以及在第二位置处放下该对象。



技术实现要素:

下面描述的实施方式提供了当执行一个或多个任务时,一个或多个机器人的操作性能的改进。如本文所述,使用强化学习过程来改进一个或多个机器人的性能,这促进了用于使用一个或多个机器人执行特定物理任务的最佳方法或策略的快速学习。机器人能够使用学习到的策略来提高任务执行的效率。例如,随着所描述的强化学习过程的进行,物理任务可以由机器人更快地和/或以更少的电力消耗来执行。因为机器人性能的其他方面随着学习过程得到改进,这种物理任务可以附加地或可替换地被更安全地执行,或者可以在定义的安全参数内继续进行。

从以下公开中可以明显看出,学习过程可以是迭代的。当新的迭代被传递到负责控制机器人的物理动作的(多个)计算装置时,一个或多个机器人可以根据针对特定任务的策略/方案的每个新的改进的迭代来执行。如此以来,在由机器人执行的物理动作方面,上述效率增益可以随着学习过程的继续而频繁发生。总的来说,机器人性能改进的速率以及所得到的效率增益可以特别快,并且可以使得机器人以最佳方式在比使用其他学习技术更短的时间内完成物理任务。将理解,这使得在较早阶段体验到上述优点,诸如机器人的改进的功耗。这将在下面描述,例如,作为在不同计算机处理器中用于一个或多个机器人的训练线程和经验线程之间解耦的解释的一部分。具体地,据解释,跨异步地池化它们的策略更新的多个机器人并行化训练算法可以得到在给定数量的训练迭代之后更精确和/或稳健的策略神经网络。

强化学习的目的是控制试图最大化奖励函数的代理(agent),该奖励函数在机器人技能(本文也称为任务)的上下文中,表示机器人应该尝试完成什么的用户提供的定义。在时间t的状态xt处,代理根据其策略π(ut|xt)选择并执行动作ut,根据机器人的动态p(xt|xt,ut)转换到新状态xt,以及接收奖励r(xt,ut)。强化学习的目的是找到最大化来自初始状态分布的预期奖励之和的最佳策略π*。基于奖励函数来确定奖励,如上所述,该奖励函数取决于待完成的机器人任务。因此,机器人上下文中的强化学习寻求学习给定机器人任务的执行的最佳策略。

本文公开的实施方式利用深度强化学习来训练策略网络,该策略网络参数化策略,以用于基于当前状态来确定机器人动作。该当前状态可以包括机器人的状态(例如,机器人的关节的角度、机器人的(多个)末端执行器的(多个)位置和/或它们的时间导数)和/或机器人环境中一个或多个组件的当前状态(例如,机器人的环境中(多个)传感器的当前状态、机器人的环境中(多个)目标对象的(多个)当前姿态)。策略网络可以是神经网络,诸如深度神经网络。例如,策略网络可以是神经网络,该神经网络接受当前状态作为输入,并且基于神经网络的输入和学习的策略参数来生成指示将要实施的动作的输出。例如,输出可以指示将要提供给机器人的致动器中的每一个致动器的速度命令,或者将要施加给机器人的致动器中的每一个致动器的扭矩。机器人可以通过在机器人的每个控制周期将当前状态应用于策略神经网络、通过使用策略神经网络处理该当前状态生成输出、以及实施控制命令以实行由该输出指示的动作,来利用策略神经网络。然后,可以将该控制命令的实施之后的状态用作下一控制周期的当前状态。

本文公开的实施方式从同时操作的多个机器人收集经验数据。每个机器人在作为对执行任务的每次探索并且各自在情节(episode)期间基于策略网络和策略网络的当前策略参数被引导的情节的迭代执行期间生成经验数据的实例。例如,在情节期间,机器人可以在该情节期间的机器人的多个控制周期中的每个控制周期生成经验数据的实例。经验数据的每个实例可以指示对应的:当前/开始状态、从开始状态转换到的后续状态、执行以从开始状态转换到后续状态的机器人动作(其中动作基于开始状态到策略网络的应用及其当前策略参数)、以及可选地对动作的奖励(如基于奖励函数所确定的)。所收集的经验数据在情节期间生成,并用于通过基于一批所收集的经验数据迭代地更新策略网络的策略参数来训练策略网络。此外,在由机器人执行的多个情节中的每一个情节的执行之前,可以提供(或检索)当前更新的策略参数,以供情节的执行时利用。例如,每个机器人可以在执行其情节中的每一个情节之前从训练的最近迭代获得更新的策略参数,并且在执行该情节时使用更新的策略参数。因此,每个情节的经验数据基于具有来自训练的最近(相对于情节的开始)迭代的更新的策略参数的策略网络。

在许多实施方式中,策略网络的训练相对于从多个机器人生成和收集经验数据是异步的。也就是说,训练/更新策略网络的(多个)线程与从多个机器人生成和/或收集经验数据的(多个)线程解耦。例如,训练/更新线程可以在一个或多个处理器上操作,并且经验线程可以在与操作训练/更新线程的一个或多个处理器分离的一个或多个附加处理器上操作。训练线程和经验线程之间的解耦可以确保训练速度和经验收集速度的差异不会停止生成经验数据的机器人的控制程序,这些控制程序通常要求以固定频率发送控制。换句话说,解耦可以使得经验数据收集能够通过对应的经验线程继续进行,而不会停止用于训练目的的这些线程。此外,解耦使得训练线程能够与经验线程并行操作,异步地和迭代地更新策略网络的策略参数,并且迭代地提供更新的策略参数以用于情节。并且,在许多实施方式中,(多个)训练线程可以操作大于机器人的一个或多个(例如,全部)控制频率(例如,20hz)的频率(例如,60hz)。在这些实施方式中,通过从并行操作的多个机器人获得经验数据并通过在(多个)单独的线程中异步地执行训练,可以减少现实世界(例如,墙上的时钟)训练时间(相对于不利用来自多个机器人的经验数据的技术)。例如,训练可以在没有任何(或没有更少)延迟的情况下进行,其中该延迟是由于缓冲区中没有新的经验数据可用。并且,例如,单独的线程可以防止需要停止经验数据收集来使训练能够进行,反之亦然。

此外,利用来自多个机器人的经验数据以及解耦训练和经验收集线程可以在给定次数的训练迭代之后产生比如果不利用这种技术更精确和/或更稳健的模型。这可以是由于,例如,机器人在给定情节中生成的经验数据基于策略参数,其中该策略参数基于以下两者来更新:来自机器人的经验数据的过去实例、和来自在并行操作的(多个)其他机器人的经验数据的过去实例。例如,在机器人的第三情节中,在第三情节中利用的策略参数不仅可以基于来自机器人的第一情节和/或第二情节的经验数据,还可以基于来自并行操作的(多个)机器人的第一情节和/或第二情节的经验数据。以这种方式,在第三情节中生成的经验数据基于具有更新的策略参数的策略网络,该更新的策略参数是鉴于来自不止两个先前情节的经验数据来训练的,这可以使得在第三情节中生成导致比如果仅鉴于来自两个先前情节的经验数据来训练更新策略参数更快收敛的经验数据。

在本文描述的各种实施方式中,生成经验数据的多个机器人中的一个或多个可以相对于彼此异步操作,和/或更新的策略参数可以在情节执行之前由机器人异步地提供(或检索)。以这种方式,提供给多个机器人中的每一个机器人的更新的策略参数可以相对于彼此变化。例如,在第一时间处,第一机器人可以获得更新的策略参数,以用于在将要由第一机器人执行的情节中使用。在该第一时间处,第二机器人仍然可以执行先前情节。在第一时间之后的第二时间处,然后第二机器人可以获得进一步更新的策略参数,以用于在将要由第二机器人执行并且紧接在先前情节之后的情节中。在该第二时间处,(由于在第一和第二时间之间进行的进一步训练)所获得的进一步更新的策略参数可以不同于由第一机器人在第一时间处获得的更新的策略参数。以这种方式,由第一机器人在第一时间处获得的更新的策略参数不被提供给第二机器人使用。相反,获得了更多最新的(moreuptodate)进一步更新的策略参数。

在一些实施方式中,提供了一种包括在由多个机器人中的每一个机器人执行多个情节期间执行以下步骤的方法,其中该情节中的每一个情节是基于表示对任务的强化学习策略的策略神经网络来执行该任务的探索:将机器人在情节期间生成的机器人经验数据的实例存储在缓冲区中,其中该机器人经验数据的实例中的每一个在情节中对应的情节期间生成,并且至少部分地在使用具有对应情节的策略神经网络的对应策略参数的策略神经网络生成的对应输出上生成;迭代地生成策略神经网络的更新的策略参数,其中迭代地生成的迭代中的每次迭代包括在迭代期间使用在缓冲区中一组的机器人经验数据的实例中的一个或多个来生成更新的策略参数;并且由机器人中的每一个机器人结合由机器人执行的多个情节中的每一个情节的开始,更新将由机器人在情节中使用的策略神经网络,其中更新策略神经网络包括使用迭代地生成更新的策略参数的最近迭代的更新的策略参数。

本文公开的这些和其他实施方式可以包括以下特征中的一个或多个。

更新的策略参数中的每一个为策略神经网络的对应层的对应节点定义对应值。

对于机器人中的给定机器人的机器人经验数据的实例可以以比迭代地生成更新的策略参数的生成频率更低的频率的第一频率存储在缓冲区中。

对于机器人中的每一个机器人的机器人经验数据的实例可以以其每个都比迭代地生成更新的策略参数的生成频率更低的对应频率存储在缓冲区中。

将机器人经验数据的实例存储在缓冲区中可以由第一线程中的一个或多个处理器执行,并且迭代地生成可以由与第一线程分离的第二线程中的一个或多个处理器执行。例如,第一线程可以由第一组一个或多个处理器执行,并且第二线程可以由第二组一个或多个处理器执行,其中第二组与第一组不重叠。

迭代地生成的迭代中的每次迭代可以包括在生成迭代期间、鉴于在缓冲区中的一组机器人经验数据的实例中的一个或多个、基于最小化损失函数来生成更新的策略参数。

迭代地生成的迭代中的每次迭代可以包括在生成迭代期间,鉴于在缓冲区中的一组机器人经验数据的实例中的一个或多个的离策略(off-policy)学习。例如,离策略学习可以是q学习,诸如利用归一化优势函数(normalizedadvantagefunction,naf)算法或深度确定性策略梯度(deepdeterministicpolicygradient,ddpg)算法的q学习。

经验数据的实例中的每一个可以指示对应的:开始机器人状态、从开始机器人状态转换到的后续机器人状态、执行以从开始机器人状态转换到后续机器人状态的动作、以及对该动作的奖励。执行以从开始机器人状态转换到后续机器人状态的动作可以是基于使用具有对于对应情节的更新的策略参数的策略神经网络处理开始机器人状态而生成的。对该动作的奖励可以是基于强化学习策略的奖励函数而生成的。

方法还可以包括:基于一个或多个标准,终止多个情节的执行并终止迭代地生成;以及向策略神经网络提供更新策略参数的最近生成的版本,以供一个或多个附加机器人使用。

在一些实施方式中,提供了一种方法,该方法包括:由给定机器人的一个或多个处理器:执行基于具有第一组策略参数的策略网络执行任务的探索的给定情节;提供在给定情节期间基于策略网络生成的机器人经验数据的第一实例;以及在由给定机器人执行基于策略网络执行任务的后续情节之前:用更新的策略参数替换第一组的一个或多个策略参数,其中该更新的策略参数是基于机器人经验数据的附加实例生成的,该附加实例是在由附加机器人执行任务的探索的附加机器人情节期间由附加机器人生成的;其中,后续情节紧接着第一情节,并且其中在后续情节中基于策略网络执行任务包括使用更新的策略参数来代替替换的策略参数。

本文公开的这些和其他实施方式可以包括以下特征中的一个或多个。

在一些实施方式中,该方法可以进一步包括由一个或多个附加处理器并且在后续情节的执行期间生成进一步更新的策略参数,其中,生成进一步更新的策略参数基于在第一情节期间生成的机器人经验数据的第一实例中的一个或多个。该方法还可以包括提供进一步更新的策略参数,以供附加机器人在由附加机器人执行对应情节时使用。在这些实施方式中的一些中,附加机器人在由给定机器人执行后续情节期间开始执行对应情节和/或在由给定机器人执行任何情节时给定机器人不使用进一步更新的策略参数。在这些实施方式中的一些中,该方法还可以包括:由一个或多个附加处理器生成更进一步更新的策略参数,其中,更进一步更新的策略参数在后续情节的执行期间生成,并且在进一步更新的策略参数生成之后生成;以及提供更进一步更新的策略参数,以供给定机器人在由给定机器人执行基于策略网络执行任务的进一步后续情节时使用。进一步后续情节紧跟着所述后续情节。在这些实施方式的一些版本中:给定机器人在由附加机器人执行对应情节期间开始执行进一步后续情节;在由附加机器人执行任何情节时附加机器人不利用更新的策略参数和更进一步更新的策略参数;和/或在由附加机器人执行任何情节时附加机器人不利用更新的策略参数。

策略网络可以包括神经网络模型或由神经网络模型组成,并且更新的策略参数中的每一个可以为神经网络模型的对应层的对应节点定义对应值。

在一些实施方式中,该方法还包括,在执行任务的给定情节的执行期间:在来自策略网络的输出的给定迭代中,确定违反给定机器人的一个或多个标准;修改给定迭代的输出,使得不再违反一个或多个标准;以及基于修改的输出生成经验数据的实例的给定实例。标准可以包括以下中的一个或多个:关节位置限制、关节速度限制和末端执行器位置限制。

在一些实施方式中,该方法还包括通过以下方式在给定情节期间生成探索中的给定探索:将当前状态表示作为输入应用到策略网络,该当前状态表示指示至少给定机器人的当前状态;通过使用策略网络处理输入来生成输出;以及基于输出向给定机器人的一个或多个致动器提供控制命令。基于输出向致动器提供控制命令可以包括:通过向输出添加噪声来生成修改的输出;以及基于修改的输出提供控制命令。输出可以包括机器人的多个致动器中的每一个的速度或扭矩,并且提供控制命令可以包括提供使得致动器施加速度或扭矩的控制命令。

经验数据的第一实例中的每一个指示对应的:开始机器人状态、从开始机器人状态转换到的后续机器人状态、执行以从开始机器人状态转换到后续机器人状态的动作、以及对该动作的奖励。

在一些实施方式中,提供了一种方法,该方法包括接收由多个机器人中的给定机器人生成的机器人经验数据的给定实例。在基于在生成给定实例时给定机器人利用的策略网络的策略参数的给定版本执行任务的探索的给定情节期间,生成机器人经验数据的给定实例。该方法还包括从多个机器人中的附加机器人接收机器人经验数据的附加实例,该附加实例在由附加机器人基于策略网络执行任务的探索的情节期间生成。该方法还包括,在给定机器人和附加机器人继续执行任务的探索的情节时,基于至少部分地基于给定实例和附加实例的策略网络的训练,生成所述策略网络的策略参数的新版本。该方法还包括向给定机器人提供策略参数的新版本,用于执行基于策略参数的新版本由给定机器人执行任务的探索的紧接的后续情节。

本文公开的这些和其他实施方式可以包括以下特征中的一个或多个。

接收给定实例发生在从给定机器人接收经验数据的实例的多次经验数据迭代的一次迭代中,其中,多次经验数据迭代以第一频率发生。训练强化模型以生成更新的参数包括执行多次训练迭代,该多次训练迭代包括:第一训练迭代,至少部分地基于给定实例和附加实例的策略网络的训练;以及一次或多次附加的训练迭代,基于来自多个机器人的经验数据的更进一步的实例的策略网络的训练。训练迭代以第二频率发生,第二频率是比经验数据迭代更高的频率。

在一些实施方式中,提供了一种方法,该方法包括迭代地接收由异步且同时操作的多个机器人生成的经验数据的实例。在基于策略神经网络的任务探索的对应情节期间,由多个机器人中的对应机器人生成经验数据的实例中的每一个。该方法还包括基于从多个机器人接收的经验数据迭代地训练策略网络,以在每次训练迭代中生成策略网络的一个或多个更新的参数。该方法还包括迭代地且异步地向机器人提供更新的参数的实例,用于在经验数据的实例所基于的任务探索的情节之前更新机器人的策略神经网络。

其他实施方式可以包括存储由一个或多个处理器(例如,一个或多个中央处理单元(centralprocessingunit,cpu)、一个或多个图形处理单元(graphicsprocessingunit,gpu)、和/或一个或多个张量处理单元(tensorprocessingunit,tpu))可执行的指令的非暂时性计算机可读存储介质,以执行诸如上述和/或本文其他地方描述的一个或多个方法的方法。又一实施方式可以包括包括可操作来执行存储的指令以执行诸如上述和/或本文其他地方描述的一个或多个方法的方法的一个或多个处理器的一个或多个计算机和/或一个或多个机器人的系统。

应当理解,本文更详细描述的前述构思和附加构思的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开结尾的所要求保护的主题的所有组合被认为是本文公开的主题的一部分。

附图说明

图1示出了可以实施本文公开的实施方式的示例环境。

图2示出了图1的机器人之一以及机器人的抓取末端执行器沿着路径移动的示例。

图3是示出由机器人执行情节的示例的流程图。

图4是示出存储经验数据的实例的示例方法的流程图。

图5是示出训练以更新策略网络的参数的示例方法的流程图。

图6示意性地描绘机器人的示例架构。

图7示意性地描绘计算机系统的示例架构。

具体实施方式

强化学习的机器人应用通常会损害学习过程的自主性,有利于实现对真实物理系统实用的训练时间。强化学习过程的这种损害可能是由于引入了手工设计的策略表示和/或人工提供的演示。

本说明书的实施方式针对深度强化学习方法的扩展以提高一个或多个机器人的操作性能。如前所述,实施方式提供了操作优势,诸如由机器人执行的物理动作的效率增益,并且还减轻了强化学习的现有机器人应用的缺点。这些可以包括减轻对手工设计的策略表示的需求(例如,“基于模型的”策略表示)和/或减轻对人工提供的演示的需求。在本文描述的一些实施方式中,通过深度强化学习来训练参数化策略的策略神经网络,这减轻了对手工设计的策略表示的需求。此外,策略神经网络可以是“无模型的”,因为它不明确地学习机器人环境的模型。作为一个具体的示例,在一些实施方式中,基于深度q函数(deepq-function)的离策略训练的深度强化学习算法可以扩展到复杂的3d操纵任务,并且可以足够有效地学习深度神经网络策略,以基于由真实物理机器人生成的经验数据来训练。在这些实施方式中的一些中,通过跨异步地池化它们的策略更新的多个机器人并行化算法可以减少现实世界(例如,墙上的时钟)训练时间。在这些实施方式中的一些中,跨异步地池化它们的策略更新的多个机器人并行化算法可以附加地和/或替代地产生在给定数量的训练迭代之后比如果未利用这种并行化更精确和/或更稳健的策略神经网络。这可以是由于,例如,机器人在给定实例中生成的经验数据基于策略参数,其中该策略参数基于以下两者来更新:来自机器人的经验数据的过去实例、和来自并行操作的(多个)其他机器人的经验数据的过去实例。此外,本文公开的技术的一些实施方式使得能够在真实机器人上学习三维(“three-dimensional,3d”)机器人操纵任务(例如,开门任务、取和放任务),而无需任何先前的演示或手动设计的(例如,“基于模型的”)策略表示。

如下文更详细描述的,在各种实施方式中,离策略强化学习方法(例如,基于深度q函数的离策略训练的q学习)被扩展以从头开始学习复杂的操纵策略。在这些不同实施方式中的一些中,复杂的操纵策略在没有用户提供的演示的情况下来学习和/或使用不要求任务特定的领域知识的神经网络表示来学习。并且,在这些不同实施方式中的一些中,使用诸如深度确定性策略梯度算法(deepdeterministicpolicygradient,ddpg)或归一化优势函数算法(normalizedadvantagefunction,naf)的离策略深度q函数算法来学习策略。例如,可以利用异步深度强化学习,诸如使用跨多个真实物理机器人的并行naf算法的异步深度强化学习。这可以使能在真实机器人平台上的样本有效训练,可以通过使用多个机器人的共享经验使能在训练中更高的时间效率,和/或可以由于多个机器人和/或它们的环境之间的差异而使能更稳健的训练。训练的提高的时间效率使得,例如,真实物理机器人使用改进的策略以在较早时间执行物理任务。这带来了以下形式的技术优势:例如,在较早阶段机器人的提高的功耗,和/或,例如,由于机器人的策略和得到的物理动作的早期改进而使机器人关节的总磨损率较低。

在来自多个机器人的池化经验(集体机器人学习)的一些过去的应用中,在模拟时间低廉,并且训练由神经网络反向传播主导的假设下,这些应用寻求减少总体训练时间。相反,在经验昂贵并且神经网络反向传播相对廉价的情况下,当基于来自真实物理机器人的数据进行训练时,该描述的一些实施方式寻求最小化训练时间。例如,本文公开的各种实施例从彼此异步操作的多个机器人收集经验数据。此外,各种实施方式利用收集的经验数据,与多个机器人的操作异步(但同时地)训练策略神经网络。例如,可以利用从机器人之一的情节收集的经验数据的缓冲区来更新策略神经网络,并且在执行对应的下一情节之前,提供来自更新的策略神经网络的更新的策略参数以用于由多个机器人中的一个或多个实施。以这种方式,经验数据的收集可以是在多个机器人之间异步的,并且是与策略神经网络的更新异步的。然而,多个机器人各自都可以在每个情节处利用更新的策略参数,其中这些更新的策略参数基于来自机器人的过去情节和其他机器人的过去情节的经验数据。由于跨多个机器人平台上同时收集经验,所以这种异步执行和神经网络训练可以实现总体训练时间的加速。

在真实的机器人环境中,具体地,具有接触事件的真实的机器人环境中,环境动力学通常不可用或无法精确建模。鉴于此,本文公开的实施方式集中于无模型强化学习,其包括策略搜索方法和值迭代方法。虽然策略搜索方法提供了优化真实目标的直接方法,但是由于在策略(on-policy)学习,它们通常要求比值迭代方法多得多的数据。因此,本文公开的一些实施方式具体集中于值迭代方法,诸如基于用函数逼近的q学习的值迭代方法。值迭代方法的两个示例是ddpg和naf,它们将深度q学习扩展到连续的动作空间,并且由于例如通过重放缓冲区的离策略学习、比竞争策略搜索方法更具样本效率。

强化学习的目的是控制试图最大化奖励函数的代理,在机器人技能(本文也称为任务)的上下文中,该奖励函数表示机器人应该尝试完成什么的用户提供的定义。在时间t的状态xt处,代理根据其策略π(ut|xt)选择并执行动作ut,根据动态p(xt|xt,ut)转换到新状态xt,以及接收奖励r(xt,ut)。在本文描述的实施方式中,考虑了无限期折扣回报(infinite-horizondiscountedreturn)问题。无限期折扣回报问题的目标是从时间t到t的γ折扣的未来回报,由给出。目的是找到最佳策略π*,该最佳策略π*最大化来自初始状态分布的预期回报之和,由给出。

在强化学习方法中,与在策略变体相比,诸如q学习的离策略方法可以提供数据效率增益。这对机器人应用可以是有益的。q学习通过在学习策略的q函数和通过贪婪地(greedily)最大化q函数更新策略之间迭代,来学习贪婪确定性策略π(ut|xt)=δ(ut=μ(xt))。参数化行为值(action-value)函数,β是任意探索策略,以及pβ是由β引起的状态访问,学习目标是最小化bellman误差,其中目标时间yt固定为:

对于连续的动作问题,对于由深度神经网络参数化的q函数,策略更新步骤可能是棘手的。因此,本文描述的各种实施方式中,可以利用用函数逼近的q学习的扩展。用函数逼近的q学习的扩展的两个示例是ddpg和naf。ddpg通过采用行动者-评价(actor-critic)的方法来回避该棘手的问题,而naf将q函数的类别限制在下面的表达式中,以使能封闭形式的更新,就像在离散动作的情况下一样。在探索期间,时间相关噪声可以可选地被添加到策略网络输出。

这种强化学习公式可以应用在机器人系统中,以学习由奖励函数定义的各种机器人技能。然而,学习过程通常很耗时。因此,在本文公开的实施方式中,可以利用naf的并行变体或ddpg的并行版本来减轻这些关心的问题中的一个或两个。这可以使能在复杂的真实机器人任务中从头开始学习神经网络参数化的q函数。在实际的深度机器人学习应用中,学习时间被受限于真实时间的真实机器人的数据收集速率限制,而不被网络训练速度限制。因此,本文公开的各种实施方式提出使用异步naf来有效地使用多个真实机器人用于数据收集,并提高现实世界的学习速度。当然,当所学习的策略由执行物理任务的机器人执行时,这实现了现实世界机器人性能的更快速的改进,以及如前所述的对应的效率增益。此外,本文公开的各种实施方式在q学习期间实现积极探索(例如,通过向策略网络输出添加大的时间相关噪声以增加探索程度),这在从头开始学习时可以是有益的和/或需要的。在这些实施方式中的一些中,还可以采用技术来实现积极探索,同时最小化或防止违反执行探索的机器人的一个或多个标准(例如,安全标准和/或其他标准)。

在本文公开的异步naf的实施方式中,(多个)训练器线程(更新/训练策略神经网络)与(多个)经验收集器线程(在探索期间各自收集来自一个或多个机器人的经验数据)分离。在这些实施方式中的一些中,训练线程和收集器线程之间的解耦可以确保训练速度的差异不会停止机器人生成经验数据的控制程序,这些控制程序通常要求以固定频率发送控制。在(多个)训练器线程从(由(多个)经验收集器线程填充的)重放缓冲区保持训练时,(多个)经验收集器线程各自在每一情节开始时将它们的策略参数与(多个)训练器线程同步(例如,用在训练线程的最近迭代中生成的更新的参数来更新它们的策略神经网络),在机器人上执行命令,以及将经验数据的实例推入重放缓冲区。

下面呈现的是用于使用n个收集器线程和一个训练线程执行异步naf的一个示例算法的概述。尽管示例算法被呈现为具有一个训练线程,但是在一些实施方式中,可以提供多个训练线程(例如,跨多个线程的分布式训练)。

//训练器线程

随机初始化归一化的q网络

其中,

利用初始化目标网络

初始化共享重放缓冲区

对于(for)迭代=l,/进行(do)

从r中采样随机一小批m个转换

通过最小化损失(如下)来更新权重

更新目标网络:

结束(endfor)

//收集器线程n,n=1...n

随机初始化策略网络

对于(for)情节=1,m进行(do)

同步策略网络权重

初始化随机过程以用于动作探索

接收初始观察状态x1~p(x1)

对于(for)t=1,t进行(do)

选择动作

执行ut并观察rt和xt+1

发送转换(xt,ut,rt,xt+1)到r(共享重放缓冲区)

结束(endfor)

结束(endfor)

如本文所述,在各种实施方式中,神经网络可以对行为值函数和策略进行参数化。在这些实施方式中的一些中,在生成指示将基于策略实施的动作的输出时,各种状态表示可以用作模型的输入。该状态表示可以指示机器人的状态,以及可选地指示一个或多个环境对象的状态。作为一个示例,机器人状态表示可以包括关节角度和末端执行器位置,以及它们的时间导数。在一些实施方式中,成功信号(例如,目标位置)可以被附加到机器人状态表示。如本文所述,成功信号可以用于确定对动作和/或其他目的的奖励。具体的成功信号将取决于正在进行强化学习的任务。例如,对于到达任务,成功信号可以是末端执行器的目的/目标位置。作为另一示例,对于开门任务,成功信号可以包括门关闭时的把手位置和附接到门框的传感器(例如,附接到门框的惯性测量单元)的四元数测量值。在各种实施方式中,标准前馈网络可以用作策略神经网络以参数化行为值函数和策略。作为一个示例,具有100个单元大小的两个隐藏层网络可以各自用于参数化naf中的m(x)、l(x)(p(x)的柯列斯基分解)和v(x)以及ddpg中m(x)和q(x;u)。对于ddpg中的q(x;u),动作向量u可以作为另一输入被添加到第二隐藏层,随后是线性投影。relu可用作隐藏激活,并且双曲线正切(tanh)可以用于仅策略网络m(x)中的最终层激活,以限定动作范围。

如本文所述,在一些实施方式中,可以采用技术来实现积极探索,同时最小化或防止违反机器人执行探索的一个或多个标准(例如,安全标准和/或其他标准)。在这些实施方式中的一些中,标准可以包括机器人的每个关节的速度限制、机器人的每个关节的位置限制、和/或机器人的其他运动学和/或动力学约束。例如,如果机器人在探索期间的命令的(commanded)输出(例如,通过正在使用的策略网络)指示将超过其速度限制的关节的速度,则该速度可以在实施输出之前被修改(例如,缩小到速度限制),或者,可替换地,可以抛出错误,并且可以开始新情节探测。

在一些实施方式中,末端执行器位置的边界球体(boundingsphere)(或(多个)其他边界形状)可以用作标准。如果机器人在探测期间的命令的输出将机器人的末端执行器发送到边界球体之外,则机器人的正向运动学可以用于将命令的速度加上一些校正速度投影到球体表面上。可以使用附加和/或替代标准。例如,当执行探索以学习诸如开门/关门的某些任务时,可以提供标准来防止机器人对某些对象(例如,门)推得太用力。例如,可以在门的关闭位置前方几厘米处添加额外的边界平面,和/或可以向机器人的一个或多个关节添加扭矩限制(例如,使得如果由于与门或把手的接触而不能实现命令的速度,则机器人将不会施加过量的扭矩)。

现在参考附图,提供了上述的附加描述和附加实施方式。图1示出了示例环境,其中可以实施本文公开的实施方式。示例机器人180a和180b被包括在图1中。机器人180a和180b是具有多个自由度的“机器人臂”,使得通过机器人的移动,抓取末端执行器182a和182b能够沿着多个潜在路径中的任何路径来回移动(traversing),以将抓取末端执行器182a和182b定位在期望的位置。例如,参考图2,示出了机器人180a沿着路径201来回移动其末端执行器的示例。图2包括机器人180a的幻像和非幻像图像,其示出了机器人180a及其末端执行器在沿着路径201来回移动时撞击的一组姿态中的两个不同姿态。再次参考图1,机器人180a和180b各自进一步控制它们对应的抓取末端执行器182a、182b的两个相对的“爪(claw)”,以在至少打开位置和关闭位置(和/或可选地多个“部分关闭”位置)之间致动爪。

示例视觉传感器184a和184b也在图1中示出。在图1中,视觉传感器184a相对于机器人180a的基座或其他静止参考点以固定姿态安装。视觉传感器184b也相对于机器人180b的基座或其他静止参考点以固定姿态安装。如图1所示,视觉传感器184a相对于机器人180a的姿态不同于视觉传感器184b相对于机器人180b的姿态。如本文所述,在一些实施方式中,这可以有利于提供由机器人180a和/或180b中的每一个生成的经验数据的多样性(如果经验数据至少部分受到来自视觉传感器184a和184b的传感器数据的影响)。视觉传感器184a和184b是可以生成与传感器视线内的(多个)对象的形状、颜色、深度和/或其他特征相关的图像或其他视觉数据的传感器。视觉传感器184a和184b可以是例如专题照相机、立体照相机和/或3d激光扫描仪。3d激光扫描仪包括发射光的一个或多个激光器和收集与发射光的反射相关的数据的一个或多个传感器。3d激光扫描仪可以是例如飞行时间3d激光扫描仪或基于三角测量的3d激光扫描仪,并且可以包括位置敏感检测器(positionsensitivedetector,psd)或其他光学位置传感器。

视觉传感器184a具有机器人180a的工作空间的至少一部分的视野,诸如包括示例抹刀191a的工作空间的一部分。尽管抹刀191a的搁置(resting)表面没有在图1中示出,但是它可以搁置在桌子、箱子和/或(多个)其他表面上。在其他实施方式中,如本文所述,在机器人180a执行的一个或多个情节期间,可以提供更多对象、更少对象、附加对象和/或替代对象。情节中的每一个情节可以是在执行任务时的探索,该任务涉及抹刀191a和订书机191b中对应的动作(例如,触摸对象,“拾取和放置”对象)。可以提供附加的和/或替代的对象。例如,对于“开门”任务,门可以设置在机器人180a和180b中的每一个的环境中。视觉传感器184b具有机器人180b的工作空间的至少一部分的视野,诸如包括示例订书机191b的工作空间的一部分。尽管订书机191b的搁置表面没有在图1中示出,但是它可以搁置在桌子、箱子和/或(多个)其他表面上。在其他实施方式中,如本文所述,在机器人180b执行的一个或多个情节期间,可以提供更多对象、更少对象、附加对象和/或替代对象。

尽管在图1中示出了具体的机器人180a和180b,但是可以使用附加的和/或替代的机器人,包括类似于机器人180a和180b的附加机器人臂、具有其他机器人臂形式的机器人、具有人形形式的机器人、具有动物形式的机器人、经由一个或多个轮子移动的机器人(例如,自平衡机器人)、潜水器机器人、无人驾驶飞行器(“uav,unmannedaerialvehicle”)等等。并且,尽管图1中示出了具体的抓取末端执行器,但是也可以使用附加的和/或替代的末端执行器。例如,可以使用不能抓取的末端执行器。此外,尽管图1中示出了视觉传感器184a和184b的具体安装,但是可以使用附加的和/或替代的安装,或者可以省略视觉传感器。例如,在一些实施方式中,视觉传感器可以直接安装到机器人上,诸如安装在机器人的不可致动组件上或机器人的可致动组件上(例如,安装在末端执行器上或靠近末端执行器的组件上)。并且,例如,在一些实施方式中,视觉传感器可以安装在与其关联的机器人分离的非静止结构上,和/或可以以非静止方式安装在与其关联的机器人分离的结构上。

机器人180a、180b和/或其他机器人可以用于执行多个情节,该多个情节是基于无模型强化学习网络执行任务的每个探索。例如,机器人180a和机器人180b可以各自包括策略网络,诸如代表确定性策略函数的深度神经网络。在情节开始时,机器人的当前状态(例如,伪随机选择的开始状态)可以与成功信号(例如,到达任务的末端执行器的目标位置)以及基于输入在策略网络上生成的输出一起作为输入应用到策略网络。策略网络输出指示在机器人的下一控制周期中要执行的动作。例如,对于机器人的每个致动器,在关节空间中,策略网络输出可以是速度命令。作为另一示例,策略网络输出可以是机器人的每个致动器的电机转矩。动作随后由机器人执行。然后,机器人在实施动作之后的状态可以与成功信号以及基于输入在网络上生成的附加输出一起作为输入应用到策略网络。这可以继续迭代地执行(例如,在机器人的每个控制周期),直到实现成功信号(例如,基于满足标准的奖励来确定)和/或满足其他标准。其他标准可以是,例如,情节的时间上的持续时间已经满足阈值(例如,x秒),或者已经发生了阈值数量的控制周期。在满足成功信号和/或其他标准之后,可以开始新的情节。

如图1所示,并且在此更详细地描述,在机器人180a和机器人180b(以及可选的(多个)附加机器人)执行情节时,经验收集器引擎112接收由该机器人180a和机器人180b(以及可选的(多个)附加机器人)生成的经验数据的实例。例如,机器人180a可以在执行情节时,在其每个控制周期向经验收集器引擎112提供经验数据的新实例。作为另一示例,机器人180a可以在情节结束时向经验收集器引擎112提供情节期间生成的经验数据的所有实例。作为又一示例,机器人180a可以每0.2秒或者以(多个)其他规则或非规则的间隔提供经验数据的新实例。经验数据的每个实例由对应的机器人在对应迭代中基于应用于机器人的策略网络的输入和/或通过机器人的策略网络生成的输出来生成。例如,经验数据的每个实例可以指示机器人的当前状态、基于策略网络的输出要执行的动作、实施该动作后机器人的状态和/或对该动作的奖励(如通过在策略网络上生成的输出和/或单独的奖励函数所指示的)。

经验收集器引擎112将接收到的经验数据的实例存储在重放缓冲区122中。重放缓冲区122可以包括训练引擎114可访问的存储器和/或数据库。尽管示出了单个经验收集器引擎112,但是应当理解,可以提供多个经验收集器引擎112。例如,每个机器人可以包括它自己的经验收集器引擎或者与它自己的经验收集器引擎相关联,并且这些引擎都可以将经验数据的实例存储在重放缓冲区122中。

训练引擎114利用诸如本文所述的技术(例如,与诸如naf和/或ddpg变体的q学习相关的技术)迭代地训练策略网络124的一个或多个参数。在训练的每次迭代中,训练引擎114可以利用重放缓冲区122的一组一个或多个经验数据的实例来生成更新的策略参数。训练引擎114可以可选地从重放缓冲区122中清除(多个)所利用的实例和/或以其他方式清除它们(例如,基于先进先出(firstinfirstout)方案)。

在机器人180a和180b中的任一个执行新情节之前,机器人可以用由训练引擎114最近生成的策略参数来更新其策略网络。在一些实施方式中,策略参数可以由训练引擎114“推”给机器人180a和180b。在一些其他实施方式中,策略参数可以由机器人180a和180b“拉”。因此,在图1的实施方式中,机器人180a、机器人180b和可选的附加机器人可以并行操作,同时它们各自都基于相同的无模型强化策略网络执行多个情节。然而,一个或多个机器人利用的策略参数可以一次或多次不同于一个或多个其他机器人。例如,在时间t1和在给定情节开始之前,机器人180a可以将其策略参数与最近更新的策略参数同步。然而,在时间tl,机器人180b可能在情节中,并且可能仍然在来自训练引擎114的先前迭代(紧接先前或多次迭代之前)的更新较少的策略参数下操作。在时间t2,机器人180b可以将其策略参数与更进一步更新的策略参数同步,但是机器人180a在时间t2仍然处于给定的情节中,并且仍然在时间t1的(现在较少的)更新的策略参数下操作。

如本文所述,当在机器人并行操作期间生成经验数据的那些实例时,经验收集器引擎112可以将机器人180a、180b和/或其他机器人中的每一个的经验数据的实例添加到重放缓冲区122中。在一些实施方式中,每个机器人的经验数据可以以机器人的对应(并且可选地相同)频率(例如,以机器人的控制周期频率)添加到重放缓冲区122。例如,机器人可以具有60hz的控制频率,并以60hz提供经验数据(即每秒提供60个经验数据的实例)。在这些实施方式中的一些中,训练引擎114可以以大于机器人的频率中的一个或多个(例如,全部)的频率执行训练迭代,并且可以在机器人继续并行操作并基于情节生成经验数据时执行这些迭代。这些技术中的一种或多种可以使得策略网络的收敛能够比如果不采用这些技术时发生得更快。

经验收集器引擎112、重放缓冲区122、训练引擎114和策略网络124在图1中被示为与机器人180a和180b分离。然而,在一些实施方式中,这些组件中的一个或多个的所有或各方面可以(例如,经由机器人180a和180b的一个或多个处理器)在机器人180a和/或机器人180b上实施。例如,机器人180a和180b可以各自包括经验收集器引擎112的实例。在一些实施方式中,这些组件中的一个或多个的所有或各方面可以在与机器人180a和180b分离、但是与该机器人180a和180b进行网络通信的一个或多个计算机系统上实施。在这些实施方式中的一些中,经验数据可以在一个或多个网络上从机器人传输到组件,并且更新的策略参数可以在一个或多个网络上从组件传输到机器人。

图3是示出执行对象运动尝试并存储与对象运动尝试相关联的数据的示例方法300的流程图。为了方便,参考执行操作的系统来描述流程图的操作。该系统可以包括机器人的一个或多个组件,诸如机器人180a、180b、640和/或其他机器人的处理器和/或机器人控制系统。此外,尽管方法300的操作以具体顺序示出,但这并不意味着是限制性的。一个或多个操作可以被重新排序、省略或添加。

在框352处,情节开始以执行任务。

在框354处,如果任何更新的参数可用,则系统基于更新的参数同步由系统使用的策略网络的策略参数。例如,系统可以用基于图5的方法500生成的一个或多个最近更新的策略参数来替换策略网络的一个或多个策略参数。在一些实施方式中,用另一策略参数替换策略参数包括用另一值替换神经网络模型的节点的值。

在框356处,系统初始化随机过程用于任务探索。如本文所使用的,随机包括伪随机和真随机。作为一个示例,系统可以使机器人的末端执行器移动到随机开始位置。作为另一示例,系统可以使机器人的每个关节各自呈现具体的运动状态(例如,具体的位置、速度和/或加速度)。

在框358处,系统识别当前状态。当前状态可以包括当前机器人状态和/或一个或多个环境对象的当前状态。环境对象的当前状态可以基于附着到那些环境对象的传感器和/或基于来自机器人的传感器数据来确定。例如,环境对象的当前状态可以基于来自一个或多个传感器的传感器数据,诸如当任务是开门时附着在门上的惯性测量单元(“inertialmeasurementunit,imu”)。并且,例如,环境对象的当前状态可以基于由机器人的视觉传感器捕获的视觉传感器数据(例如,对象的当前位置可以基于来自机器人的视觉传感器的视觉传感器数据来确定)。在框358的第一次迭代中,当前的机器人状态将是框356的初始化之后的初始机器人状态。例如,初始机器人状态可以包括机器人的一个或多个组件的当前状态,诸如每个关节和/或末端执行器的位置、速度和/或加速度。

在框360处,系统基于当前状态和基于策略网络选择要实施的动作。例如,系统可以将当前状态作为输入应用于强化学习策略模型,并且基于输入在模型上生成指示要实施的动作的输出。系统可以基于输出选择动作。在一些实施方式中,输出包括应用于机器人致动器的扭矩值和/或其他值,并且选择动作可以包括选择那些值作为动作。在框358处识别附加和/或替代的当前观察值的实施方式中,它们也可以作为输入应用于策略网络。

在框362处,系统执行该动作,并观察奖励和该动作产生的后续状态。例如,系统可以生成一个或多个运动命令,以使一个或多个致动器移动并实行动作。系统可以基于奖励函数和可选地基于提供给系统的成功信号来观察奖励。例如,末端执行器达到目标姿态的任务的奖励函数可以基于该动作产生的末端执行器的姿态和目标姿态(其中目标姿态被提供为成功信号)之间的差异。后续状态可以包括后续机器人状态和/或一个或多个环境对象的后续状态。例如,后续机器人状态可以包括机器人的一个或多个组件的状态作为动作结果,诸如每个关节和/或末端执行器的位置、速度和/或加速度。在一些实施方式中,在框362处,系统附加地或替代地识别其他观察值作为动作结果,诸如在实施动作之后由机器人的视觉传感器捕获的视觉传感器数据和/或在实施动作之后来自(多个)其他传感器的其他传感器数据。

在框364处,系统向重放缓冲区发送经验数据的实例。例如,系统本身可以将实例存储在重放缓冲区中,或者将实例提供给将实例存储在重放缓冲区中的单独组件。如关于图5的方法500所述,实例和来自其他机器人的其他实例可以在训练期间用于更新策略参数。在一些实施方式中,经验数据可以包括指示框358的当前状态、框360的动作和/或框362的观察到的奖励和/或后续状态的数据。

在框366处,系统确定是否已经满足成功或其他标准。例如,如果框362处观察到的奖励满足阈值,则系统可以确定成功。并且,例如,另一标准可以是已经满足了框358、360、362和364的阈值时间和/或阈值迭代次数。

如果系统确定已经满足成功或其他标准,则系统前进到框352并开始新情节。注意的是,在新情节中,在新情节的框354处,系统可以将策略参数与相对于紧接的前一情节的参数更新的一个或多个更新的参数同步(作为根据图5的方法500和/或其他方法同时更新这些参数的结果)。例如,更新的参数可以根据图5的方法500利用来自根据图3的方法300异步生成经验数据的一个或多个其他机器人的经验数据来更新。以这些和其他方式,图3的每一情节可以利用基于来自(多个)其他机器人的经验数据更新的策略参数。这可以使得每一情节生成使能更有效的训练的经验数据。系统可以利用方法300执行多个情节,直到训练(根据图5的方法500和/或其他方法)完成和/或直到接收到一些其他信号(例如,错误发生)。

如果系统确定不满足成功或其他标准,则系统前进到框358,并执行框358、360、362和364的附加迭代。

在图3中,框370、372和374还被示出并且表示可选的框,该可选的框可以被实施来确定框360的任何动作是否违反机器人的一个或多个标准,并且如果是,则在框362处的动作执行之前采取校正动作。在框370处,系统确定框360的动作是否违反一个或多个机器人标准。如果不是,系统前进到框362并执行动作。

如果系统确定框360的动作确实违反了一个或多个机器人标准,则系统前进到框372或框374。在框372处,系统可以修改动作,使得它不再违反标准,并且提供修改后的动作来代替动作以用于在框362处执行。例如,如果违反速度约束,则可以修改动作,使得不再违反速度约束。可以在经验数据的实例中提供修改的动作来代替未修改的动作。

在框374处,系统可以响应于某些违反机器人标准的行为,可选地终止该情节。如果系统在框374处终止该情节,则系统可以返回到框352和/或等待干预(例如,人为干预)。

如本文所述,在许多实施方式中,图3的方法300可以在方法300的其相应迭代的一次或多次迭代(例如,全部)期间在并行操作的多个机器人中的每一个上实施。例如,第一机器人的一个或多个处理器可以执行方法300的实例化,第二机器人的一个或多个处理器可以执行方法300的实例化,等等。与如果只有一个机器人在操作方法300相比,这可以使得能够在给定的时间段内生成更多的经验数据的实例。在其中策略神经网络的训练以比给定机器人生成经验数据的更高的频率进行的实施方式中,这可以导致策略神经网络的时间有效的训练。此外,这可以使得给定机器人的方法300的每一情节能够利用基于来自(多个)其他机器人的经验数据更新的经验数据。这可以导致策略神经网络的训练与如果没有利用基于异步经验数据的异步训练相比在更少的迭代中收敛。此外,在其中多个机器人的末端执行器、传感器、致动器和/或其他硬件组件不同地变化和/或磨损的实施方式中,和/或其中不同的机器人与不同的对象(例如,不同尺寸、不同重量、不同形状、不同半透明性、不同材料的对象)和/或在不同的环境(例如,不同的表面、不同的照明、不同的环境障碍)交互的实施方式中,在训练中利用由多个机器人生成的经验数据可以在训练的策略网络中为各种机器人和/或环境配置提供鲁棒性。

图4是示出存储经验数据的实例的示例方法400的流程图。为了方便,参考执行操作的系统来描述流程图的操作。该系统可以包括一个或多个计算机系统的一个或多个组件(诸如处理器)和/或可以包括一个或多个机器人的一个或多个组件(诸如机器人的处理器和/或机器人控制系统)。此外,尽管方法400的操作以具体顺序示出,但这并不意味着是限制性的。一个或多个操作可以被重新排序、省略或添加。

在框452处,经验数据收集开始。

在框454处,系统接收机器人的经验数据的实例。机器人是并行地(但可选地以不同的频率)向系统和/或其他系统提供经验数据的多个机器人中的一个。例如,机器人可以各自实施图3的方法300,并且框454可以响应于方法300的框364的执行的每个实例而被执行。

在框456处,系统将经验数据的实例存储在重放缓冲区中。在框458处,系统确定训练是否完成。响应于来自基于存储在重放缓冲区中的经验数据来更新策略参数的可选的单独的训练系统的信号,系统可以确定训练完成。

如果系统在框458处确定训练没有完成,则系统返回到框454并接收经验数据的附加实例(来自相同机器人或不同机器人)。应当理解,可以实施方法400的一个或多个框的多线程,以使得能够从多个机器人同时接收经验数据。

如果系统在框458处确定训练完成,则经验数据收集在框460处结束。

尽管为了清楚起见,方法300和方法400在此以单独的附图示出,但是应当理解,方法400的一个或多个框可以由执行方法300的一个或多个框的(多个)相同组件来执行。例如,方法300和方法400的一个或多个(例如,所有)框可以由机器人的(多个)处理器执行。并且,应当理解,方法400的一个或多个框可以与方法300的一个或多个框结合执行,或者在方法300的一个或多个框之前或之后执行。

图5是示出更新策略网络的参数的训练的示例方法500的流程图。为了方便,参考执行操作的系统来描述流程图的操作。该系统可以包括计算机系统的一个或多个组件,诸如训练引擎114和/或其他计算机系统的处理器(例如,gpu和/或cpu)。此外,尽管方法500的操作以具体顺序示出,但这并不意味着是限制性的。一个或多个操作可以被重新排序、省略或添加。

在框552处,训练开始。

在框554处,系统初始化归一化的q网络,诸如对随机初始化的q函数估计进行参数化的归一化的q网络。例如,系统可以初始化归一化的q网络其中

在框556处,系统初始化目标策略网络,该目标策略网络输出作为对在框554处初始化的归一化的q网络的输入的动作。例如,系统可以利用来初始化目标策略网络

在框558处,系统从重放缓冲区中采样一批经验数据。例如,系统可以基于图3的方法300和/或图4的方法400对存储在重放缓冲区中的一批一个或多个经验数据的实例进行采样。

在一些经验数据的实现中,系统设置

在框560处,系统基于在框558处采样的经验数据更新归一化的q网络。例如,系统可以基于损失函数在q网络上执行反向传播和/或其他技术。例如,系统可以通过最小化损失:来更新q网络的权重

在框562处,系统基于对归一化的q网络的更新来更新目标策略网络。例如,系统可以基于损失函数相对于网络参数的梯度来更新目标策略网络。例如,系统可以基于:来更新目标策略网络。

在框564处,系统提供更新以供机器人在接下来的情节中使用。例如,系统可以提供更新的策略参数和/或其他参数,以供机器人在接下来的情节中使用。

在框566处,系统确定训练是否完成。在一些实施方式中,确定训练完成可以基于:确定已经实现收敛、已经发生了框558-564的阈值量的迭代、已经处理了所有可用的经验数据、已经过了阈值时间量、和/或已经满足了其他标准。

如果系统确定训练完成,则训练在框568处结束。如果系统确定训练没有完成,系统返回到框558。如本文所述,方法500可以与本文所述的方法300和400同时执行。在这些实施方式中的一些中,方法500的迭代的执行频率可以大于方法300和/或400的迭代的执行频率。作为一个非限制性示例,方法500可以以100hz的速率执行,以及方法300可以以20hz的速率执行。注意的是,在一些实施方式中,方法300、方法400和/或方法500可以“连续”执行,因为经验数据由一个或多个现实世界机器人连续生成,并且用于连续更新目标策略网络。

为了提供关于本文描述的实施方式的一些附加细节,更详细地描述可以通过本文公开的强化学习技术学习的一些示例任务。任务的一些示例包括随机目标到达、推门和/或拉门、拾取和放置。例如,在到达任务中,机器人臂可以试图从固定的初始配置到达空间中的随机目标。通过从以点为中心的0.2m大小的立方体中均匀采样点,每情节生成随机目标。随机目标可以作为成功信号提供。给定末端执行器位置e和目标位置y,奖励函数可以是:r(x;u)=c1d(y;e(x))c2utu。

并且,例如,在推门和拉门任务中,机器人臂可以试图通过推或拉门把手来开门。把手可以向下转动高达90度,而门可以双向打开高达90度。门有弹簧,使得当没有施加外力时该门会逐渐关闭。门有插销,使得只有当把手转动超过大约60度时,才能开门。附着在门上的imu传感器可用于门角度测量,并且来自imu传感器的四元数读取可以用于计算损失。例如,奖励函数可以由两部分组成:末端执行器与把手的接近程度,以及门在正确方向打开的程度的测量。奖励函数的第一部分取决于末端执行器位置e和处于中性状态的把手位置h之间的距离。奖励函数的第二部分取决于把手的四元数q和当把手被转动和门被打开时的值qo之间的距离。状态特征可以包括机器人臂的关节角度及其时间导数、末端执行器位置、静止(resting)门把手位置、门框位置、门角度和把手角度。

图6示意性地描绘了机器人640的示例架构。机器人640包括机器人控制系统660、一个或多个操作组件640a-640n、以及一个或多个传感器642a-642m。传感器642a-642m可以包括例如视觉传感器、光传感器、压力传感器、压力波传感器(例如,麦克风)、接近传感器、加速度计、陀螺仪、温度计、气压计等。虽然传感器642a-m被描绘为与机器人620集于一体,但这并不意味着是限制性的。在一些实施方式中,传感器642a-m可以位于机器人620的外部,例如,作为独立单元。

操作组件640a-640n可以包括例如一个或多个末端执行器和/或一个或多个伺服电机或其他致动器,以实行机器人的一个或多个组件的移动。例如,机器人620可以具有多个自由度,并且每个致动器可以响应于控制命令在一个或多个自由度内控制机器人620的致动。如本文所使用的,术语致动器除了可以与致动器相关联并且将接收到的控制命令转换成用于驱动致动器的一个或多个信号的(多个)任何驱动器之外,还涵盖产生运动的机械或电气设备(例如,电机)。因此,向致动器提供控制命令可以包括向将控制命令转换成用于驱动电气或机械设备以产生期望运动的适当信号的驱动器提供控制命令。

机器人控制系统660可以在一个或多个处理器中实施,诸如机器人620的cpu、gpu和/或(多个)其他控制器。在一些实施方式中,机器人620可以包括“脑盒(brainbox)”,其可以包括控制系统660的所有或各方面。例如,脑盒可以向操作组件640a-n提供实时数据突发,其中每个实时突发包括一个或多个控制命令的集合,这些控制命令尤其规定了操作组件640a-n中的一个或多个中的每一个的运动参数(如果有的话)。在一些实施方式中,机器人控制系统660可以执行本文描述的方法300、400和/或500的一个或多个方面。

如本文所述,在一些实施方式中,由控制系统660在移动机器人的一个或多个组件时生成的控制命令的所有或各方面可以基于在策略网络上基于当前机器人状态和/或其他观察值生成的输出。尽管控制系统660在图6中被示为机器人620的组成部分,但是在一些实施方式中,控制系统660的所有或各方面可以在与机器人620分离但与该机器人620通信的组件中实施。例如,控制系统660的所有或各方面可以在与机器人620有线和/或无线通信的一个或多个计算设备上实施,诸如计算设备710。

图7是可以可选地用于执行本文描述的技术的一个或多个方面的示例计算设备710的框图。计算设备710通常包括经由总线子系统712与许多外围设备通信的至少一个处理器714。这些外围设备可以包括存储子系统724,该存储子系统724包括例如存储器子系统725和文件存储子系统726、用户接口输出设备720、用户接口输入设备722和网络接口子系统716。输入和输出设备允许用户与计算设备710交互。网络接口子系统716提供到外部网络的接口,并且耦合到其他计算设备中的对应接口设备。

用户接口输入设备722可以包括键盘、定点设备(诸如鼠标、轨迹球、触摸板或图形输入板)、扫描仪、合并到显示器中的触摸屏、音频输入设备(诸如语音识别系统)、麦克风、和/或其他类型的输入设备。通常,术语“输入设备”的使用意图包括将信息输入到计算设备710或通信网络上的所有可能类型的设备和方式。

用户接口输出设备720可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(cathoderaytube,crt)、诸如液晶显示器(liquidcrystaldisplay,lcd)的平板设备、投影设备或用于创建可视图像的一些其他机构。显示子系统还可以诸如经由音频输出设备提供非视觉显示。通常,术语“输出设备”的使用意图包括从计算设备710向用户或另一机器或计算设备输出信息的所有可能类型的设备和方式。

存储子系统724存储提供本文描述的一些或所有模块的功能的编程和数据结构。例如,存储子系统724可以包括用于执行图3、图4和/或图5的方法的选定方面的逻辑。

这些软件模块通常由处理器714单独或与其他处理器结合执行。存储子系统724中使用的存储器725可以包括许多存储器,这些存储器包括用于在程序运行期间存储指令和数据的主随机存取存储器(randomaccessmemory,ram)730和存储固定指令的只读存储器(readonlymemory,rom)732。文件存储子系统726可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、cd-rom驱动器、光驱动器或可移动介质盒。实施某些实施方式的功能的模块可以由文件存储子系统726存储在存储子系统724中,或者存储在由(多个)处理器714可访问的其他机器中。

总线子系统712提供用于让计算设备710的各种组件和子系统按需相互通信的机构。尽管总线子系统712示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。

计算设备710可以是不同类型的包括工作站、服务器、计算集群、刀片服务器、服务器群或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图7中描绘的计算设备710的描述仅意图作为说明一些实施方式的特定示例。计算设备710的许多其他配置可能具有比图7描绘的计算设备更多或更少的组件。

虽然本文已经描述和说明了几个实施方式,但是可以使用用于执行功能和/或获得本文描述的结果和/或一个或多个优点的各种其他装置和/或结构,并且这样的变化和/或修改中的每一个都被认为在本文描述的实施方式的范围内。更一般地,本文描述的所有参数、尺寸、材料和配置都是示例性的,并且实际的参数、尺寸、材料和/或配置将取决于所教导的(多个)具体应用。本领域的技术人员将认识到,或者能够仅使用常规实验来明确本文描述的具体实施方式的很多等同物。因此,应当理解,前述实施方式仅作为示例给出,并且在所附权利要求及其等同物的范围内,实施方式可以以除具体描述和要求保护以外的方式实践。本公开的实施方式针对本文描述的每个独立的特征、系统、物品、材料、套件和/或方法。另外,如果两个或多个这样的特征、系统、物品、材料、套件和/或方法不是相互矛盾的,则这两个或多个这样的特征、系统、物品、材料、套件和/或方法的任何组合都包括在本公开的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1