使用高级策略模型和经训练的低级策略模型进行机器人导航的制作方法

文档序号:25998855发布日期:2021-07-23 21:14阅读:130来源:国知局
使用高级策略模型和经训练的低级策略模型进行机器人导航的制作方法



背景技术:

机器人导航是机器人技术的基本挑战之一。为了有效地进行操作,各种移动机器人需要在动态环境中进行稳健的导航。机器人导航通常被定义为找到从起始位置到目标位置的路径,并以稳健和安全的方式执行该路径。通常,机器人导航需要机器人感知其环境、相对于目标定位自身、推断(reasonabout)在其紧邻接近内的障碍物以及推断到目标的远程路径。

传统上,机器人导航系统依靠特征提取和基于几何的推断来定位机器人并绘制其环境的地图。生成或给出机器人环境的地图时,机器人可以使用该地图利用规划算法找到导航路径。

最近,使用强化学习(rl)训练神经网络策略模型已经成为用于机器人导航的一种选项。借助机器人经验数据使用强化学习而被训练的策略模型学习将原始观察与动作关联,而无需进行地图绘制或显式的路径规划。但是,使用rl而被训练的各种当前策略模型难以成功地部署在真实机器人上。难点可能是由于例如rl算法的高样本复杂度。这样的高样本复杂度意味着神经网络策略模型通常只能在模拟环境中被成功地训练。当在真实机器人上实现时,在模拟环境中被训练的神经网络策略模型可能会失败和/或性能不佳。这可能是由于例如由真实机器人的真实传感器捕获的图像和/或其他观察数据在视觉上不同于用于训练神经网络策略模型的模拟观察数据。



技术实现要素:

本文公开的实施方式涉及训练和/或使用高级策略模型和低级策略模型两者进行移动机器人导航。例如,可以协作地使用高级策略模型和低级策略模型以执行点到点的导航,其中,移动机器人从当前姿态导航到环境中的导航目标,诸如环境中的特定位置、环境中的特定物体或环境中的其他导航目标。高级策略模型和低级策略模型均可以是机器学习模型,诸如神经网络模型。在各种实施方式中,高级策略模型是循环神经网络(rnn)模型和/或低级策略模型是前馈神经网络模型,诸如卷积神经网络(cnn)模型。

高级策略模型用于基于导航目标的目标标签并基于(一个或多个)当前机器人观察(例如,观察数据),生成指示鉴于当前机器人观察应当实现多个离散的高级动作中的哪一个来到达导航目标的高级输出。作为一个非限制性示例,高级动作可以包括“前进”、“右转”和“左转”。低级策略模型用于基于(一个或多个)当前机器人观察(其可以可选地与用于生成高级输出的当前机器人观察不同)并可选地基于基于高级输出而选择的高级动作来生成低级动作输出。低级动作输出定义低级动作,与高级动作相比,低级动作更精细地定义机器人运动。作为一个非限制性示例,低级动作可以定义移动机器人的一个或多个轮子中的每个轮子的对应的角速度和对应的线速度。然后,可以使用低级动作输出来控制移动机器人的一个或多个致动器以实现对应的低级动作。继续非限制性示例,可以将控制命令提供给驱动(一个或多个)轮子的一个或多个马达,以使(一个或多个)轮子各自实现其相应的角速度和线速度。

高级策略模型和低级策略模型被协作使用,并且在将移动机器人导航到导航目标期间在多次迭代中的每次迭代被使用—考虑到每次迭代的新的当前观察。在每次迭代使用高级策略模型生成的高级输出指示在导航到导航目标时机器人运动的对应高级动作。将高级策略模型训练为能够进行远程规划,并将其训练为用于在每次迭代生成试图使移动机器人移动成更靠近导航目标的对应的高级动作。在每次迭代生成的低级输出基于针对该迭代确定的对应高级动作,并基于针对该迭代的(一个或多个)观察。训练低级策略模型,以生成定义(一个或多个)低级动作的低级输出,与高级动作相比,低级动作更精细地定义机器人运动—并生成避开障碍物和/或高效(例如,距离和/或时间效率)的(一个或多个)低级动作。单独但协作地使用的高级和低级策略模型使高级策略模型能够用于确定由部署环境引导并试图将移动机器人移向导航目标的高级动作。但是,使用高级策略模型而确定的高级动作不能用于精确地引导机器人。另一方面,可以使用低级策略模型来生成低级动作,该低级动作可以精确地引导机器人,并高效且安全地(例如,避开障碍物)实现高级动作。如本文所述,在各种实施方式中,低级策略模型被用于仅生成高级动作的子集(例如,一个或多个)的控制命令,并且对于不在该子集中的(一个或多个)高级动作,可以预先定义或以其他方式确定低级动作。例如,在包括“前进”、“左转”和“右转”作为候选高级动作的实施方式中,可以使用低级策略模型生成“前进”高级动作的低级动作,而对应的固定低级动作用于“左转”和“右转”高级动作。

可以在不依赖于环境地图使用规划算法找到导航路径的情况下,协作地使用高级策略和低级策略来在环境中实现高效的移动机器人导航。因此,可以在无需生成地图并不参考地图的情况下在环境中执行导航。消除地图生成可以节省各种机器人和计算机资源,否则将需要这些机器人和计算机资源来生成环境的详细地图。此外,基于地图的导航通常需要在机器人上存储需要大量存储空间的地图。消除在导航中参考地图的需要可以防止将地图存储在移动机器人的有限存储资源中的需要。

