论文笔记(六):A VR Teleoperation Suite with Manipulation Assist

文章概括

作者:Christian Barentine,Andrew McNay,Ryan Pfaffenbichler,Addyson Smith,Eric Rosen,Elizabeth Kathleen Phillips
来源:HRI '21 Companion: Companion of the 2021 ACM/IEEE International Conference on Human-Robot InteractionMarch 2021 Pages 442–446
原文:https://dl.acm.org/doi/pdf/10.1145/3434074.3447210
代码、数据和视频:暂无
系列文章目录:
上一篇:
论文笔记(五):Multimodal Sensor Fusion with Differentiable Filters
下一篇:
论文笔记(七):ROS Reality: A Virtual Reality Framework Using Consumer-Grade Hardware for ROS-Enabled Robot

摘要

虚拟现实(VR)等技术能力的进步及其在消费价位上的快速扩散,使得将其整合到现有机器人框架中变得更加容易。VR界面对于机器人来说是很有前途的,原因有几个,包括它们可能适用于解决许多与传统的机器人远程操作界面相关的人类性能问题,这些界面用于机器人操作。在这篇以系统为中心的论文中,我们介绍并记录了一种基于VR的机器人控制范式与操纵辅助控制算法的开发,它允许人类操作者指定更大的操纵目标,而将定位、操纵和抓取等低级细节留给机器人本身。对于社区,我们也描述了迄今为止我们进展的系统设计挑战。

1. 介绍和相关工作

机器人能够对大小物体进行快速、重复和精确的操作,但对于需要灵活和重新规划的操作任务,往往受限于感知、规划和控制。因此,利用机器人的优势,同时减少其缺点,是远程操作,或者说由人类操作者直接远程控制机器人的主要魅力所在。然而,人类要想很好地远程操作机器人,需要对机器人的执行器进行高保真控制,并对机器人的环境进行准确而丰富的可视化。

以往的远程操作方案都存在着向操作者展示机器人的环境与环境本身的现实脱节的问题。简单地说,机器人通常在三维环境中操作,而传统的远程操作方案则是用二维方法向人类展示环境,一般依靠计算机显示器来显示传感器数据,操纵杆或键盘来驱动机器人。这些二维远程操作控制方案对人类操作者来说是繁琐的,而且工作量大。因此,研究和开发新的机器人系统接口和远程操作系统是非常有必要的。以往的研究表明,虚拟现实界面可以成为远程操作机器人的有效手段,而且比传统的键盘和显示器界面更可用,工作量更小。

此外,虚拟技术能力的进步,以及其在消费者价格上的迅速普及,使其更容易融入现有的机器人框架。例如,之前的工作表明,使用虚拟现实界面允许用户使用类似航点的控制(称为位置控制)远程操作Baxter机器人的机械手,比直接模仿 "点击和拖动 "Baxter机械手的VR界面(称为轨迹控制)更快、更准确地完成粗大和精细动作的操作任务。因此,我们在类似航点界面的基础上,创建了一个具有操纵辅助功能的VR机器人控制范式,这种控制辅助算法允许人类操作者指定更大的操纵目标,而将定位和操纵的细节留给机器人本身。本文的目的是记录操纵辅助VR系统的进展并报告系统细节。我们还为大家描述了 社区系统设计的挑战,到目前为止,我们的进展。

机器人与增强和虚拟现实(AR/VR)等虚拟技术的交叉是一个快速发展的领域。最近,人机交互(HRI)界开始围绕着与这些技术交叉的研究课题和应用组织起来。随着消费级VR系统的迅速普及,价格亲民、外形尺寸更小、机载计算能力更强,人们对这些系统在许多机器人应用中的使用兴趣越来越大。这种扩散也使得研究人员能够以有意义的方式将消费级AR/VR融入到人与机器人的互动中。

