• 论文阅读:Acquiring Task Models for Imitation Learning through Games with a Purpose Lars


    标题:Acquiring Task Models for Imitation Learning through Games with a Purpose Lars

    作者:Lars Kunze∗, Andrei Haidu†, Michael Beetz‡

    下载链接:https://ai.uni-bremen.de/_media/paper/kunze2013acquiring.pdf

    0. 摘要

    教机器人日常工作(例如通过指令制作煎饼)需要非专业人员可以直观操作的界面。 通过在虚拟环境中使用数据手套执行新颖的操作任务,可以直接从模拟器中获取并提取所演示动作的与任务相关的信息。 我们将这些模拟的低级数据结构转换为有意义的一阶表示形式,从而能够选择数据段并在抽象级别上对其进行分析。 因此,所提出的系统是一种强大的工具,可用于获取操作动作的示例并对其进行分析,从而可以告知机器人如何执行任务。

    1. 介绍

    将自主操作机器人的任务库扩展到人类规模的操作任务的开放式集合,需要有效编程的新颖方法。 一种使机器人能够掌握日常操作技能的有前途的方法是模仿学习或通过示范学习[3],[6],[15]。 模仿学习分析人类的表现并估计关键参数。 因此,所学行为会复制并模仿人类所执行的动作。 Albrecht等人[2]的工作使用了优化理论中的方法来改进后处理步骤中的学习模型。 尽管这些方法在某种程度上已证明是成功的,但由于它们仅复制观察到的行为(动作)而没有理解对象之间的相互作用,动作的效果,行为背后的意图以及由不同环境引起的行为变化,因此受到了限制。

    例如,在模仿学习中,难以获得将煎饼混合物倒入锅中的通用且灵活的程序。 由于机器人不知道演示者试图避免溢出煎饼混合物,因此很难知道容器旋转的速度和距离以及容器的保持高度。 此外,如何保持容器取决于煎饼混合物的粘度及其开口的大小。 尽管可以感知某些上下文信息(例如开口的大小),但是机器人无法感知其他方面(例如混合物的粘度)。

    Chella等人[7]的工作通过将有关对象的动作和状态的符号知识纳入学习过程来应对这一挑战。 同样,这项工作获得了中间任务状态的语义描述,以通过模仿来构造和改善学习。

    在本文中,我们提出了使用有目的游戏通过模拟学习教机器人的众包方法。 使用游戏的优势包括,首先,无需花费大量精力即可获取大量教学情节的能力。 其次,由于游戏与物理模拟器相结合,因此可以直接观察并从语义上解释物理效果和事件(例如接触)。 第三,机器人可以通过弥补一些情况并将其馈入游戏数据库来主动学习。

    图1显示了众包方法的整体思想。用户在交互式物理模拟中执行操作任务。通过将桌子上的说明中指定的所有原料和工具放入,开始计算机游戏。然后,它在屏幕上打印各个指示步骤,并要求播放器执行这些指示步骤。物理模拟器提供有关对象交互作用,动作效果的因果关系和力的信息。我们通过特定的物理过程(例如混合,烘焙等)扩展了模拟器。模拟器的数据结构(即对象的动态)在整个游戏中都受到监控和记录。然后,将日志转换为时间一阶表示形式,称为时间轴。所获取的时间线集变成虚拟知识库,学习机器人可以从该知识库中以基于PROLOG的语言查询有关游戏情节的抽象信息。最终,基于时间轴的综合任务模型可以为模仿学习中的机器人提供有价值的信息。机器人可以使用查询语言来回答查询,例如:

    动作的作用是什么?

    哪种行动可以达到预期的结果?

    导致当前情况的是哪种行动?

    为什么要执行某个动作?

    如何将动作参数化以产生不同的效果?

    在本文的其余结构如下。 我们首先在第二节中考虑制作煎饼的问题。 在第三部分中,介绍了从游戏中获取和表示任务知识的总体框架。 我们在第四节中描述了两个已实现的游戏,即用户必须执行浇注任务并评估由此获得的数据。 最后,在第六节结束之前,我们将在第五节中介绍和讨论相关工作。

    2. 制作煎饼

    在日常工作中,个人机器人助手应完成尚未预先编程的新颖任务。 在这项工作中,我们以制作煎饼为例。 Tenorth等人[16]演示了机器人如何通过从Web提取自然语言的逐步描述并将其转换为定义明确的可执行计划来扩展其任务范围。 在Beetz等人的工作中[5],我们描述了一个实验,其中我们的机器人Rosie根据这样的计划实际执行了制作煎饼的任务。

    自然语言说明具有足够的描述性,使人类可以理解任务。但是,对于机器人而言,此类说明的规范性很差。也就是说,在实验中,计划的许多参数是由程序员确定和指定的。但是原则上,机器人必须通过其他方式来推断这些动作的适当参数。通过观察执行任务的人员,机器人可以估计一些缺少的参数。例如,当执行倾倒动作时,机器人可以估计诸如容器的高度和角度之类的参数。同样,可以估计该动作的持续时间。可以从从Web或人工跟踪系统中检索的教学视频中提取此类信息[4]。由于我们的目标是对此类操纵动作的物理效果有深入的了解,因此,我们建议基于基于物理的模拟器中玩的游戏来获取与任务相关的知识。例如,在考虑浇注动作时,我们想回答诸如

    游戏期间洒了多少混合油?

    煎饼机上倒了多少?

    它形成了合适的煎饼吗?

    原始容器中剩余了多少混合料?

    用户将容器保持在目标上方多长时间?

    在什么高度? 以什么角度?

    3. 通过游戏获取任务知识

    在总体框架的简要概述之后,我们解释了虚拟操作环境,基本表示形式和推理机制,最后通过示例说明了所有处理步骤。

     A. 总览

    图2概述了任务模型获取的框架。 该框架由两部分组成:虚拟操作环境和用于数据提取和分析的知识处理模块。

    在虚拟环境中,可以使用数据手套和3D位置传感器来操纵对象,其中传感器信息直接转换为模拟手模型的姿势和关节。 由于我们对模拟的世界状态有全面的了解,因此我们能够提取与任务相关的对象的各种信息。 该信息包括,例如,对象的位置,方向,线速度和角速度以及其边界框。 此外,在每个时间步骤中都会报告对象之间的接触。 与基于视觉的系统相比,我们不必处理遮挡和其他典型问题,例如识别透明物体。

    我们已经设计和实现的框架可以通过记录模拟器的内部状态,用作获取与任务相关的信息的工具。 然后将记录的模拟转换为基于间隔的一阶表示形式,称为时间轴,如[13]中所述。 通过制定逻辑查询,我们可以从这些时间线中语义提取任务相关信息。 例如,我们可以查询用手握住容器的姿势。 然后,可以将统计数据和机器学习的方法应用于所选数据,以针对各个方面分析操作动作。

    B. 虚拟操纵环境

    虚拟环境基于Gazebo; 具有刚体物理的3D多机器人模拟器。 在环境中,戴着数据手套的用户控制机器人手,这使他可以与对象进行交互。 图3显示了硬件设备和控制虚拟机械手的用户。

    虚拟手是DLR-HIT机械手的模拟版本,使用统一机器人描述格式(URDF)进行描述,URDF是用于表示机器人模型的XML格式,然后将其加载到模拟器中。 该手由四个相同的手指组成,每个手指具有四个关节,但拇指除外,该拇指具有模仿人类对立拇指的附加自由度。

    我们用于检测手指关节位置的数据手套是X-IST Dataglove。 它配备了15个弯曲传感器(每个手指三个,每个关节一个)。

    为了检测手的绝对位置和方向,我们使用Razer Hydra游戏控制器。 它有一个发射弱磁场的基站,借助于传感器,这些传感器最初集成在控制器中,然后连接到数据手套,我们可以进行真正的六自由度运动跟踪。

    通过在每个模拟时间步长(1000 hz)上计算需要移动到所需位置的所需线性/旋转速度,可以控制虚拟手的位置。 比例积分微分(PID)控制器在模拟位置和实际位置之间存在差异,可返回所需的速度,以使手部动作平稳。 为了简化控制器,禁用了作用在手上的重力,这不会影响其性能,因为惯性力仍然存在。 以类似的方式控制手指。

    C. 操作任务的表示与推理

    在框架内,监视器会跟踪模拟器的状态演变,并在两个后续状态之间存在差异时记录信息。 因此,记录的模拟是随时间变化的一系列状态。 我们基本上区分两种状态,即世界状态和联系状态。 世界状态包括物体在特定时间点的位置,方向,线速度和角速度以及边界框:

     接触状态保存有关某个时间点两个对象之间的接触数量(数量)的信息。 此外,它包括以下每个接触点的相应力,转矩和法线:

     使用称为SimulatorValue的谓词访问记录的模拟的数据结构,如下所示:

     从而可以使用不同的功能来访问带有时间戳记的世界和联系状态。

    通过使用上述谓词,已记录的模拟被转换为基于时间间隔的一阶表示形式,称为时间轴。 我们使用与事件演算[12]中相似的谓词来访问和评估PROLOG的时间表。 该表示法基于两个概念,即流利和事件。 流利度是随时间变化的条件,例如,杯子里装有煎饼混合物:contains(杯子,mix)。 事件(或动作)是在特定时间点产生影响的时间实体,例如,考虑将杯子中的混合物倒入煎饼机的动作:发生(倒(杯子(锅,锅)))。 通过使用谓词Holds(f,t,tl)来表达有关流利和事件的逻辑陈述,其中f表示流利或事件,t仅表示时间点,tl表示时间轴。 以下逻辑公式显示了流利如何基于其他两个流利,即Contact和更高流利,它们又基于模拟器的数据结构:

     

     以下简化摘录显示了如何使用上述语言元素定义倾倒动作。 如果在时间轴开头的杯子中有一些混合X,并且在时间轴末尾的平移中有X的子集,即Y,则倒入谓词为true。 请注意,此谓词无法确定何时发生操作以及是否有任何混音溅到桌子上。

     类似地,我们可以制定一阶查询来检索第二部分末尾列出的问题的答案。

    D.一个例子:获得浇筑任务的知识

    在本节中,我们描述如何从虚拟环境的执行跟踪中获取任务知识。

    用户执行了与制作煎饼情况有关的任务,即将煎饼混合物倒入煎饼机。 图4说明了如何在虚拟操作环境中执行任务。

     通过将模拟器的数据结构转换为时间线,我们可以使用一阶逻辑从语义上查询与任务相关的数据。 例如,我们可以在杯子和机器人手之间有接触的时间间隔内询问杯子的姿势,如下所示:

     其中I表示时间间隔,其他变量表示它们各自数据类型的列表。 同样,我们可以获取该间隔内杯子的最后位置,以分析用户在倒酒后将杯子放置在何处。

    在实验中,从不同的高度倒出液体,可以通过将轨迹成簇看到(图5)。 我们首先应用动态时间扭曲来对齐不同时间长度的轨迹,然后像[2]中那样对轨迹进行聚类。

     逻辑查询使我们可以抽象地选择已记录模拟的数据段。 例如,当杯子在煎饼机上方或倾斜一定范围内时,我们只能选择数据。

    4. 实验结果

    我们在虚拟环境中设置了两个游戏来获取任务知识。 在这两种游戏中,任务都是将煎饼混合物倒在煎饼机上。 但是,游戏中的条件和环境各不相同。 对于每个游戏,我们首先说明其初始条件和用户必须完成的任务,其次,我们介绍如何分析和评估提取的数据。

    A. 倾倒而不会溢出

    1)概述:在第一个游戏中,用户的任务是将煎饼混合物倒在煎饼机上而不溢出。 使用煎饼机和桌上的杯子初始化模拟。 用户的虚拟机械手在环境中漂浮。 用户必须抓住杯子,将其移至煎饼机上方的某个位置,使其倾斜,以使混合物从其中流到煎饼机上,最后将其放回桌子上。 由于用户不应该溅出任何东西,因此他/她在执行任务时必须小心。

    为了分析用户相对于液体粘度的行为,我们更改了游戏中煎饼混合物的流动性。

    液体模型附有一个控制器,该控制器为每个颗粒设置给定的阻尼系数。 阻尼是通过在每个时间步长(1000 hz)上将每个粒子的当前角速度乘以一个阻尼系数值(1-8)乘以0.05来实现的。 因此,我们可以控制液体的粘度水平。

    我们使用了八个不同级别的流动性。 对于每个级别,用户必须执行十次试用,即总共进行80次试用。 然而,用户事先不知道流动性水平。 因此,他/她必须在每场比赛的第一轮中都经历一下。

    我们的假设是,如果增加混合物的流动性,则用户在倒酒时会降低杯子的位置,以防止液体溅到桌子上。 平均而言,如果混合物具有更高的粘度以增加流速,则我们期望倾斜杯子时角度也会增加。

    2)结果:总共,我们针对各个方面分析了八个不同流动性水平的80个试验。 使用时间轴数据结构表示各个试验的记录数据,这使我们能够使用一阶语言进行查询。 为了进行分析,我们基本上从用户将杯子举到煎饼机上方并将其倾斜超过30度的时间间隔中选择数据。 以下查询显示了如何选择数据

     其中I1和I2表示时间线TL上的时间间隔,数据包括给定时间间隔内有关杯子的所有信息,例如其位置,方向,线速度和角速度以及接触。

    首先,我们评估了用户是否针对不同程度的流动性将液体洒到桌子上。 图6显示,在流动性高的情况下,几乎所有试验中都有液体溢出。 当粘度增加时,用户洒东西的试验次数也减少了。

    通常,所获得的数据表明用户如何在所有阻尼因素的十次试验中熟悉任务并优化其行为。 当游戏进行到下一轮时,持续时间和高度都降低了。

    但是,更有趣的是,观察到的行为如何随粘度的不同而变化。 当杯子倾斜到煎饼机上方时,我们分析了杯子的姿势。 对于十个试验中的每个试验,我们都计算了该时间间隔内的高度和角度的算术平均值。 图7显示,如果粘度增加,则高度和角度通常都会增加。 具有最小阻尼值的角度是一个例外。 可能是由于这是用户玩的第一款游戏。

    我们还计算了容器高度和粘度水平的皮尔逊乘积矩相关系数。 p值表明变量之间的相关性很显着(p值为0.0001)。 但是,此结果应由更大的用户组验证。

    B.倒入适量

    1)概述:在此游戏中,用户的任务是将一定量的煎饼混合物倒入煎饼机。 与其他游戏类似,该模拟使用煎饼机和包含一些煎饼混合物的容器进行设置。 用户应该用机械手抓住容器,将一定量的内容物倒入煎饼机,然后放回桌子上。

    在游戏中,我们改变了两个条件。 首先,向用户展示一个杯子或一瓶煎饼混合物。 后者的开口较小,即,倾斜时较少的液体从容器中流出。 其次,我们改变了容器的填充水平。 总的来说,我们研究了各个容器的四个填充水平。 要求用户倒入的煎饼混合物的量对应于最低填充水平。 图8显示了不同类型的容器和填充水平。

    通过在各种情况下(即使用不同类型的容器和填充级别)执行任务,我们希望分析用户的行为是否取决于上下文。 如果我们的假设是正确的,我们应该能够提取取决于任务上下文的参数,例如倾倒角度,高度和时间。 总体而言,用户进行了80次试验,每个容器40次,填充水平不同。

    2)结果:首先,图9(左)显示用户能够在所有填充水平的两个容器中向煎饼机倒入合理数量的20个目标颗粒。 图9(右)表明,当容器是瓶子时,使用者通常会倒更长的时间。 这是有道理的,因为瓶子的开口小于杯子的开口。

    图10(左)显示了当填充量增加时,两个容器的高度平均降低。 图10(右)显示了针对不同容器类型的倾斜角度的相反结果。 角度越大,容器的倾斜度越大。 我们将通过进行更多的试验并深入分析数据来调查这种行为。

    5. 相关工作

    基于物理的模拟器已成功地用于教给外科医生如何进行外科手术[14]。在机器人技术中,它们已在计划[17]和导航[8]中部署。

    具有目的的游戏已被用来从互联网用户那里获取常识知识[1]。 但是,这些游戏大多数都专注于图像和自然语言任务。

    [4]的工作描述了一种无标记跟踪人体运动的方法。 在这项工作中,我们使用了数据手套和Razer Hydra传感器来可靠地控制虚拟手。

    模仿学习的工作通常只关注观察轨迹的模仿([11])和/或优化([2])。 也就是说,有关上下文,效果和用户意图的信息被忽略了。 直到最近,才有一些方法开始考虑模仿学习中动作的影响[10]。 [9]的工作使用零速度运动来提供有关任务的更多结构化信息。 本工作从物理模拟日志中提取有关任务状态及其结构的高级信息。

    6. 总结与讨论

    在本文中,我们提出了一种通过有目的的游戏获取有关操纵任务的知识的方法。 在游戏内,指示用户在虚拟环境中执行操作动作。 在模拟环境中,用户通过用数据手套控制机器人手来操纵对象。 模拟器的数据结构被监视,记录并转换为时间表。 时间轴上的逻辑查询可用于回答诸如“哪个动作会导致期望的结果?”之类的问题。 作为示例,我们提出了浇注动作的定义(第III-C节)。 这些查询结果将进一步使用统计和机器学习中的方法进行分析和解释,以生成用于操作任务的信息模型。

    在未来的工作中,我们将探索机器人如何主动学习缺少的任务知识。 为此,我们将研究如何根据感知到的情况自动生成游戏的初始配置。

    从游戏中获得的任务知识超出了通常在模仿学习中提取的信息。 在这种情况下,模仿学习通常可以学习并优化刻板印象的轨迹,我们还考虑任务执行过程中有关任务上下文以及对象之间相对于空间和物理方面的关系的信息。 因此,我们建立了反映例如所处环境,物理现象和预期目标的模型。

    从游戏中获取数据的优势还在于可以同时从多个用户那里获取大量信息。 但是,鉴于设备要求,当前我们的系统仅限于工作场所。

    作为我们方法的缺点,我们会看到一个问题,即当前最先进的机器人模拟器不像人们期望的那样健壮,灵活且易于使用。 但是,我们认为,有关性能和可用性的问题将由在游戏开发中大量使用物理引擎的游戏和动画行业解决。

    总的来说,我们认为所提出的从交互式仿真中提取信息的框架可以成为在机器人研究的许多领域(包括监视,计划,诊断,问题解答和学习)中获取与任务相关的知识的有用工具。

  • 相关阅读:
    vue学习之vuex的入门
    Vue的入门之安装
    JS之作用域链
    map去重value值
    增量部署和全量部署
    js跳转页面的方法
    Quartz定时任务时间设置
    @RequestParam和@PathVariable用法小结
    nginx负载均衡的5种策略(转载)
    使用Joda-Time优雅的处理日期时间
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/14259436.html
Copyright © 2020-2023  润新知