• 论文阅读:Learning to Grasp from a Single Demonstration


    Learning to Grasp from a Single Demonstration

    从一个单一的示范中学习抓取

    Learning-based approaches for robotic grasping using visual sensors typically require collecting a large size dataset, either manually labeled or by many trial and errors of a robotic manipulator in the real or simulated world. We propose a simpler learning-from-demonstration approach that is able to detect the object to grasp from merely a single demonstration using a convolutional neural network we call GraspNet. In order to increase robustness and decrease the training time even fur- ther, we leverage data from previous demonstrations to quickly fine-tune a GrapNet for each new demonstration. We present some preliminary results on a grasping experiment with the Franka Panda cobot for which we can train a GraspNet with only hundreds of train iterations.

    0.摘要

    使用视觉传感器进行机器人学习的基于学习的方法通常需要收集大型数据集,这些数据集可以手动标记,也可以通过现实世界或模拟世界中机器人操纵器的多次尝试和错误来进行。 我们提出了一种更简单的“从演示中学习”方法,该方法能够通过使用称为GraspNet的卷积神经网络从一次演示中检测出要抓取的对象。 为了增加鲁棒性并进一步减少训练时间,我们利用来自先前演示的数据来为每个新演示快速调整GrapNet。 我们在Franka Panda合作机器人的抓握实验中给出了一些初步结果,对于该实验,我们只需进行数百次训练即可训练GraspNet。

    1.介绍

    随着工业4.0的到来,越来越多的中小企业开始考虑采用机器人来改善其生产流程。 所谓的协作机器人越来越受欢迎。 这些机器人通常很轻巧,并配备有力扭矩传感器,使这些机器人在发生碰撞时自然停止,从而确保了在人机协作场景中的安全性[9]。 当前可用的示例协作机器人包括Kuka LBR系列[2],Universal Robots UR系列[3]和Franka Panda [1],它们可用于各种应用程序,例如生产线装载 以及卸载,产品组装和机器维护[4]。

    对这些协作型机器人进行编程的一种方法是通过运动学演示,其中操作员抓住机器人手臂并将其移动到所需位置。 由于这是一种更加直观的方法,不需要机器人运动学或编程代码方面的专业知识,因此可以减轻机器人编程的负担。 尽管在工业界,这种方法被称为“从演示中学习”,但它只是记录和重播功能,与从演示性研究中学习相反,在演示性研究中,使用机器学习技术来训练广义策略[20]。 但是,这将当前可用系统的适用性限制在相对于机器人固定位置的情况下。 例如,当抓住一个物体时,对于每次重复,该物体必须位于相同的位置。 即使物体的位置受到很小的干扰,也会损害系统。

    为了减轻这些限制,可以将视觉传感器安装到机器人上,并使用此信息来识别对象,估计其姿势并计算出最佳抓地力[5]。 但是,这些技术需要大量的监督,掌握示例和/或训练时间。 在本文中,我们提出了一种使用神经网络的抓取方法,该方法无缝地适合于当前已建立的对协作机器人进行编程的工作流程,并且仅需进行一次演示即可在一定程度上允许对目标对象的抓取位置产生干扰。

    本文的其余部分的结构如下。 在下一节中,我们概述了有关机器人抓取和从演示中学习的相关工作。 接下来,在第3节中,我们提出了称为GraspNet的方法。在第4节中,我们给出了一些初步的实验结果。最后,我们讨论了结果,并为以后的工作指出了结论。

    2.相关工作

    用机械手抓取物体是研究中长期存在的挑战[13]。 我们专注于数据驱动的抓取,从视觉数据(RGB图像或深度扫描)中学习抓取。 特别是,我们区分了三种类型的数据驱动的抓取:(i)使用标记的训练数据,(ii)使用人工演示,(iii)使用反复试验。 有关数据驱动的抓取的更深入的调查,请参阅[5]。

    第一种类型假设数据集可用示例对象和相应的抓取位置(以3D网格[7]或2D图像[19]的形式)提供。 接下来,可以训练机器学习模型(例如神经网络)来预测正确的抓握位置[18]。 在实践中,这涉及到仔细收集和标记数据集,然后对数据集进行训练。

    第二种方法是使用人类示威[21]。 为了很好地概括与人类示威不同的情况,通常将其与强化学习技术[15]或指导性政策搜索[11]结合使用。 但是,对于这种工作方式,通常需要进行大量演示才能很好地概括。

    强化学习也可以用在第三种类型中,其中的学习完全是通过反复试验来学习的[16,8]。 Levine等人提出了另一种反复试验的方法,其中14个机器人收集了超过80万次抓取尝试的数据[12]。 使用此数据,对卷积神经网络进行训练以预测抓取成功,然后将其用于实现控制器。 Pinto等人提出了一种类似的方法。 [17]。 这些试验也可以在仿真中执行,然后将学习到的策略转移到现实世界中[22]。 尽管这些方法需要最少的监督,但它们通常不切实际,因为它们在首次成功之前需要进行大量试验。

    在本文中,我们结合了所讨论方法的要素。 类似于[12],我们还训练了神经网络来预测抓取成功,我们将其用于实现抓取控制器。 但是,我们不是通过反复试验来创建大型数据集,而是根据每个已证明的掌握情况收集单个数据点。 我们表明,有可能训练出一个神经网络,通过使用各种数据增强技术,从该单个数据点预测正确的抓握位置。

    3.从单个演示中学习

    当前的协作操纵器具有所谓的“演示程序”功能,通过将末端执行器引导至所需位置,操作员可以轻松地为机器人执行一系列动作编程。 例如,它可以用于编写简单的拾取和放置任务。 但是,在执行时,机器人将仅重新访问已编程的位置,而没有关于已编程任务是否真正成功的任何反馈或闭环控制。 例如,当要抓握的对象不在演示过程中的确切位置上时,这很可能会失败。

    我们的目标是通过在机器人的末端执行器上安装摄像头,训练可识别要抓握的物体的神经网络并使用闭环控制算法来执行抓握的方法来整合视觉反馈。 为了减轻对训练神经网络的大规模数据集的需求,我们考虑以下假设:

    该机器人与演示期间在相同的工作空间中运行。

    要抓住的对象与演示期间的对象相同。

    可以垂直于工作空间平面抓取要抓取的对象。

    相对于演示过程中的原始位置,要抓住的对象的位置偏移最多为8cm。

    尽管这些假设似乎有局限性,但它们仍然涵盖了工业环境中的大多数用例,在工业环境中,需要从定义明确的垃圾箱区域中拾取对象并将其放置在这些区域中,但不一定在这些垃圾箱中的固定位置上很好地对齐。

    3.1设置

    我们的设置如图1所示,由Franka EMIKA Panda合作机器人组成,并在其末端执行器上安装了摄像头。 为了记录演示,操作员只需将抓具引导至首选抓握姿势(a)。 接下来,机器人将鼠标悬停在固定高度(b)上,并记录一个摄像机帧(c)。 在此相机框架上,要抓取的对象将位于图像的中心。 作为目标对象,我们目前使用不同形状和颜色的玩具块。 我们收集了(d)中显示的10种类型的块的演示。

    3.2GraspNet

    我们训练了一个称为GraspNet的卷积神经网络,以基于摄像机框架检测目标对象的正确抓握姿势,而只需要一个人的演示即可。 数据扩充[6]是扩展数据集和改善神经网络训练的一种众所周知的技术,其中图像受到干扰以从同一基础类生成其他示例。 在这项工作中,我们依靠极端的数据扩充来创建一个“非常大”的数据集,从单个演示相机框架开始。

    从演示相机的帧中,以640×480像素的分辨率,我们通过拍摄128×128像素的随机作物生成训练集。 正样本是通过随机旋转较小的中心农作物(在-3至3度之间均匀采样)而生成的,而其他任何农作物和旋转均用作负样本。 通过对亮度和对比度进行随机扰动,将所有样本进一步随机化,均在0.5和1.5之间均匀采样。 正样本和负样本的示例如图2所示。

    我们的神经网络架构如图3所示。它由四个卷积层组成,其中最后一层使用平均池化进行池化。 我们在网络的末端包括两个完全连接的层,实现为1×1卷积。 所有隐藏层均具有整流线性单位(ReLU),并且网络以单个S形神经元结束,以将每种农作物分类为阳性或阴性。

    3.3抓取控制器

    通过将完全连接的层实现为1×1卷积核,我们可以轻松地将其应用于任意大小的图像。 然后输出是一个二维特征平面,我们将其解释为一个激活图,该图表明目标抓握对象的存在和位置,如图4所示。

    我们为机器人手臂实现了笛卡尔速度控制器,该控制器计算从图像中心到最高激活点的方向向量v,并将其映射到工作空间平面中的运动。 一旦最高激活位于图像的中心,手臂将直接向下移动并关闭抓手。

    为了也包含旋转信息,我们生成了摄像机图像的一批旋转(例如,范围从-50度到50度,步长为10),并将其通过GraspNet转发,从而进行了一批激活 地图。 接下来,我们以最大激活率最高的旋转方向旋转。 重复此过程,直到未旋转的图像具有最高的最大激活为止。

    通过不断地通过GraspNet传输摄像机图像并采取相应的措施,我们得到了一个闭环控制器,该控制器一旦在摄像机的视场内就可以成功地捕获该对象。

    3.4抓取n个物体

    通过学习演示并为每种对象类型训练一个单独的GraspNet,我们可以轻松地扩展我们的方法来学习掌握多种对象类型。 但是,当两个对象看起来相似时(例如,实验中的两个红色或蓝色块),可能很难区分,因为我们仅从单个演示样本中训练GraspNet。 为了使GraspNet更加健壮,我们结合了所有演示框架:在训练某个目标对象时,我们通过将其他对象的正样本视为目标对象的负样本来扩展训练集。 这种阴性样品的例子如图2(c)所示。

    我们方法的主要缺点是,对于每个演示,我们都必须从头开始训练神经网络。 为了减轻这种情况,我们还通过学习一组可以针对新演示进行快速微调的初始化参数来进一步改进我们的方法。 我们应用了爬行动物算法[14],这是最近提出的针对少数镜头分类的元学习方法。

  • 相关阅读:
    QT5控件-QDateTimeEdit和类QDateTime
    QT5-控件-QTimeEdit和QTime
    QT5-控件-QDateEdit 和 日期类QDate
    QT5-控件-QComboBox
    错误记录 "MongoClient opened before fork. Create MongoClient "
    GitHub 常用命令
    Linux学习记录-----《快乐的Linux命令行》.
    最全的HTTP1.1状态码
    恢复旋转排序数组
    C语言I博客作业09
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/14086771.html
Copyright © 2020-2023  润新知