zoukankan      html  css  js  c++  java
  • 论文阅读:SkillMaN—A skill-based robotic manipulation framework based on perception and reasoning

    SkillMaN—A skill-based robotic manipulation framework based on perception and reasoning

    0. 摘要

    服务机器人技术要解决的问题之一是使移动机械手在半结构化的人类场景中工作,这需要一种高效且灵活的方式来执行日常任务,例如在混乱的环境中服务杯子。通常,对于这些任务,必须将计划的象征性和几何性水平相结合,以及将感知模型与知识相集成以指导两个计划性水平,从而产生一系列行动或技能,根据当前的知识,世界,可能被处决。本文提出了一个计划和执行框架,称为SkillMaN,用于机器人操纵任务,该框架配备了一个模块,该模块具有有关如何执行一系列技能(例如接机)的经验知识(从其经验中学习或由用户提供)。 ,放下或打开抽屉,以及使用工作流程和机器人轨迹。该框架还包含具有几何工具和推理功能的执行助手,用于管理如何实际执行一系列动作以执行操作任务(将其转发给执行程序模块),以及将相关信息存储到执行器的功能。进一步使用的经验知识,以及解释实际感知情况(在不满足某项操作的前提条件的情况下)并将更新后的状态反馈给计划者以从那里恢复的能力,从而使机器人能够适应非预期情况。为了评估所提出框架的可行性,已经提出了一项实验,其中涉及在不同场景上下文中对各种类型的对象执行的不同技能。

    1. 介绍

    具有自主性,机动性和操纵能力的室内机器人有潜力在家里充当机器人助手,以改善各种用户群体(例如老年人和残障人士)的生活质量,或在工厂车间充当机器人同事 与其他运营商合作。 在半/非结构化的环境中工作意味着机器人并不总是具有环境模型,必须考虑很多问题,例如,为了准确地接近特定物体而需要移动障碍物 ,这需要将符号和几何计划级别集成在一起,并具有诸如拾取,放下和打开抽屉等技能。

    此外,可以使用视觉,深度传感器等感知系统来建模环境中对象的几何形状,并定期更新动态零件的状态。 但是,在计划之前用感知来弄清楚整个世界在计算上是相当昂贵的。 因此,处理部分信息变得必要,这需要主导的感知能力来根据需要更新关键信息。 不同类型的传感器有其自身的局限性,因此感觉集成方法非常有帮助。 多感官数据集成旨在合并来自多个感官数据或来自不同来源的数据的信息。 传感器集成的目的是获得某种意义上比单独使用光源时获得的信息更好的信息。

    对于日常任务,经验知识可以发挥重要作用,使机器人能够从其经验中学习,而不是在计划系统中重复使用相同的给定计划来计划相同的任务,这可能是一个计算和耗时的过程。 一个重要的研究问题提出:“我们如何使这些任务的执行适应类似的环境和代理?”答案是,如果机器人首先理解每个动作的固有特征,就可以模仿观察到的动作序列或技能,例如打开抽屉 。 此类功能需要在同一技能的不同演示之间具有高度不变性的情况下反映该技能的语义。 然后,机器人将能够在任何适当的类似情况下执行该技能。

    1.1 问题陈述和建议

    要求充当机器人同事的移动机械手在人类环境中以及在人类操作员的存在下自主工作。如图1所示,自治可以通过集成关键功能(例如计划)来实现,该功能通常将任务和运动计划功能结合在一起,以便为机器人找到可行的计划以解决机器人复杂的任务和负责任的感知确保成功执行此类计划,并在需要更改时做出相应的反应。对于前者而言,基于经验的先验知识可能对于促进日常任务中的计划过程以及每当要面对的情况类似于先前遇到的情况时机器人的技能和轨迹的适应过程变得至关重要。此外,可以考虑使用旨在自主自我完善的基于学习的技术来恢复在计划或执行阶段可能发生的此类故障。对于后者,丰富的感知模块可以配备有感官集成机制,以与不同的传感器一起工作,包括例如可以应对非视线情况的那些传感器,例如RFID。

    考虑到这一点,本研究提出了一个框架,该框架通过提供以下功能来使机器人在半/非结构化环境中的日常任务中高效工作:

    1. 感知可能在视线范围内的物体,

    2. 分析当前情况以了解以前是否遇到过类似情况,

    3. 借助符号和几何推理程序进行计划,以及

    4. 获得有关如何执行一组技能的经验知识,以用于在类似情况下适应机器人的运动。

    1.2 动机例子

    假定移动机械手TIAGo在图2所示的半结构化环境中工作,其中有几个罐(有些已装满,有些是空的)和一个带三个抽屉的文件柜(第一个存放空罐,第二个存放已装满的罐)。 计划了两项任务,一项任务是对罐头进行分类并将其存储在相应的抽屉中,另一项任务是取出已存储的已装满的罐头并将其内容物提供给客户。 感知系统用于确定物体的位置和状态。 为了执行这些任务,引入了一些技能:pickUp,putDown,openDrawer和服务。 要执行这些技能,在首次遇到的新情况下,需要调用运动计划器以查找机器人的运动,而在与以前类似的情况下,则需要使用运动自适应,即感知,情况相似性检查, 需要规划和使用经验知识。

    为了自主执行上述任务,任务管理器用于集成感知,计划和推理的拟议模块,从而使机器人可以适应在较小变化的不同环境中工作。 这意味着机器人需要对环境进行描述,然后可以使用任务管理器来协调模块以执行此类室内操作任务。

    2. 相关工作

    通过结合任务和几何层次,各种研究已在计划领域中开展,例如[1,2]。 此外,为了在操纵领域的两个层次上指导计划系统,还提出了在感知的帮助下使用知识的方法,例如提出了愿景整合的感知和操纵知识(PMK)框架[3]。 知识的基于感知的系统,可以帮助将任务和运动计划(TAMP)结合起来进行复杂的操作任务。 同样,[4]提出了使用知识来对行为建模。

    后来在[5]中提出了经验知识的使用,并与基于知识的推理框架[4]集成在一起,以使机器人能够使用基于机器学习的自适应机制在变化的条件下灵活地执行人类级任务。 机器人可以在不同的环境中相互交流知识。 但是,现在出现的问题是如何自动建立经验知识。 为了回答这个问题,需要计划和适应模块。

    在技能表示和执行方面存在大量工作[6-8]。 为了代表和执行技能,通常建议使用两种不同的方法。 一个在符号级别[9,10],另一个在运动级别[5,11]。 前者在较高级别上定义技能,并允许进行概括和规划,而后者为与执行相关的技能定义提供了更大的灵活性。

    高级符号表示多次使用图结构和关系表示[12],而其他方法,例如[13],则以概率活动语法的形式捕获基本的任务结构。 所有这些方法都对复杂任务进行了紧凑的描述,但它们并未详细考虑与执行相关的运动参数(轨迹,姿势,力)。 对于运动水平的表示,有几种完善的技术,例如动态运动原语(DMP)[11]或隐马尔可夫模型[14]。 通过运动级编码,可以以认知的方式研究或学习不同的轨迹,即,相同的技能可以由各种轨迹表示。

    3. 框架

    在本节中,将详细说明框架的概述,所建议模块的描述以及如何管理数据。

    3.1 概述

    为了自动执行动机示例中的任务,需要集成多个层和模块,包括感知,知识表示和推理以及符号和几何级别的计划。

    所提出的框架– SkillMaN –由三个主要层组成,如图3所示:规划和执行,知识和辅助(低层)层。

    计划和执行层包含两个模块,任务计划和任务管理器模块。前者包括任务计划者以计算要完成的一系列技能,而后者需要问题和领域描述来设置初始场景,包括世界实体的状态和目标状态。后者提供了与代理/操作员(例如,机器人,人类或传感器)进行通信的接口。它还会继续监视执行的技能或基本动作,如果发生错误,它将失败信号返回到恢复模块。而且,它具有针对每个技能步骤的程序结构。该结构被正式定义为可以通过连接机器人控制系统的现有软件组件自动执行的工作流程。工作流建模专用于表示任务的结构并组织其执行,即描述了任务执行所需的抽象步骤。例如,要执行拾取技巧,需要分两步进行一系列操作:(1)调用逆运动学(IK)模块以检查可抓取性以抓取物体; (2)找到朝向抓握构型的无碰撞路径。对于下放技能,还需要寻找可用的放置空间来放置对象。

    知识层包含一组知识以指导计划和执行层。

    1. 意识模块,包含以下内容:(a)感知知识,以帮助机器人找出哪些合适的算法和参数可用于可用传感器以提取数据; (b)几何知识,以提供几何推理来检查技能的可行性; (c)技能知识,以检查计划模块将使用的知识数据库中技能的可用性以及如何执行这些技能。

    2. 经验知识模块,其中包含计划知识和情境知识。 规划知识提供了几何技能信息(基于机器人的经验),例如如何抓取物体? 任务的约束是什么? 例如,如果将物体存储在盒子或抽屉中,则机器人需要根据知识进行推理,以找出哪种类型的抓握是可以成功执行的(即侧面抓握或顶部抓握)。 除了规划知识外,还需要情境知识来检查当前情境与数据库中存储的情境之间的相似性。

    3. 恢复模块,提供知识以解释故障并提出以下恢复策略:(1)要求人员协助机器人完成不可解决的任务,(2)指导机器人自主恢复自身,例如通过调用感应模块 弄清当前的场景或继续用另一个参数重复相同的动作(例如,以不同角度重复抓握动作)。

    最后,助手层提供了允许处理的低层模块:

    1. 感知问题,例如找出在给定情况下哪些传感器可用于感知动作,这些由感知模块处理。

    2. 几何问题,例如确定配置是否无碰撞或是否存在针对机械手姿势的逆运动学解决方案,这些问题由几何模块处理。

    3. 鲁棒性问题,例如需要根据调整模块处理机器人路径以适应实际情况。

    本节的其余部分结构如下。 首先,在3.2节中,将描述助手层中使用的助手(低级)模块。 然后,在第3.3节中,介绍了知识层中的知识模块,这些知识模块用于指导计划系统并解释执行阶段的故障并提供恢复策略。 此外,还讨论了推理机制和数据管理问题。 3.4节介绍了在计划和执行层中提出的任务计划和任务管理器模块。 最后,在第3.5节中,框架流程图说明了如何将建议的层及其模块进行集成。

    3.2 辅助模块

    本节介绍了SkillMaN框架中提出的低级模块:传感,几何和自适应模块。

    3.2.1 感应模块

    我们的传感模块集成了不同类型的传感器,具有一维输出数据的RFID和具有多维输出数据的RGB-D摄像机。 多传感器集成的目的是通过使用RFID技术覆盖非视线(NLOS),并通过使用摄像头覆盖视线(LOS)。 通过这种集成,机器人(尤其是具有导航功能的机器人)可以确定物体在室内环境中的位置(即使这些物体是隐藏的,例如抽屉内的罐子),以及物体的状态( 例如,一个罐子是满的还是空的)。

    RFID 技术

    RFID技术由三个主要部分组成:读取器,标签和天线。 像[15]中使用的标签一样,标签具有物理存储介质,该物理存储介质允许机器人存储与对象状态或其相对位置或空间关系有关的相关数据,这些信息可以根据机器人动作结果自动更新。

    RFID技术的使用从本世纪初开始出现,并且大多数相关工作都集中在定位上,如[15,16]中介绍的工作。 但是,为将标签内部的存储器用于自主操作任务,几乎没有做任何工作,这需要实施可靠的策略来存储和更新存储器中的数据。 在这里,在这项工作中,我们利用关联的内存来存储动态数据并相应地对其进行更新,以通过提取相关信息来支持计划系统(请参阅第3.3.5节)。 在SkillMaN中使用RFID的目的是:

    1. 将对象局部定位在室内环境中。 这使机器人可以在部分环境信息下开始计划,而不必发现整个环境,从而增加了计划过程的计算成本。 这包括找出其他传感器(如相机)无法检测到的隐藏物体。 然后,与其他传感器(如相机)的集成可以精确识别物体。

    2. 为了适应环境中对象状态的相关数据(例如罐已满或空),以适应机器人的操作行为。

    相机

    使用摄像机和附在对象上的视觉标签,可以获得对象的姿势(可以使用更复杂的基于无标记的姿势估计算法)。 然后,以几何方式提取空间关系以了解物理世界的状态。 框架当前支持的关系在[3]中显示在内部,内部,左右。

    标签用于标识世界实体,并在语义上将它们链接到每个对象的属性。 具体而言,将传感模块与摄像机集成在一起的目的是精确检测对象及其ID的位置,并在相关本体上声明它们。 然后,评估世界实体彼此之间以及与机器人之间的空间关系(例如,对象A位于机器人的右侧,而对象B位于左侧)。

    3.2.2 几何模块

    几何模块提供了多种服务,可帮助计划者评估技能的可行性。 它由四个主要服务组成:

    1. 反向运动学(IK)用于计算给定抓手姿势的机器人配置,

    2. 碰撞检查(CC)用于检查单个配置或运动的可行性,

    3. 运动计划(MP),用于生成要执行的基于采样的运动,以及

    4. 用于对放置区域进行采样的对象放置(OP)。

    在SkillMaN中,在操纵域的许多情况下(例如,某个对象阻止所选配置以抓取/放置一个对象的情况),可能需要这些服务。 这种情况需要选择其他可行的(或可到达的)抓握姿势和/或位置。 具体来说,这些服务用于:

    1. 计算对象的替代抓握或替代放置姿势。

    2. 根据当前抓握为新的抓取计算IK或为新的对象放置计算IK。

    3. 计算新目标配置的无冲突路径。

    在计划过程中可能需要这些服务,以找到可行的解决方案,或者生成恢复策略以在发生故障时恢复计划。

    3.2.3 适配模块

    这是一个模块,可根据环境中物体的感知姿势使机器人的运动适应实际场景。 广义上讲,有两种来源可以适应运动,一种来自人类的演示,另一种来自运动计划者计算出的无碰撞运动。 这类似于人类所做的事情,即,我们直观地知道如何执行运动原语,尽管我们只有在看到对象并在执行技能时使它们适应场景上下文时才会产生精确的运动。

    用于模仿运动的技术是动态运动原语(DMP),它实现了一组微分方程,可以描述任何运动。 长期以来,人们一直认为复杂的动作是由一组一起执行的原始动作组成的。 DMP是使用动力学系统理论的基元运动的数学形式化。 这些动态系统使用DMP工具提供的基本参数集具有稳定的行为,尽管根据手头的任务进行额外的参数设置可能会改善结果。

    3.3 知识模块

    从形式上讲,知识分为知识表示和推理机制。 前者处理知识的表示方式,后者处理如何推断相关知识。 在SkillMaN中,主要目标是捕获有关

    1. 知识如何指导计划系统,

    2. 如何检查情况的相似性,

    3. 知识如何有效地管理感知系统,

    4. 路径是否可行,

    5. 机器人如何执行技能以及达到特定目标所需的技能,

    6. 如何将情况解释为失败,以及

    7. 这是给定故障的可用恢复策略。

    首先介绍知识模块,然后在本小节末尾详细介绍异构推理机制。

    3.3.1 经验知识模块

    基于知识的经验或体验知识分为两个主要部分:计划知识和情境知识。

    规划知识:

    计划系统的一项重要要求是推理如何在半/非结构化环境中表现技能。 这需要基于环境实体的当前状况具有几何信息,例如如何操纵物体的几何信息。 这是基于经验的可行把握。 这就是我们所说的“几何技能体验”。

    当前,在SkillMaN中,有两个来源可以用来构建几何技能体验:人类和机器人。对于人类,用户可以手动建立几何技能经验,包括对任务约束的描述(已编程或包含在本体中)。对于机器人,如果机器人开始探索执行动作的方式并找到可行的解决方案,则它将存储此解决方案,以便以后需要时使用。例如,让我们考虑使用侧面抓取器从桌子上拾取物体,并且从某个角度有障碍物遮挡路径,可以使用多个角度来探索抓握配置的可行性。一旦找到,机器人将存储这些配置以在类似的情况下使用。需要这些知识来指导规划系统,尤其是在存在某些运动约束时。在拟议的案例研究中,引入了一些约束条件,以显示在计划系统中使用几何技能经验的重要性,如第5节所示。

    情境知识:

    在SkillMaN中,经验被认为是为发生的一系列事件和所涉及的对象提供关系上下文的情况。 这包括,例如,对象在技能过程中扮演什么角色,以及在技能执行过程中出现故障时的诊断。 如图4所示,我们知识库中的情况可以写成元组⟨S,O,E⟩,其中S是执行的技能,O是所涉及的对象的集合,E是 发生的事件。

    描述和情境本体[17]的表示策略已经被遵循,其中描述被用来创建关于情境的关系上下文的视图。 特别是,提出的框架将技能与执行技能的情况相关联,并利用此信息来实现一组推理机制。

    环境的描述用于将低级感知数据与高级知识进行语义链接,并分析环境实体的状况,以增强任务执行力。 基于标签的传感器(即RFID和相机)用于识别世界实体,并在语义上将它们链接到每个对象的属性。 具体来说,传感模块的目的是检测对象及其ID的位置,并在本体上声明它们,以按照[3]中介绍的感知和操作知识(PMK)建立对环境及其相关实例的描述。 

    实验数据

    我们的系统会随时间记录感觉数据,并将其与获取数据的情况相关联。 这主要是为了捕获机器人执行的轨迹,并将其与任务,环境和执行相关联。 这对于机器学习应用程序很有用,在这种应用程序中,可以在较高级别的知识库中回答表达性查询,并且此类查询的结果可以用作较低级数据的筛选器,以仅收集与语义情况匹配的数据。

    在SkillMaN中,使用两种类型的存储介质,即RFID存储器和知识数据库。 前者用于存储动态数据,例如对象的位置及其状态(例如,罐子已满或空)。 后者除了用于指导计划系统外,还用于存储静态数据,例如对象的特征。 数据管理在3.3.5节中详细介绍

    3.3.2 意识模块

    该模块包含与感知,评估动作可行性所需的几何问题以及执行技能的方式有关的低级知识。

    感性知识

    为了感知机器人环境,通常使用不同的传感器。 传感器以信号(一维)或图像(多维)的形式提供有关环境的数据,并且要从感知的数据中获得有用的功能,必须应用适当的算法,例如检测物体的姿态 可以应用基于图像特征的估计算法,或者可以使用基于标签识别的算法。 当传感器之间存在集成时,复杂度会增加。

    感知知识是与机器人传感器或与环境相关的传感器有关的知识。 该知识用于指导提出的多传感器模块。 [3]中介绍了感知知识的第一个版本,其中两个摄像头并行工作以感知桌面环境。 在这里,我们增强了知识的表示能力,使其能够与包括RFID和相机在内的不同类型的传感器一起使用。

    如图5所示,SkillMaN中多传感器集成的感知知识表示为元组⟨D,C,A⟩,其中D是测量设备(传感器),C是传感器约束或限制,而A是从传感器信号中提取特征的相应算法。

    该知识负责回答三个主要问题,即机器人上安装的传感器,传感器感知的数据类型及其局限性,如何提取相关数据。 为了回答第一个问题,建议对传感器进行描述,以使机器人了解其具有的传感器组。 此外,还包括每个传感器组件的描述,例如RFID的标签,天线和读取器。 为了回答第二个问题,提出了对感知特征的描述,以向机器人阐明传感器正在感知的数据类型(即一维或多维),以及每个传感器的约束或局限性是什么。 为了回答第三个问题,提出了一种调用相应算法的方法来提取相关数据。

    使用描述逻辑(DL,[18]),RFID传感器的知识表示为:RFID知识:

    几何知识

    几何知识具有用于顺序访问辅助层中的几何服务的结构。 这种本体的主要优点是,机器人可以从知识和查询中检索出以自动方式执行此类动作所需的过程序列,而不是从任务和运动计划客户端手动调用模块。

    技能知识

    SkillMaN中的一项技能是对机器人可以做什么的描述。 受[19]中介绍的工作启发,SkillMaN提供了一些向机器人教授新技能的方法:

    1. 原始技能由原子动作的顺序列表组成,原子动作是指单个动作或手势,包括其先决条件和效果。 例如,openDrawer技能由以下一系列动作组成:移至手柄位置,合上夹持器,最后拉出抽屉。

    2. 基于规则的技能包括一组“如果先由A则由B规则”,以根据传感器的结果发出适当的手势。

    但是,这两种方法不能单独执行。 他们需要一个结构(例如工作流),该结构包含任务执行通常需要的抽象步骤。 此结构在符号级别进行了描述,并通过使用辅助层将其附加到每个技能上。 前述两种方法之间的主要区别是结构中基于感知的条件节点。 这意味着该结构包括一些应该感知的给定值的分支。

    3.3.3 恢复模块

    恢复知识是一个模块,可提供对已发生故障的解释。 在SkillMaN中,在计划和执行期间都使用了[20,21]中描述的解释失败本体,该本体涵盖了几种失败源。 它提供以下恢复策略:

    1. 几何故障,例如在 机器人无法伸手抓住/放置物体,没有无碰撞路径或没有可行的反向运动学(IK)解决方案;

    2. 与硬件相关的故障可能会在例如 需要在实际环境中对机器人进行重新校准(夹具或机械臂),或者将其发送到不可访问的配置。

    3. 与软件代理相关的故障,例如在 机器人的软件组件会失败,例如算法无法提取适当的功能时。 这部分不在本文讨论范围之内,在[20]中已进行了详细介绍。

    3.3.4 异构推理机制

    本节介绍了一种异构的推理方式,包括知识模块上的符号推理和几何推理。 前者包括从数据库中过滤情况,情况相似性检查,技能推理,有关环境及其实体的语义推理,操作约束和感知。 后者包括几何推理,以检查所生成技能的可行性。 它们在下面讨论。

    过滤情况:

    筛选情况是找到满足技能描述要求的情况的过程。 这意味着机器人必须检测在描述中使用特定技能的情况,例如 使用Prolog谓词[22],“‘哪些情况包含某种技能?’的理由是:

    情况相似性检查:

    使用来自本体的分类信息以及有关组成比较实体的信息来计算场景的相似性。 请注意,场景是复合实体,也就是说,场景具有对象和代理作为参与者。 对象和主体本身是复合实体; 一个对象或代理可以将其他对象作为部分。 另外,对代理商的描述还包括要执行的技能,几何技能经验和代理商目标。

    4. 实施和设置

    4.1 实施工具

    4.1.1 洞察力

    C ++库ar–track–alvar(http://wiki.ros.org/ar_track_
    alvar)已用于检测物体的姿态和ID。 此外,RFID技术的C ++库ThingMagic Mercury API(http://www.thingmagic.com/manuals-firmware)已用于检测对象(包括隐藏的对象)并存储相关的动态信息。 某些服务可用于读取tagID,从内存中读取数据以及在内存中写入/更新数据。 这些ID在知识中被断言以提取对象的语义描述。 对象和摄影机的所有变换都是相对于世界框架计算的。

    4.1.2 规划与适应

    计划系统包括两个主要阶段:任务计划和动作计划。 第一种是使用快进(FF)任务计划程序实施的,以生成一系列操作。 后者使用The Kautham Project [24]实现。 Kautham项目是用于运动计划的基于C ++的开源工具,可以在几何和运动动力学约束下进行计划。 它使用开放运动计划库(OMPL)[25]作为基于采样的计划算法的核心集。 在这项工作中,使用RRT-Connect运动计划器生成两个配置之间的路径。

    模仿动作已经实现的主要技术是DMP [11]。 首先在仿真中执行DMP实验,然后使用真实的机器人进行DMP实验。 实验包括通过记录计划的基本动作的执行情况来学习,然后更改初始点和最终点以了解如何模仿计划的手势。

    已经实现了接口来命令手臂执行需要模仿手势的动作。 该接口可以分为三个主要部分,数据采集过程,DMP生成和运动执行。 通过记录运动来执行数据获取。 使用记录的运动作为输入来完成DMP的生成,以学习如何在新情况下执行DMP原语。 运动的执行使用在类似情况下适应运动所需的初始配置和目标状态。

    计划和适应工具之间的集成在准备阶段会自动完成。

    在SkillMaN中,描述了建议的抽象基元:

    1. releaseGripper:用于打开抓具的原子动作。

    2. closeGripper:用于关闭抓具的原子动作。

    3. 选择位置:包含移动,保持和放下原子动作的技能; 它用于在两个位置之间传输对象。

    4. openDrawer:一项技能,包含移动,保持和拉动的原子动作; 用于打开/关闭抽屉。

    5. 服务:是一种包含动作和倾倒动作的技能; 它用于为客户提供饮料。

    适应的运动最初是由运动计划者计算的(例如在情况3和4中),或者是从人类演示中复制的,例如在情况5(在情况5中)。在情况1和2的情况下,关闭和打开夹具的运动 是预定义的。

    这些抽象原语对应于机器人操纵器的基本功能,可以用许多不同的方式来实现。 我们实现此类原语的方式是在最低的电机控制级别上进行。 但是,我们的工作重点不是特定的实现,而是我们想提出一种将它们结合起来以无缝地表现技能的方法。

    4.1.3 知识

    使用Protégé本体编辑器(http://protege.stanford.edu/)使用本体网络语言(OWL)设计知识。 可以使用从低层感觉数据中获得的信息来断言本体实例。

    对用于推理或检查相似性的知识的查询基于SWI-Prolog及其语义Web库,该库用于使用Prolog谓词加载和访问OWL中表示的本体。 已经实现了ROS(机器人操作系统)接口,以促进作为客户服务通信的查询-回答过程。

    在这项工作中使用了PMK框架[3]。 它被明确实现以增强操作域中的任务和动作计划(TAMP)功能。 它与多感官模块集成,允许使用从低级感官数据处理的信息将实例声明到本体。 PMK的推理范围分为四个部分:感知推理,对象特征推理,情境推理和计划推理。

    4.1.4 导航和建图

    图9描述了SkillMaN中提出的导航策略。在(a)中,显示了室内环境的平面图。 通过使用TIAGo的移动容量,它可以规划对象的导航位置(例如,TIAGo朝着拣选和提供桌子导航),直到它检测到附着在其上的标签为止,如(b)所示。 在导航过程中,TIAGo具有进行路径规划的功能,可以避开障碍物并在地图中定位对象,如(c)所示。 环境中的所有对象都相对于参考框架进行了定位。

    导航 TIAGo具有使用ROS 2D导航堆栈(http://wiki.ros.org/navigation)实现的自主导航功能。 该软件包是在ROS上运行的机器人中最常用于实现地图和自主导航解决方案的软件包之一。 它从里程计和传感器流中获取信息,并输出速度命令以发送到移动基座。 该导航软件由能够执行SLAM [26]的几个不同的ROS节点,服务和主题组成。 使用存储在地图上的信息以及由不同传感器提供的周围环境数据,此程序包能够计算出一条合适的路径,以将机器人引导至某个目标位置而不会碰到任何障碍物。

    建图  

    映射和姿势生成过程从创建机器人环境的占用栅格图开始。 为了获得它,已经利用了安装在机器人中的gmapping(http://wiki.ros.org/gmapping)软件包。 这张地图是
    导航成功穿越房间并避免任何碰撞所必需的必要条件。

    定位  通过使用amcl软件包(http://wiki.ros.org/amcl)可以定位。 该软件包是用于2D移动机器人的概率定位系统。 它实现了自适应蒙特卡洛定位方法(MCL),该方法使用粒子滤波器来根据已知地图跟踪机器人的姿态。 MCL生成一团粒子云,代表了机器人分布的可能状态。 每个粒子代表地图上机器人的可能姿势和方向。

    4.2 任务管理器算法

    SkillMaN并不是针对特定任务而实现的,它很笼统,并且在室内环境中接受一些任务,并考虑了有关环境描述的一些更改,如第6.3节所述。

    任务管理器使用图3中提到的所有模块,以及图10中描述的每个模块提供的服务。 任务管理器负责调用这些服务,以自主执行任务(如算法1中所述)。

    在计划阶段,已经使用了两种服务来调用基于启发式的任务计划器FF(快速转发)并加载域和问题文件:


  • 相关阅读:
    Sum Root to Leaf Numbers
    Sum Root to Leaf Numbers
    Sort Colors
    Partition List
    Binary Tree Inorder Traversal
    Binary Tree Postorder Traversal
    Remove Duplicates from Sorted List II
    Remove Duplicates from Sorted List
    Search a 2D Matrix
    leetcode221
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/14441852.html
Copyright © 2011-2022 走看看