各种实施方式利用监督训练来训练高级策略模型。例如,这些各种实施方式中的一些通过以下方式执行监督训练:使用(一个或多个)真实世界的观察(例如,图像和/或其他观察数据)作为在监督训练期间要由高级策略模型处理的输入的至少一部分;和在监督训练期间使用真实环境中的基准真相导航路径生成损失作为监督信号。基准真相导航路径可以使用(一个或多个)路径规划算法(例如,最短路径)来产生,可以基于可行的导航路径的人类演示,和/或以其他方式生成。由于监督学习具有较低的样本复杂度,因此与强化训练技术相比,它可以实现更高效的训练。因此,至少与增强技术相比,可以在本文描述的监督训练技术中利用较少量的资源(例如,(一个或多个)处理器的资源、存储器资源等)。此外,与仅使用模拟观察相比,在训练高级策略模型期间使用真实世界的观察可以提高模型在真实世界机器人上的性能。例如,这可能是由于训练中使用的观察是真实世界的观察,其在视觉上类似于在模型使用期间在真实机器人上进行的观察。如上所述,本文描述的监督训练方法可以在利用真实世界观察的同时实现对高级策略模型的高效训练。

各种实施方式附加地或替代地利用强化训练来训练低级策略模型,并且可选地利用机器人模拟器来执行强化训练。在这些各种实施方式中的一些中,通过以下方式来训练低级策略模型:利用来自机器人模拟器的(一个或多个)模拟观察和(一个或多个)高级动作作为在强化训练期间要由低级策略模型处理的输入的至少一部分;和利用来自机器人模拟器的模拟数据来生成用于训练低级策略模型的奖励。奖励基于奖励函数(诸如,在到达导航目标时惩罚机器人碰撞而奖励更快的速度和/或更短的距离的奖励函数)而生成。例如,奖励函数可以严重地惩罚导致碰撞的运动,而根据运动的速度和/或直度如何来奖励无碰撞运动。

在一些实施方式中,在低级策略模型的强化训练中使用的(一个或多个)模拟观察是模拟的一维(1d)lidar分量观察、模拟的二维(2d)lidar分量观察和/或模拟的接近传感器观察。与例如rgb图像相比,这样的观察可以在模拟环境中以高保真度进行模拟,并且可以更好地转换为真实观察。此外,即使以相对低的保真度对模拟环境进行模拟,也可以以高保真度对这样的观察进行模拟。另外,可以在机器人模拟器中模拟机器人的物理特性,从而能够通过简单的深度感知来模拟精确的机器人运动,这可以实现训练低级策略模型以生成避开障碍物且高效的低级动作。

因此,各种实施方式使得能够利用简单的深度观察(例如,来自1dlidar、2dlidar和/或(一个或多个)接近传感器)在模拟环境中训练低级策略模型。使用来自真实机器人的深度观察(并且可选地不使用任何rgb图像观察),可以在真实机器人上有效使用这样的低级策略模型,以实现对这些机器人的安全且高效的低级控制。此外,利用低级策略模型生成的低级控制还基于利用高级策略模型确定的高级动作。如上所述,可以使用真实世界的观察(其可以包括rgb图像观察和/或其他更高保真度的观察)和监督训练来训练这样的高级策略模型。通过对高级策略模型和低级策略模型两者的协作使用和训练,可以使用较高保真度的真实世界观察(以及目标标签和可选的较低保真度观察)来确定高级动作,而使用较低保真度的真实世界观察(以及确定的高级动作)来确定低级动作。这可以通过在协作地训练(例如,通过在训练低级策略模型时使用高级动作,而未必使用使用高级策略模型生成的高级动作)和协作地利用两种模型的同时分离这两种模型来实现。

以上描述仅作为本文公开的一些实施方式的概述而提供。将在本文中更详细地描述这些和其他实施方式。

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

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

附图说明

图1示出可以在其中实现本文公开的实现方式的示例环境。

图2是示出根据本文公开的各种实施方式的训练高级策略模型的示例方法的流程图。

图3是示出根据本文公开的各种实施方式的训练低级策略模型的示例方法的流程图。

图4是示出在将移动机器人导航到导航目标时利用高级策略模型和低级策略模型的示例方法的流程图。

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

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

具体实施方式

本文公开的实施方式包括用于移动机器人导航的远程规划的高级策略模型。其被训练为用于基于当前的机器人观察和目标标签生成高级动作输出,该高级动作输出指示使移动机器人能够更接近导航目标的移动机器人的最佳高级动作。最佳高级动作可以是定义的高级动作空间的多个离散的高级动作之一。作为一个非限制性示例,离散的高级动作可以包括或限于诸如“前进”、“左转”和“右转”的一般导航指令。实施方式还包括低级策略模型,该低级策略模型用于基于最佳高级动作和当前的机器人观察(其可以与对于高级策略模型使用的观察相同或不同)生成低级动作输出,该低级动作输出定义可以在机器人上以安全、稳健和高效的方式执行的对应低级动作。低级动作可以是定义的低级动作空间(诸如连续的机器人运动空间)中的一个低级动作。同时,低级动作避开在其附近的障碍物,因此,其不逐字地(verbatim)执行高级命令。

