zoukankan      html  css  js  c++  java
  • 论文阅读:Robot Learning from Human Demonstration in Virtual Reality

    标题:Robot Learning from Human Demonstration in Virtual Reality

    作者:Francesca Stramandinoli1, Kin Gwn Lore1, Jeffrey R. Peters1, Paul C. O’Neill1, Binu M. Nair2, Richa Varma2, Julian C. Ryde2, Jay T. Miller1, Kishore K. Reddy1

    0. 摘要

    为了最好地利用机器人系统,它们学习和适应新情况的能力至关重要。 我们提出了一种身临其境的虚拟现实(VR)环境,在该环境中,将通过人工演示来训练模拟机器人; 利用VR环境向机器人传达任务的意图,以便机器人可以在更广泛的初始条件下复制它。 然后,将模拟机器人获得的技能转移到物理世界中的真实机器人上。 该方法直观,对演示人员安全,并减少了训练过程中机器人的停机时间。 我们演示了此拟议的挑选和通过操作框架。

    1. 背景知识

    在过去的十年中,机器人系统在检查和维护[11],监视和安全[17]到制造[10]的不同应用领域中的应用越来越广泛。 为了增加机器人系统的采用,它们学习和适应新情况的能力至关重要。

    机器人系统可以自主地或通过人类交互来学习新技能。自主学习的机器人通常通过反复试验来尝试发现执行特定任务的最佳方法(即强化学习[8])。但是,这种方法可能很耗时,并且需要大量的推广或试用。通过人类互动进行的训练可以通过不同的方式进行(例如语音和/或手势演示)。通过语音进行交互提供了一个自然的接口,用于在涉及的合作伙伴中交换有关任务的信息。不幸的是,许多任务很难用语言简洁地解释。通过手势进行人类演示训练机器人具有以下优点:(i)代表人类的直观界面,从机器人编程语言引入抽象层,(ii)提供有关执行所需运动技能的线索一项任务(例如,在执行任务并模仿时跟踪人类的动作),并且(iii)可以更快地掌握技能,避免通过反复试验来随机探索执行任务的所有可能方式。

    机器人的培训可以通过在现场平台上由观察到的人类演示者演示,使用仪器的辅助机器人平台或在模拟环境中进行(参见[1],可以很好地回顾从模拟之外的演示中学习)。在模拟环境中进行的机器人培训是有优势的,因为它与物理机器人平台的可用性无关,从而减少了在实际平台上培训和测试新技能所需的停机时间。确实,模拟环境可以允许同时运行训练/测试的多个实例,从而实现设计选择的快速比较,包括并行性,网络体系结构和其他与训练相关的参数。此外,人类老师无需与真正的机器人共享工作区(例如,恶劣的环境),从而减少了人类员工面临的安全问题。这种范例允许人和机器人都以自己的实施方式执行任务(每个人都有自己的联合配置)。

    我们提出了一种虚拟现实(VR)环境,以直观,安全的方式向虚拟机器人传达任务的意图,从而使机器人可以在更广泛的初始条件下进行复制。 [6]中采用了一种类似的方法来将任务的意图传达给机器人,作者提出了一种一次性模仿学习的框架。 他们考虑了具有不同数量的块和堆叠安排的块堆叠任务,允许的块数目在2到10之间变化。他们通过硬编码策略和43个测试任务收集了140条训练任务的1,000条轨迹, 在训练和测试任务上一次模仿学习,效果良好。 通过他们提出的一键式模仿学习设置,机器人可以从一次演示中学习块堆叠任务的可能实例,并立即使用一组不同的初始块配置立即复制新任务。

    在这里,我们重点介绍一个VR环境,以演示如何用机械臂抓取常见对象。 建立了感知管道来识别这些对象并在桌子上计算它们的方向。 然后,演示学习被用来成功地拾取和传递操作员使用语音接口选择的真实对象,以与物理机器人进行通信。

    2. 机器人训练的VR环境

    建议的VR环境由以下主要组件组成:

    • 一个物理引擎,可以对装载在模拟环境中的铰接式车身执行前向动力学仿真,逆向动力学计算,正向和逆向运动学以及碰撞检测。
    • 自适应机器人平台以及机器人需要与之交互的对象的3D模型。 这些模型在物理引擎中加载和仿真。
    • 一个VR接口,使人与机器人以及物理引擎中模拟的对象进行交互。 VR接口包括一个商用的现成VR耳机,用于接收视觉反馈;以及两个手持控制器,用于在VR环境中进行交互并指导虚拟机器人平台的移动。 通过VR界面,人类可以通过提供在不同环境条件下的任务演示来观察环境并训练虚拟机器人。

    在我们的设置中,我们采用了Bullet Physics作为物理引擎[15],并利用PyBullet(版本2.86)将HTC Vive控制器[5]与模拟环境连接起来。 该设置已完全记录在案,并由该工具支持,并且需要有限的精力才能在工作站上实施。

    要针对特定应用调整此环境,需要对培训方案进行建模。 子弹物理学支持统一机器人描述格式(URDF),这是一种用于描述机器人模型的标准XML格式[7,12]。 通常由机器人供应商提供的URDF可以包括物理几何形状,关节和链接的运动学和动态特性,甚至包括机器人上的传感器位置和特性。 此外,可以找到机器人操作中可能需要或涉及的,因此是培训所需的工具和对象的URDF模型库。 在我们的设置中,我们利用了Yale-CMU-Berkeley(YCB)对象和模型集[4]以及机器人手臂制造商Kinova的模型[13]。 因此,建模工作限于描述整个模拟场景,定位机器人,设计工作区域以及根据要探索的训练场景放置工具和对象。

    3. 应用和评估

    VR环境已被应用来训练机械臂,以进行拾取和传递应用(图1)。 在这种情况下,机器人充当参与机械设备维护任务的人类操作员的助手(图2)。 根据人的声音请求,机器人会识别出所需的工具(从十字螺丝刀,平头螺丝刀,夹具,扳手,剪刀,记号笔,锤子或钻子中取出),从工作空间中将其拾取并交给人类 。

    3.1 设置

    图3显示了机器人系统的体系结构。 用于该应用的机器人平台是具有6个自由度的Kinova Mico2手臂[13]和一个三指欠驱动机械手。 机械臂垂直定向,安装在基座上。 在平板电脑上运行的Android应用程序提供了基于语音的界面,以接收来自操作员的命令。 操纵计划者控制拾取和传递操作的顺序。 该系统使用ASUS Xtion RGBD摄像机[2]提供工作环境的视觉。 感知管道使用相机捕获的图像来识别和定位(即确定位置和方向)所需工具在工作空间中,而抓握配置模块根据其在工作空间的形状和方向确定最佳抓握配置对于一个特定的工具。 

    使用机器人操作系统(ROS)中间件[12]集成了所有模块。 在操作过程中,Android应用程序将解析用户命令。 这会将接收到的信息传递给操作计划程序,该程序询问感知管道以识别和定位所需的工具,然后参考抓取配置模块来确定最佳抓取配置。 然后,操作计划者在执行拾取和通过操作时控制机器人,而使用MoveIt计划和控制抓握方向之外的操作。

    3.2 机器人训练

    机器人系统的训练涉及感知管道和抓握配置。 对感知管道进行了培训,以对一组工具进行分类,并确定它们在工作空间中的位置和方向。 对于工具的分类,我们利用了卷积神经网络(CNN)[9],该网络接收机器人要操作的一组工具图像作为输入。 通常,有监督的机器学习方法需要大量的带标签的训练数据才能实现高精度。 生成此数据的选项在保真度,标记工作量和处理时间方面有所不同,如下所示:

    • 带有手动标签的真实数据,0.1Hz
    • 采用CPU或加速GPU技术的逼真的渲染数据,频率为1Hz
    • Rendered data with GPU, 100Hz

    使用GPU的常规实时渲染是为人机交互而设计的,因此至少需要24Hz,因此要进行近似以适应高帧频。快捷方式包括丢弃视场之外的几何图形,忽略间接照明效果,并通常简化或减少环境光遮挡。但是,这些效果对于提取3D形状(例如,来自阴影方法的形状[21])的背景下的场景很重要。在没有强烈的纹理变化的情况下,例如在光滑的墙壁,无特征的内部环境和积雪覆盖的环境中,环境光遮蔽对于推断场景和对象结构特别重要。对于识别物体的抓握和操纵能力以及确定物体的位置和方向,三个维度的形状(而不是单独的图像外观)至关重要。尽管可以进行实时操作并生成使人类用户能够在某种程度上可视化3D世界的图像,但使用GPU进行实时渲染的上述近似值仍可以将图像误认为是真实图像。逼真的渲染生成的图像与真实场景几乎没有区别,特别是对于电影特效,艺术,建筑和其他可视化效果。通过实质上以尽可能无偏的方式对光子传播路径进行采样,它们可以使逼近度大大降低,并呈现出场景。这样看来,如果它们对于人类几乎无法区分,则使用这些图像训练深度神经网络应该会导致在图像处理方面可以与人类表现媲美的网络。最后,我们期望照片般逼真的渲染训练数据集将增强网络的通用性并降低过度拟合的风险。为了对使用这些不同来源训练的CNN进行具体比较,我们使用实验设置中使用的摄像头系统的图像(图4(a)),使用TinyRenderer [16]渲染的OpenGL [20]场景(图4( b)),以及在Blender [14]中使用照片级逼真的渲染器Cycles渲染的场景(图4(c))。由于时间的限制,没有模拟训练集包括纹理随机化,这也被证明可以改善综合训练数据的性能[19]。 对于每种工具,我们在随机位置,方向和照明条件下收集了200张RGBD图像。 CNN分别针对每个数据集进行了训练。 在表1中,我们提供了针对特定训练集的训练后相对于从真实相机收集的相同测试集的分类准确性的评估。 请注意,逼真的图像比低保真度的合成图像具有更高的成功率,但不如在真实图像上训练的网络那么成功。

    对于本地化,感知管线利用深度和RGB图像以及内置的OpenCV功能来执行工具的分割和姿势估计[3]。

    抓握配置模块经过培训,可以根据工具的方向识别最佳的抓握配置。最好的抓握配置是确保在拾取和通过操作中获得最大成功的可能性。该训练是在虚拟现实环境中由操作员在探索不同的抓握配置(即,机器人的末端执行器相对于要抓握的工具的不同位置和方向)时指导机器人进行的。使用手控制器,人类教练员可以以所需的抓握配置引导虚拟机械手,并控制末端执行器的打开和关闭操作。对于每次试验,都会记录抓握尝试的成功或失败。将收集的数据传递到机器学习算法,以提取要抓取的工具,抓取配置和抓取结果之间的关系。因此,机器学习算法能够确定特定工具的最佳抓取配置。

    4. 总结

    在这项工作中,我们提出了一个身临其境的虚拟现实(VR)环境,其中通过人工演示训练了模拟机器人。 操作员可以利用VR环境向机器人传达任务的意图,以便机器人可以在更广泛的初始条件下复制它。 然后,将模拟机器人获得的技能转移到物理世界中的真实机器人上。 该方法直观,对演示人员安全,并减少了训练过程中机器人的停机时间。

    我们计划扩展当前框架,以通过视觉伺服(用于拾取的连续视觉反馈)实现抓握配置,这将允许更多的端到端学习,而无需期待单独的感知模块。 此外,在当前设置中,我们将抓具相对于放置工具的平坦工作台表面限制为垂直方向。 然后以恒定的高度执行抓取,以使抓取器在表面上方一定距离处。 因此,定义抓取姿势的其余要学习的参数是表面上的平移位置,以及抓取器相对于表面法线的旋转。 我们计划消除此约束,以充分利用机械臂的自由度并实现更大范围的抓握。

  • 相关阅读:
    前端之页面标签的图标修改
    分页, 解析器, 渲染器
    DRF的认证,频率,权限
    视图组件,路由组件,版本控制
    序列化组件
    Restful规范
    docker大全集
    哨兵和docker容器
    项目发布须知
    Linux之nginx
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/14221685.html
Copyright © 2011-2022 走看看