例如,Whitney等人的研究表明,与传统的二维键盘和显示器界面相比,VR界面可以让非专业用户远程操作机器人,以更快的速度和更低的认知工作量完成一些灵巧的操作任务。研究者还发现,参与者对VR界面的评价比键盘和显示器界面更可用,并赋予VR界面更高的满意度分数。Lipton对采用homunculus控制界面的VR-机器人远程操作范式进行了非正式用户评估。机器人的homunculus模型实际上将用户嵌入了机器人 "头脑 "内的 “控制室”。研究人员要求用户控制机器人与不同形状和顺应性的物体进行一些制造和取放任务。通过homunculus VR模型,用户成功地拿起每件物品,在机器人手之间转移该物品,最后将每件物品放入垃圾箱。由于一些研究人员已经证明了使用消费级VR硬件对机器人进行远程操作控制的前景,因此,继续开发和测试基于VR的界面,以改进人类对机器人的控制模式,并最终实现人与机器人的互动是有价值的。

2. 系统概述

由于远程操作的性质,我们的系统有重要的硬件和软件组件,这些组件需要协同工作才能成功执行,在下面的章节中进行了说明。

2.1 硬件

该系统的物理组成部分是:

  • 一个“Rethink Baxter”机器人
  • 一款Oculus Quest VR头显和控制器。
  • WLAN路由器
  • 网络交换机
  • 多个印刷的ArUco标签
  • 至少一个罗技USB网络摄像头
  • 运行计算密集型软件包的外部笔记本电脑

用于TagUp系统的Baxter机器人

图1:用于TagUp系统的Baxter机器人。

Rethink Baxter机器人是一款双臂机器人,常用于研究和工业任务,如取放。在我们的系统中,我们有一个Baxter供用户操作。Baxter本身用以太网线与网络交换机连接,网络交换机与笔记本电脑连接。笔记本电脑作为百特的接入点,让我们可以在ROS环境下运行其他软件,如ArUco标签识别。除了来自交换机的以太网连接外,笔记本电脑还与WLAN路由器进行无线连接。 路由器通过无线方式连接到Oculus Quest VR头显,实现对机器人的无线控制。印制的ArUco标签贴在Baxter应该可以操控的物体上。虽然Baxter在每个手腕上靠近其末端效果器的地方都配有一个摄像头,但一个固定的外部usb网络摄像头被用来提供稳定的物体跟踪。这个摄像头的放置方式是让它能很好地看到外部工作空间。

2.2 软件

该系统的软件组成部分是

  • ROS Indigo
  • Ubuntu 14.04
  • TagUp VR控制程序
  • Unity游戏引擎
  • ZeroMQ
  • ArUco标签识别包
  • MoveIt反运动学求解器

Baxter和笔记本电脑都运行ROS Indigo,笔记本电脑在Ubuntu 14.04的基础上运行Indigo。笔记本电脑负责运行额外的ROS服务,包括MoveIt反向运动学服务器、ArUco标签包,以及头显和ROS之间的定制桥梁。Oculus Quest Headset运行在Oculus制造的android操作系统的专有版本上。它的内部有一台电脑,能够在不连接PC的情况下运行VR应用,这就是VR控制程序本身运行的地方。我们使用Unity游戏引擎来制作VR控制程序,并将其上传到头显上。有几个包可以让其他应用与ROS节点进行交互。然而,我们尝试使用其中最常见的ROS#,却没有成功。相反,我们使用了一个名为ZeroMQ的轻量级消息库,在笔记本电脑上运行的ROS节点和头显上的VR控制程序之间实时传递消息。 来自ROS的最重要的信息流之一是ArUco Tag ROS软件包提供的所有已识别的ArUco标签的位置。这个包能够识别来自任何数量的摄像机的标签,然后将其发送到控制程序,以渲染标签所附着的对象,并执行操作辅助算法。


2.3 物体位姿跟踪

