论文阅读:Automated acquisition of structured, semantic models of manipulation activities from human VR demonstration

标题:Automated acquisition of structured, semantic models of manipulation activities from human VR demonstration

作者:Andrei Haidu and Michael Beetz {haidu, beetz}@uni-bremen.de

0. 摘要

在本文中,我们提出了一种系统,该系统能够从虚拟环境中收集并注释人类执行的,机器人可理解的日常活动。 使用具有全身功能和眼睛跟踪功能的现成虚拟现实设备,可以在模拟的世界中绘制人体运动图。 虚拟世界中的所有交互都是物理模拟的,因此运动及其效果与现实世界密切相关。 在执行活动期间,一个亚符号数据记录器正在逐帧记录环境和人的视线,从而实现脱机场景的再现和重放。 结合物理引擎,在线监视器(符号数据记录器)正在解析(使用各种语法)并记录事件,动作及其在模拟世界中的效果。

1. 介绍

当前,我们看到机器人代理学习操纵任务[1]的快速进展,特别是通过模仿[2]和强化学习[3]。然而,在许多情况下,学习所需的经验量超过了合理的努力[4]所能提供的经验,特别是如果单个经验对应于完整的操纵情节。减少学习所需经验数量的一种方法是增加情节的信息内容。这可以通过将经验转化为适当结构化的活动模型并通过应用结构和目的论以及因果关系和直观的物理知识来解释情节来实现。尽管有几种方法开始朝着这个方向发展[5],但我们认为,由于人类活动具有高度结构性并具有许多规律性[6],[7],因此在这种活动表示中具有更大的潜力[6],[7]已在跨学科中进行了深入研究。研究领域称为行动科学[8]。

在本文中,我们以先前的工作为基础,促进了人类虚拟现实演示中学习数据的获取:AMEvA(日常活动的自动模型)[9],[10] –特殊目的的知识获取,解释和处理框架,能够记录和检测在虚拟环境中执行的操纵活动的力-动力状态。先前系统的主要限制是人体模型及其动作的粗略表示。人体模型仅由头部和手组成,由VR耳机和两个控制器跟踪。这种近似表示我们只能获得手和手操作的物体的轨迹数据,而不能获得人体的姿态数据。此外,该模型允许人类到达实际上无法到达的位置,因为其他身体部位会与环境发生碰撞,或者无法使用各种身体部位来操纵环境,例如使用肘部或脚关闭抽屉或门。

结果,本文的贡献是:(a)改进的人体模型表示; (b)与虚拟世界进行更现实的互动; (c)动作和事件识别/分段的粒度;对于(a),我们集成了凝视和全身追踪系统,以使我们能够深入了解人类的动作和意图。虚拟人体使用KNOWROB [11]对其骨骼部位进行了深入的语义表示,因此通常与机器人共享。这是通过使用虚拟身体部位的类,属性和关系扩展上层本体来完成的。在(b)中,主要的交互作用是完全基于物理学的抓取模型,其中抓取是由于相反的力和通过手部施加到对象上的摩擦力的结果而发生的。如前所述,集成的主体允许进行更自然和复杂的交互,例如使用除手(肘,脚)以外的其他身体部位关闭门/抽屉。对于(c),主要贡献是实现了更细粒度的在线监视器,该监视器能够检测和细分具有物理作用的通用交互。我们扩展了Flanagan模型[12]的取放功能,能够可靠地检测可抓握(抓握)运动,例如到达,固定,抓握,滑动,拾取,运输,放下。

图1通过将分段的取放动作描绘成有意义的运动模式(上图)和在同一执行过程中人类的注视(下图)来部分说明上述贡献。 在到达运动的开始处复制场景,并为每个随后的运动阶段用彩色标记(手轨迹和人的姿势)进行注释。 红色代表到达,黄色代表固定,绿色代表拾取,蓝绿色代表运输,蓝色代表下放动作。

本文的其余部分安排如下:第二部分概述了该框架,描述了符号虚拟环境以及与机器人知识库相关的情节性存储器的结构。 第三节介绍了人类与虚拟环境的互动。 第四部分介绍了在线活动识别模块及其启发式方法。 第五部分介绍了用于从混合知识库访问实验数据的示例查询。 我们将在第六节中介绍各种相关的工作,并在第七节中进行总结。

 

 

 

