论文阅读:基于经验的通用机器人计划的自我专业化
题目:Self-Specialization of General Robot Plans Based on Experience
作者:Sebastian Koralewski , Gayane Kazhoyan , and Michael Beetz
0.摘要
为了使机器人能够在实验室环境之外工作,其计划应适用于各种环境,对象,任务环境和硬件平台。 这就需要目前尚无法满足实际应用需求的通用方法。 我们提出了一种方法,可以通过针对特定任务运行这些通用计划来使其专门化,从而从经验中学习适当的专业化知识。 我们提出了一种系统架构,该架构在计划执行期间收集数据以弥补监督学习问题,并利用已学习的模型在闭环中专门化计划。 我们通过让PR2机器人专用于其一般的提取和放置计划来展示我们的方法,从而将学习到的结果自动安装到计划中。 我们显示,在统计上有意义的意义上,专业计划的绩效要优于原始计划。
1.介绍
在机器人计划的特殊性和通用性之间存在根本的权衡。 针对特定任务,特定机器人,特定对象和特定环境量身定制了特定计划。 因此,他们可以做出强有力的假设。 例如,假定放置早餐桌的机器人可以假定应始终从其顶侧抓握一个碗状物,因为从前面或侧面抓握会导致该碗状物无法放入手中。 这个例程-始终是从上而下掌握的-非常简单,快速和强大,但仅适用于任务,对象和环境的特定上下文。 这种方法的缺点是特定的例程很难转移到其他环境。
另一个极端是编写计划,使其非常笼统。 为此,计划必须包含一般性声明,例如“拾取对象”,其中该对象在任何上下文中都可以是任何对象。 这种方法的优点是计划可以轻松地转移,但是它们需要非常通用的子例程,例如出于任何目的在任何上下文中获取任何对象。 通常,这些通用方法对于实际应用而言性能不足。
在这篇文章中,我们提出了一种更有前途的方法来胜任处理通用性和特殊性之间的折衷,即计划执行者能够通过为特定任务运行通用计划来专门化通用计划,从而学习适当的专业化知识。
为此,我们对以某种方式执行操纵任务的机器人控制问题进行了构架:我们认为这是推断动作参数化的问题,这暗示着未完成任务的成功执行。 例如,在设置桌子的上下文中,确定任务结果是否成功的相关操作参数是所需对象的推断位置,每个对象的抓取方向和抓取点,合适的对象 放置位置和相应的机器人基座位置。 因此,在这种情况下对计划进行专门化意味着要了解特定问题域所隐含的这些参数的分布。
为了使该过程自动化,我们设计了总体计划,以使其中的参数推断任务明确,透明且以机器可理解的方式表示。 我们还为计划配备了一种经验记录机制,该机制不仅记录了底层执行数据,而且还记录了计划执行及其关系的语义步骤。 两者的结合可以实现自主学习和计划专业化(见图1)。
因此,这篇文章的贡献如下:
我们展示了我们可以设计总体计划,以便他们可以根据执行特定任务的经验进行自我专业化设计;
我们提出了一种系统架构,该架构在计划执行期间收集数据以弥补监督学习问题,并利用模型在闭环中专门化计划。
我们展示了我们的方法在一般的获取和交付计划上的潜在功能,该计划将应用于特定环境和特定对象中表设置的特定任务。 我们让机器人学习并专门研究三种不同的推理任务。 机器人会自动将学习到的结果安装到计划中。 我们显示,从统计意义上讲,所得的专业计划要优于原始的总体计划。 我们还将讨论并表明,学习到的信息足够通用,因此可以期望将其转移到其他任务和环境。
2. 方法和架构
解决参数化移动操作动作的推理任务的方法有很多:蛮力搜索,使用专家系统,逻辑推理,模仿学习和基于经验的学习。 蛮力求解器是最简单的:只要知道每个动作参数的域,它就会在整个域中进行迭代,直到找到有效的解决方案为止。 这种方法可能非常耗时,另一方面,它总是找到有效的现有解决方案。 这种方法的另一个优点是,它为机器人代理提供了探索的空间。
我们在总体计划中应用了蛮力求解器。 但是,为了使该方法对于实际应用足够有效,我们严重依赖域离散化和启发式方法。 例如,为了推断如何定位机器人的基座以使其可以到达物体,我们将地板上所有位置的范围限制为仅在与物体相距机器人手臂距离的位置。 这减少了搜索空间,但是,问题域所隐含的细节(例如, 寻找到物体的最佳距离,没有被考虑。 在这本文中,我们将采用统计方法,以便通过学习任务上下文所隐含的细节来使计划专业化。
图2显示了实现本信函中介绍的方法的系统架构。计划执行者包含使用推理任务对操作进行参数化的总体计划。我们将推理任务表述为由QuestionAnswering(QA)系统回答的问题。以前,使用带有启发式集合的蛮力求解器来回答查询。在这封信中,我们实现了一个模型生成器,该模型生成器将生成存储在统计模型集合中的学习模型,以使QA系统能够选择相关模型来回答推理任务。为了能够生成模型,计划执行程序包含一个情景存储器记录器,这是一种记录机器人体验的机制,该机制不仅记录低级数据流,而且记录计划的语义注释步骤及其关系[1]。 。经验存储在情景记忆数据库中,特征提取器模块从中提取构成监督学习问题的特征,然后由模型生成器使用。
首先,机器人使用基于启发式的推理引擎执行移动操作任务。 一旦收集了大量数据,便会生成模型。 接下来,机器人现在使用基于模型的推理再次执行其任务,并收集更多数据。 新数据用于更新现有模型,从而关闭循环。 因此,通过生成统计模型,我们将总体计划转换为适合代理所执行的对象和环境的专门计划。
在以下小节中,我们将详细介绍系统体系结构的每个组件。
A. 通用计划
简而言之,我们系统中的计划由一组命令来执行,这些命令依次或同时执行。 这些动作以实体描述[2]的形式以抽象和不完整的方式描述,例如,用于将对象从A传输到B的动作是:
实施较高级别操作的计划包含执行较低级别操作的调用,从而创建了计划层次结构。 例如,通过按顺序执行三个较低级别的操作来实现传输操作:
请注意,动作说明非常抽象:运输计划没有告诉机器人用哪条手臂来取回物体,要使用的轨迹,在操纵过程中将底座放在哪里等,甚至都没有说在哪里寻找物体。 计划在执行期间通过向QA系统发出查询来推断出丢失的信息。 在图3中,显示了运输计划的三个子动作,以及每个动作的参数,这些参数是通过询问质量检查系统来推断的。
计划设计者必须使用哪些查询来推断哪些缺失的参数,以使每个活动都有许多与之相关的查询。 此类关联是通过Prolog规则action_grounding定义的。 例如,对于搜索操作,谓词的实现如下:
B. 情景记忆记录器
Episodic Memory Logger集成在计划执行程序中,它使记录器可以完全访问计划执行状态。 因此,可以记录和评估由计划执行处理和生成的所有数据。 由于我们的总体计划对于实际的机器人执行和在快速仿真环境中的执行都是相同的,因此从两个来源生成的数据结构都是相同的。
C. 情景记忆数据库
为了支持将来可能出现的任何学习问题并能够重用旧的执行日志,我们的情节性存储器包含代理在实验过程中生成的所有数据。 我们的情节记忆格式[1]分为两部分:符号和亚符号。 符号数据以Web本体语言(OWL)编写。 这些数据包括计划的完整操作层次结构,所有任务和子任务的参数和成功状态,座席向QA系统提出的所有问题以及相应的答案以及座席的完整状态。 目前,亚符号数据包含机器人的关节状态信息和图像,这些信息是在实验过程中由机器人捕获的。 即使子符号数据是非结构化的,它也通过时间戳注释链接到符号数据,因此很容易访问(通过RDF查询语言)。
情景存储器允许特征提取器模块提取隐式特征,这些隐式特征是创建统计模型所必需的,但不包含在推理任务的输入参数中。 举例来说,growing_pose查询仅包含ObjectType作为输入参数,该查询计算使用机器人的机械手从哪一侧接近对象以及在哪里抓取。 但是,我们的学习模型要求对象相对于机器人的姿势作为附加功能。 由于在查询中未明确给出,因此它是根据抓取动作开始时的机器人世界状态日志计算得出的。 因此,情景记忆使我们能够为当前和将来的学习问题生成数据,而无需修改记录器或数据表示本身。
D. 特征提取器
具有情景记忆,可以提取所需特征以生成用于计划专业化的分布。 在这封信中,我们处理了多个推理任务,例如,推断机器人姿势代表要抓握。 为了确定成功的机器人姿势,特征提取器通过RDF查询从情节性存储器中提取给定对象的所有成功的抓握动作,以及在抓取动作期间提取相应的机器人基础姿势:
查询结果可以随后处理成模型设计者所需的数据结构。 在III-A节中说明了我们方案的所选功能。 总而言之,功能提取器的任务是将用户定义的RDF查询应用于收集的情节记忆,并将查询结果自动转换为用户所需的数据结构。 当前,为推理任务定义所需的统计模型,识别所需的功能并编写RDF查询必须手动完成。 在第七节中,我们讨论了使这一过程自动化的可能性。
E. 统计模型生成器
该模块包含用于定义的学习问题的模板。 基于特征提取器提供的特征,模型生成器决定是否必须生成新模型或更新统计模型集合中的现有模型。 例如,当推断特定对象的抓握姿势时,如果该对象存在模型,模型生成器将从集合中提取一个现有模型,并用新数据对其进行更新。 否则,如果以前从未遇到过该对象,它将采用已定义的模板并训练新模型。 第四节详细讨论了为我们的总体提取和交付计划设计的模型。
F. 统计模型收集器
该模块存储所有模型,这些模型都经过了情景记忆训练。 当前,每个模型都表示为一个二进制文件,当QA系统需要它来回答问题时,该文件会在运行时加载。
G. 启发式集合
在我们当前的体系结构设计中,仍然存在一些基于启发式的推理方法。 我们使用它们来生成具有良好动作参数域覆盖范围的数据,以学习新的统计模型。 此外,由于统计模型当前仅涵盖了一般取放计划的11个参数中的3个,因此基于启发式的方法将处理其余的推理任务。 考虑到模型定义,特征提取和训练必须手动执行,因此为所有推理任务生成统计模型被认为是未来的工作。
H. QA系统
根据收到的问题,质量检查系统会首先估算它是否可以根据学习的模型提供答案,或者是否必须使用启发式方法。 如果存在专门的解决方案,则质量检查系统会根据查询中给出的功能以及从当前执行运行的情景记忆中推断出的功能来选择所需的统计模型。 选择过程基于模型生成器用来决定是更新现有模型还是创建新模型的相同标准。
3. 抓取和交付任务的概率分布
在本节中,我们定义了概率分布,这使总计划得以专门化。我们提出了概率分布,用于推断物体抓握姿势和机器人基础位置以进行提取和传递动作。 为了避免出现所提出的解决方案仅能改善获取和交付任务的印象,我们认为以下分布仅是系统的一部分,并且可以轻松添加其他模型(请参见图2中的统计模型集合)。 我们的事件内存日志记录机制能够记录代理执行的任何类型的任务和子任务。 根据收集的数据,创建,学习统计模型,然后将其添加到模型集合中。 这种机制允许我们的系统改进执行任何类型动作的总体计划,只要可以使用情节性记忆定义和训练统计模型即可。
A. 取
在这篇文章中,我们定义以下参数会影响获取动作的成功概率:抓取过程中机器人基座相对于对象的位置,机器人抓取对象的姿势,用于抓取的机器人手臂以及抓取机器人的不同参数 对象,例如重量,大小,材料,我们将其编码为一个称为对象类型的参数。
机器人的物体姿势由其位置和方向定义。 方向是具有连续值的三自由度(DOF)参数。 为了简化获取动作成功概率的模型,我们通过假设机器人正在操纵的所有对象都由飞机支撑来限制对象方向的范围。 由该平面支撑的对象在该平面的两个自由度中受约束,而第三个自由度则不受约束,因此该对象可以绕其向上看的轴自由旋转。 因此,我们通过对象的支撑面(即对象接触支撑平面的一侧)和面向机器人的面(即面向机器人的面)表示对象的方向。
机器人基地的位置也受到限制:我们假设特工无法从世界上的任何位置抓取物体,而只能从距该物体手臂一臂之距离的位置抓取物体。 计算机器人基座的方向,以使机器人定向为始终直接面对物体。
我们称机器人抓取器的姿势为物体的抓取姿势。 它由抓取器的位置(即抓取器与物体接触的点(我们称为抓取点))以及抓取器的方向(抓取方向)组成。 机器人操纵域中的每个对象都有一组预定义的抓取点。 这些是通过动觉教学或领域专家定义的。 为任何物体定义了六个抓取方向:上,下,右,左,前和后抓取。 像大多数其他推理任务求解器一样,确定要使用哪种抓握方向的推理任务是基于蛮力方法的:在机器人进行尝试之前,机器人会尝试随机的抓握方向。
我们定义在获取动作的上下文中确定成功的抓握姿势和机器人基础位置的概率分布,如下所示:
其中,
RP是机器人仍然可以到达物体的所有可能机器人位置的空间。 在给定机器人相对于对象RP的基本位置,以离散变量表示的抓握方向GO,以OT类型表示的手臂,手臂ARM以及以两个离散随机变量表示的对象方向(支撑面(SF))的情况下,我们要确定最大成功概率S )和面向机器人的面部(RFF)–与GO取相同的值。
该概率分布的一般思想是,代理可以从其基本位置进行采样以进行提取。 当业务代表到达选定位置时,将更新其世界状态,并通过在下一个计划步骤中询问抓握方向,QA系统将访问该世界状态并发送与采样位置相关联的抓握方向作为答案。 概率分布的另一个特征是我们可以在任务执行过程中合并环境信息:我们可以定义由于与环境的碰撞机器人无法站立的区域的概率为零。
B. 交付
为了能够在选定的位置递送对象,代理必须知道如何在附着对象的情况下定位自身及其抓手。 因为放置轨迹等于拾取轨迹,所以我们将传递动作解释为逆取动作。 因此,与获取动作类似,我们表示传递动作成功的概率:
在传递动作中,主体已经手中有物体,因此我们考虑给定的抓握方向。
4. 抓取和发送任务的统计模型
为了能够创建III-A中所示的概率分布,我们需要创建统计模型以推断机器人的面部,抓握方向,然后使用分类器,该分类器使用先前的结果作为证据来计算 该操作将被标记为成功。
A. 机器人面对脸
5. 实验
我们的方法的优点之一是,不需要专门设计的脚本即可为训练集生成数据。 机器人可以简单地执行其通常的任务并同时收集数据。由于基于启发式的推理方法不是很理想,因此负样本数量很高。 尽管如此,所有样本(包括正样本和负样本)都是出于学习目的而收集的。 这封信的目的是优化采样过程,以减少阴性样本的数量,从而减少失败率。 为了不使我们的训练数据集过度适合评估数据集,机器人执行的拾取和放置任务在对象类型,对象起始和目标姿势以及用于获取和传递的机器人姿势方面有所不同。 在下文中,我们将解释如何生成训练集以及如何评估系统。
A. 仿真中的数据生成
为了生成数据,机器人在模拟中使用3个不同的对象执行了通常的拾取和放置计划[8]:叉子,杯子和碗。 在这种情况下,所有对象都以随机位置和随机方向在厨房的一侧(水槽区域)生成。 代理将每个物体运送到厨房岛上再返回。 我们执行此场景500次,以生成500个情节性记忆用于模型生成。 由于我们仅学习抓握方向和应用这些方向的机器人位置,因此我们决定(并在随后进行评估),来自仿真的数据足够现实,可以改善抓地力。 我们知道,要学习诸如抓地力之类的与物理相关的参数,我们不能依靠仿真,而是需要从现实世界中收集数据。
B. 模型生成
我们系统的特征提取器模块从生成的情节中提取了必要的特征以训练我们的模型。 由于我们只有一个很小的数据集,因此我们决定跳过对生成模型的单独验证。 但是,由于MLN是白盒模型,因此我们可以了解代理从数据集中学到的知识。 例如,它了解到,当从面向机器人的侧面抓取杯子而不是从顶部或侧面抓取杯子时,该代理商更为成功。 图1显示了机器人的基本位置基于启发式的分布与学习的分布有何不同。 可以看到,代理人了解到,由于机器人肘部的关节极限限制,为了成功地从前面抓起杯子,机器人应该站立得离物体更远一些。
查看训练有素的MLN的公式(请参见图4),例如,可以根据机器人尝试抓握物体的方向不同以及成功的程度来估算出离散特征域的情节数据覆盖率。 我们确定该代理至少看到一次离散特征的所有变化,因此我们决定不再进一步增加训练数据量。 我们对此的论据是,数据的增加将导致朴素的贝叶斯分类器在连续特征(例如机器人位置)上具有更高的覆盖率,而MLN的权重将更高/更低。 显然,这可以改善推断结果,但是也可能导致过度拟合。 数据较少会导致机器人丢失某些方向,因此,在计划执行过程中必须猜测要掌握的方向和基本位置。
C. 在仿真中评估
在评估真实机器人的性能改进之前,我们首先在仿真中评估了我们学到的模型。 作为仿真中执行的评估标准,我们选择计算成功获取和交付操作的次数以及失败的次数,即执行这些操作时的重试次数。 对于仿真,我们不测量执行时间,因为仿真中的机器人运动可以在十亿分之一秒内执行,因此很难进行比较。
测试数据集的对象是杯子,碗和勺子。 在训练数据集中没有看到汤匙。 为了最大程度地减小拾取和放置动作中涉及的无关参数的影响,我们选择了4种特定的对象配置,包括对象产生位置和目标位置。 我们还修复了用于动作的机械手(左或右)。 保持变化的参数是机器人的基础位置和抓取方向,这是机器人自行选择的。 场景如下:(1)从水槽区域取出碗并将其运送到厨房岛上的目标位置,(2)将勺子从水槽区域运送到厨房岛,(3)将汤匙取下。 从厨房岛上拿起杯子,然后将其带到水槽区域。 我们对这4种配置分别进行了25次运行,一次是通过总体计划,一次是通过专业计划(参见表II)。
如果在仿真中执行的所有计划都能成功执行,那么总共将有300次成功的获取和交付操作,即,一个计划总共可以完成600次成功的行动。 但是,某些操作失败,因此某些操作未执行。 因此,如果获取对象失败,则不再执行对该对象的传递操作。 这意味着,如果总体计划具有相同数量的成功提取操作,则总体计划中的重试次数可能会大大增加。
评估表明,在任何类别中,专业计划都优于总体计划。 专门计划成功执行了更多的操作,并且与一般计划相比,仅需要重试次数的一半左右。
D. 在真实机器人上评估
在成功地进行了仿真评估之后,我们想评估我们学习的模型是否可以提高真实机器人的性能,以及来自仿真的数据是否足以改善与物理无关的参数。 在实际的机器人上,评估标准已被选择为成功动作和重试的次数以及执行时间。 由于在真实的机器人上收集足够的数据点以对成本进行有意义的经验估算非常耗时(一个对象的运输需要4-5分钟,这使得48次运行需要大约4个监督的机器人小时),因此我们不认为我们在真实机器人上的实验是有效的经验评估,相反,这些实验是为了证明该框架在真实机器人上是可行的,并且从几次运行中我们可以观察到故障数量和执行时间都有希望的改善。
我们已经用总体计划和专门计划执行了这4种配置中的每一种。 表II显示了成功执行操作和重试的次数。 计划之间的成功操作总数是相同的,但是专业计划能够以更少的重试次数执行这些操作。 表III显示,专用计划将实际PR2上的访存平均执行时间减少了近30%。 交付执行时间平均减少了至少17%。
6.相关工作与讨论
在本文中,我们介绍了一个通用的学习框架,该框架能够通过学习推断操作参数的查询的答案来提高移动操作操作的性能。因此,重点是能够学习任何推理查询的答案,无论是在连续域还是离散域中,都与特征的数量和类型无关,如果特征是明确给出的或必须被推断的,等等。先前已经考虑了可以学习任何动作参数的通用框架[9],[10]。这种框架的主要缺点是必须在机器人计划中明确说明学习问题和用于解决问题的模型。这意味着,如果设计人员决定更改基础模型或该模型需要新功能,则必须重写机器人的计划。在本文中,我们介绍了一个无缝集成到计划中的学习框架,这样计划甚至都不知道推理任务的答案是来自学习框架还是来自不同的(例如基于启发式的)方法。因此,在正常的机器人执行期间会自动获取训练数据,从而随着时间的推移,计划的性能会得到显着改善,而计划本身不会发生任何变化。
监督学习的最新技术展示了通过深度强化学习方法[11] – [13]极大地改善了操作任务,主要集中于学习特定技能,例如计算握力或手法。一些应用端到端方法来解决较长时间的多级操作任务[14]。在本文中,我们考虑了更复杂的移动操作任务,即组合的操作和导航,并用另一种方法来解决它,这是将学习轨迹的一个大学习问题分解为执行完整任务的较小且较简单的子问题。作为学习问题的统计模型,我们选择了MLN,我们可以在其中使用一阶逻辑来表示复杂的关系,并且能够了解代理从其自身经验中学到的知识。我们认为MLN是白盒模型是一个优势与黑匣子模型(例如神经网络)相比,它可以识别与机器人无关或与对象无关的重要特征,并将这些知识传递给其他机器人和环境。它还允许重用完整的模型,例如,我们将学习到的可到达性模型用于拾取动作,也将其放置到具有类似成功的动作上。在普遍获取和放置的情况下,可转移性尤其重要,这预计将在诸如人类家庭之类的多种环境中工作。
我们并不是说MLN的性能要优于深度学习解决方案,实际上,特定学习算法的性能并不是这项工作的重点。 我们旨在通过白盒模型建立计划专业化框架。 但是,该框架可以与用户选择的任何其他学习模型一起使用。
7. 总结和未来的工作
在这封信中,我们介绍了一种利用机器人的实验经验从通用计划中生成专门计划的方法。 我们的方法是生成和更新统计模型以实现计划专业化的体系结构。 我们通过让代理执行一次一般计划和一次专门化来让代理执行各种操作任务,来比较一般计划和专业计划。 评估显示,少量数据点已经足以创建专门的计划,从而大大改善了业务代表的操纵任务绩效。
在当前状态下,所提出的体系结构不能自动识别学习问题所需的统计模型以及用于改进推理任务答案的所需功能。 因此,我们接下来将重点关注针对我们框架的自动机器学习。 作为统计模型,我们使用MLN,就我们所知,它不存在增量学习算法。 因此,我们每次都必须使用完整的训练集对模型进行重新训练。 因此,我们将另外关注用于MLN的在线学习算法,以实现增量学习。 当前,我们仅将我们的框架应用于推断三个参数,我们的目标是了解机器人在提取和放置期间可能提出的所有查询的答案。 此外,我们希望将我们的方法应用于其他家务劳动,例如浇,切或擦。