机器人要辅助进行物体操作,首先必须能够识别物体是什么,以及物体在三维空间中相对于机器人本身的位置。为了满足这一要求,我们的系统使用了fiducial标签。Fiducial标签是一种高对比度的图案,在概念上类似于QR或条形码,但内置了更多的数据冗余。标签识别系统由贴在物体或导航点上的印刷标签和至少一个摄像头组成,摄像头与运行适合被检测标签系列的标签识别软件的计算机相连。每一个标签都有一个ID,识别软件除了解码标签相对于检测相机的姿势外,还解码了这个ID。我们的系统使用一个标签ID字典,将标签的摄像头相对姿势映射到其相关的虚拟对象上。为了执行此映射,我们使用标签0作为特殊标签,表示物理和虚拟环境中的 “原点”。摄像机的位置可以看到原点标签,这样我们就可以倒推得到标签相对于原点的位置,进而将所有标签置于同一参考框架中,而不管检测到它们的摄像机是哪台。

系统的高层次概述

图2:系统的高层次概述,硬件(正方形蓝色轮廓)和软件(胶囊橙色轮廓)两部分均有显示。

ArUco标签号503(左)通过USB网络摄像头(右)识别的例子。

图3:ArUco标签号503(左)通过USB网络摄像头(右)识别的例子。

2.4 操作辅助算法

操纵辅助的过程在概念上类似于遵循一组航点。当请求一个有效的辅助时,机器人加载一个航点列表,以及所需的状态,并依次执行。一旦完成,控制权就会返回给操作者。算法必须做出的两个关键决定是。(1) 哪些辅助是有效的? (2) 操作员希望机器人执行哪些有效的辅助?

因为辅助是依赖于机器人的上下文,所以辅助控制器使用了一个虚拟上下文管理器。情境管理器的工作是存储机器人状态的表示,回答关于机器人状态的查询,并适当地更新该状态。此外,根据机器人的逻辑部分,上下文会被分解成不同的组。目前,可用的4个组是左臂、右臂、机器人和全局。因此,上下文管理器可能会记录右臂正在抓取一个物体,而左臂没有。

首先,一个对象必须被确定为辅助目标。这就关联了一个可能的助攻列表,执行每个助攻的航点,助攻有效所需的条件,以及由此产生的机器人上下文的变化。当运行控制程序时,操作员的每个Oculus手控器周围都有一个看不见的体积。该体积会跟踪其中的任何辅助目标,并将其作为相应上下文组的潜在目标列表。例如,如果对象在附着于右手控制器的体积内,它就会被存储为右臂上下文组的潜在目标。

接下来,用户按下分配给辅助控制的手控器上的一个按钮,表示他们想要辅助。接下来会发生什么,取决于上下文和当前的权限范式。目前有两种操纵辅助的权限范式正在开发中,并将成为未来用户评估研究的目标。它们包括例外式和权限式的操纵辅助管理。在按例外风格管理中,除非被操作者打断,否则机器人将自动使用操纵辅助系统应用它认为操作者想要的低级任务。这与许可式管理形成鲜明对比,在许可式管理中,除非操作者明确指示,否则机器人绝不会自动执行任何低级任务。

控制器查看每个潜在目标的所有可能的助攻,并根据上下文检查其要求。例如,捡起一个对象的要求之一是抓手当前是空的。所有满足其所有要求的助记都会被添加到有效助记列表中。编译完有效助记后,控制器会检查它的权限模式是什么。如果它是异常,则选择第一个有效的辅助。如果是权限模式,则向操作者显示包含所有有效辅助的菜单,然后控制器等待选择。一旦选择了一个辅助,控制器就停止监听用户的输入,而是将航点/抓手状态作为目标状态发送给机器人,等待机器人发出信号表示已经到达给定的航点,再发送下一个航点。一旦到达所有航点,控制权就会回到操作者手中。


用户在控制Baxter时看到的内容。请注意,用户已经采取了以自我为中心的立场。

图4:用户在控制Baxter时看到的内容。请注意,用户已经采取了以自我为中心的立场。

2.5 VR环境