2.概览

图2描绘了系统的概述,其中要求用户在虚拟环境中执行任务。 该环境与扩展的KNOWROB知识库相连,该知识库包括虚拟世界中所有实体及其属性的表示(人类,物体,灯光,关节,Partonomies),以及在此任务执行过程中可能发生的动作和事件。 一个符号下的,符号的记录器在后台运行,每帧记录环境中的每一个变化(包括人的视线),后者是能够检测和记录动作和事件的模块的集合。 然后将它们编入索引,并以情节记忆的形式存储在混合知识库中。

A. 虚拟环境

虚拟世界中使用的数据结构可以分为两类:“物化”和“抽象”实体。可以将它们进一步分类为与渲染引擎,物理引擎,两者或都不相关。 “物化”实体是可以由渲染引擎绘制并由物理引擎模拟的实体:人体(骨骼体),环境中的对象(刚性体)或基于物理的粒子(例如液体或软粒子)身体。 “抽象”实体,例如灯光或视觉效果粒子(火花,火焰等)仅与渲染引擎相关,而关节/弹簧实体仅与物理引擎相关。自定义抽象实体(例如凝视姿势)对两者均无关紧要,因为它们既未被模拟也不被渲染。根据实体的类型,实体具有各种属性,例如“物化”实体的碰撞,质量,摩擦参数,纹理等。灯的发光颜色,强度,形状等。关节的运动极限(棱柱/线性),阻尼,刚度系数等。另一个重要属性是实体之间的分区关系,例如,抽屉手柄是抽屉的一部分。对于每个实体和属性,KNOWROB的扩展本体中都有一个对应的表示形式。

B. 情节记忆

图2的右侧描绘了记录的数据集的结构。它分为符号表示法和亚符号表示法。符号部分存储在KNOWROB中,并使用OWL [13]表示,而对于次符号部分,我们使用MongoDB数据库。从上到下检查数据集,我们首先使用捆绑在MongoDB服务器上的KNOWROB实例存储了许多任务。任务代表一种虚拟环境方案,在该方案中为用户分配了特定的任务。任务是本体中的概念,其中每个新任务在知识库中表示为唯一的实例,在MongoDB中表示为单独的数据库。这样的任务示例将是:“将桌子放在晚餐上”,“早餐后清洗桌子”或“将脏碗碟放入洗碗机中”。每个任务组件都分为两部分:元数据(在任务级别存储数据)和情节集合(作为每个执行任务的实例)。 “集”的概念也存在于本体中,因此每个情节实例在实例化时都会收到一个唯一的标识符,从而允许KNOWROB对每个情节中每个发生的事件进行分类,并查询整个知识库。

元数据的符号部分表示虚拟世界中每个实体类的实例化,这涉及:使用每个实体的UUID生成唯一的标识符,从而保证所有实例在以前或将来的任务中都是唯一的; 并收集实体的所有属性。 子符号部分存储虚拟环境重新构建任务方案所需的所有二进制资产:网格,材质,纹理,着色器,地图的光照构建等。这些都使用MongoDB的大型文件管理系统gridfs存储。

3. 交互

在本节中,我们介绍如何实现人体运动到虚拟化身的映射。 为了与环境交互,我们使用三种类型的交互。 首先,我们将全身跟踪数据作为动画应用到虚拟人体。 其次,对手的运动使用了更精细的控制器,从而可以进行更精确的微调,以近似现实世界的状况。 最后,我们有一个基于物理学的抓取系统,能够在各种预定义的抓取样式之间进行切换。 通过这三种交互方式,用户可以完全控制其虚拟运动,从而使他/她尽可能自由地在开放世界中自由移动。

A. 全身追踪

全身跟踪系统目前是一个实时动画,这意味着它将跟踪软件中接收到的每个骨骼位置映射到化身,而忽略了环境。 基本上,它可以对环境施加压力,但不能接收任何反馈。 因此,如果愿意的话,用户可能会穿过墙壁或家具,从而在模拟的世界中造成不稳定。 尽管存在限制,但用户仍然可以利用其他肢体与世界互动,并在这样做时迫使他/她使用自然动作。

