论文阅读:Fast Robot Learning using Prospection and Experimental Knowledge

标题:Fast Robot Learning using Prospection and Experimental Knowledge

作者:(Asil Kaan Bozcuoglu), PhD thesis, Universität Bremen, 2019.

2. 

本章首先通过揭示其组件级设计来介绍所提出的框架。 之后,介绍了所提出的框架中使用的知识表示和处理工具。 最后,详细解释了所使用的情节记忆形式主义。

2.1 架构

该框架的实现主要基于机器人操作系统(Quigley等,2009b)(简称ROS)。 尽管它的名字叫ROS,但它不是一个操作系统,而是一个中间件,它通过提供硬件抽象,进程之间的通信机制,程序包管理和低级设备控制来为异构软件体系结构提供基础结构。

如图2.1所示,所提出的框架包括三层,即模仿,适应和预期。 根据其需求,机器人可以通过发送在SWI-Prolog中实现的谓词逻辑查询来使用一层或多层(Wielemaker,2003年)。 SWI-Prolog是称为Prolog的逻辑编程语言的开源实现之一,主要用于语义Web应用程序。 它具有用于谓词逻辑编程和本体处理的丰富库集。 SWI-Prolog的文档可在http://www.swi-prolog网站上找到。

 发送Prolog查询和接收答案是通过ROS服务调用,同步远程过程调用来实现的。 在ROS中,组件可以使用字符串名称提供服务,并且客户端通过发送包括一些参数的请求消息并等待答复来调用该服务。

使用openEASE的组件间通信(Beetz等人,2015)使用此类调用进行处理。 在传递大量数据(例如低级训练功能)的情况下,发送方会将这些数据发送到文件中。 openEASE通信协议是使用WebSockets设计的。 该通信协议在第4章中介绍。

2.1.1 组件概述

在本小节中,我简要概述了图2.1中描述的组件。 这些组件的每一个将在本章稍后详细介绍。

模仿学习

该组件负责执行快速模仿学习方法,以从虚拟现实演示中学习操纵技巧。 在第一阶段,此组件使用演示对训练一种称为元学习的学习算法,该演示对由n个虚拟现实演示和同一任务的机器人演示组成。 在第二阶段,该组件使用单个虚拟现实演示来模拟现实世界中的任务。

KnowRob

KnowRob(Tenorth和Beetz,2013; Beetz等人,2018)是一种用于机器人的知识表示和推理工具,其中包含静态本体和动态知识源,以便为机器人配备用于机器人实验的特定于上下文的知识。 在提出的框架中,KnowRob提供环境知识,自我知识,推理和学习谓词以及适应的语义规则。

openease

openEASE是一个云机器人平台,它使机器人专家可以使用NEEM格式上载本体及其执行日志,并使用其他人上载的本体和执行日志。 在提出的框架中,openEASE使NEEM免受虚拟现实演示和机器人实验的影响,并在必要时在NEEM内部提供知识,并提供远程勘探服务。

2.1.2 模仿层

为了实现方法1A,使用了模仿层。 图2.1用深蓝色描绘了该层,其交互箭头及其组件“模仿学习”。

首先,模仿学习必须使用存储在openEASE云平台内部的一组演示对来执行称为元培训的初始培训过程(请参阅第2.2.2节)。 这些对中的每对都包含n个虚拟现实(VR)演示和一个机器人执行相应的训练任务。 每次演示都使用相同环境的唯一设置。 以这种方式,游戏引擎渲染了真实世界的真实感版本。 在该过程中,学习了虚拟现实中的化身与机器人实施例之间的映射。

一旦完成元训练,该层就可以通过仅获取新任务的单个VR演示来获得快速模仿的能力。 第5章将详细介绍这种快速学习方法。

2.1.3 适应层

为了在新环境中重用过去的动作执行或利用其他人的执行,机器人可以利用适应层(图2.1 /栗色)。 以这种方式,过去执行中启用叙事的情节记忆(请参阅第2.2.1节)(简称NEEM)应该在openEASE中可用。

适应层提供的谓词应用了KnowRob内部的语义规则(请参阅第2.2.2.1节),该规则使用源和目标环境的语义映射以及语义机器人描述,将运动参数和子轨迹数据(如轨迹)定制为新环境。 在执行期间,机器人会使用这些谓词发送适应性查询。 结果,适配的数据被返回给机器人。

适应层以及语义规则和谓语将在第8章中进行更详细的说明。

2.1.4 勘探层

该层为远程仿真服务提供了一个接口,使机器人可以进行勘探。 典型的潜在客户查询包括要作为模拟环境加载的语义图,采取行动的问题(即,机器人应如何在给定环境中采取行动)和强化学习设置(即,学习算法,参数和 奖励功能)。

发送预期查询后,KnowRob与openEASE交互以生成具有所需设置的模拟。 该模拟记录了每个强化学习迭代的NEEM。 后来,这些NEEM用于找出可以由机器人执行的最佳动作。 有关勘探层和远程模拟服务的更多详细信息,请参见第6章。

2.2 知识表达和处理

