zoukankan      html  css  js  c++  java
  • 每日一篇文献:Intuitive Bare-Hand Teleoperation of a Robotic Manipulator Using Virtual Reality and Leap Motion

    标题:Intuitive Bare-Hand Teleoperation of a Robotic Manipulator Using Virtual Reality and Leap Motion

    使用虚拟现实和跳跃运动对机器人机械手进行直观的徒手遥操作

    下载链接:https://link.springer.com/content/pdf/10.1007%2F978-3-030-25332-5_25.pdf

    摘要

    尽管有各种关于机器人操纵器遥控操作的直观人机交互 (HRI) 的现有工作,但据我们所知,以下研究问题尚未得到研究:我们能否拥有一个遥控操作的机器人操纵器,它可以简单地复制人类操作员的裸机?在没有任何手持设备的情况下实时掌握手势和手势?本文提出了一种新的远程操作系统,试图解决这个问题。首先,我们详细介绍了如何使用Universal Robots UR5、Robotiq 3指抓手和基于Unity和ROS的Leap Motion来实际设置系统,并具体描述彼此之间传递的信息。此外,我们提供了为控制机械臂和抓手而开发的 ROS 节点的详细信息,鉴于 Leap Motion 感知到的人类赤手的信息。然后,我们展示了我们的系统执行一个简单的拾放任务,并讨论了这个 HRI 概念的可能收益和成本。

    关键词

    人机交互 遥操作 虚拟现实 飞跃运动 

    该项目得到了 RAIN Hub 的支持,该中心由工业战略挑战基金资助,该基金是政府现代工业战略的一部分。该基金由 UK Research and Innovation 提供,由 EPSRC [EP/R026084/1] 管理。

    1简介

    机器人机械手的遥操作已在各个领域得到广泛研究[714]。最近,这项技术引起了人们的兴趣,并被认为有望用于极端环境中的任务,例如手套箱操作[115]。远程操作机器人的使用将最大限度地减少人类工人接触放射性危险材料的需要,从而提高安全性并从长远来看降低运营成本。

    为此,作为垫脚石之一,本文提出了一种直观的人机交互概念,通过使用虚拟现实和 Leap Motion(手部跟踪系统)远程操作机器人机械手。我们的系统不需要人类操作员拥有任何手持设备,但机器人操纵器简单直接地跟随他/她裸手的姿势和手势。据我们所知(见更多的细节在节 2),这是teleoperate使用徒手实时地自动操纵器,而无需既不虚拟目标,也没有预定义手势的首次尝试。

    在本文中,我们展示了如何使用 6 自由度机械臂(Universal Robots UR5)、三指抓手(Robotiq)、Leap Motion、基于 Unity(3D 游戏引擎)和 ROS 的虚拟现实来实际设置系统(机器人操作系统),并具体描述彼此之间通信的信息。此外,我们提供了为控制机械臂和抓手而开发的 ROS 节点的详细信息,考虑到 Leap Motion 感测到的人类裸手信息。然后,我们演示我们的系统执行一个简单的拾放任务,并讨论这个 HRI 概念的可能收益和成本。

    2相关工作

    在过去的十年中,许多研究提出了使用虚拟现实 (VR) 进行机器人机械手遥控操作的人机界面概念。许多作品都使用了默认的手持设备[1219],这可能会对用户手臂造成相当大的长期工作量,以执行耗时的任务。作为没有手持设备的替代接口,人体动作捕捉系统,如Kinect(使用视觉)[13] 和/或Myo(使用肌电图)[11] 也被广泛使用。然而,前者需要很大的空间来捕捉用户的整个身体,并且这种传感器相对于VR的位置需要仔细校准。后者作为一种可穿戴设备,使用起来很方便,但据报道提供的准确性不如 Kinect,需要传感器融合。311]。

    最近,Leap Motion (LM),即基于视觉的手部运动/手势捕捉系统,已开始与 VR 一起用于机器人遥操作。在 [2418],预定义的手势用于控制机器人操纵器。这个 HRI 概念需要人类操作员将这些输入手势映射到所需的输出机器人行为,尽管它至少比使用制造商提供的机器人的默认接口设备(例如优傲机器人的示教器)更有效[18]。为了更好的直观性,一些作品使用了虚拟对象[910] 或航点 [16],这是机器人机械手的末端执行器必须跟随和到达的空间目标,人类可以简单地拿起这样的虚拟目标并将其放置在虚拟空间中。它呈现在 [10] 与在 Rviz 中使用Moveit交互式标记相比,操纵虚拟对象可以减少任务完成时间然而,所有的作品都使用计划和执行的概念,这不可避免地会导致每个命令的延迟。

    我们的工作受到以下研究问题的启发:我们能否拥有一个遥控机器人操纵器,它可以简单地实时复制人类操作员的手势和手势,既没有虚拟目标,也没有预定义的手势或手持设备?以下部分展示了我们试图回答这个问题的远程操作系统。

    3提议的系统

    在本文中,我们提出了一个新的 HRI 概念,其中人类操作员可以直观地使用他/她的赤手空手来远程操作机器人操纵器。在我们的系统中,如图1所示 ,人类操作员可以坐在一个虚拟控制室,那里有三视图显示器和一个呈现实际机器人状态的虚拟机器人模型,以及操作员可以通过控制面板给出任何预定义的命令。无需任何手持设备,通过连接到 VR 护目镜外表面的 LM,人的手可以被感知并直观地与控制面板进行交互。更重要的是,取决于控制模式,即到达模式操纵/抓取模式(参见第 3.2 节),机器人机械手可以跟随 LM 感应到的操作者的裸手,这提供了高度的直观性。
    图。1。

    提议的使用虚拟现实和 Leap Motion 的远程操作系统(左上:佩戴带有 Leap Motion 的 VR 护目镜的用户;左下:虚拟控制室;右:远程站点的机器人)

    图 2。

    拟议的遥控机器人机械手的系统架构

    3.1系统架构

    图 2显示了由我们提出的远程操作系统组成的硬件/软件组件,该系统使用一个 6 自由度机器人机械手 (UR5)、一个三指抓手 (Robotiq) 和三个用于远程站点从端的网络摄像头,并使用一个Leap Motion 和一个 VR 系统 (Oculus Rift) 用于主端。远程站点中的所有设备都通过运行在 Ubuntu 16.04 上的ROS(动态版本)进行通信VR和LM等用户界面设备连接到Windows 10上的Unity3D,然后ROS和Unity3D通过基于Rosbridge的ROS# 1链接[5]。参考 [17] 有关 ROS# 用法的更多详细信息。

    Unity 端设置:我们为 LM使用Orion Beta,与之前的软件V2 2相比,最近的软件提供了明显更好的性能,但目前仅在 Windows 上可用。重要的是,当 Orion 与 VR 一起使用时,LM 可以在没有手持设备的情况下实现沉浸式界面。与通过 ROS 直接使用 LM(使用 V2)相比,Orion 还提供了关于手的额外信息,例如手掌的法线和方向向量,这些信息在这项工作中用于将用户手映射到机器人手。

    此外,我们利用 LM 的 Unity SDK(例如Interaction Engine 3)使用户能够通过在虚拟空间中简单地触摸它们来与虚拟对象(例如虚拟控制面板)进行交互。

    在当前的远程操作系统中,用户的右手手势用于分别通过竖起大拇指或伸出所有手指来选择控制模式,例如Reaching模式Manipulating/Grasping模式为此,还导入了LM的Detection Example 4

    ROS 侧设置:用于 UR5 5和夹具6 的ROS 包用于通过 ROS 主题(例如joint_speedtrajectory_msgs/ JointTrajectory.msghttp://docs.ros.org/melodic/api/trajectory_msgs/)与设备进行通信)HTML / MSG / JointTrajectory.html),即每个关节的参考速度),joint_sta TESsensor_msgs / JointState.msghttp://docs.ros.org/melodic/api/sensor_msgs/html/msg/JointState.html),即,每个关节的当前状态),用于UR5和SModelRobotOutputrobotiq_s_model_control / SModel_robot_output。MSGhttp://docs.ros.org/hydro/api/robotiq_s_model_control/html/msg/SModel_robot_output.html),即夹具功能寄存器)用于夹具。

    对于 UR5,推荐使用ur_modern_driver7用于较新的系统版本(v3.x 及更高版本)。驱动程序接收joint_speed主题作为输入,然后将其转换为相应的URScript,这是在脚本级别控制机器人的编程语言。根据 URScript 手册8,“必须以 125 Hz 的频率控制机器人,或者换句话说,必须每 0.008 秒告诉它该做什么”。

    如图2所示 ,我们有两个 ROS 节点用于控制 UR5 和一个用于夹具的节点,它们根据来自 Unity 端的输入信号system_node激活或停用,其中包含一个指示控制模式的字符串值由用户选择。

    尽管选择了控制模式,但UR5的两个节点中的任何一个都会生成joint_speed_temp主题,其消息类型与joint_speed相同,但需要通过发布监管节点,因为ROS不保证实时能力。特别是,由于两个控制节点内部都存在逆向和正向运动学计算等处理负担,因此要保持每个处理循环的计算时间一致并非易事。由于这个事实,当joint_speed_temp直接输入到ur_modern_driver时节点,很容易感觉到UR5的运动不流畅,而是反复启动和停止。为了解决这种不良行为,我们加入了发布监管节点。基本上,这个节点简单地订阅了joint_speed_temp,然后将其发布为joint_speed,但是如果在上一个主题之后的0.008秒内没有收到新主题,它会再次发布上一个主题。虽然这也不能提供适当的实时能力,但至少 UR5 的移动变得更加流畅。

    对于夹持器,用于抓握所述控制节点订阅leap_motion_input,其包含用户的手的抓握强度由LM,即感测到的grab_ 强度 ∈ ][0,1],其中值 1 表示完全闭合的手。根据抓取强度及其变化率,选择rPRArPRBrPRC(即机器人抓手的每个手指位置请求)和rSPArSPBrSPC(即速度请求)并由 SModelRobotOutput 组成,然后将其发布到抓手。

    ROS#设置: ROS#将Unity端的system_modeleap_motion_input等用户输入发布到ROS端,同时订阅远程站点的joint_statescamera等状态信息在这里,leap_motion_input包含 ROS 消息Human_Orion.msg,它基于现有的用于 LM 的 ROS 包的Human.msg但我们自己修改以包含新的信息,例如用户手掌的法线和方向向量。为了实现统一和ROS双方之间的发布和订阅的处理,我们也创造了C#语言,如人力猎户座出版商System Mode Publisher并利用了现有的,例如Joint State SubscriberImage Subscriber

    3.2 空手如何控制机器人?

    如前所述,当前系统有两种控制模式:到达模式操纵/抓取模式在 Reaching 模式下,机器人末端执行器的三维笛卡尔位置仅在手部闭合时通过 Leap Motion 感应到的操作者手掌位置跟随,从而激活机器人的运动。该激活功能旨在减少整个操作过程中过多的人的注意力负荷,防止因操作员可能无意识的手势或动作而导致的意外事故。本节介绍每种控制模式的更多详细信息。
    Reaching Mode:这种控制模式的描述如算法1所示。基本上,主循环在每个采样时间后的每个计算时刻k运行Δ0.008Δ=0.008 S,如果用户的手正在关闭(即grab_strength从主题leap_motion_input大于一定阈值常数大C1C1) 以及 Reaching 模式被选中(即来自主题system_mode 的control_mode)。注意我们设置C1C1到 0.9,因为即使人手完全闭合,grab_strength有时也会由于传感器噪声而变得小于 1。首先,ROS节点获取机器人手臂在关节空间的当前状态,即joint_states然后,通过使用 UR5 的正向运动学方法 [69,转化为末端执行器在笛卡尔空间中的对应位置和方向,60电阻× 406电阻4×4, 定义为
    60[0× 31]06=[01×31].
    (1)
    [X6,6,Z6电阻× 3=[X6,6,Z6]电阻3×3 表示末端执行器的方向,其中 X6X666Z6电阻× 1Z6电阻3×1 是单位向量,表示末端执行器协调框架相对于机器人手臂的基础框架(即肩部)的每个正交方向。 电阻× 3电阻1×3 是末端执行器在任务空间中的位置。

    然后,它获得所需的末端执行器平移量, Δ pΔ,使用来自主题leap_motion_input的用户手掌位置它更新所需的位置d1+1d 并构建 60d106+1d,然后将其转换为下一时刻所需的关节状态 θd1θ+1d最后,每个关节所需的关节速度θ˙d1θ˙+1d 计算并发布。

    操作/抓握模式:在操作/抓握模式下,不仅末端执行器的位置而且其方向都遵循人手的方向。在这种模式下,关闭手势会触发机器人抓手的抓取行为。

    算法 2 更详细地展示了机器人操纵器的 ROS 节点如何工作。与算法 1 相比,额外包含了第 10-13 行用于方向控制。首先,它获取用户手的当前方向H电阻× 3H电阻3×3使用palm_normalpalm_direction从主题leap_motion _Input,和thumb_direction,这是两个矢量之间的叉积。然后,它计算H1HH-1H,来自前一只手的方向的变换矩阵 H1H-1 到当前的 HH使用变换矩阵,末端执行器的所需方向d1+1d 可以获得。 60d106+1d 然后使用 d1+1d 以及所需的位置 d1+1d,并最终转化为每个关节所需的关节速度 θ˙d1θ˙+1d,然后将其发布到机器人操纵器。

    用于抓取的ROS节点在算法3中描述。它计算手抓取位置的时间差 抢\_速度抢\_速度 使用当前 抢\_强度抢\_强度来自主题leap_motion_input和前一时刻的那个。然后,抢\_速度抢\_速度 和 抢\_强度抢\_强度分别用于设置夹具所需的位置和速度(即rPRArSPA等)。由于rPRXrSPX的值为0 到 255 之间的整数,因此需要抢\_速度抢\_速度 和 抢\_强度抢\_强度 被适当地映射,用于哪个功能 FF 和 FF被使用。最后,这些值由主题SModelRobotOutput 组成,然后发布到抓手
    总之,手势及其对机器人的最终命令如图3所示 
    图 3。

    如何通过手部跟踪控制机械手

    4演示与讨论

    如图4所示 ,我们成功地演示了所提出的远程操作系统来拾取空铝罐10可以很好地感知手的位置和手势,这提供了高度的直观性。由于这种直观性,测试操作员提到,多个平面显示器足以感知远程情况并完成任务。
    图 4。

    提议的远程操作系统的演示:前两个子图呈现 Reaching 模式;其余子图显示操作/抓取模式

    在这种情况下,作为未来的工作,我们将通过参与人类案例研究来评估这一 HRI 概念,与使用虚拟目标对象的现有研究进行比较。我们的假设之一是,仅依靠多平面显示器,提议的 HRI 概念将提供更多好处,正如我们在本演示中所体验的那样。

    显然,当前基于 LM 的系统本身并没有提供任何触觉反馈,这在许多情况下被认为是遥操作的重要特征。尽管我们尝试使用商业级外骨骼触觉力反馈手套(即Cyber​​Grasp),但根据我们的测试,佩戴触觉手套或被小物体遮挡的手也无法被 LM 感知。在这种情况下,探索如何向 LM 用户提供触觉反馈将是一项有价值的未来工作。首先,我们可能可以使用多个 LM,如 [8],其中放置了两个传感器以查看人手的正交方面。然而,即使使用这种方法也是具有挑战性的,因为触觉力反馈手套几乎完全覆盖了手背,因此手掌应该始终朝向辅助 LM 才能被清楚地感知,这限制了用户的操作范围。如果没有这种力反馈手套,我们可能可以使用基于视觉或音频反馈的虚拟触觉。或者,可以使用人工触觉设备,例如Ultrahaptics 11,它使用超声波来提供空中触觉。否则,设计一种与 LM 兼容的可穿戴轻量触觉设备也将是一项有趣的研究。

    5结论

    本文提出了一种新颖的远程操作系统,其中机器人操纵器以实时方式简单直接地复制人类操作员的裸手姿势和手势,而无需任何手持设备。我们展示了如何使用基于 Unity 和 ROS 的商业级机器人(例如 Universal Robots UR5 和 Robotiq 3 指抓手以及 Leap Motion 和虚拟现实)来实际设置系统。我们演示了我们的系统执行一个简单的拾放任务,并讨论了这个 HRI 概念的可能收益和成本。

    脚注

  • 相关阅读:
    爬虫那些事儿---爬虫选择策略
    爬虫那些事儿--Http返回码
    【珍藏】linux 同步IO: sync、fsync与fdatasync
    perf学习-linux自带性能分析工具
    进程调度原理
    phpmyadmin 免登陆
    请为main函数提供返回值
    悬挂else引发的问题
    PhpMyAdmin导入数据库大小限制?
    linux内核Makefile整体分析
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/14930371.html
Copyright © 2011-2022 走看看