B. 手部控制

为了实现更接近真实的交互,我们需要对主要用于与世界交互的部分(即手)使用不同的方法。直接映射将使交互最具有反应性,但是它也将导致用户与对象进行交互,因为它们本来就没有重量。因此,我们实施了一种允许与世界进行双向交互的方法。提起重物时,该物会向后拉动或滑出。这将迫使用户使用策略与环境互动,就像在现实世界中那样,例如用两只手稳定物体或举起重物。在实现中,我们使用了两个3D PID控制器,一个用于平移运动,一个用于旋转运动。控制器与跟踪系统处于闭环状态,控制器从中接收6D目标姿势,然后向手施加力和扭矩以尝试将其移动到所需姿势。控制器参数使我们可以校准指针,以便在响应性和强度方面与实际值相匹配。

C. 基于物理的抓取

为了在任务执行过程中产生合理的动作效果,我们在模拟手的上方实现了基于物理的抓握模型。 我们选择了日常对象操作中最常用的抓取方式,并根据Feix等人的方法对其进行了分类[14]。 抓取样式是使用标准3d动画工具创建的,其中每个抓取均由多个框架组成,这些框架存储了骨骼手的关节状态信息。 图3的左侧部分显示了三种抓握样式(从上到下:捏,包裹和三脚架)及其一些框架作为航路点的示例。 然后将这些动画存储到“物理抓取动画”数据集中,由抓取控制器加载。 因此,控制器将对两个用户输入做出反应:一个离散输入,它改变了抓握样式; 一个模拟量,它在抓取动画帧之间插入按钮映射,从而得出关节的目标角度。

 

 为了控制骨骼运动,每个关节都配备了一个驱动器,该驱动器从抓取动画中获取插值。 然后施加扭矩以将关节移动并保持在给定角度。 驱动器的操作类似于PD控制器,使用两个输入:刚度和阻尼。 刚度控制着驱动器朝向目标关节角度的强度以及阻尼朝向目标速度的强度。 换句话说,执行抓握的力量和保持抓握的力量来自任何外部干扰。

 

 在图4中,我们展示了基于物理学的交互系统在现实世界中的真实性。 我们描绘了使用一只手或两只手的横向抓握方式拾起填充板的时间表。 我们注意到,在拾取动作的最重要时间范围内,由于其重量,板块从抓地力中扭出。 但是,用两只手将重量分配在两点之间,从而大大减小了板施加的扭转力,从而成功拾起。 此类事件可以使机器人对其动作具有幼稚的物理理解。 通过将抓取样式表示为本体中的概念,它还将为机器人提供抓取样式与对象或动作之间的映射。

4. 在线活动分析器

在下一节中,我们介绍在任务执行期间实时运行的在线活动和事件检测模块,并象征性地记录虚拟世界中发生的各种事件。

A. 抓取检测

如前一小节III-C所述,当前的抓紧模型是基于物理的,因此,即使我们有用户想要抓紧某物的意图,该动作的实际成功也取决于周围的环境。 为了区分抓握时的手接触和实际抓握事件,我们为虚拟手配备了接触传感器阵列(请参见图4的右侧),以检测用户在执行抓握动画时手中是否有东西。 触点阵列分为不同的组,在示例图像中,我们的手指骨(指骨)为绿色,拇指为红色,手掌(腕骨)为蓝色。抓握检测器模块仅在用户开始抓握动画时激活。 然后,模块将跟踪与组中的传感器接触的所有对象。 当物体与至少两个不同组的传感器接触时,将检测到抓握。 传感器覆盖了大部分手部区域,它还可以同时检测到抓握多个物体。

该模块不会在抓握环境之间进行区分,例如,抓握要运输的物体,打开抽屉的手柄或抓握不可移动的物体(例如家具)。 它会在语义上进行注释,并记录发生的抓握事件,其中包括:事件的开始和结束时间,手和抓握的对象实例,包括用于执行操作的抓握样式。 使用KNOWROB,这些事件可以进一步具体化,使用一阶逻辑规则来推断与抓握相关的事件,例如“抓握”或“抓握”,如果在抓握事件期间“作用于”实例的质量大于其强度。 抓握的手可以应付。