2.2.1  KnowRob: Knowledge Processing for Robots

KnowRob as a Framework

KnowRob(Tenorth和Beetz,2013; Beetz等人,2018)为机器人提供了知识表示和推理功能,并以W3C Web本体语言(OWL)1的格式包含了有关家庭领域的现成本体。 机器人专家可以将这些功能和本体扩展到其他领域和应用程序中(Yazdani et al。,2018)。 机器人可以使用JSON_Prolog服务访问机器人操作系统(ROS)中间件中的这些功能和本体(Quigley等,2009a)。 通过提供机器人组件内部或机器人之间的共享语义,KnowRob使得使用不同软件组件获取的知识以及集成来自不同来源的信息变得更加容易。 从某种意义上说,这些共享的语义充当了机器人控制循环中的语言。

更简而言之,KnowRob提供有关环境,代理,操作和先前实验的知识。 如图2.2所示,谓词逻辑是访问此知识的关键工具。 使用在SWI-Prolog(Wielemaker,2003)中实现的专用于推理,学习和即时计算(可计算对象)的谓词,代理可以将要求特定知识的查询形式化。

JSON_Prolog服务充当一种问答机制,该机制查找类似于机器人控制回路组件所需知识的解决方案。 使用可用谓词以SWI-Prolog语法形式化的查询与使用反向传播算法的知识绑定在一起(Wielemaker,2003年)。

Environmental Knowledge and Object Models

在非结构化环境中执行复杂操作动作的机器人需要详细的环境信息,以便它们可以相应地调整其执行。 例如,机器人应该能够回答“我在哪里?”的问题。 我应该在哪里遍历以执行此操作? 适用于每项任务,包括导航要求。 此外,机器人需要环境和对象知识,以适应其高级计划并对其运动原语进行参数化。 如果机器人想从冰箱中获取饮料,则需要了解该冰箱的几何和物理特性,例如门把手的形状及其位置,以使其获取运动参数化。

KnowRob将环境知识存储在语义地图中,该语义地图对环境和对象之间的类型和关系进行编码,并与3D地图一起提供相对于参考帧的场景几何形状和对象位置。机器人可以直接将这些地图提供给它们的本地化和导航模块。语义图包含详细的对象信息。首先,一个类型定义反映了KnowRob类型分类法中的安排。每个类都通过subClass关系连接到相关的类。因此,当他们从根类型Thing开始穿过叶子时,会访问更特定的类型。其次,存在由诸如抽屉和橱柜之类的可移动部件组成的物体的铰接信息。对象部分之间的关​​节信息通过关节关系得以阐明。例如,在橱柜与其门之间存在铰链连接。此外,还用对象的几何和物理属性(例如高度,宽度,长度以及形状信息)对其进行注释。对于形状复杂的对象,存在一种将其在语义图中的描述与其3D网格数据链接起来的方法。

本文在第八章中广泛使用环境知识来使行动数据适应新的环境。

Agent Knowledge
为了降低复杂性,现代机器人软件被设计为模块化的,包括独立的,可互换的组件,从而每个组件都可以管理机器人控制的特定方面。 但是,这种模块化方法带来了两个重要的开销,即与共享数据结构进行协调以及组件之间的大量通信。

具有通用词汇表的知识表示主要通过在组件之间以及不同代理之间提供一种语言来提供减少这些开销的方法。 这种语言间可以极大地改变机器人控制,机器人交互,机器人编程和多机器人通信的方式。

KnowRob通过链接机器人组件的描述(例如,传感器,关节,链接,执行器和控制程序)以及本体中的动作功能来提供这种语言。 这样的本体是用KnowRob的语义机器人描述语言(SRDL)编写的(Kunze等,2011)。 最后,有关组件的知识可以推断出执行给定动作所需的组件,其中包括诸如3D感知,操纵和导航的能力以及诸如关节极限之类的物理属性。

在第4.4节中,我介绍了一个现场机器人技术用例,其中使用了座席知识来同步机器人搜索和救援团队的不同座席中使用的知识。

Knowledge about Actions

动作是按照其类型进行分类的,并按照分类结构进行排列(Tenorth等,2012),该行为为描述和实施KnowRob中的高级任务计划提供了词汇。 根据他们的需求,机器人专家可以通过根据自己的需求派生新的动作类型来扩展此层次结构。

这些动作类提供了有关动作的蓝图,包括前置角色,前置角色和所需的功能。 例如,机器人应使用3D相机执行3D感知任务。 类似地,切削事件需要具有锋利边缘的工具。 成功完成切割动作后,应获得多个相同的物体。 这样的提示可帮助开发人员开发高级机器人程序,这些程序正式定义如何订购一组动作原语并对其进行参数化,以满足给定的目标。 在“切割物体”计划中,控制执行程序可以推断出机器人必须执行以刀为目标物体的“拾取物体”运动原语。

2.2.2 openEASE: Knowledge in the Cloud