两种策略模型具有互补的性质。鉴于部署环境对高级策略模型进行训练,从而使它可以用于在部署环境中进行规划。但是,无法利用高级策略模型来精确地引导机器人。不鉴于环境训练低级策略模型,从而在不了解环境的情况下生成低级动作。但是,可以使用低级策略模型来精确且安全地使机器人移动。

在参考附图之前,提供了本文公开的技术的特定实施方式的概述。应当理解,本文的公开内容不限于这样的实施方式,并且本文中公开了附加实施方式(例如,在发明内容部分、具体实施方式的其余部分和权利要求中)。

在一些实施方式中,高级策略模型将以下各项作为输入:观察数据,诸如rgb图像x(或其嵌入)和二进制接近指示符p∈{0,1};以及目标标签,诸如独热向量g∈{0,1}k,其表示环境中k个可能目标位置中的一个。接近指示符可以是例如雷达读数的输出,并且可以指示是否即将发生碰撞。例如,如果在0.3m或其他阈值内有物体,则可以将其定义为1,否则将其定义为0。如上所述,当目标标签是独热向量时,向量中的独热值具有语义含义(例如,对于不同的导航目标使用不同的独热值),但不一定具有与针对其训练高级策略模型的部署环境的任何相关。可以在各种实施方式中利用附加或替代的目标标签,诸如作为导航目标的语义描述符的词嵌入的目标标签、作为导航目标的图像的图像嵌入的目标标签和/或提供导航目标的语义含义的其他目标标签。

在一些实施方式中,高级策略模型的输出动作空间被定义为并且包括多个离散动作,诸如前进、左转和/或右转。前进运动可以意在例如1m;并且转动可以意在例如十五度。但是,请注意,这些值中的一个或多个是近似的(例如,至少是前进运动),因为它们的语义是在例如低级策略模型的训练期间确立的。

利用上述符号,将高级策略模型训练为用于输出值υ(a,x;g),其估计朝向目标g的进度,该值被定义为如果在观察x时采取动作a则在到g的距上的负变化。该值函数可以用于估计哪个动作使机器人移动为最靠近目标:

