zoukankan      html  css  js  c++  java
  • 论文阅读:Robot Learning of Everyday Object Manipulations via Human Demonstration

    Robot Learning of Everyday Object Manipulations via Human Demonstration

    通过人类演示对日常对象操纵进行机器人学习

    0.摘要

    我们处理的问题是教机器人如何通过人类演示来操纵日常物体。 我们首先设计一个任务描述符,它封装了任务的重要元素。 该设计源于以下观察结果:许多日常对象任务中涉及的操纵可被视为一系列连续的旋转和平移,我们将其称为操纵原语。 然后,我们提出了一种使机器人能够将演示的任务分解为顺序操作原语并构造任务描述符的方法。 我们还将展示如何将从一个对象学到的任务描述符传输到类似对象。 最后,我们认为该框架是高度通用的。 特别地,它可以用于构建机器人任务数据库,该数据库用作机器人成功操作日常对象的操作知识库。

    1.介绍

    拥有能够在人类环境(例如家庭,办公室或饭店)中完成有意义工作的机器人,已引起研究人员越来越多的关注。它不仅可以改善生活质量,还可以使人们摆脱繁琐的工作。一些研究人员从不同的角度提出了机器人打开门的方法[1],[2],[3],[4],[5]。由英特尔和CMU的研究人员组成的小组构建了Herb [6],这是家庭环境中的管家机器人。其他类似的机器人是ARMAR人形机器人[7],HRP-2机器人[8]和Care-o-bot II [9]。尽管这些工作为机器人提供了更多的智能功能,但它们需要机器人专家进行明确的编程,并且已针对特定任务进行了预先设计。当机器人在不同环境中工作时,这固有地使这些功能的适应性成为问题。原因有三点。首先,通常很难甚至不可能考虑机器人在初始设计过程中可以工作的所有可能环境。其次,任务的规格,即使是类似的任务,也可能发生很大的变化,并且很难以预编程的方式满足不同的任务规格。 第三,随着机器人使用的增加,机器人所需的大量不同任务使专家无法对每个机器人进行编程。

    为了解决这个问题,我们需要一种更通用的方法来生成适应不同工作环境的机器人技能。 此解决方案应该具有内部通用的任务表示形式,可以由机器人理解并可以转换为基本的物理机器人操作。它需要提供一种自动机器人学习的方法,以将人类知识转化为内部通用表示形式。 对于非专家而言,构建机器人技能应该很容易,并且对于长期的机器人学习和发展,必须具有足够的通用性。 通过演示编程(PbD)是达到此目的的一种有前途的方法。 PbD技术不是通过机器命令对机器人进行编程,而是允许最终用户通过在最终用户环境中进行演示来教导机器人新的行为。 在此框架中,机器人学习可从以下几个方面受益。 首先,最终用户最了解机器人要完成的确切任务。 其次,机器人技能是在确切的最终工作环境中产生的。 这些因素使PbD框架下的机器人学习更加有效。在这个领域,Calnon等人。 提出了用于表示和概括任务的PbD框架[10]。 Dillmann开发了一种方法来教授机器人在日常家庭环境中所需的典型任务[11]。 Rusu等。 等 建造了一个在配备传感器的厨房中自主运行的机器人[12]。 Ekvall和Kragic提出了用于任务级学习和计划的技术[13]。 Kober等。 等 [14]和Theodorou等。 等 [15]使用机器学习技术来教机器人运动技能。 其他相关著作包括[16],[17],[18]和[19]。

    上面讨论的大多数工作要么处于较低级别(即在电动机控制层),要么处于较高级别(即在逻辑推理层)。 一个明显的例外是Prats等人的工作。 [20]。 但是,这两个不同级别之间仍然存在差距。 一方面,为了提高机器人的灵活性和适应性,需要通用的任务表示。 这将向上创建到高级任务描述的连接。 另一方面,为了执行高级任务描述,需要一种与低级物理运动相关的技术。

    我们的工作是在中间层设计的,该框架对于高层任务抽象和低层运动执行是可行的。 在第二部分中,我们提出了任务描述符的设计。 在第三部分和第四部分中,我们讨论了如何获取任务描述符的每个元素。 在第五节中,我们描述了如何执行任务以及如何将在一个对象上学习的任务描述符传输到相似的对象。 第六节显示了日常对象操作的实验,随后第七节给出了结论。

    2.任务描述符的设计

    在本节中,我们首先显示日常对象操作的集合,然后以任务描述符的设计作为结束。

    A.观测

    任务描述符的设计基于对日常对象的任务的观察,例如打开门,打开抽屉,打开瓶盖等。图1显示了一系列这些日常对象。 人的手是任务的最终执行者。 在操作过程中人手的轨迹提供了此任务的大多数信息。 考虑到在执行任务期间人的手相对于对象相对静止的事实,可以说对象的刚性部分的运动也携带等效信息。 这些信息告诉我们完成任务需要涉及哪些动作。 通过仔细检查这些任务中的动作,我们可以看到大多数动作可以建模为旋转和平移链。 在图1中,旋转轴和平移方向用黑色实线表示。 例如,打开门包括沿轴线I和沿轴线II的两次旋转,如图1(f)所示。

    B.操纵原语

    根据上述观察,日常物体上的任务可以分解为一系列以旋转和平移为代表的顺序操作。 这与物体[21],[22]的运动学模型或刚体[23]之间的相关运动有关。 该操作链是描述任务中最重要的部分。 它指定每个步骤的动作。 我们称这些旋转或平移为操纵原语。 我们定义操纵原语如下。

     例如,开门任务由两个顺序的旋转操纵图元组成,如图1(f)所示。 这两个旋转轴都需要在3D门坐标系中定义,以便机器人可以将此符号链转换为物理运动链。

    C.任务描述符

    基于上面的操作原语,我们现在可以合成任务。 我们为任务描述符提供以下定义。

     

     3.学习操纵链

    一个任务可以包含一个以上的操作原语,一个是人类的演示,一个机器人是如何自动描述T的。本节讨论的问题是,任务中的操作链M结合在一起,可以从该演示中学习顺序操作原语 并构建操纵链?

    A.人类演示

    人类示范应该尽可能自然。 在演示过程中,机器人应该能够看到人类如何操纵物体以及根据物体所看到或记录的原因。 在我们的问题中,我们假设机器人看到的是物体和人手上离散点的运动。 如果这些点以覆盖覆盖关节对象的每个刚性部分的方式对对象进行采样,则有关如何操作对象的信息将嵌入到这些可见点的轨迹中。 如第二节所述,考虑到人的手相对静止。 II-A,人手的轨迹还包含操纵信息。

    B.学习平移

    C.学习旋转

     4.抓取规划

    一旦学习了任务原语和操作链,我们就需要为任务计算对对象的把握。 这是一个面向任务的抓握计划的例子[26] [27]。 这种方法考虑了特定任务,因此可以更有效地掌握任务。 适应性是对象操纵中的重要方面,而面向任务的抓取计划对于在不断变化的环境中工作的机器人很重要。

    为了计算我们的掌握力,我们使用从人类演示任务中学到的知识。 在学习阶段,我们可以使用6自由度姿势传感器(例如,鸟群磁性传感器)跟踪人的手腕位置。 这为我们提供了一种掌握方法和方向的载体。 要选择机械手的实际抓地力,我们不能使用人类抓手的手指位置,因为我们的机器人末端执行器将具有与人手不同的运动学。

    一种解决方案是使用我们的在线特征捕捉计划器,该计划器是GraspIt的一部分! 模拟器[24],[28]。 该计划者采用手V的手腕位置,并通过使用本征抓取来实时工作模型,本征抓取显着抓取对象O,并计算出稳定的抓取力。 它减小了搜索的维数,从而实现了稳定的抓地力。

    现在我们以开门为例描述我们的方法(见图3)。 在学习阶段,使用鸟群传感器在3D空间中跟踪用户的手腕位置。 为了生成对象模型,我们使用Microscribe 3D数字化仪获得手柄的模型。 然后,在线特征捕捉计划器使用指定的机械手和建模对象O的手腕位置来计划稳定的抓握。在本例中,使用的物理机械手是Barrett手。 该掌握信息存储在任务描述符中,并由执行学习的任务的任务执行模块使用。

    5.任务执行和转移

    我们讨论了如何从人类演示中学习任务并构造相应的任务描述符。 利用这样的任务描述符,机器人可以执行该学习到的任务。 同样,这个任务描述符允许我们将从一个对象学到的任务转移到相似的对象。

    6.实验与初步结果

    A.实验设置

    我们已经完成了三个任务执行实验和一个任务转移实验。 在人类演示期间,运动捕捉系统(optiTrack)用于记录3D标记轨迹。 这些标记由最终用户放置在实验对象上。然后将这些标记的轨迹作为输入输入到第三节中讨论的操纵链学习算法中。 为了进行抓握计划,使用了“鸟群”传感器来定位手腕。使用Microscribe 3D数字化仪可获得对象的精确几何模型,并将其提供给第四节中讨论的抓取计划器。 一旦我们了解了操纵链并计算了掌握程度,便能够实现任务执行。 在执行任务时,我们再次使用3D数字转换器将对象手动注册到机器人的坐标系和运动捕捉系统。

    B.打开微波炉-学习旋转

    在该实验中,将三个标记放置在微波炉的门上。 图4(a)显示了微波的纹理映射3D模型,该旋转模型上叠加了我们的算法学习到的旋转轴。 图5(a)至5(e)示出了当机器人旋转微波炉门打开时的任务执行。

    C.打开推拉门-学习平移

    在PbD阶段,将四个标记放置在滑动门上,将一个标记放置在用户的拇指上。 拇指上的标记有两个主要轨迹。 第一部分对应于到达动作。 第二部分对应于滑动动作。 图2(b)显示了拇指上的标记轨迹的分割。 图4(b)显示了通过我们的算法学习的带有平移轴的3D模型。 图5(f)至5(j)示出了当机器人根据学习到的任务描述符滑动柜门而打开时的任务执行。

    D.开门-学习两次旋转

    在PbD阶段,在门和把手上放置了三个标记。 把手上的标记具有两个主要轨迹,即,一次沿把手铰链旋转,另一次沿门铰链旋转。 图2(a)示出了门把手上的标记的轨迹的分段。 图4(c)显示了3D模型,其中旋转轴是通过我们的算法学习得到的。 因为门不在机器人的工作空间之内,所以我们没有执行任务。

    E.任务转移-转移开瓶任务

    用户打开图5(k)中的左瓶,并构造了相应的任务描述符。该实验旨在将任务描述符转移到另一个相似但新颖的瓶子中,该瓶子在图5(k)的右侧。 数字转换器用于模拟两个瓶盖。 应用第V-B节中讨论的方法来对准两个瓶盖,并将学习到的任务描述符转移到新瓶上。 我们没有将整个瓶子的数据用于对齐,因为在执行任务期间只有瓶子盖是瓶子的功能部分。 传输的旋转轴和理想轴之间存在6度的偏移。 轴穿过瓶盖,距瓶盖表面中心4毫米。 图5(1)至5(o)示出了当机器人执行该新任务描述符以打开新颖瓶子时的实验。 我们看到对齐中的错误足够准确,并且任务已成功执行。

    7.总结和未来的工作

    在本文中,提出了一个通过演示进行机器人学习的框架。 该框架从高级任务抽象到低级运动生成。 首先,基于对日常对象操作的观察来设计通用任务描述符。 然后,开发了一种用于机器人从人类演示中自动学习并构造此类任务描述符的方法。 在我们的实验中,我们显示了此设计和实现的结果。

    尽管本文提出的任务描述符无法模拟我们日常生活中的所有任务,但它适用于我们遇到的许多任务。为了使其更通用,我们将研究更多运动原语,例如 B样条曲线和螺旋曲线以及可扩展性的更全面表示,可以利用C中的最新形状匹配任务约束来实现。我们认为,此框架是机器人操纵方面的进步。 考虑到具有相似功能的不同对象,例如图1(d)和1(f)中不同的门把手,我们应该期望它们具有非常相似的几何形状-它们都具有水平杆并且可以旋转。 利用形状匹配技术,可以在具有相似几何形状的对象之间传输任务描述符。 这使我们的框架可扩展到一种更一般的情况,在该情况下,任务描述符是基于一个特定对象生成的,但可以应用于许多其他类似的对象。在第VI-E节中,我们展示了在打开瓶盖时进行任务转移的实验。 正如我们在V-B部分中提到的,任务转移依赖于对象之间的良好对齐。 我们当前的ICP方法不能很好地处理对象之间的缩放或剪切。 为了减轻这个问题,我们目前正在根据以前的工作[30]实现高级形状匹配和对齐技术。 在轨迹分割算法中,参数k由用户设置。 将来,我们将研究使该过程自动化的算法。 一种解决方案是使用Lihi Zelnik庄园和Pietro Perona [31]开发的技术。 在任务执行阶段,我们将对象手动注册到机器人,并且还将使用视觉技术来使该过程自动化。

  • 相关阅读:
    【LeetCode】17. Letter Combinations of a Phone Number
    【LeetCode】16. 3Sum Closest
    【LeetCode】15. 3Sum 三个数和为0
    【LeetCode】14. Longest Common Prefix 最长前缀子串
    【LeetCode】13. Roman to Integer 罗马数字转整数
    【LeetCode】12. Integer to Roman 整型数转罗马数
    【LeetCode】11. Container With Most Water
    【LeetCode】10. Regular Expression Matching
    Models of good programmer
    RSA Algorithm
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/14175929.html
Copyright © 2011-2022 走看看