每日一篇文献: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简介
机器人机械手的遥操作已在各个领域得到广泛研究[7, 14]。最近,这项技术引起了人们的兴趣,并被认为有望用于极端环境中的任务,例如手套箱操作[1, 15]。远程操作机器人的使用将最大限度地减少人类工人接触放射性危险材料的需要,从而提高安全性并从长远来看降低运营成本。
为此,作为垫脚石之一,本文提出了一种直观的人机交互概念,通过使用虚拟现实和 Leap Motion(手部跟踪系统)远程操作机器人机械手。我们的系统不需要人类操作员拥有任何手持设备,但机器人操纵器简单直接地跟随他/她裸手的姿势和手势。据我们所知(见更多的细节在节 2),这是teleoperate使用徒手实时地自动操纵器,而无需既不虚拟目标,也没有预定义手势的首次尝试。
在本文中,我们展示了如何使用 6 自由度机械臂(Universal Robots UR5)、三指抓手(Robotiq)、Leap Motion、基于 Unity(3D 游戏引擎)和 ROS 的虚拟现实来实际设置系统(机器人操作系统),并具体描述彼此之间通信的信息。此外,我们提供了为控制机械臂和抓手而开发的 ROS 节点的详细信息,考虑到 Leap Motion 感测到的人类裸手信息。然后,我们演示我们的系统执行一个简单的拾放任务,并讨论这个 HRI 概念的可能收益和成本。
2相关工作
在过去的十年中,许多研究提出了使用虚拟现实 (VR) 进行机器人机械手遥控操作的人机界面概念。许多作品都使用了默认的手持设备[12, 19],这可能会对用户手臂造成相当大的长期工作量,以执行耗时的任务。作为没有手持设备的替代接口,人体动作捕捉系统,如Kinect(使用视觉)[13] 和/或Myo(使用肌电图)[11] 也被广泛使用。然而,前者需要很大的空间来捕捉用户的整个身体,并且这种传感器相对于VR的位置需要仔细校准。后者作为一种可穿戴设备,使用起来很方便,但据报道提供的准确性不如 Kinect,需要传感器融合。3, 11]。
最近,Leap Motion (LM),即基于视觉的手部运动/手势捕捉系统,已开始与 VR 一起用于机器人遥操作。在 [2, 4, 18],预定义的手势用于控制机器人操纵器。这个 HRI 概念需要人类操作员将这些输入手势映射到所需的输出机器人行为,尽管它至少比使用制造商提供的机器人的默认接口设备(例如优傲机器人的示教器)更有效[18]。为了更好的直观性,一些作品使用了虚拟对象[9, 10] 或航点 [16],这是机器人机械手的末端执行器必须跟随和到达的空间目标,人类可以简单地拿起这样的虚拟目标并将其放置在虚拟空间中。它呈现在 [10] 与在 Rviz 中使用Moveit交互式标记相比,操纵虚拟对象可以减少任务完成时间。然而,所有的作品都使用计划和执行的概念,这不可避免地会导致每个命令的延迟。
我们的工作受到以下研究问题的启发:我们能否拥有一个遥控机器人操纵器,它可以简单地实时复制人类操作员的手势和手势,既没有虚拟目标,也没有预定义的手势或手持设备?以下部分展示了我们试图回答这个问题的远程操作系统。
3提议的系统
提议的使用虚拟现实和 Leap Motion 的远程操作系统(左上:佩戴带有 Leap Motion 的 VR 护目镜的用户;左下:虚拟控制室;右:远程站点的机器人)
拟议的遥控机器人机械手的系统架构
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_speed(trajectory_msgs/ JointTrajectory.msg(http://docs.ros.org/melodic/api/trajectory_msgs/)与设备进行通信)HTML / MSG / JointTrajectory.html),即每个关节的参考速度),joint_sta TES(sensor_msgs / JointState.msg(http://docs.ros.org/melodic/api/sensor_msgs/html/msg/JointState.html),即,每个关节的当前状态),用于UR5和SModelRobotOutput(robotiq_s_model_control / SModel_robot_output。MSG(http://docs.ros.org/hydro/api/robotiq_s_model_control/html/msg/SModel_robot_output.html),即夹具功能寄存器)用于夹具。
对于 UR5,推荐使用ur_modern_driver包7用于较新的系统版本(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 ]∈[0,1],其中值 1 表示完全闭合的手。根据抓取强度及其变化率,选择rPRA、rPRB和rPRC(即机器人抓手的每个手指位置请求)和rSPA、rSPB、rSPC(即速度请求)并由 SModelRobotOutput 组成,然后将其发布到抓手。
ROS#设置: ROS#将Unity端的system_mode、leap_motion_input等用户输入发布到ROS端,同时订阅远程站点的joint_states、camera等状态信息。在这里,leap_motion_input包含 ROS 消息Human_Orion.msg,它基于现有的用于 LM 的 ROS 包的Human.msg但我们自己修改以包含新的信息,例如用户手掌的法线和方向向量。为了实现统一和ROS双方之间的发布和订阅的处理,我们也创造了C#语言,如人力猎户座出版商和System Mode Publisher并利用了现有的,例如Joint State Subscriber和Image Subscriber。
3.2 空手如何控制机器人?
然后,它获得所需的末端执行器平移量, Δ pΔ磷,使用来自主题leap_motion_input的用户手掌位置。它更新所需的位置磷dk + 1磷克+1d 并构建 60乙dk + 106乙克+1d,然后将其转换为下一时刻所需的关节状态 θdk + 1θ克+1d. 最后,每个关节所需的关节速度θ˙dk + 1θ˙克+1d 计算并发布。
算法 2 更详细地展示了机器人操纵器的 ROS 节点如何工作。与算法 1 相比,额外包含了第 10-13 行用于方向控制。首先,它获取用户手的当前方向H克∈电阻3 × 3H克∈电阻3×3使用palm_normal和palm_direction从主题leap_motion _Input,和thumb_direction,这是两个矢量之间的叉积。然后,它计算吨Hk - 1→H克吨H克-1→H克,来自前一只手的方向的变换矩阵 Hk - 1H克-1 到当前的 H克H克. 使用变换矩阵,末端执行器的所需方向乙dk + 1乙克+1d 可以获得。 60乙dk + 106乙克+1d 然后使用 乙dk + 1乙克+1d 以及所需的位置 磷dk + 1磷克+1d,并最终转化为每个关节所需的关节速度 θ˙dk + 1θ˙克+1d,然后将其发布到机器人操纵器。
4演示与讨论
提议的远程操作系统的演示:前两个子图呈现 Reaching 模式;其余子图显示操作/抓取模式
在这种情况下,作为未来的工作,我们将通过参与人类案例研究来评估这一 HRI 概念,与使用虚拟目标对象的现有研究进行比较。我们的假设之一是,仅依靠多平面显示器,提议的 HRI 概念将提供更多好处,正如我们在本演示中所体验的那样。
显然,当前基于 LM 的系统本身并没有提供任何触觉反馈,这在许多情况下被认为是遥操作的重要特征。尽管我们尝试使用商业级外骨骼触觉力反馈手套(即CyberGrasp),但根据我们的测试,佩戴触觉手套或被小物体遮挡的手也无法被 LM 感知。在这种情况下,探索如何向 LM 用户提供触觉反馈将是一项有价值的未来工作。首先,我们可能可以使用多个 LM,如 [8],其中放置了两个传感器以查看人手的正交方面。然而,即使使用这种方法也是具有挑战性的,因为触觉力反馈手套几乎完全覆盖了手背,因此手掌应该始终朝向辅助 LM 才能被清楚地感知,这限制了用户的操作范围。如果没有这种力反馈手套,我们可能可以使用基于视觉或音频反馈的虚拟触觉。或者,可以使用人工触觉设备,例如Ultrahaptics 11,它使用超声波来提供空中触觉。否则,设计一种与 LM 兼容的可穿戴轻量触觉设备也将是一项有趣的研究。
5结论
本文提出了一种新颖的远程操作系统,其中机器人操纵器以实时方式简单直接地复制人类操作员的裸手姿势和手势,而无需任何手持设备。我们展示了如何使用基于 Unity 和 ROS 的商业级机器人(例如 Universal Robots UR5 和 Robotiq 3 指抓手以及 Leap Motion 和虚拟现实)来实际设置系统。我们演示了我们的系统执行一个简单的拾放任务,并讨论了这个 HRI 概念的可能收益和成本。