抓地力检测系统易于检测抓握的不同语法,如果需要,它可以处理三套以上的传感器阵列。 例如,如果一个人想检测手指的横向握力(但是在厨房环境中很少见),则可以为每个手指添加一组不同的传感器阵列。

B. 联系人和支持者

用于检测力-动力事件的构件之一是接触事件和受支持事件[15]。 在我们的框架中,这两个模块捆绑在一起,组成一个模块,该模块安装在世界上的每个对象上。 与物理引擎紧密耦合,该模块将订阅对象上发生的任何碰撞。 触发冲突后,会将其解释为语义联系事件,并开始检查支持的事件,直到联系完成。 检查支持事件的语法要求两个接触的对象的相对垂直速度接近零。 这样,如果仍在托盘上运输物体,则托盘仍会检测到该物品被支撑。

与物理引擎紧密耦合,这些模块仅在模拟对象时才处于活动状态。 出于优化的原因,物理引擎会禁用所有处于稳定状态的对象,当这种情况发生时,模块也会被停用。 这样,系统可以扩展以支持数千个对象,而不会影响实时性能。 再次模拟对象后,相应的模块将重新激活并继续侦听事件。

在图5的左侧,我们展示了一个检测两个物体与支撑表面之间的接触和支撑事件的示例。 黄色的椭圆体区域表示接触事件,而绿色的区域受支持。

C. 扩展的拾放检测

在上述模块的基础上,我们现在介绍用于检测拾取和放置动作并将其分割为相关运动模式的语法。 图5描绘了语法用于检测达到抓取动作(最上方)和放置传递(最下方)所使用的最重要的阶段。

对于每个拾取和放置动作,我们首先开始检测到达动作,这对于任何执行操纵任务的机器人控制系统都是重要的动作模式。在我们的模型中,触及代表:用户的手朝最终将被抓住的对象的运动。当手(接触式传感器)与要抓握的物体接触时,到达动作完成。到达的起点很难检测,因为这种运动没有明显的特征。我们当前的解决方案是用手前面的感兴趣区域对此进行近似。在图(a)中,我们可以看到到达运动的描述。在场景中,我们有一个表面支撑的三个对象。抓手,代表人的手,以及在手前面的关注区域。每当物体与该感兴趣区域重叠时,它将被标记为可能要到达的物体,将保存发生时间戳,并跟踪其与手的相对距离。在所描绘的图像中,三个对象都与手的关注区域重叠,其中的蓝色星号表示将这些对象标记为可到达候选对象的时刻。

在下一个图像(b)中,我们展示了两个主要事件:首先,(•)潜在的注视动作的开始,直接导致相关的到达运动(静止电位)的结束。固定在我们的系统中代表:手的运动(当与待抓取的物体接触时)达到所需的抓握姿势,但是,并非每一个到达的动作都必须先进行固定。在图像中,黄色椭圆形小区域显示了手和潜在物体之间的接触。其次,(•)绘制了手从其先前姿势到当前姿势的轨迹。该轨迹分为两种颜色:绿色,代表到达的轨迹;灰色,如果不违反前面提到的规则,则该颜色将成为到达运动的理论起点,即:用户的手向物体移动”。在某一时刻,手移开了对象,因此被跟踪对象的开始到达时间不断重置,直到手再次开始向目标移动。在图像中,我们可以注意到苹果不再位于目标区域中,但是牛奶纸箱位于该区域中。该模型仍在跟踪该区域中的对象,因为它无法了解用户的意图,因此可能无法掌握该对象。

在图(c)中,用户抓住了物体(抓握的接触点以红色显示)。在抓取过程中,不再需要关注区域,并且删除了缓存的潜在对象。手部轨迹被延长(以蓝色显示),代表手部固定运动模式。抓住物体后,有两种可能的运动:(d)滑动或(e)拾取。我们定义了滑动运动:被抓物体在其支撑表面上的自发运动。当物体与其支撑平面接触时,示例框架中的滑动运动结束。这可能意味着该物品已被拾起或直接运输。在示例图像中,对象直接处于运输状态。滑动轨迹以紫色表示。另一种可能的情况是拾取动作,其定义为:将抓取的物体从其支撑表面上抬起。与到达动作类似,拾取器没有任何明显的功能可对其进行细分。我们知道它是在与支撑面的接触断开时开始的,但是无法确定它何时结束。例如,当从地板上拾取物体并将其放置在顶部橱柜上时,很难分辨拾取动作何时变为传送动作。为此,我们采用一种类似的方法来实现,当与支撑表面的接触断开时,将创建一个感兴趣的区域,当所抓取的物体离开该区域时,拾取动作将标记为完成。在图像中,轨迹以黄色表示,而感兴趣区域的离开处带有紫色星形。