Beetz等人(2015年)提出了一种称为openEASE的云知识服务(图2.3)。 对于配备了关于动作,代理和环境以及各种代理执行的大量活动数据的标准KnowRob本体的机器人,openEASE充当机器人的远程知识表示和处理工具。 研究人员可以通过其Web界面与openEASE进行交互,该Web界面配备了用于查询知识库的SWI-Prolog控制台,用于临时投影世界状态的3D画布以及用于统计,实验图像和高级计划指示符的三个不同可视化区域( 图2.4)。 机器人控制程序使用专用API通过WebSockets(Fette,2011年)与此远程知识服务进行交互(Bozcuoglu等人,2018a)。

openEASE的架构依赖于Docker框架的虚拟化技术(Merkel,2014年)为每个用户创建称为容器的单独虚拟存储和处理单元。 openEASE预先安装了KnowRob容器。 此外,用户对包含NEEM的存储容器具有读访问权限,并且对特定于用户的本体和执行日志所在的特定于用户的数据容器具有读/写访问权限。

 

 openEASE as a Remote Knowledge Service for Robots

openEASE使机器人能够使用云上的可用知识并在彼此之间交换知识,以将感官上的差距众包(Heintz等人,2010年)。 在本节中,我将从概念上描述服务机器人如何从此类远程知识源中受益。 有关openEASE接口的技术详细信息,请参见第4.1章。

通过预先安装有关家用域,动作,代理和环境的标准KnowRob本体,openEASE已经为家用机器人提供了大量有关其任务的知识。 除了这些标准本体之外,openEASE还提供了在用户和机器人之间共享用户设计的本体的方法。 图2.5中描绘了两个不同的示例。 也就是说,Researcher_D使用Researcher_A的超市NEEM和本体来测试新的感知算法。 此外,由Researcher_B设计的家庭本体用于执行爆米花任务,分别由PR2,Toyota HSR和UniHB Boxy提供饮料和烤披萨任务。 一方面,存储在本体中的百科全书知识涵盖了意义推理差距的重要方面,即对高级计划有用的符号知识。 另一方面,此类知识并未涵盖机器人在执行任务时可能需要的所有任务知识。

 来自相似任务执行的符号和亚符号知识是任务知识的补充方面的缩影。 如果执行早餐准备的机器人具有一组来自相似任务的先前执行记忆,则它可以访问符号知识,例如以哪些顺序执行这些目标的子任务以及完成这些任务的顺序? 牛奶盒?,早餐食品在桌子上的位置如何?以及实验过程中的基本系统轨迹等符号数据。 机器人可以在openEASE中上载和访问此类实验知识。 通过这种方式,openEASE使用一种内存格式,该内存格式将这些内存链接到其本体论知识库,称为叙述性情节式内存。

2.3  Narrative-Enabled Episodic Memories (NEEMs)

如第1.4.2节所述,叙事性情节记忆(NEEM)(Winkler等人,2014; Beetz等人,2018)是在提出的框架中实现快速学习的关键要素之一。 在本节中,我首先遍历对良好的情节记忆结构的要求。 然后,将提供NEEM格式以及示例用例,例如推理,可视化执行摘要以及生成有关执行的统计信息。

4

本文将openEASE作为云机器人技术平台,用于存储启用叙事的情节性记忆(NEEM)并在代理之间交换它们,并减轻计算昂贵的心理模拟的负担。 在第2.2.1节中介绍了openEASE作为平台。

在本章中,我将介绍机器人控制主管如何与该平台交互以及如何以NEEM格式记录和访问体验。

4.1 与openEASE通信

在2.3.2节中,我描述了NEEM如何在基于ROS通信层的机器人控制回路中有用。 尽管使用ROS可以简化此日志记录模块与机器人软件的集成,但仍需要大量工作来考虑诸如在符号知识库中将机器人的内部数据结构与各个概念映射在一起的因素,以及建立现场知识库以实现以下目的。 保留已保存的情景记忆。

为了最大程度地减少这些工作,Bozcuoglu等人(2018a)提供了openEASE云引擎的接口,该接口使直接在云中记录情节记忆成为可能。 这种接口不仅是降低集成工作量的理想选择,而且还使机器人能够交换其情景记忆。

 openEASE使用Docker框架(Merkel,2014)创建虚拟存储和处理单元。 如图4.1所示,机器人通过使用其唯一的API令牌对自己进行身份验证来启动通信(Horstmann,2015年)。 这些令牌是使用Web界面生成的。 在成功认证的情况下,openEASE返回Web套接字地址作为响应。 通过使用该地址,机械手可以与其容器和系统范围的容器进行交互。 特定于用户的容器已预装KnowRob执行程序和标准本体。 此外,他们对具有标准执行日志的系统范围容器具有读访问权限,并且对特定于用户的本体和执行日志所在的特定于用户的数据容器具有读/写访问权限。

机器人应用程序可以使用C ++ API1与openEASE交互,该API提供了上述连接协议的抽象层。 此外,还存在一组SWI-Prolog谓词2,该谓词在KnowRob查询基础结构内部提供了类似的抽象层。

原文地址:https://www.cnblogs.com/feifanrensheng/p/14510278.html