上述值函数可以利用循环神经网络(rnn)来实现,该循环神经网络将观察x、目标标签g和接近位p的级联和变换的嵌入:υ(a,x;g)=lstm(mlp2(resnet50(x),p,mlp1(g))作为输入。rnn可以是例如单层长短期记忆(lstm)网络模型或其他记忆网络模型(例如,门控循环单元(gru))。图像嵌入器可以是用于处理图像并生成图像的致密(相对于像素大小)嵌入的神经网络模型,例如resnet50网络。目标标签g可以是例如在k个可能位置上的独热向量,和/或其他目标标签,诸如上述的目标标签。在前面的符号中的mlpl代表具有relu的l层感知器。上述感知器和lstm网络模型的尺寸可以设置为例如2048或其他值。

中的某个(某些)动作可以潜在地在没有任何碰撞危险的情况下被逐字地执行。例如,可以在没有任何碰撞危险的情况下执行“向左旋转”和“向右旋转”。因此,在一些实施方式中,对于这样的动作,它们可以可选地使用针对对应的特定高级动作定义的对应的默认低级动作来实现。但是,中(一个或多个)其他动作可能潜在地会导致碰撞,诸如“前进”动作。可以可选地训练和使用单独的低级策略模型以执行这样的(一个或多个)动作(例如“前进”动作)。

低级策略模型的输入可以是例如一维lidar读数、二维lidar读数和/或接近传感器读数。这样的(一个或多个)读数虽然保真度低(例如,与3dlidar和/或rgb图像相比),但是能够捕获障碍物,这对于短期安全控制是足够的。低级动作空间可以是连续的,并且可以可选地由机器人的运动学定义。作为一个非限制性示例,对于差动驱动移动基座,动作空间可以是两个轮子的扭转值(每个轮子的线速度和角速度)的4维实值向量。

在一些实施方式中,低级策略模型可以是卷积神经网络(cnn),其可以处理最后的n个lidar读数(和/或其他读数)作为输入,其中,各种实施方式中,n可以大于1。例如,可以处理最后的3个读数x,x-1,x-2,并且由于它们可选地是一维的(例如,1dlidar或接近传感器),因此可以将它们级联成图像,其中,第二维是时间。使用低级策略模型生成的输出可以是上述低级动作空间中的值。更正式地说,生成的低级动作alow可以表示为:

alow=convnet(concat(x-2,x-1,x))

其中,并且其中,convnet是cnn模型,例如具有以下4个层的cnn模型:conv([7,3,16],5)→conv([5,1,20],3)→fc(20)→,其中,conv(k,s)表示与核k和步幅s的卷积,并且fc(d)是具有输出维度d的完全连接层。

在某些实施方式中,高级策略模型的训练可以利用通过遍历而获得的来自部署世界的真实图像x。可以例如通过(一个或多个)单眼(monographic)相机(例如,rgb图像)、(一个或多个)立体相机(例如,rgbd图像)和/或其他更高保真度的视觉组件来捕获图像。这些图像表示机器人在世界上的状态,并且可以以图形的形式进行组织,其边表示将机器人从一种状态移动到另一种状态的动作。在这些实施方式中的一些中,图像基于经由以六边形形状组织的六个相机(或其他视觉组件)的装备而捕获的图像。该装备沿环境(例如,走廊和空间)移动,并且每1m(或其他距离)捕获一组图像。该装备可以安装到例如可以沿环境进行可选的人工引导的移动机器人基座,和/或可以安装到人类和/或沿环境进行引导的非机器人基座。

在捕获图像之后,可以可选地将它们拼接成360度全景图,可以在任何方向上对其进行裁剪以获得期望视场(fov)的图像。这可以允许创建具有与机器人相机相同性质(例如,fov)的观察。例如,分别沿宽度和高度为108度和90度的fov可以用于模仿具有相同fov的机器人相机。每个全景图可以每x度进行裁剪,以获得y个单独的图像。例如,每个全景图可以每15度进行裁剪以获得24个单独的图像。此外,可以在图像之间定义边,其中,边表示动作。例如,可以表示两个旋转动作“左转”和“右转”,其在同一位置将机器人分别移至下一个左或右图像。

还可以估计图像的姿态并将其分配给图像。例如,制图者定位api和/或其他(一种或多种)技术可以用来估计图像的姿态。姿态的估计可以仅基于局部正确的slam和回路闭合(loopclosure)。因此,不需要全局几何地图需要的高精度,此外,不需对周围环境的地图绘制。

还可以在来自不同全景的图像之间定义(一个或多个)动作。例如,“前进”动作可以定义为两个图像之间的边,其中,“前进”动作是通过在当前视图的方向上移动的从当前图像到附近图像。附近图像可以是与当前视图理想地相距固定距离(例如1.0m)的图像。但是,不保证已在该新位置捕获了图像。因此,如果存在在固定距离的某范围(例如,从0.7m至1.0m)内捕获的图像,则仍然可以认为动作是可能的(并且利用对应的图像)。

以图形组织的图像,其边表示将机器人从一种状态移动到另一种状态的动作,可以具有相对高的视觉保真度。此外,由图形定义的遍历可以覆盖部署环境的大多数指定空间。但是,高级动作捕获粗略的运动。因此,它们可以用于表达导航路径,但不能在机器人上稳健地执行。因此,在各种实施方式中,图像和高级动作仅用于训练高级策略模型。

与最近的基于强化学习(rl)的方法不同,用于训练高级策略模型的训练可以表述为监督学习问题。对于目标驱动的导航,可以通过采用最短路径算法(和/或其他路径优化算法)或通过可行的导航路径的人工演示来产生最优路径(并将其用作监督信号)。这些路径可以在策略执行的每个步骤(当存在时)处用作监督。由于监督学习具有较低的样本复杂度,因此在效率方面,它比rl具有优势。

为了定义训练损失,考虑通向几个预定义目标之一的导航路径集合p={p1,...,pn}。可以在组织图像的图形上定义这些路径。可以是最短路径规划器产生的到目标的所有最短路径的集合。

对于目标g、起始状态x(例如,起始图像)和路径d(x,g;p)可以表示沿着p从x到g的距离——如果起始和目标两者都以该顺序在路径上。如果它们中一个或两个都不在路径上,则上述距离为无穷大。使用全从x通向g的中的最短路径可以被认为是:

使用d,如果在状态x下应用高级动作a,则可以将朝向目标的进度定义为:

其中,x′是在采取动作a后达到的图像。

损失训练高级策略模型以导致生成尽可能接近y的输出值。在许多实施方式中,rnn模型用作高级策略模型,并且在整个导航路径上定义损失。如果导航路径表示为x=(x1,...,xt),则损失可以表示为:

其中,模型υ可以是例如上面定义的υ(a,x;g)=lstm(mlp2(resnet50(x),p,mlp1(g))。随机梯度下降可以可选地用于基于损失来更新rnn模型,其中,在训练的每个步骤处,可以生成导航路径,并公式表示上述损失以执行梯度更新。使用当前的高级策略模型和随机起点生成这些路径。在训练开始时,使用高级策略模型导致执行随机动作,因此导航路径是随机的。随着训练的进行,导航路径变得更有意义,并且上述损失着重于推断时将会遇到的情况。

在各种实施方式中,低级策略模型在一个或多个合成环境中训练,诸如包括若干走廊和房间的合成环境。可以使用2d布局生成(一个或多个)合成环境,该布局可以通过向上延伸墙而在3d上提升。(一个或多个)合成环境可以与高级策略模型训练中可选地使用的部署环境不同。在训练低级策略模型时使用的观察可以是相对较低保真度的观察,诸如1d深度图像、2d深度图像和/或其他较低保真度的观察。由于它们的简单性,这些观察尽管相对于训练高级策略模型时使用的观察而言保真度较低,但可以以高保真度进行模拟,并将经训练的模型转移到真实的机器人。另外,可以使用物理引擎(诸如pybullet物理引擎)在模拟环境中对机器人的物理学进行模拟。因此,可以通过简单的深度感知来模拟精确的机器人运动,这足以训练可转移到真实世界中的低级避障控制。

在各种实施方式中,连续的深度q学习(ddpg)用于训练低级策略模型。例如,策略可以是在不与物体碰撞的情况下执行“前进”动作。利用这样的策略并对于具有差动驱动的机器人,如果机器人尽可能快地笔直移动而不发生碰撞,则在状态x下对于给定动作a的ddpg所需的奖励r(x,a)可能最高:

其中,vlin(a)和vang(a)表示在应用当前动作之后(在为简洁起见而省略的当前状态中),差动驱动器的线速度和角速度。如果该动作不会导致碰撞,则奖励取决于机器人移动的速度(rlin=1.0)和直度(rang=-0.8)。如果存在碰撞,则机器人遭致较大的负奖励rcollision=-1.0。在模拟环境中可以容易地确定是否存在碰撞。

所采用的ddpg算法可以利用评价网络,该评价网络针对给定状态x和动作a近似q值。

现在转到附图,图1示出示例环境,在该示例环境中可以实现本文公开的实施方式。图1包括低级策略模型156和高级策略模型156。高级策略模型154可以由高级策略训练器124训练。如本文所述,高级策略训练器124可以在训练高级策略模型时利用监督训练数据152并和监督学习。

低级策略模型156可以由低级策略训练器126(其可以使用ddpg算法)进行训练。在利用强化学习训练低级策略模型时,低级策略训练器126可以与模拟器180交互,该模拟器180模拟模拟环境和在该模拟环境内交互的模拟机器人。

机器人110也在图1中示出,并且是在执行机器人导航任务时可以利用根据本文公开的实施方式训练的高级策略模型和低级策略模型的物理(即,真实世界)移动机器人的一个示例。可以提供附加的和/或替代的机器人,例如与图1所示的机器人110在一个或多个方面不同的附加的机器人。例如,代替机器人110或除了机器人110之外还可以使用移动叉车机器人、无人飞行器(“uav”)和/或人形机器人。

机器人110包括基座113,该基座113具有在其相对侧上设置的用于使机器人110运动的轮子117a、117b。例如,基座113可以包括用于驱动机器人110的轮子117a、117b的一个或多个马达,以实现机器人110的运动的期望方向、速度和/或加速度。

机器人110还包括视觉组件111,该视觉组件111可以生成与在视觉组件111的视线内的(一个或多个)物体的形状、颜色、深度和/或其他特征有关的观察数据。视觉组件111可以是例如单眼相机、立体相机和/或3dlidar组件。机器人110还包括附加的视觉组件112,其可以生成与在视觉组件112的视线内的(一个或多个)物体的形状、颜色、深度和/或其他特征有关的观察数据。视觉组件112例如可以是接近传感器、一维(1d)lidar组件或二维(2d)lidar组件。在各种实施方式中,视觉组件111生成较高保真度的观察(相对于视觉组件112)。

机器人110还包括一个或多个处理器,其例如:实现高级引擎134和低级引擎136(如下所述),并基于利用低级策略模型生成的低级动作(并基于使用高级策略模型154生成的输出)来向致动器和/或致动器的其他操作组件提供控制命令。机器人110还包括具有对应末端执行器115a和115b的机器人臂114a和114b,每个末端执行器115a和115b采用具有两个相对的“手指”或“数字手指(digits)”的抓具的形式。尽管示出了特定的抓握末端执行器115a、115b,但是可以利用附加的和/或替代的末端执行器,诸如替代的冲击式抓握末端执行器(例如,具有抓握“板”的冲击式抓握末端执行器、具有更多或更少的“数字手指”/“爪”的冲击式抓握末端执行器)”;“侵入式”抓握末端执行器;“收缩式”抓握末端执行器;或“接触式”抓握末端执行器或者非抓握末端执行器。另外,尽管在图1中示出视觉组件111和112的特定放置,但是可以利用附加的和/或替代的放置。

如上所述,机器人110的(一个或多个)处理器可以实现高级引擎134和低级引擎136,一旦它们经过训练就利用相应的高级策略模型154和低级策略模型156进行操作。高级引擎134可以利用高级策略模型154处理观察数据101和目标标签102,以生成高级动作103。观察数据101可以包括例如来自视觉组件111的当前观察(以及可选的来自视觉组件112和/或其他(一个或多个)传感器的当前观察)。目标标签102可以是例如独热向量、导航目标的语义描述符的词嵌入、作为导航目标的图像的图像嵌入的目标标签和/或提供导航目标的语义含义的其他目标标签。

低级引擎136使用低级策略模型156处理高级动作103和附加的观察数据104,以生成低级动作105。附加的观察数据104可以是例如来自视觉组件112的当前观察。低级动作105被提供给控制引擎142,其也可以由机器人110的(一个或多个)处理器来实现,其生成被提供给(一个或多个)致动器144以使机器人110实现低级动作105的对应控制命令106。此过程可以持续,每次依赖于新的当前观察数据101和新的当前附加观察数据104,直到到达导航目标。通过连续执行,可以实现机器人110到与目标标签102对应的目标的导航。

现在转到图2,提供了流程图,该流程图示出了根据本文公开的各种实施方式的训练高级策略模型的示例方法200。为了方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括一个或多个计算机系统的一个或多个组件,诸如一个或多个处理器。另外,尽管以特定顺序示出了方法200的操作,但这并不意味着是限制性的。一个或多个操作可以被重新排序、省略或添加。

在框202处,系统开始高级策略模型训练。

在框204处,系统生成导航目标的目标标签。例如,目标标签可以是语义上有意义的独热向量或本文描述的其他目标标签。

在框206处,系统选择用于起始姿态的真实观察数据。例如,真实观察数据可以包括来自将在其中部署高级策略模型的部署环境的真实rgb图像。

在框208处,系统基于使用高级策略模型处理真实观察数据和目标标签,生成n个高级动作中的每一个的对应值。例如,系统可以生成前进动作的第一度量、右转动作的第二度量和左转动作的第三度量。

在框210处,系统从框208处生成的对应值中选择具有最佳对应值的动作。

在框212处,系统在实现选择的动作之后选择新姿态的新的真实观察数据。例如,系统可以基于新的真实图像通过选择的动作被组织真实图像的图形的边定义为与框206的观察数据相关来选择新的真实图像。例如,对于右转动作,可以在框412处选择来自相同位置但向右x度的图像。此外,例如,对于前进动作,可以选择距框206的观察数据的图像1米远并沿着与框206的观察数据的图像相同的方向的图像。

在框214处,系统生成并存储选择的动作的基准真相值。系统可以基于对以下的比较来生成基准真相值:(a)沿着基准真相路径(例如,来自优化器的最短路径或人演示的路径)从先前姿态到导航目标的距离;和(b)沿着基准真相路径从新姿态到导航目标的距离。在框214的初始迭代中,先前姿态将是起始姿态。在将来的迭代中,先前姿态将是紧接框212的最近迭代之前的框212的迭代中确定的新姿态。

在框216处,系统使用高级策略模型基于处理新的真实观察数据和目标标签,生成n个动作中的每一个的对应值。

在框218处,系统选择具有最佳对应值的动作。然后,系统进行到框220,并确定是否继续当前的监督情节(episode)。如果继续,则系统返回至框212,并执行框212、214、216和218的另一迭代。如果尚未达到导航目标指定的目标、如果尚未执行框212、214、216和218的阈值迭代量和/或如果尚未满足其他标准,则系统可以确定继续当前的监督情节。

如果在框220处,系统确定不继续当前的监督情节(例如,已经到达导航目标),则系统进行到框222。在框222处,系统基于对以下的比较生成损失:(a)选择的动作的生成值(在框208和在框216的(一次或多次)迭代中生成);和(b)生成的基准真相值(在框214的迭代中生成)。

在框224处,系统然后基于损失来更新高级策略模型。

在框226处,系统确定高级策略模型的训练是否完成。如果否,则系统返回至框204并执行框204-224的另一迭代。如果是这样,则系统进行到框228,并且高级策略模型的训练结束。框226的判断可以例如基于是否已经执行了阈值量的情节和/或其他(一个或多个)因素。

图3是示出根据本文公开的各种实施方式的训练低级策略模型的示例方法300的流程图。为了方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括一个或多个计算机系统的一个或多个组件,诸如一个或多个处理器。此外,尽管以特定顺序示出了方法300的操作,但这并不意味着是限制性的。一个或多个操作可以被重新排序、省略或添加。

在框302处,系统开始低级策略模型训练。

在框304处,系统获得当前的高级动作和当前的模拟观察。当前的高级动作可以是例如正对其训练低级策略模型的前进动作和/或其他(一个或多个)高级动作。当前的模拟观察可以是来自模拟的1dlidar组件、模拟的2dlidar组件和/或其他模拟的组件的模拟观察。可选地,在框304处,系统还获得n个先前的模拟观察,诸如两个最后的模拟观察(除当前模拟观察之外)。

在框306处,系统使用低级策略模型处理当前的高级动作和当前的模拟观察,以生成定义低级机器人动作的低级动作输出。在一些实施方式中,系统在生成低级动作输出时,还处理n个先前的观察(如果有的话),例如两个最后的观察(除了当前观察之外)。

在框308处,系统基于低级机器人动作控制模拟机器人。可以在模拟器中控制模拟机器人,该模拟器使用物理引擎模拟机器人,并且还模拟环境。

在框310处,系统基于在基于低级机器人动作控制模拟的机器人之后获得的模拟数据来确定奖励。可以基于奖励函数(诸如在到达导航目标时惩罚机器人碰撞而奖励更快的速度和/或更短的距离的奖励函数)来确定奖励。例如,奖励函数可以严重惩罚导致碰撞的运动,而根据运动的速度和/或直度来奖励无碰撞运动。

在框312处,系统基于奖励更新低级策略模型。在一些实施方式中,在框310的每次迭代之后执行框312。尽管为了简单起见在图3中未明确示出,但是在一些其他实施方式中,仅在框304、306、308和310的多次迭代之后执行框312。在这些其他实施方式中,基于来自多次迭代的奖励来更新低级策略模型。例如,在这些其它实施方式中,可在模拟情节期间(或在多个模拟情节期间)执行框304、306、308和310的多次迭代。例如,在模拟情节期间执行框304、306、308和310的多次迭代时,在框304的非初始迭代处的当前的模拟观察可以是由于执行框308的最近迭代而得到的模拟观察—并且在框306处可选地处理的最后(一个或多个)观察可以是框304的最近的(一个或多个)先前迭代的当前观察。可以在模拟情节期间迭代地执行框304、306、308和310的多次迭代,直到发生一个或多个条件,诸如,阈值量的迭代、模拟机器人与环境物体的碰撞(在框310中确定)和/或其他(一个或多个)条件。因此,在各种实施方式中,框312可以以批次方式执行,并且可以基于在连续模拟情节期间确定的多个奖励来更新模型。

在框314处,系统确定低级策略模型的训练是否完成。如果否,则系统返回至框304并执行框304-312的另一迭代。如果是这样,则系统进行到框316,并且低级策略模型的训练结束。框314的判断可以例如基于是否已经执行了阈值量的情节和/或其他(一个或多个)因素。

图4是示出在将移动机器人导航到导航目标时使用高级策略模型和低级策略模型的示例方法400的流程图。为了方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括一个或多个计算机系统的一个或多个组件,诸如机器人的一个或多个处理器。此外,尽管以特定顺序示出了方法400的操作,但这并不意味着是限制性的。一个或多个操作可以被重新排序、省略或添加。

在框402处,系统开始机器人导航。

在框404处,系统识别环境中的导航目标的目标标签。目标标签可以是语义上有意义的独热向量、导航目标的语义描述符的词嵌入、作为导航目标的图像的图像嵌入的目标标签和/或提供导航目标的语义含义的其他目标标签。可以基于用户接口输入和/或基于来自识别导航目标的较高级任务规划器的输出来生成目标标签。例如,可以基于“导航到垃圾桶”的口述用户接口输入来生成“垃圾桶”的目标标签。例如,目标标签可以基于“垃圾桶”的图像,其基于口述用户接口输入和/或基于“垃圾桶”的词嵌入而被识别。

在框406处,系统基于来自(一个或多个)机器人组件的输出来获得当前观察数据。例如,当前观察数据可以包括由机器人的相机捕获的当前图像,以及可选地包括机器人的接近传感器的当前接近传感器读数。

在框408处,系统使用经训练的高级策略模型来处理当前观察数据和目标标签,以生成高级动作输出。例如,高级动作输出可以包括n个单独的高级动作中的每个动作的对应量度。

在框410处,系统基于高级动作输出选择高级动作。例如,系统可以选择具有“最佳”度量(例如,当越高的度量越指示最佳的高级动作时最高的度量)的高级动作。

在框412处,系统确定是否可以在不利用低级策略模型的情况下实现高级动作。例如,诸如“左转”或“右转”的(一个或多个)动作可以可选地在不利用低级策略模型的情况下实现,而诸如“前进”的其他(一个或多个)动作则需要利用低级策略模型。

如果在框412处,系统确定可以在不利用低级策略模型的情况下实现高级动作,则系统进行至框412,并选择高级动作的低级动作。例如,如果高级动作为“右转”,则可以选择“右转”的默认低级动作。

如果在框412处,系统确定不能在不利用低级策略模型的情况下执行高级动作,则系统进行至框414,并使用经训练的低级策略模型处理当前的附加观察以生成定义低级动作的低级动作输出。例如,如果高级动作为“前进”,则可以处理当前的附加观察数据(可选地,以及先前的n个附加观察数据实例)以生成定义低级动作的低级动作输出。在生成低级动作输出时,还可以可选地将“前进”的高级动作与当前的附加观察数据一起进行处理。例如,附加观察数据可以包括来自机器人的1dlidar组件的深度读数。尽管在本文中被称为“附加”观察数据,但是在各种实施方式方式中,在生成高级动作输出时,框412的当前的附加观察数据也可以与其他当前的观察数据一起在框408处被处理。

在框416处,系统控制移动机器人的(一个或多个)致动器以使移动机器人实现框412或框414的低级动作。

在框418处,系统确定是否已经到达由目标标签指示的导航目标。如果否,则系统返回到框406,并使用新的当前观察数据执行框406-416的另一迭代。如果是这样,则系统进行到框420,并且到导航目标的导航结束。可以响应于识别环境中的新导航目标而执行方法400的另一迭代。

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

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

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

如本文所述,在一些实施方式中,由控制系统560在执行机器人任务时生成的控制命令的全部或各个方面可以基于本文描述的经训练的低级和高级策略模型的利用。尽管在图5中将控制系统560示为机器人525的一体部分,但在某些实施方式中,控制系统560的全部或各个方面可以在与机器人525分离但与之通信的组件中实现。例如,控制系统560的全部或各个方面可以在与机器人525进行有线和/或无线通信的一个或多个计算设备(诸如计算设备610)上实现。

图6是示例计算设备610的框图,该示例计算设备可以可选地用于执行本文所述技术的一个或多个方面。计算设备610通常包括至少一个处理器614,该处理器经由总线子系统612与多个外围设备进行通信。这些外围设备可以包括存储子系统624(例如包括存储器子系统625和文件存储子系统626)、用户接口输出设备620、用户接口输入设备622和网络接口子系统616。输入和输出设备允许用户与计算设备610交互。网络接口子系统616提供到外部网络的接口,并联接到其他计算设备中的对应接口设备。

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

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

存储子系统624存储提供本文描述的一些或所有模块的功能的程序和数据构造。例如,存储子系统624可以包括执行本文描述的一种或多种方法的所选方面的逻辑。

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

总线子系统612提供用于使计算设备610的各个组件和子系统按预期彼此通信的机制。尽管总线子系统612被示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。

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

在一些实施方式中,提供了一种在环境中导航移动机器人的方法,该方法包括识别环境中的导航目标的目标标签,以及将移动机器人导航到导航目标。将移动机器人导航到导航目标包括:在导航到导航目标期间的多次迭代中的每次迭代中:获得对应的当前观察数据,对应的当前观察数据基于来自移动机器人的传感器组件的对应的当前输出;使用经训练的高级策略模型处理对应的当前观察数据和目标标签,以生成对应的高级动作输出;使用对应的高级动作输出从定义的高级动作空间的多个离散的高级动作中选择对应的特定高级动作;获得对应的当前附加观察数据,对应的当前附加观察数据基于来自移动机器人的附加传感器组件的对应的当前附加输出;使用经训练的低级策略模型处理对应的当前附加观察数据和对应的特定高级动作,以生成对应的低级动作输出;和基于对应的低级动作输出控制移动机器人的一个或多个致动器,以使移动机器人实现对应的低级动作。对应的低级动作输出定义定义的低级动作空间的对应的低级动作,并且与高级动作空间相比,定义的低级动作空间更精细地定义机器人运动。

这些和其他实施方式可以包括以下特征中的一个或多个。定义的高级动作空间的离散的高级动作可以没有对在低级动作空间中定义的机器人运动的一个或多个参数的任何定义。定义的高级动作空间的离散的高级动作可以没有对机器人运动的任何速度的定义,并且低级动作空间可以定义机器人运动的一个或多个速度。低级动作空间可以是连续动作空间。每个对应的低级动作可以定义一个或多个对应的线速度和/或一个或多个对应的角速度。例如,移动机器人可以包括第一轮子,并且对应的低级动作中的每一个可以定义第一轮子的一个或多个对应的线速度中的至少一个对应的线速度。传感器组件可以是相机和/或附加传感器组件可以是接近传感器、一维(1d)lidar组件或二维(2d)lidar组件。传感器组件可以是相机,每个对应的当前输出可以是对应的当前图像,并且每个对应的当前观察数据可以是对应的当前图像的对应嵌入,其通过使用图像嵌入模型处理当前图像而生成。在生成每个对应的高级动作输出时,还可以使用经训练的高级策略模型来处理对应的附加观察数据以及对应的当前观察数据和目标标签。在生成每个对应的低级动作输出时,可以不使用经训练的低级策略模型处理对应的当前观察数据。经训练的高级策略模型可以是循环神经网络(rnn)模型和/或可以利用监督学习而被训练。可以使用强化学习来训练经训练的低级策略模型。例如,经训练的低级策略模型可以利用奖励信号而被训练,奖励信号基于来自机器人模拟器的输出而生成,机器人模拟器模拟在模拟环境中对模拟机器人的导航。在生成每个对应的低级动作输出时,还可以与对应的当前附加观察数据一起处理来自一个或多个紧接在迭代之前的对应的当前附加观察数据。目标标签可以包括具有独热值的独热向量,该独热值基于环境中导航目标的位置、物体的分类或物体图像的嵌入而被分配。在多次迭代中的每一个中,该方法可以进一步包括:确定对应的特定高级动作是能够导致碰撞的特定高级动作;以及响应于确定特定高级动作是能够导致碰撞的特定高级动作,可以执行使用经训练的低级策略模型处理对应的当前附加观察数据和对应的特定高级动作,以生成对应的低级动作输出。

在一些实施方式中,提供了一种在环境中导航移动机器人的方法,该方法包括识别环境中的导航目标的目标标签,以及将移动机器人导航到导航目标。将移动机器人导航到导航目标包括:在导航到导航目标期间的每次迭代的每个中:获得对应的当前观察数据,对应的当前观察数据基于来自移动机器人的传感器组件的对应的当前输出;使用经训练的高级策略模型处理对应的当前观察数据和目标标签,以生成对应的高级动作输出;使用对应的高级动作输出从定义的高级动作空间的多个离散的高级动作中选择对应的特定高级动作;确定对应的特定高级动作是否是能够导致碰撞的特定高级动作;当确定对应的特定高级动作不是能够导致碰撞的特定高级动作时:基于针对对应的特定高级动作定义的对应的默认低级动作,控制移动机器人的一个或多个致动器;以及当确定对应的特定高级动作是能够导致碰撞的特定高级动作时:使用经训练的低级策略模型生成对应的低级动作输出,所述对应的低级动作输出基于高级动作并根据低级策略模型被优化,以在不碰撞的情况下最快速地到达导航目标。

在一些实施方式中,提供了一种训练用于在移动机器人的自动导航中协作使用的高级策略模型和低级策略模型的方法。该方法包括执行高级策略模型的监督训练,以训练高级策略模型基于处理对应的观察数据和环境中的对应导航目标的对应目标标签来生成对应的高级动作输出,对应的高级动作输出指示多个离散的高级动作中的哪一个高级动作将导致最接近对应的导航目标的运动。执行监督训练包括:使用在真实环境四处捕获的真实图像作为在监督训练期间要由高级策略模型处理的输入的一部分;以及在监督训练期间,使用真实环境中的基准真相导航路径生成损失作为监督信号。该方法进一步包括执行低级策略模型的强化训练,以训练低级策略模型基于处理对应的附加观察数据和对应的高级动作来生成对应的低级动作输出,对应的低级动作输出指示与高级动作相比更精细地被定义的高级动作的特定实现方式。执行强化训练包括:使用由机器人模拟器生成的模拟数据,基于奖励函数生成奖励;和使用奖励来更新低级策略模型。奖励函数惩罚机器人碰撞,而可选地奖励到达导航目标时更快的速度和/或更短的距离。

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