目前,大部分的VR环境都是硬编码的。一个 "Baxter "的模型坐在空间的中心,一个灰色的盒子代表了真正的Baxter的工作台。辅助目标被存储在一个硬编码的列表中,并为每个目标分配了一个ID。当工作空间中的一个摄像头检测到一个标签时,就会查询这个ID,并将相应的对象放置在场景中,相对于检测到它的摄像头。如果多个摄像机检测到同一个物体,那么就会分配一个位置的平均值作为该物体的位置。这些对象由相应物理对象的低多边形模型直观地表示。如果在一定的超时值之后还没有检测到标签,那么虚拟对象就会被禁用,直到重新建立跟踪。

3. 系统设计的考虑和挑战

在实施该系统的过程中,我们遇到了一些障碍和限制。其中最主要的是难以向用户展示机器人的环境。点云是一种常见的技术,但我们认为它们的高带宽成本和低保真度使其值得探索其他选择。使用基于标签的系统被证明是一个挑战,因为集成和标签本身的问题。首先,已经有很多研究是针对如何制作体积小、字典大、并且可以从远距离可靠读取的fiducial标签。我们试图在我们的系统中使用的两个这样的实现是LFTag和Stable Tag。然而,经过努力,我们无法让标签与ROS-Indigo(Baxter机器人所需的ROS版本)一起工作。我们发现ArUco标签可以和我们的ROS版本一起工作,但标签本身有严重的缺点。

ArUco标签需要大尺寸的标签才能从3英尺以上的距离进行跟踪,这就限制了标签在YCB集的较大物体上的放置。此外,ArUco标签甚至对部分遮挡也不健全。当一个物体遮挡住标签的任何部分时,标签就会立即丢失,并且只能相对于摄像机进行少量的旋转。这给我们的系统带来的挑战是,助手经常会直接通过抓取器遮挡标签,或者通过操纵物体使标签处于一定角度的位置而间接遮挡标签。这样做的结果是,虚拟显示经常与物体的真实位置不同步。

4. 未来发展

当我们努力为该系统运行HRI实验做准备时,我们的重点是确保操作者有一个强大的、舒适的体验。为了实现这一目标,我们正在努力增加摄像头的馈送,提高我们的对象跟踪能力,并增加使用VR系统控制机器人的教程,以提高所有级别的操作员的性能。改进我们的物体跟踪的一个可能的方法是使用AI物体姿势估计。我们最初想使用标签来跟踪物体,因为我们对研究人工智能本身并不感兴趣,而是想关注如何提高远程操作机器人系统的运行效率。到目前为止,我们使用标签的工作经验是充满挑战的。如果我们能找到一种方法来引入更强大的物体跟踪,不管是哪种方法,我们都会寻求实现它。

由于硬编码,这个平台的用途也受到很大限制。为了解决这些问题,我们的方法是让TagUp在启动时查看特定的文件夹,来搜索对象和机器人的定义。机器人已经有了广泛使用的URDF格式,可以提供,不过我们可能要自己制作对象信息格式,这样就可以捕捉到每个对象的所有相关信息,比如辅助航点。一旦有了这些格式,TagUp就只需要把相应的信息文件放到相应的文件夹中,就可以和任何机器人或对象一起工作了。我们的最终目标是让TagUp尽可能的即插即用,动态加载机器人和物体将是朝着这个方向迈出的一大步。

由于COVID-19在全球范围内的传播,限制了亲临现场进行研究,因此我们着重在VR环境中加入教程,演示控制Baxter的VR系统的基本操作,这样当研究中的参与者使用该系统时,就不需要研究人员在场或共处。我们从完成VR Oculus头显提供的教程中收集到这个想法。该教程让用户执行了许多不同类型的任务,如捡起物体、投掷物体、射击枪支,以及围绕 "安全圈 "移动头部和身体。我们预计该教程将支持未来用户对该系统的评估。


5. 结论

VR接口很有前途,可以让用户更有效地远程操作机器人,尤其是操纵任务。在本文中,我们介绍了一个基于VR的机器人控制系统的系统细节,该系统具有操纵辅助功能,用户可以指定高层次的操纵目标,而将位置和操纵的低层次细节留给机器人本身。对于社区,我们详细介绍了系统的各个组成部分(硬件、软件和算法细节)和迄今为止的开发进展和挑战,以及计划中的未来开发细节。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值