接下来的运动是运输,在图(f)和(h)中进行了描述。 在我们的语法中,这被定义为:抓取物体在滑动或拾取后直至释放或放下或滑动的运动。在(g)中,我们可以观察到运输运动,然后直接滑动。如果抓取的物体没有从上方接近支撑表面,则会发生这种情况。如果物体从上方靠近支撑表面,则会发生下放运动。我们知道物体与支撑表面接触的时间到此结束,但是我们不知道它何时开始。因此,在运输运动期间,我们以衰减时间缓存所抓取物体的运动,我们在图像中使用了手形轨迹下方的绿色透明线对此进行了说明。现在的方法是,在运输之后每当发生放下运动时,都会创建一个感兴趣区域,然后我们回溯所抓取的物体的运动,直到它停止与该区域重叠,然后将其标记为放下的起点下动作。我们在图(i)中描述了这种情况。与到达情况类似,如果在放下运动期间,对象从支撑表面移开,则放下运动被缩短,仅在朝目标连续进行接近运动时才开始。图像(j)中描述了这种情况。

5. 实验

在以下部分中,我们简要介绍一些简短的KNOWROB [11]查询示例,这些示例说明如何从混合知识库访问和可视化特定数据,结果如图6所示。

 

 在第一个示例中,我们要求直接检测到的事件,而没有任何特定的推理。 该查询归结为搜索作用于给定对象类型的给定动作类型。 找到结果后,将使用动作时间戳记和对象实例在给定时间重建世界,并将查询到的标记附加到该世界上。 结果可以在图的左上方看到。

 

 在下面的查询中,我们利用世界的单物表示法来缩小对特定对象的搜索范围。 在这种情况下,我们要查询抓取属于特定类的句柄。 我们可以将结果可视化显示在图像的右上角。

 

 在最终查询中,我们使用子操作来定义上级操作类型。 在我们的情况下,系统没有直接检测到的放置动作,仅是其子部分。 定义了哪些子动作属于该类型的规则,可以使用临时推理来指定其顺序[16]。

 

 6. 相关工作

与我们的方法类似,在[17]中,作者提出了一个类似的系统,其范围是从虚拟环境中自动收集带注释的合成数据,主要侧重于视觉真实感。 相比之下,我们系统中的人机交互是基于物理学的,能够以机器人易于理解的方式自动检测并注释动作和事件。

在[18]中,作者使用在虚拟现实环境中执行的人类活动的数据集来生成关于动作之间的偶然依存关系的假设。 这两个系统的整合将使无需人工注释就可以收集和访问带有标签的人类活动。

7. 总结和未来的工作

在这项工作中,我们提出了一个能够自动从虚拟环境中收集带有完整注释的运动数据的框架。 数据存储在混合知识库中,结合了机器人可以理解和访问的符号和亚符号表示形式。 对于虚拟环境表示,我们使用虚幻引擎4及其底层物理引擎NVIDIA PhysX。

作为未来的研究,我们计划对系统进行各种改进,例如避免在动画人体上出现定向物理学,集成类似于手动控制器的精细物理学交互。 第一步是使用混合动画,该动画具有跟踪所跟踪的身体动画并对物理干扰做出反应的能力。 我们还希望使用人的注视模式来完善动作检测的启发式方法,尤其是在没有其他提示要使用的情况下。 另一个目标是收集类似于史诗般的厨房[19]的大规模数据集,并通过OPENEASE [20]平台将其在线提供给机器人和研究人员。

 

posted @ 2021-03-29 11:45  feifanren  阅读(69)  评论(0编辑  收藏  举报