a) 实时可见性检查:模仿学习的一个常见失败模式,是操作场景并不总是可见的。这个问题经常发生,因为机器人使用的 RGB-D 相机视野通常比用于数据收集的相机(本文例子是 Quest 3 的透视相机)更窄。为了帮助演示者在数据收集期间始终将操作场景保持在深度相机的视野范围内,渲染一个矩形框来可视化 RGB-D 相机的实际视野,如图所示。在收集数据时,用户需要主动将场景保持在框架内,以确保正确记录视觉数据。
b) 实时重定向:在为特定机器人收集数据时,机器人的运动学可能与人类的手臂和手有显著不同。为了提醒用户运动极限,在 AR 中渲染一个虚拟机器人,并将其重定位到用户的手上。不同的末端执行器可能有不同的重定向方法。在数据收集之前,用户将虚拟机器人放置在世界坐标系中的固定位置。在数据收集过程中,虚拟机器人的末端执行器将跟踪用户的手;每当用户用手与场景中的目标交互时,他们都需要考虑虚拟机器人是否可以执行这样的动作。例如,对于配备平行钳口夹持器的虚拟机器人,如果用户尝试使用手指步态重定位目标,虚拟机器人执行的动作将看起来无效。由于机器人手臂的每个关节都有其速度限制,虚拟机器人也会实施此类限制,并且不会超过速度限制来跟踪用户的输入。如果用户手移动得太快,用户的手和机器人末端执行器之间就会出现明显的视觉不匹配;矩形框也会闪烁黄色,提醒用户机器人的速度有限制。
c) 实时碰撞检查:为了提醒用户机器人与环境之间可能发生的碰撞,检查实际场景与虚拟机器人之间的碰撞。人类很难通过透视相机准确感知深度;仅观察虚拟机器人的运动不足以避免碰撞。当虚拟机器人与预扫描的静态场景发生碰撞时,通过振动所安装的控制器,添加额外的触觉碰撞反馈。矩形框也会闪烁,以提供更强的碰撞反馈信号,如上图所示。
使用这些实时反馈信号,用户可以调整他们的数据收集策略或删除严重违反约束的演示。
带一个系统的跨具身
ARCap 可以可视化重定位到用户手上的各种末端执行器,从而无需硬件修改即可收集不同机器人具身的数据。对于任何新的机器人具身,只要有一个允许机器人重复人类演示的重定位过程,ARCap 就可以用于数据收集。针对附在 Franka Panda 手臂上的不同末端执行器,提出两种实时重定向过程:(1)Leap Hand,一种完全驱动的四指灵巧手;(2)Fin-ray 夹持器,一种柔性平行钳口夹持器。
灵巧手。与 [38] 类似,用逆运动学(IK)将灵巧手指尖与世界坐标系中人类的指尖进行匹配。逆运动学问题分两步解决。首先,求解Leap Hand手腕姿势以匹配任务控制器提供的人类手腕姿势,然后求解机器人指尖位置以匹配 Rokoko 数据手套跟踪的人类指尖位置。由于Leap Hand的每个手指都有一个冗余自由度,需要添加零空间调节以鼓励自然的手部姿势并避免手指之间的自碰撞。用 Pybullet[8] 的null space IK 解算器,它根据先前的解决方案实时求解当前关节角度。