论文状态:已完成

Lightning Grasp: High Performance Procedural Grasp Synthesis with Contact Fields

发表:2025/11/11
原文链接PDF 下载
价格:0.100000
价格:0.100000
已有 2 人读过
本分析由 AI 生成,可能不完全准确,请以原文为准。

TL;DR 精炼摘要

本文提出了Lightning Grasp,一种新型的高性能程序化抓取合成算法,显著提高了抓取生成速度,并实现了对不规则及工具类物体的无监督抓取生成。关键在于通过接触场结构解耦复杂几何计算与搜索过程,简化了问题复杂度,推动了机器人操作领域的创新。

摘要

Despite years of research, real-time diverse grasp synthesis for dexterous hands remains an unsolved core challenge in robotics and computer graphics. We present Lightning Grasp, a novel high-performance procedural grasp synthesis algorithm that achieves orders-of-magnitude speedups over state-of-the-art approaches, while enabling unsupervised grasp generation for irregular, tool-like objects. The method avoids many limitations of prior approaches, such as the need for carefully tuned energy functions and sensitive initialization. This breakthrough is driven by a key insight: decoupling complex geometric computation from the search process via a simple, efficient data structure - the Contact Field. This abstraction collapses the problem complexity, enabling a procedural search at unprecedented speeds. We open-source our system to propel further innovation in robotic manipulation.

思维导图

论文精读

中文精读

1. 论文基本信息

1.1. 标题

Lightning Grasp: High Performance Procedural Grasp Synthesis with Contact Fields (Lightning Grasp:基于接触场的高性能程序化抓取合成)

1.2. 作者

Zhao-Heng Yin 和 Pieter Abbeel,均来自加州大学伯克利分校电气工程与计算机科学系 (UC Berkeley EECS)。Pieter Abbeel 教授是机器人学习领域的知名学者。

1.3. 发表期刊/会议

该论文发布在 arXiv 预印本平台,发布时间为 2025 年 11 月 10 日。根据其内容和研究领域,预计会投稿至机器人学或计算机图形学领域的顶级会议,如 ICRA (International Conference on Robotics and Automation)、RSS (Robotics: Science and Systems) 或 SIGGRAPH。

1.4. 发表年份

2025年。

1.5. 摘要

尽管经过多年的研究,实时多样化的灵巧抓取合成 (real-time diverse grasp synthesis for dexterous hands) 仍然是机器人学和计算机图形学中一个尚未解决的核心挑战。本文提出 Lightning Grasp,一种新颖的高性能程序化抓取合成 (procedural grasp synthesis) 算法。该算法实现了比现有最先进方法快几个数量级的速度提升,同时能够为不规则、工具类物体进行无监督抓取生成。该方法避免了许多现有方法的局限性,例如需要精心调优的能量函数 (energy functions) 和敏感的初始化。这一突破得益于一个关键洞察:通过一个简单高效的数据结构——接触场 (Contact Field),将复杂的几何计算与搜索过程解耦。这种抽象极大地降低了问题复杂度,实现了前所未有的程序化搜索速度。作者开源了该系统,以推动机器人操作领域的进一步创新。

1.6. 原文链接

https://arxiv.org/abs/2511.07418

1.7. PDF 链接

https://arxiv.org/pdf/2511.07418v1.pdf

2. 整体概括

2.1. 研究背景与动机

实时、多样化的灵巧抓取合成 (real-time diverse grasp synthesis for dexterous hands) 一直是机器人学和计算机图形学领域中一个长期存在的挑战。尽管许多研究工作致力于此,但现有的方法往往存在以下一个或多个问题:

  • 速度慢: 许多方法在生成抓取时计算开销巨大,无法满足实时应用的需求。例如,DexGraspNet 的前向时间在 A100 GPU 上可能需要 1800-2000 秒。

  • 局限性:

    • 需要手动调优的能量函数 (carefully tuned energy functions): 这使得方法对超参数高度敏感,且难以泛化。
    • 敏感的初始化 (sensitive initialization): 算法的性能严重依赖于初始状态,导致鲁棒性差。
    • 抓取多样性不足: 难以生成各种不同类型和姿态的抓取,尤其对于不规则或工具类物体。
    • 难以处理高自由度 (DOF) 机械手: 随着机械手自由度的增加,搜索空间呈指数级增长,现有方法难以应对。
  • 数据驱动策略对抓取数据的需求: 现有程序化抓取合成算法通常作为数据引擎,为数据驱动的抓取和操作策略 (data-driven grasping and manipulation policies) 提供训练数据。然而,如果抓取合成本身效率低下,则会成为数据生成的主要瓶颈。

    作者之前的工作 Dexterity Gen 虽然有效,但需要庞大的 CPU 集群进行并行计算,并依赖大量启发式规则。为了解决这些挑战,并推广灵巧抓取而非仅限于并行夹持器,本文旨在开发一种更高效、更通用的方法。

2.2. 核心贡献/主要发现

本文提出的 Lightning Grasp 算法在灵巧抓取合成领域做出了以下关键贡献:

  • 高性能与高效率: 在 A100 GPU 上,单次前向传递可在 25 秒内生成 1,000 到 10,000 个多样且有效的抓取,速度比现有最先进的方法快几个数量级。即使在老旧的 TITAN X GPU 上也能实现实时推理性能。
  • 解耦计算复杂性: 提出了一种新颖的数据结构——接触场 (Contact Field),有效地将复杂的几何计算与抓取搜索过程解耦。这是实现性能突破的关键。
  • 无监督抓取生成: 能够为不规则、工具类物体生成无监督的抓取,无需手动设计模板或能量函数调优。
  • 鲁棒性强: 避免了对精心调优的能量函数和敏感初始化的依赖,提升了算法的鲁棒性。
  • 多样化抓取: 能够为各种复杂物体和高自由度机械手生成多样化的抓取,包括眼镜、剪刀等。
  • 开源系统: 作者开源了该系统,旨在促进机器人操作领域的进一步研究和创新。
  • 潜在应用: 算法不仅可以用于抓取合成,还可以作为评估机械手硬件设计的有用工具。

3. 预备知识与相关工作

3.1. 基础概念

理解 Lightning Grasp 需要一些机器人学、几何学和优化方面的基础概念。

3.1.1. 灵巧抓取合成 (Dexterous Grasp Synthesis)

灵巧抓取合成指的是为多自由度 (Degrees of Freedom, DOF) 的灵巧机械手(通常具有多个手指和关节,模拟人手)生成与物体接触的稳定姿态。这包括确定机械手相对于物体的位置和方向(物体姿态),以及机械手各个关节的配置(手部配置),使得机械手能够稳固地抓住物体,并能承受一定的外力而不滑动或掉落。这是一个高维搜索空间中的复杂优化问题。

3.1.2. 程序化/分析性抓取合成 (Procedural/Analytical Grasp Synthesis)

程序化或分析性抓取合成是通过预定义的算法、几何规则和物理模型来生成抓取的方法。它不依赖于大规模的抓取数据,而是通过计算来确定潜在的接触点和手部姿态。与数据驱动方法(如基于深度学习的方法)相比,程序化方法通常具有更好的泛化能力,但可能在计算效率和多样性方面面临挑战。本文的 Lightning Grasp 正是一种高性能的程序化方法。

3.1.3. 6D 姿态 (6D Pose)

6D 姿态描述了物体在三维空间中的完整位姿。它由六个自由度组成:三个平移自由度 (X, Y, Z) 确定物体的位置,三个旋转自由度(通常用欧拉角、旋转矩阵或四元数表示)确定物体的方向。在抓取合成中,不仅需要确定物体相对于机械手基座的 6D 姿态,还需要确定机械手手指相对于物体表面的接触点的 6D 姿态 (位置和法向)。

3.1.4. 抓取稳定性 (Grasp Stability)

抓取稳定性是衡量抓取质量的关键指标。一个稳定的抓取意味着物体在受到外部扰动或操作时不会从手中滑落。常见的稳定性指标包括:

  • 力闭合 (Force Closure): 这是最严格的稳定性条件之一,表示机械手可以通过施加力来完全抵消物体上施加的任何外力或力矩,从而完全束缚住物体。

  • 力/力矩平衡 (Self-balancing Wrench): 本文采用的是一种更宽松但更实用的稳定性指标,即自平衡力/力矩 (self-balancing ϵ-wrench)。它要求存在一组非零的接触力(例如,手指施加的力),这些力的合力 (resultant force) 和合力矩 (resultant momentum) 足够小,使得物体处于平衡状态。这比力闭合更接近人类的实际抓取行为,因为许多人类抓取(如两指捏取)并不满足严格的力闭合条件。

    本文中的 无摩擦自平衡力/力矩优化 (Frictionless Self-balancing Wrench Optimization, FSWO) 目标函数定义为: minimize i=1nαini2+λi=1nαi(pi×ni)2subject toj,αj=1,αi0,i=1,,n \begin{array} { l l } { \mathrm { m i n i m i z e ~ } } & { \left\| \displaystyle \sum _ { i = 1 } ^ { n } \alpha _ { i } n _ { i } \right\| ^ { 2 } + \lambda \left\| \displaystyle \sum _ { i = 1 } ^ { n } \alpha _ { i } ( p _ { i } \times n _ { i } ) \right\| ^ { 2 } } \\ { \mathrm { s u b j e c t ~ t o } } & { \exists j , \alpha _ { j } = 1 , } \\ & { \alpha _ { i } \geq 0 , \quad \forall i = 1 , \ldots , n } \end{array} 其中:

  • nn: 接触点的数量。

  • pip_i: 第 ii 个接触点的位置向量。

  • nin_i: 第 ii 个接触点的法向量 (normal vector)。

  • αi\alpha_i: 作用在第 ii 个接触点上的接触力强度,表示手指推动物体的力度。

  • λ\lambda: 权重参数,用于平衡合力项和合力矩项的重要性。

  • \sum _ { i = 1 } ^ { n } \alpha _ { i } n _ _ { i } : 所有接触力的合力。

  • i=1nαi(pi×ni)\sum _ { i = 1 } ^ { n } \alpha _ { i } ( p _ { i } \times n _ { i } ) : 所有接触力产生的合力矩,其中 pi×nip_i \times n_i 是单个接触力产生的力矩。

  • j,αj=1\exists j , \alpha _ { j } = 1: 约束条件,表示至少有一个接触力是有效的(非零),以避免平凡解。

  • αi0\alpha _ { i } \geq 0: 接触力只能是推力(法向向外),不能是拉力。

    带摩擦的通用自平衡力/力矩优化 (General Self-balancing Wrench Optimization, GSWO) 目标函数定义为: minimizeα,β(x),β(y)i=1nαini+βi(x)xi+βi(y)yi2+λi=1npi×(αini+βi(x)xi+βi(y)yi)2subject toj,αj=1,αi0,i=1,,n(βi(x))2+(βi(y))2μ2αi2. \begin{array} { l l } { \displaystyle \underset { \alpha , \beta ^ { ( \boldsymbol { x } ) } , \beta ^ { ( \boldsymbol { y } ) } } { \mathrm { m i n i m i z e } } } & { \displaystyle \left\| \sum _ { i = 1 } ^ { n } \alpha _ { i } n _ { i } + \beta _ { i } ^ { ( \boldsymbol { x } ) } x _ { i } + \beta _ { i } ^ { ( \boldsymbol { y } ) } y _ { i } \right\| ^ { 2 } + \lambda \left\| \displaystyle \sum _ { i = 1 } ^ { n } p _ { i } \times ( \alpha _ { i } n _ { i } + \beta _ { i } ^ { ( \boldsymbol { x } ) } x _ { i } + \beta _ { i } ^ { ( \boldsymbol { y } ) } y _ { i } ) \right\| ^ { 2 } } \\ { \mathrm { s u b j e c t ~ t o } } & { \exists j , \alpha _ { j } = 1 , } \\ & { \alpha _ { i } \geq 0 , \quad \forall i = 1 , \ldots , n } \\ & { ( \beta _ { i } ^ { ( \boldsymbol { x } ) } ) ^ { 2 } + ( \beta _ { i } ^ { ( \boldsymbol { y } ) } ) ^ { 2 } \leq \mu ^ { 2 } \alpha _ { i } ^ { 2 } . } \end{array} 其中:

  • xix_iyiy_i: 在接触点 (pi,ni)(p_i, n_i) 处的切平面上构成一个正交基 (orthonormal basis) 的向量。

  • βi(x)\beta_i^{(x)}βi(y)\beta_i^{(y)}: 沿 xix_iyiy_i 方向的摩擦力分量强度。

  • μ\mu: 摩擦系数。

  • αini+βi(x)xi+βi(y)yi\alpha _ { i } n _ { i } + \beta _ { i } ^ { ( \boldsymbol { x } ) } x _ { i } + \beta _ { i } ^ { ( \boldsymbol { y } ) } y _ { i } : 作用在第 ii 个接触点上的总接触力(包括法向力和摩擦力)。

  • (βi(x))2+(βi(y))2μ2αi2(\beta_i^{(x)})^2 + (\beta_i^{(y)})^2 \leq \mu^2 \alpha_i^2: 摩擦锥约束 (friction cone constraint),表示摩擦力的最大强度受法向力 αi\alpha_i 和摩擦系数 μ\mu 的限制。

3.1.5. 碰撞检测 (Collision Detection)

碰撞检测是指判断两个或多个几何体在空间中是否存在重叠或相交。在抓取合成中,这通常用于验证生成的抓取是否有效:

  1. 手-物体非渗透 (No Penetrations): 机械手(包括手指和手掌)不能穿透物体。
  2. 手-手自碰撞 (Hand-Hand Self-Collision): 机械手自身的不同部分(例如,不同手指或手指与手掌)之间不能发生碰撞。 本文允许 2mm 左右的小渗透裕度。

3.1.6. 运动学 (Kinematics) 与逆运动学 (Inverse Kinematics, IK)

  • 运动学 (Forward Kinematics, FK): 给定机械手所有关节的配置(例如,关节角度),计算机械手末端执行器或任何其他点的 6D 姿态。
  • 逆运动学 (Inverse Kinematics, IK): 给定机械手末端执行器或特定点的目标 6D 姿态,计算实现该姿态所需的机械手关节配置。这是一个复杂的非线性问题,通常通过迭代优化方法求解。在抓取合成中,IK 用于将计算出的接触点映射到实际的手指关节配置。

3.1.7. 边界体积层次结构 (Bounding Volume Hierarchy, BVH)

BVH 是一种用于加速碰撞检测、光线追踪等空间查询的树形数据结构。它通过将复杂的几何体(如网格)递归地包围在简单的边界体积(如球体或轴对齐包围盒 Axis-Aligned Bounding Box, AABB)中来工作。在查询时,可以快速排除不与查询对象相交的边界体积,从而大大减少需要进行精细碰撞检测的几何图元数量。本文使用 BVH 来高效地存储和查询接触场。

3.2. 前人工作

在灵巧抓取合成领域,有许多先前的研究,可以大致分为几类:

  • 基于几何的方法 (Geometry-based Methods): 这类方法通过分析物体和机械手的几何形状来寻找潜在的抓取。
    • GraspIt! [16]:一个经典的机器人抓取模拟器,允许用户定义机械手和物体模型,并提供抓取规划工具。它是一个早期的里程碑式工作,但计算速度相对较慢。
  • 基于能量函数优化的方法 (Energy Function Optimization-based Methods): 这类方法将抓取合成建模为一个优化问题,通过最小化一个包含碰撞惩罚、吸引力、稳定性等项的能量函数来寻找最佳抓取。
    • DexGraspNet [19], SpringGrasp [6], BODex [5], Dexonomy [4], Grasping a Handful [15]:这些是近年来的一些代表性工作。它们通常将无渗透条件建模为可微分的能量函数 EpenE_{pen},并使用吸引力能量 EattractE_{attract} 将手拉向物体表面。这种方法需要仔细调优能量项的权重,并且对初始化敏感。
  • 数据驱动方法 (Data-driven Methods): 利用大量抓取数据(通常通过仿真生成)训练深度学习模型来预测抓取。
    • Dexdiffuser [20], DexGraspNet 2.0 [22]:利用扩散模型等生成模型来生成抓取。

      下表(根据原文 Table 1 整理)展示了 Lightning Grasp 与一些最先进的分析性方法在性能上的对比:

      Metric (on 1 A100)DexGraspNet [19]SpringGrasp [6]BODex [5]Lightning Grasp (Ours)
      Diverse ContactX (Fingertip) (Fingertip)
      Effective Sample/sec (↑)<3<330-50300-1000
      Forward Time (sec) (↓)1800-200010-40100-1202-5

说明:

  • 多样接触 (Diverse Contact): Lightning GraspDexGraspNet 能够生成多样化的接触点(包括手指腹、侧面等),而 SpringGraspBODex 主要限于指尖接触。
  • 有效样本/秒 (Effective Sample/sec): 每秒生成的有效抓取样本数量。Lightning Grasp 远超其他方法。
  • 前向时间 (Forward Time): 单次运行算法所需时间。Lightning Grasp 显著缩短了时间。

3.3. 技术演进与差异化分析

现有抓取合成方法的一个主要瓶颈在于:它们将几何计算(如碰撞检测、距离计算)与搜索/优化过程紧密耦合。每次优化迭代都需要执行耗时的几何计算,导致整体效率低下。此外,能量函数优化方法需要精细的超参数调优,且对初始猜测敏感,这限制了其鲁棒性和泛化能力。

Lightning Grasp 的核心创新在于引入接触场 (Contact Field) 这一数据结构,实现了几何计算与搜索过程的解耦 (decoupling)

  • 解耦的优势: 接触场预先捕获了机械手在不同配置下所有可能的接触信息,并将这些信息高效地组织起来。在抓取搜索过程中,不再需要反复进行复杂的几何计算,而是可以直接查询预计算的接触场,大大加快了搜索速度。
  • 避免传统限制: 通过这种解耦,Lightning Grasp 避免了传统方法中对能量函数精心调优的需求,也降低了对初始化的敏感性。
  • 速度与多样性: 这种方法使得算法能够以数量级更快的速度生成更多样化、更鲁棒的抓取,尤其适用于不规则和工具类物体,这是现有方法难以做到的。
  • 高自由度机械手兼容性: 高效的搜索机制使其能够更好地处理高自由度机械手,而不会被指数级增长的搜索空间所困扰。

4. 方法论

Lightning Grasp 算法的核心思想是,通过将复杂的几何计算与抓取搜索过程解耦,并利用高效的数据结构和分阶段优化策略,实现高性能的灵巧抓取合成。整个流程可以概括为三个主要步骤,如图 Figure 2 所示:

  1. 识别可行的接触区域 (Identify feasible contact regions): 针对机械手的每个手指,确定其可能在物体表面形成接触的所有区域。这通过引入 Contact Field 来实现。

  2. 选择稳定的接触点 (Select points for a stable grasp): 在识别出的可行接触区域内,搜索一个最佳的接触点集合,以满足抓取稳定性条件。

  3. 执行抓取 (Execute the grasp with fingers): 根据选定的接触点,通过逆运动学 (IK) 和微调来配置机械手手指的关节,实现最终抓取。

    以下是 Lightning Grasp 的完整管线,如图 Figure 5 所示。

    Figure 5: System Diagram. Our algorithm takes in hand model (kinematics structure and mesh) and object model (mesh) as input, and produces grasps. Our algorithm searches for object pose, contact point, and finger configurations sequentially. The output of each stage can be cached and reused for future forward search passes. 该图像是示意图,展示了我们的算法系统架构。算法以手部模型和物体模型为输入,依次搜索物体姿态、接触点和手指配置。每个阶段的输出可以被缓存,并在未来的前向搜索中重复利用。

Figure 5: System Diagram. Our algorithm takes in hand model (kinematics structure and mesh) and object model (mesh) as input, and produces grasps. Our algorithm searches for object pose, contact point, and finger configurations sequentially. The output of each stage can be cached and reused for future forward search passes.

4.1. 物体预处理 (Object Preprocessing)

为了减少抓取过程中可能出现的渗透 (penetrations) 问题,特别是当接触点位于物体的高度凹陷区域(如难以触及的孔洞)时,Lightning Grasp 首先对物体表面进行预处理。 具体做法是,移除那些在放置一个小的包围盒时会导致显著渗透的物体点。这意味着,如果物体表面某一点在接触时很可能导致手部嵌入物体内部,那么该点将被排除在潜在接触点候选项之外。这有助于提高后续抓取验证的成功率。

4.2. 物体放置 (Object Placement)

在抓取搜索的早期阶段,确定物体相对于机械手的 6D 姿态至关重要。作者观察到,对于大多数物体,只要它们位于手掌上方,总能找到抓取它们的方法。相反,如果先确定手指姿态再寻找物体姿态,则物体很容易与预先放置的手指发生碰撞。因此,Lightning Grasp 首先生成物体姿态。

本文采用了两种主要的物体放置策略:

4.2.1. 穷尽放置 (Exhaustive Placement)

  • 方法: 随机选择一个接触场中的点,然后将一个随机采样的物体表面点与之对齐。
  • 特点: 这种策略能够生成非常罕见或不寻常的抓取,适用于生成极端训练/测试案例。
  • 缺点: 可能会导致吞吐量降低,因为有些放置姿态过于激进,难以可靠地抓取。

4.2.2. 规范放置 (Canonical Placement)

  • 方法: 预先指定一个规范的物体放置区域,例如在手掌上方。
  • 特点: 这种方法更高效,特别是对于长宽比大的物体,可以显著提高吞吐量。
  • 静态链接接触: 在物体放置阶段,算法还需要识别那些与机械手静态链接(例如,手掌)建立接触的姿态,以实现如“动力抓取 (power grasp)”之类的抓取。这通过将物体随机放置在静态链接表面附近,然后过滤掉导致渗透的放置,并将成功的放置及其对应的接触向量传递给后续的手指姿态生成阶段。

4.3. 接触场 (Contact Field)

接触场是 Lightning Grasp 的核心创新,它是一种数据结构,用于简化抓取合成问题。

4.3.1. 定义 (Definitions)

接触场表征了机械手可能产生的空间接触。它是一个 6D 几何对象,编码了位置和法向量。

定义 4.1 (点接触场 (Contact Field (Point))): 对于机械手链接网格 MiM_i 上的一个点 pMip \in \partial M_i 及其相关法向量 nnormal(p,Mi)n \in \mathrm{normal}(p, M_i),其在给定参考系 BB 中的点接触场定义为: CFB(i,p,n)={FK((p,n);i,q)qC}R3×S2. CF _ B ( i , p , n ) = \{ \operatorname { FK } ( ( p , n ) ; i , q ) | q \in \mathcal { C } \} \subset \mathbb { R } ^ { 3 } \times \mathbb { S } ^ { 2 } . 其中:

  • ii: 机械手链接的索引。
  • pp: 机械手链接表面上的一个点。
  • nn: 在点 pp 处的法向量。
  • C\mathcal{C}: 关节配置空间 (joint configuration space)。
  • FK((p,n);i,q)\mathrm{FK}( (p, n); i, q ): 前向运动学函数,计算在关节配置 qq 下,点 pp 及其法向量 nn 在参考系 BB 中的变换姿态。
  • R3×S2\mathbb{R}^3 \times \mathbb{S}^2: 表示一个 6D 空间,其中 R3\mathbb{R}^3 是三维位置空间,S2\mathbb{S}^2 是三维单位球面(用于表示法向量)。 每个 FK((p,n);i,q)\mathrm{FK}( (p, n); i, q ) 称为一个接触向量 (contact vector),而 CFB(i,p,n)CF_B(i, p, n) 是一组接触向量的集合。当 BB 是机械手 HH 的基坐标系时,我们省略 BB,记为 CF(i, p, n)

定义 4.2 (手接触场 (Contact Field (Hand))): 给定一个机械手 HH,其接触场定义为: CF(H)=(i,p)H^M,nnormal(p,Mi)CF(i,p,n)R3×S2, CF ( H ) = \bigcup _ { ( i , p ) \in \partial \hat { H } _ M , n \in \mathrm { normal } ( p , M _ i ) } CF ( i , p , n ) \subset \mathbb { R } ^ { 3 } \times \mathbb { S } ^ { 2 } , 其中:

  • H^MMiHM{(i,p)pMi}\partial \hat{H}_M \triangleq \bigcup_{M_i \in H_M} \{ (i, p) | p \in \partial M_i \}: 表示机械手所有链接表面点及其所属链接的集合。 手接触场是所有点接触场的并集,代表了机械手在所有可能关节配置下,其表面所有点所能达到的所有潜在接触姿态。

定义 4.3 (物体接触表面表示 (Contact Surface Representation)) 给定一个网格 MM,其接触表面表示定义为: S(M)={(p,n)pM,nnormal(p,M)}R3×S2. S ( M ) = \{ ( p , - n ) | p \in \partial M , n \in \mathrm { normal } ( p , M ) \} \subset \mathbb { R } ^ { 3 } \times \mathbb { S } ^ { 2 } . 其中:

  • pMp \in \partial M: 物体表面上的点。
  • nnormal(p,M)n \in \mathrm{normal}(p, M): 在点 pp 处的物体外法向量。
  • -n: 表示物体表面在该点处能够接受的接触力方向(与外法向量相反,指向物体内部)。 这个表示编码了物体表面上每个点及其能够接受的接触方向。

4.3.2. 接触交互 (Contact Interaction)

有了上述定义,一个物体网格 OO 和机械手接触场之间的潜在接触交互可以定义为它们的集合交集:CF(H)S(O)R3×S2CF(H) \cap S(O) \subset \mathbb{R}^3 \times \mathbb{S}^2。这个交集称为接触域 (contact domain)。接触域编码了物体网格表面上所有可行的接触点。通过提取其前三个笛卡尔维度,我们可以得到物体表面上的可行接触区域。

图 Figure 3 直观地展示了接触场及其与物体的交互。

Figure 3:Contact Field and Its Interaction with Objects.A contact field is a collection of vectors in \(\\mathbb { R } ^ { \\widetilde { 3 } } \\times \\mathbb { S } ^ { 2 }\) (black arrows). This represents the potential contacts a hand can afford in space. Intersecting it with an object, we extract the contact domain on the object surface. 该图像是示意图,展示了接触场与物体的互动。接触场由黑色箭头表示,是一组向量,反映手在空间中能够实现的潜在接触。在与物体相交时,我们提取出物体表面的接触域。公式为 ContactFieldR3~×S2Contact\, Field \subseteq \mathbb { R } ^ { \widetilde { 3 } } \times \mathbb { S } ^ { 2 }

Figure 3:Contact Field and Its Interaction with Objects.A contact field is a collection of vectors in R3~×S2\mathbb { R } ^ { \widetilde { 3 } } \times \mathbb { S } ^ { 2 } (black arrows). This represents the potential contacts a hand can afford in space. Intersecting it with an object, we extract the contact domain on the object surface.

4.3.3. 实现 (Implementation)

由于接触场是一个高维且复杂的集合,直接计算和使用其与物体表面表示的交集效率低下。因此,需要对其进行近似和高效组织。

4.3.3.1. 接触场 BVH (Contact Field BVH)

  • 采样: 首先,通过随机采样关节配置 qCq \in \mathcal{C} 来生成 CF(H) 的近似。在每个采样配置下,收集机械手所有链接表面上的接触向量。

  • 组织: 将采样的接触场组织成一个边界体积层次结构 (Bounding Volume Hierarchy, BVH)。每个叶节点包含多个法向量,并且所有的包围盒 (boxes) 都通过 BVH 进行组织。 图 Figure 4 展示了 BVH 的构建过程。

    Figure 4: BVH Representation of Contact Field. (Left) We first decompose the hand link meshes into joint configurations randomly and gathering corresponding contact vectors. (Right) We build a BVH to represent the sampled contact field. Each leaf node contains several normal vectors in the leaf box. 该图像是示意图,展示了如何从手指尖的网格(左)生成接触场(中),并最终构建接触场的BVH(右)。图中标示了接触向量和样本化的接触场,说明了算法的步骤。

Figure 4: BVH Representation of Contact Field. (Left) We first decompose the hand link meshes into joint configurations randomly and gathering corresponding contact vectors. (Right) We build a BVH to represent the sampled contact field. Each leaf node contains several normal vectors in the leaf box.

算法 1 (BVH 构造 Contact Field) 输入: nn 个采样接触向量 XR3×S2X \subset \mathbb{R}^3 \times \mathbb{S}^2,包围盒宽度 ww

  1. Boxes {bi=(li,hi,Si=[])}\{b_i = (l_i, h_i, S_i = [])\} \gets GenerateBoxCover(X[: : 3], w) // 网格覆盖。
    • 根据采样接触向量的位置部分 (X[: : 3]),生成一组覆盖空间的包围盒。
  2. TLBVH({bi})T \gets \mathrm{LBVH}(\{b_i\}) // 使用 LBVH [10] 构建 BVHTT
    • LBVH (Linear Bounding Volume Hierarchy) 是一种高效的 BVH 构造算法。
  3. 并行遍历所有采样接触向量 i{1,,len(X)}i \in \{1, \ldots, \mathrm{len}(X)\}
  4. I_i = \mathrm{BVHQuery}(X_i.p, T) // 查询 BVH 树,返回与接触向量位置 Xi.pX_i.p 相交的所有包围盒的索引。
  5. 对于 IiI_i 中的每个索引 jj
  6. SjS_j.append(Xi.nX_i.n) // 将接触向量的法向量 Xi.nX_i.n 添加到对应包围盒 bjb_j 的法向量集合 SjS_j 中。
  7. 结束循环。
  8. 结束循环。
  9. (可选) 为每个 SiS_i 构建 BVH(即 BLAS)。
    • BLAS (Bottom-Level Acceleration Structure) 通常用于光线追踪中的物体内加速结构。
  10. 返回构建好的 BVHTT

4.3.3.2. 物体接触查询 (Object Contact Query)

为了近似计算 CF(H)S(O)CF(H) \cap S(O),可以从 S(O) 中随机采样 (p,n)(p, -n),然后用这个采样点及其法向量对构建好的 BVH 进行碰撞检测。

  • 遍历:BVH 内部节点遍历时,使用笛卡尔位置部分 pp 进行查询。
  • 叶节点检测: 当到达一个叶节点(对应包围盒 bib_i)时,检查 -n 是否与 SiS_i 中存储的任何机械手法向量 xx 在某个阈值 θhit\theta_{hit} 内对齐(即 xSi,xTnθhit\exists x \in S_i, -x^T n \geq \theta_{hit})。
  • 效率: 叶节点中的法向量集合 SiS_i 可以进一步用 BVH 组织。但由于 SiS_i 通常很小(例如,256 个向量近似 S2\mathbb{S}^2 使得每个向量的锥半角约为 77^\circ),在 GPU 上进行简单的蛮力点积检查已经足够高效。

4.3.4. 细粒度接触场 (Fine-grained Contact Field)

为了在后续的运动学优化中知道哪个手指的哪个部分贡献了特定的可行接触,作者提出了细粒度的分解接触场。

  • 分解: 将整个机械手表面分解为 mm 个补丁 (patches),并为每个补丁计算一个独立的接触场。这对应于将 H^M\partial \hat{H}_M 分成几个不相交的子集 (H^M)i(\partial \hat{H}_M)_i
  • 查询: 在查询时,分别查询这 mmBVH,并通过树索引和盒索引合并结果。
  • 补丁生成: 补丁的分解是基于一个简单的随机表面覆盖过程:随机选择手表面上的点来构建补丁,直到整个表面被覆盖。

内存消耗分析: 作者估计了这种方法的内存消耗,证明其可行性。假设包围盒宽度为 1cm,每个手指的移动范围约为 30cm×10cm×10cm30 \mathrm{cm} \times 10 \mathrm{cm} \times 10 \mathrm{cm}

  • 包围盒数量: 最多需要 3000 个包围盒(分辨率为 1cm31 \mathrm{cm}^3)。
  • 叶节点数据: 如果一个包围盒包含 256 个向量,那么所有叶节点中的向量数据最多需要 3000×256×16B12MB3000 \times 256 \times 16 \mathrm{B} \approx 12 \mathrm{MB}(大多数包围盒的向量少于 50 个)。
  • BVH 元数据: 大约需要 6000 个节点(二叉树),每个节点包含一个 AABB 包围盒 (32B) 和拓扑数据 (16B),总计约 6000×48B0.3MB6000 \times 48 \mathrm{B} \approx 0.3 \mathrm{MB}
  • 总内存: 每个 BVH 最多需要 12MB。即使有 100 个接触场,总内存消耗也最多为 1.2GB。
  • 进一步压缩: 3D 法向量可以在叶节点中表示为 float4,也可以进一步压缩为 2 字节的整数索引(实现 8 倍内存缩减),因为它们在紧凑的单位球面上共享共同值。

4.4. 接触域生成 (Contact Domain Generation)

在物体姿态固定后,算法利用第 4.3 节的程序来提取对应于每个接触补丁 (contact patch) 的接触域。 为了生成一个能够与物体形成 kk 个接触点的抓取,算法需要从结果中收集 kk 个接触域。一个基本要求是这些接触域是独立的,即它们来源于不同的手指。这是因为在大多数情况下,一个手指不能同时实现两个独立的接触。

  • 依赖组 (Dependency Groups): 为了生成 kk 个独立接触域,算法首先确定接触场之间的依赖组。依赖组是通过排除所有静态/固定链接后,运动学树的连通分量来确定的。

  • 选择: 从这些依赖组中随机选择 kk 个接触域,然后进入接触点优化阶段。

    图 Figure 6 展示了接触域生成和接触点优化的过程。

    Figure 6: Contact Domain Generation and Contact Point Optimization. (Left) Dependency groups are connected components in the kinematics tree when we exclude the fixed/static links. (Middle) We compute a merged contact domain for each dependency group. (Right) We sample contact points in some of the merge contact domains (Step 0) and perform iterative updates through zeroth-order optimization (Step 1-3). 该图像是示意图,展示了接触域生成与接触点优化的过程。左侧展示了依赖组,它们是排除固定/静态链后的运动学树的连通分量;中间展示了每个依赖组的合并接触域;右侧显示了在合并接触域中采样的接触点及其通过零阶优化的迭代更新过程(步骤0至步骤3)。

Figure 6: Contact Domain Generation and Contact Point Optimization. (Left) Dependency groups are connected components in the kinematics tree when we exclude the fixed/static links. (Middle) We compute a merged contact domain for each dependency group. (Right) We sample contact points in some of the merge contact domains (Step 0) and perform iterative updates through zeroth-order optimization (Step 1-3).

4.5. 接触点优化 (Contact Point Optimization)

在确定了接触域之后,算法在每个接触域中搜索一个接触点,以最大化整体抓取质量目标。

4.5.1. 优化问题表述

优化过程可以形式化为: minimizepi,niJ(p1,n1,...,pk,nk)subjectto(pi,ni)Di. \begin{array} { r l } { \underset { p _ i , n _ i } { \mathrm { m i n i m i z e } } } & { J ( p _ { 1 } , n _ { 1 } , . . . , p _ { k } , n _ { k } ) } \\ { \mathrm { s u b j e c t t o } } & { ( p _ { i } , n _ { i } ) \in \mathcal { D } _ { i } . } \end{array} 其中:

  • JJ: 某个抓取质量目标,例如 FSWO (无摩擦自平衡力/力矩优化) 或 GSWO (通用自平衡力/力矩优化)。
  • pi,nip_i, n_i: 第 ii 个接触点的位置和法向量。
  • Di\mathcal{D}_i: 第 ii 个接触域。 这是一个双层优化 (bi-level optimization) 问题,因为计算 JJ 本身需要解决一个低层优化问题。

4.5.2. 分块零阶优化 (Blockwise Zeroth-Order Optimization)

由于目标函数 JJ 是不可微分的,且每个 Di\mathcal{D}_i 本质上是一个二维流形,本文采用分块零阶优化 (blockwise zeroth-order optimization) 来解决这个问题。这是一种高效的方法,通过随机局部搜索一次优化一个 (pi,ni)(p_i, n_i)

算法 2 (分块零阶接触点优化) 输入: 外层迭代次数 n0n0,内层迭代次数 nin,接触域 Di (i = 1, 2, ..., k)。

  1. (p,n)Random()(p, n) \gets \mathrm{Random}(). // 随机初始化接触点和法向量。
  2. 对于 it1 从 1 到 n0n0 (外层迭代):
  3. 对于 it2 从 1 到 kk (内层迭代,针对每个接触域):
  4. // 变异方向 (Mutation Direction)。[.] 是批量操作。
  5. x,yTangent(ni)x, y \gets \mathrm{Tangent}(n_i). // 返回接触点 nin_i 处切平面的正交基。
  6. [dx],[dy]Normal(nin,σ2)×x,Normal(nin,σ2)×y[dx], [dy] \gets \mathrm{Normal}(\mathrm{nin}, \sigma^2) \times x, \mathrm{Normal}(\mathrm{nin}, \sigma^2) \times y.
    • Normal(nin,σ2)Normal(nin, σ^2) 从均值为0、方差为 σ2\sigma^2 的正态分布中采样 nin 个随机值,乘以 xxyy 得到变异方向。
  7. // 并行变异 (Parallel Mutate)。
  8. [pi]pi+[dx]+[dy][p_i]' \gets p_i + [dx] + [dy]. // 生成变异后的接触点。
  9. [p,n]Project(p,Di)[p', n'] \gets \mathrm{Project}(p, D_i). // 将变异后的点投影到接触域 DiD_i 内,确保其合法性。
  10. // 并行更新 (Parallel Update)。
  11. (p,n)argminJ(.,1,1,pi,ni,)(p, n) \gets \mathrm{argmin} J(., -1, -1, p_i, n_i, \ldots). // 更新接触点,选择使得抓取质量目标 JJ 最小的变异结果。
    • 这里 J(.,1,1,pi,ni,..)J(., -1, -1, p_i, n_i, ..) 表示在所有接触点中,只优化当前的 pi,nip_i, n_i,其他接触点保持不变。
  12. 结束内层循环。
  13. 结束外层循环。
  14. 返回 (p1,n1,,pk,nk)(p_1, n_1, \ldots, p_k, n_k)

4.5.3. 免费午餐 (A Free Lunch)

这种分块优化提供了一个“计算免费午餐”,特别是对于基于优化的抓取指标(如 FSWO 和 GSWO)。由于高层优化中接触点变化缓慢,前一次低层优化(计算 JJ)得到的接触力解(即 FSWO 目标函数中的 α\alpha)可以作为新 FSWO/GSWO 问题的高质量初始配置。这大大减少了计算 JJ 所需的内层迭代次数。

4.6. 运动学优化 (Kinematics Optimization)

在确定了物体接触点后,下一步是调整机械手关节配置,使得手指表面上的特定点能够实际实现这些接触。

4.6.1. 接触点匹配

  • 反向查找 (Reverse Lookup): 首先,通过反向查找(利用之前生成的中间结果),从机械手表面检索出与优化后的物体接触点 (pi,ni)(p_i, n_i) 对应的手部接触点 (p~i,n~i)(\tilde{p}_i, \tilde{n}_i)。这包括识别出哪个手指的哪个补丁贡献了该接触,并找到在该补丁内最接近且对齐的向量。图 Figure 7 (左) 示意了这一过程。
  • 目标: 机械手上的点 (p~i,n~i)(\tilde{p}_i, \tilde{n}_i) 需要与目标物体接触点 (pi,ni)(p_i, n_i) 对齐。这可以理解为最小化 pip_ip~i\tilde{p}_i 之间的距离以及 nin_in~i\tilde{n}_i 之间的角度。

4.6.2. 阻尼最小二乘 (Damped Least Square, DLS) IK 求解

传统的 6D 姿态 IK 方法可能不适用于这种姿态和法向同时匹配的问题,因为法向的更新不总是很好定义。本文通过将目标分解为两个笛卡尔位置匹配子问题来解决:

  1. p~i\tilde{p}_i 匹配到 pip_i

  2. p~i+βn~i\tilde{p}_i + \beta \tilde{n}_i 匹配到 pi+βnip_i + \beta n_i,其中 β\beta 是一个小的标量,用于缩放法向量。

    在每一步迭代中,通过优化以下阻尼最小二乘 (Damped Least Square, DLS) 问题来计算关节更新 Δq\Delta qminimizeΔqi[Jp(p~i;q)Jp(p~i+βn~i;q)]Δq[pip~ipi+βni(p~i+βn~i)]2+λΔq2. \underset { \Delta q } { \mathrm { m i n i m i z e } } \sum _ { i } \bigg \| \left[ \mathbf { J } _ { p } { \big ( } \tilde { p } _ { i } ; q { \big ) } \atop \mathbf { J } _ { p } { \big ( } \tilde { p } _ { i } + \beta \tilde { n } _ { i } ; q { \big ) } \right] \Delta q - \left[ p _ { i } - \tilde { p } _ { i } \atop p _ { i } + \beta n _ { i } - ( \tilde { p } _ { i } + \beta \tilde { n } _ { i } ) \right] \bigg \| ^ { 2 } + \lambda \| \Delta q \| ^ { 2 } . 其中:

  • Δq\Delta q: 需要计算的关节配置增量。
  • λ\lambda: 阻尼因子 (damping factor),用于防止 IK 奇异性并稳定优化过程。
  • Jp(p~i;q)R3×dimC\mathbf{J}_p(\tilde{p}_i; q) \in \mathbb{R}^{3 \times \dim \mathcal{C}}: 机械手在关节配置 qq 下,点 p~i\tilde{p}_i 的位置雅可比矩阵 (position Jacobian)。它表示关节速度对 p~i\tilde{p}_i 线性速度的影响。
  • dimC\dim \mathcal{C}: 关节配置空间的维度(机械手的自由度)。
  • 矩阵 [Jp(p~i;q)Jp(p~i+βn~i;q)]\left[ \mathbf { J } _ { p } { \big ( } \tilde { p } _ { i } ; q { \big ) } \atop \mathbf { J } _ { p } { \big ( } \tilde { p } _ { i } + \beta \tilde { n } _ { i } ; q { \big ) } \right] 是将两个位置雅可比矩阵堆叠起来。
  • 向量 [pip~ipi+βni(p~i+βn~i)]\left[ p _ { i } - \tilde { p } _ { i } \atop p _ { i } + \beta n _ { i } - ( \tilde { p } _ { i } + \beta \tilde { n } _ { i } ) \right] 是目标位置与当前位置之间的误差。

雅可比矩阵的计算: 如果 p~i\tilde{p}_i 固定在链接 ljl_j 上,该链接的 6D 雅可比矩阵为 J(lj;q)=[J^pJ^r]R6×dimC\mathbf{J}(l_j; q) = \left[ \mathbf{\hat{J}}_p \atop \mathbf{\hat{J}}_r \right] \in \mathbb{R}^{6 \times \dim \mathcal{C}},其中 J^p\mathbf{\hat{J}}_p 是线性速度分量,J^r\mathbf{\hat{J}}_r 是旋转速度分量。 点 p~i\tilde{p}_i 的线性速度 vˉp~i\bar{v}_{\tilde{p}_i} 可以通过链接 ljl_j 的线性速度 vljv_{l_j} 和角速度 ωlj\omega_{l_j} 来表示: vˉp~i=vlj+ωlj×(p~i)lj \bar{v}_{\tilde{p}_i} = v_{l_j} + \omega_{l_j} \times (\tilde{p}_i)_{l_j} 其中 (p~i)lj(\tilde{p}_i)_{l_j}p~i\tilde{p}_i 在链接 ljl_j 坐标系中的位置。 因此,位置雅可比矩阵 Jp(p~i;q)\mathbf{J}_p(\tilde{p}_i; q) 可以写为: Jp(p~i;q)=J^p[(p~i)lj]×J^r. \begin{array} { r } { \mathbf { J } _ { p } ( \tilde { p } _ { i } ; q ) = \mathbf { \hat { J } } _ { p } - [ ( \tilde { p } _ { i } ) _ { l _ { j } } ] _ { \times } \mathbf { \hat { J } } _ { r } . } \end{array} 其中 []×[ \cdot ]_\times 是三维叉积的斜对称矩阵 (skew-symmetric matrix) 形式。

作者使用 PyTorch 实现了一个多链系统 (multi-chain systems) 的逆运动学求解器。该求解器还返回一个二进制掩码,指示哪些关节未使用,这些关节的值将在后续的搜索中确定。

4.6.3. 微调 (Finetuning (Phase II))

当使用低分辨率的接触场近似时(例如,较大的包围盒和接触补丁),初始 IK 结果可能不够精确。因此,需要额外的微调阶段。

  • 迭代更新: 在每个微调步骤中,将每个目标点 pip_i 投影到最新的目标手指链接上,以获得改进的手部接触点 p~i\tilde{p}_i。然后,再次调用 DLS 更新来微调 qq。这个交替更新过程重复进行多次迭代。图 Figure 7 (右) 展示了微调过程。

    Figure 7: Operations in Kinematics Optimization. (Left) We use a reverse lookup through intermediate results to retrieve corresponding desired contact point on the hand mesh. Then we call IK to solve hand configuration. (Right) The original contact point may not realize the desired contact well. After initial IK, we finetune the hand contact point through projection during kinematics optimization. 该图像是图示,展示了在运动学优化中的操作。左侧部分描述了如何通过逆向查找中间结果检索手网格上的目标接触点,并调用逆运动学(IK)解决手的配置。右侧则展示了粗略手接触与接触微调的过程。

Figure 7: Operations in Kinematics Optimization. (Left) We use a reverse lookup through intermediate results to retrieve corresponding desired contact point on the hand mesh. Then we call IK to solve hand configuration. (Right) The original contact point may not realize the desired contact well. After initial IK, we finetune the hand contact point through projection during kinematics optimization.

4.7. 后处理 (Postprocessing)

在运动学优化完成后,一些关节的值可能尚未确定(例如,如果抓取只涉及拇指和食指,则中指和无名指的关节值未定)。

  • 未确定关节处理: 在开源版本中,作者为这些未确定的关节随机赋值。
  • 过滤: 然后,对所有生成的抓取进行过滤,去除那些存在手-手自碰撞 (hand-to-hand collisions)、手-物体碰撞 (hand-to-object collisions) 或不满足抓取稳定性标准的抓取。
    • 碰撞检测: 使用基于 AABB 的广义阶段 (broad phase) 碰撞检测,然后根据几何类型使用不同的精细阶段 (narrow phase) 检测算法。手部自碰撞使用 GJK [9] 算法进行凸分解。对于基于点的物体表示,使用半平面碰撞检测 (half-plane collision check) 来检测其相对于每个手部链接的渗透深度。

      对于那些碰撞自由但缺乏稳定性的抓取,更高级的方法是使用未使用的手指进行额外的接触搜索。这种方法允许在单个手指上生成多个接触点,这是 Lightning Grasp 的通用形式,将在未来的软件版本中集成。

4.8. 讨论 (Discussion)

从搜索的角度看,Lightning Grasp 算法的每个阶段都代表了搜索树中的一层决策:物体姿态、接触手指、接触点、手部配置。在每个决策步骤中,都会根据可行性和稳定性约束进行剪枝。

4.8.1. 完备性 (Completeness)

完备性指的是算法找到所有潜在解决方案的能力。本文简要讨论了 Lightning Grasp 的表示能力,表明任何抓取都可能位于算法的潜在搜索路径上。 给定任何一个稳定的抓取 g=(P,qˉ)g = (P, \bar{q})

  1. 通过随机采样,物体姿态 PP 的足够近似可以在第一步中以高概率获得。

  2. 抓取 gg 由一组连接到手运动学树的接触点提供支持。这些接触点可以被划分为独立的组 G1,G2,,GnG_1, G_2, \ldots, G_n (如图 Figure 8 所示),使得:

    • 对于任何 e,eGi,eee, e' \in G_i, e \neq e',在移除从运动学树根到 G1,G2,,Gj1G_1, G_2, \ldots, G_{j-1} 的父链接的所有路径上的链接后,eeee' 属于不同的连通分量。
    • 对于任何 eGi,eGje \in G_i, e' \in G_ji<ji < j,它们要么位于不同的子树中,要么 ee'ee 的后代。
  3. Lightning Grasp 的通用形式可以增量地生成这些接触点组。

  4. 由于 qˉ\bar{q} 是这些接触点组的 IK 解,当 IK 的初始猜测足够接近所需的 qˉ\bar{q} 时,算法原则上可以实现该抓取。

    Figure 8: Any grasp can be decomposed into several contact point groups, whose points are independent of each other. Our algorithm (in general form) searches these contact groups to form a grasp. 该图像是示意图,展示了抓握的接触点组。任何抓握都可以分解为几个互相独立的接触点组,这些点通过联系链接。此算法在一般形式下搜索这些接触组以形成抓握。

Figure 8: Any grasp can be decomposed into several contact point groups, whose points are independent of each other. Our algorithm (in general form) searches these contact groups to form a grasp.

4.8.2. 重用搜索结果 (Reusing Search Result)

算法可以重用以前的搜索结果来加速未来的抓取合成。例如,可以从先前计算的接触域中重新采样接触点,因为一次前向传递在特定姿态下可能远未耗尽所有可能的抓取。这种方法特别适用于离线数据集生成,被称为多通道生成 (multi-pass generation)。从算法角度看,这相当于从内部节点开始的另一次扩展和搜索。

虽然当前版本未实现,但作者认为可以将自玩数据 (self-play data) 引入到搜索算法中,类似于基于模型的强化学习。例如,可以训练一个物体姿态策略 (object pose policy) 来生成候选物体姿态,而不是完全依赖于人类先验或随机搜索。这将有助于过滤掉那些在给定当前手部形态下不太可能产生稳定抓取的无效物体姿态。训练数据可以来自 Lightning Grasp 的自玩过程,即模型可以根据过去的搜索经验学习哪些姿态是有希望的。

4.8.4. 模块化 (Modularity)

算法的模块化设计也支持交互式设计。用户可以手动指定物体姿态、接触补丁和物体表面上允许的接触区域,然后再运行搜索,从而生成符合人类意图的功能性抓取。

5. 实验设置

5.1. 数据集

实验使用了 YCB 数据集 [3] 中的物体,以及从互联网上收集的其他开源 3D 物体(详见致谢部分)。这些物体涵盖了从微小胶囊、扁平剪刀到大型非凸碗等多种不规则形状和日常工具。

YCB 数据集示例:

  • YCB Apple (苹果)
  • YCB Bowl (碗)
  • YCB Clamp (夹子)
  • YCB Mug (马克杯)
  • YCB Spoon (勺子)
  • YCB Wrench (扳手)
  • YCB Screwdriver (螺丝刀)
  • YCB Strawberry (草莓)
  • YCB Marker (记号笔)

其他开源 3D 物体示例:

  • Allen Wrench (内六角扳手)

  • Pliers (钳子)

  • Pill Capsule (胶囊)

  • Reading Glasses (眼镜)

    这些多样化的物体旨在全面评估 Lightning Grasp 在各种形状和复杂性物体上的抓取能力和泛化性。

5.2. 评估指标

论文主要通过以下指标来评估 Lightning Grasp 的性能:

5.2.1. 有效样本/秒 (Effective Sample/sec, SPS)

  • 概念定义: Effective Sample/sec (SPS) 表示算法每秒能够生成多少个有效且稳定的抓取样本。这个指标直接反映了抓取合成算法的效率和吞吐量。数值越高,表示算法性能越好。
  • 数学公式: 无法直接给出标准化数学公式,因为它是一个复合指标,通常由总生成的有效抓取数量除以总运行时间得到。 SPS=有效抓取样本总数总运行时间 (秒) \mathrm{SPS} = \frac{\text{有效抓取样本总数}}{\text{总运行时间 (秒)}}
  • 符号解释:
    • 有效抓取样本总数\text{有效抓取样本总数}: 经过所有过滤和稳定性检查后,最终保留的有效抓取姿态数量。
    • 总运行时间 (秒)\text{总运行时间 (秒)}: 算法从开始到结束生成所有样本所花费的时间。

5.2.2. 前向时间 (Forward Time, sec)

  • 概念定义: Forward Time (sec) 指的是算法完成一次前向传递(即从输入手部和物体模型到输出抓取结果)所需的时间。这个指标衡量了算法的绝对运行速度。数值越低,表示算法越快。
  • 数学公式: 这是一个直接的时间测量值,没有特定的数学公式。 Forward Time=算法单次运行耗时 (秒) \text{Forward Time} = \text{算法单次运行耗时 (秒)}
  • 符号解释:
    • 算法单次运行耗时 (秒)\text{算法单次运行耗时 (秒)}: 通常指从输入到输出的端到端时间,不包括预处理和初始化。

5.3. 对比基线

Lightning Grasp 与以下最先进的分析性抓取合成方法进行了比较:

  • DexGraspNet [19]: 一个大规模的机器人灵巧抓取数据集,并提供了一种基于仿真的抓取生成方法。

  • SpringGrasp [6]: 一种能够生成柔顺、灵巧抓取的方法,考虑了形状不确定性。

  • BODex [5]: 使用双层优化 (bilevel optimization) 实现可扩展高效的机器人灵巧抓取合成。

    这些基线模型在抓取合成领域具有代表性,尤其是在灵巧抓取和复杂物体处理方面。通过与它们的比较,可以凸显 Lightning Grasp 在速度、多样性和鲁棒性方面的优势。

5.4. 手部模型 (Hand Models)

实验使用了多种高自由度机械手模型,以验证 Lightning Grasp 在不同手部形态上的泛化能力:

  • Shadow Hand [8]: 22 个自由度 (DOFs)。这是一种高度灵巧的五指机械手,模拟人手结构。

  • LEAP Hand [18]: 16 个自由度 (DOFs)。这是一种低成本、高效、拟人化的机器人手。

  • Allegro Hand [14]: 16 个自由度 (DOFs)。这是一种四指机械手。

  • DClaw Gripper [1]: 9 个自由度 (DOFs)。这是一种三指夹持器,其形态与人手显著不同。

    使用这些具有不同自由度和形态的机械手,能够全面评估 Lightning Grasp 在处理不同复杂度和设计约束下的抓取性能。

6. 实验结果与分析

6.1. 核心结果分析

Lightning Grasp 的实验结果表明,它在抓取速度、多样性和对复杂物体的适应性方面取得了显著进展,并且在多个高自由度机械手模型上表现出鲁棒性。

6.1.1. 速度与多样性

如 Figure 1 所示,Lightning Grasp 能够为各种不规则形状(如剪刀、铲子等)生成灵活、适应性强的抓取姿态,且在几秒钟内完成。 下表展示了 Lightning Grasp 与其他最先进方法在 A100 GPU 上的性能对比(转录自 Table 1):

Metric (on 1 A100)DexGraspNet [19]SpringGrasp [6]BODex [5]Lightning Grasp (Ours)
Diverse ContactX (Fingertip) (Fingertip)
Effective Sample/sec (↑)<3<330-50300-1000
Forward Time (sec) (↓)1800-200010-40100-1202-5

分析:

  • Lightning GraspEffective Sample/sec 上达到了 300-1000,比 BODex (30-50) 高出近 10-20 倍,比 DexGraspNetSpringGrasp (均 <3) 高出 100-300 倍,实现了数量级的速度提升
  • Forward Time 上,Lightning Grasp 仅需 2-5 秒,远低于 DexGraspNet (1800-2000 秒)、SpringGrasp (10-40 秒) 和 BODex (100-120 秒)。这使得 Lightning Grasp 能够接近实时甚至实现实时抓取合成。
  • Lightning Grasp 能够生成多样化的接触点,而非仅仅局限于指尖接触,这对于处理复杂和不规则物体至关重要。

6.1.2. 跨机械手和物体类型的性能

下表展示了 Lightning Grasp 在不同手部模型和不同 YCB 物体上的摊销有效样本/秒 (Amortized effective samples per second, SPS) 性能(转录自 Table 1):

HandCapsuleAppleSpoonCupScissorsScrewdriverPlierHammerTrimmed µ
Allegro1296.11578.8955.61090.0989.21020.61545.0944.21090.8
LEAP3306.0729.0408.3281.6138.6356.6403.0343.0420.2
Shadow1060.2288.4329.4181.5416.2895.0745.1678.6558.8
DClaw2823.5221.3158.9138.1126.1154.5619.3203.2249.1

分析:

  • 一致的高性能: 无论物体复杂度如何,Lightning Grasp 都能持续保证计算效率。所有配置均在 6 秒内完成。

  • Allegro Hand 表现突出: Allegro Hand (四指,16DOF) 在所有测试物体上均表现出最高的 SPS(平均 1090.8),生成了更多的有效样本。这可能与其相对紧凑的设计和较少的自碰撞模式有关。

  • LEAP Hand, Shadow Hand, DClaw Gripper 挑战:

    • LEAP Hand (四指,16DOF) 尽管在 Capsule 上表现极佳,但在其他物体上 SPS 显著下降(平均 420.2)。作者指出其笨重的电机布局导致频繁的自碰撞。
    • Shadow Hand (五指,22DOF) 表现也一般(平均 558.8),其高自由度和五指设计引入了额外的指间交叉碰撞模式。
    • DClaw Gripper (三指,9DOF) 整体 SPS 最低(平均 249.1),其非凸指尖设计和较低的自由度限制了潜在的抓取解决方案,导致过多的碰撞。
  • 手部硬件设计评估工具: 这些发现表明,Lightning Grasp 算法不仅是抓取合成工具,还可以作为评估机械手硬件设计的有用工具,帮助识别不同机械手设计的优缺点。

  • 高质量接触: Lightning Grasp 的运动学优化过程能够确保手指与物体表面之间实现精确接触,适应各种物体和手部形态,如 Figure 9 所示。

    Figure 9: Making High-Quality Contacts. Our kinematics optimization procedure ensures precise contact between the fingers and the object's surface across diverse objects and hand morphologies. 该图像是展示高质量接触的示意图。图中展示了我们的运动学优化过程,确保手指与各种物体表面之间的精确接触,适用于多种手形态与物体形状。

Figure 9: Making High-Quality Contacts. Our kinematics optimization procedure ensures precise contact between the fingers and the object's surface across diverse objects and hand morphologies.

6.1.3. 抓取样本展示

文章通过多张图展示了 Lightning Grasp 为不同手部模型和物体生成的随机抓取合成样本,体现了其多样性和适应性。

Figure 12: Random Grasp Synthesis Samples of the LEAP hand (16 DOFs, 4 Fingers). From Top to Bottom: Glasses, YCB Bowl, YCB Clamp, YCB Mug, and YCB Spoon. 该图像是LEAP手的随机抓握合成样本,共16个自由度和4个手指。图中从上到下依次展示了眼镜、YCB碗、YCB夹、YCB杯和YCB勺的抓握方式。

Figure 12: Random Grasp Synthesis Samples of the LEAP hand (16 DOFs, 4 Fingers). From Top to Bottom: Glasses, YCB Bowl, YCB Clamp, YCB Mug, and YCB Spoon.

Figure 13: Random Grasp Synthesis Samples of the Allegro hand (16 DOFs, 4 Fingers). From Top to Bottom: Allen Wrench, Capsule, Plier, YCB Wrench, and YCB Screwdriver. 该图像是图表,展示了使用Allegro手(16个自由度,4根手指)进行随机抓握合成的样本。从上到下依次是:扳手、胶囊、钳子、YCB扳手和YCB螺丝刀。

Figure 13: Random Grasp Synthesis Samples of the Allegro hand (16 DOFs, 4 Fingers). From Top to Bottom: Allen Wrench, Capsule, Plier, YCB Wrench, and YCB Screwdriver.

Figure 14: Random Grasp Synthesis Samples of the DClaw Gripper (9 DOFs, 3 Fingers). From Top to Bottom: YCB Apple, YCB Cup, YCB Scissors, YCB Strawberry, and YCB Marker. Its morphology differs significantly from that of a human hand. 该图像是DClaw抓手的随机抓取合成样本,共包含五种物体:YCB苹果、YCB杯子、YCB剪刀、YCB草莓和YCB记号笔,展示了该抓手在不同物体上的抓取姿态。

Figure 14: Random Grasp Synthesis Samples of the DClaw Gripper (9 DOFs, 3 Fingers). From Top to Bottom: YCB Apple, YCB Cup, YCB Scissors, YCB Strawberry, and YCB Marker. Its morphology differs significantly from that of a human hand.

6.2. 硬案例分析 (Hard Case Analysis)

作者观察到,对于某些类型的物体,特别是那些具有高度非凸几何形状的物体(如杯子),算法的有效 SPS 会显著下降。 Figure 11 (右) 展示了一个典型的失败案例:尽管运动学优化可以有效地解决每个接触点周围的局部碰撞(假设局部凸性),但全局范围的渗透仍然可能发生。 问题所在: 这种失败表明,在当前的框架下,早期的搜索阶段可能没有充分考虑到全局碰撞问题,导致生成了大量最终会被碰撞检测过滤掉的候选抓取。 未来方向: 解决此问题的一个假设是,在接触场的每个包围盒中添加某种指形信息。这样,在接触查询阶段,就可以过滤掉那些会导致手-物体碰撞的接触点。简而言之,早期的搜索阶段应该具备碰撞感知能力 (collision-aware)。这被留作未来的工作。

Figure 11: Common Failure (Rejected) Samples Produced by Our Search. The cases shown on the Left and Middle are common across all test scenarios. However, the failure case on the Right, caused by the non-convex nature of the object, can significantly reduce the effective SPS. How to design data structures to prune these cases during search remains an open research problem. 该图像是图示,展示了计划接触、碰撞和不同手指接触意图的示意。左侧和中间的示例显示了常见的接触失败情况,而右侧的示例则揭示了由对象非凸特性引起的碰撞。这些失败案例的存在强调了在抓取过程中设计数据结构以修剪这些情况的重要性。

Figure 11: Common Failure (Rejected) Samples Produced by Our Search. The cases shown on the Left and Middle are common across all test scenarios. However, the failure case on the Right, caused by the non-convex nature of the object, can significantly reduce the effective SPS. How to design data structures to prune these cases during search remains an open research problem.

6.3. 系统性能分析 (System Performance Analysis)

为了帮助读者识别潜在的计算瓶颈,作者对系统进行了性能分析,并展示了在不同 GPU 架构上的结果。

Figure 10: Profiling of a Single Forward Pass. Performance measured on an Allegro Hand grasping a YCB Apple. Workload is balanced across different GPU architectures, consistently achieving hundreds of samples per second (SPS). Notably, performance on a TITAN X GPU remains hundreds of times faster than an baseline running on an A100 GPU. 该图像是一个图表,展示了不同GPU架构在单次前向传递中的性能分析。图中列出了TITAN X、V100、A100和RTX 4090等GPU的工作负载分布,显示各阶段所需时间的百分比及每秒样本数(SPS)。

Figure 10: Profiling of a Single Forward Pass. Performance measured on an Allegro Hand grasping a YCB Apple. Workload is balanced across different GPU architectures, consistently achieving hundreds of samples per second (SPS). Notably, performance on a TITAN X GPU remains hundreds of times faster than an baseline running on an A100 GPU.

分析:

  • 组件负载平衡: 整体而言,工作负载在 GPU 的不同组件之间是平衡的。接触点优化 (Contact optimization) 和运动学优化 (Kinematics optimization) 各占总计算时间的约 33%。
  • 硬件扩展性: 系统的性能随着现代硬件的进步而提升,在更先进的架构上实现更快的速度。
  • 相对性能优势: 即使在老旧的 TITAN X GPU 上,Lightning Grasp 的性能也比现有方法在 A100 GPU 上的性能高出 20-100 倍。这突出表明了 Lightning Grasp 算法本身的效率优势,而非仅仅依赖于最新的硬件。

7. 总结与思考

7.1. 结论总结

本文提出了 Lightning Grasp,一种概念简单但性能卓越的程序化抓取合成算法。其核心创新在于引入了接触场 (Contact Field) 这一新颖的数据结构。接触场有效地将复杂的几何计算从抓取搜索过程中解耦,从而实现了前所未有的搜索速度和效率。该方法解决了现有抓取合成算法中速度慢、依赖精细调优的能量函数以及对初始化敏感等诸多限制。实验结果表明,Lightning Grasp 能够在短时间内为各种不规则、工具类物体和高自由度机械手生成多样化、稳定的抓取,速度比现有最先进方法快几个数量级。通过开源该系统,作者旨在推动灵巧操作领域的进一步创新。

7.2. 局限性与未来工作

作者在论文中指出了 Lightning Grasp 的一些局限性,并展望了未来的研究方向:

  • 非凸物体的全局碰撞问题: 尽管算法在局部接触点周围能有效解决碰撞,但对于高度非凸物体(如杯子),全局尺度的渗透仍然可能发生,显著降低有效 SPS
    • 未来工作: 将指形信息融入接触场的每个包围盒中,使早期的搜索阶段具备碰撞感知能力,从而在生成接触点时就能剪除那些会导致手-物体全局碰撞的候选。
  • 多接触点生成(单指): 当前的算法在一步搜索中难以在单个手指上形成多个接触点。
    • 未来工作: 将集成更通用的 Lightning Grasp 形式,允许在单个手指上生成多个接触点,例如通过额外的接触搜索阶段利用未使用的手指。
  • 数据驱动搜索的融合: 虽然目前的版本是程序化的,但可以与数据驱动的方法结合。
    • 未来工作: 利用自玩数据训练一个物体姿态策略,以生成更有希望的候选物体姿态,避免随机搜索中低效的姿态,从而进一步提高效率。
  • 补丁覆盖的优化: 当前的表面补丁覆盖过程是随机的,并非最优。
    • 未来工作: 探索更优的(多项式时间复杂度)补丁覆盖算法,以最小化补丁数量。

7.3. 个人启发与批判

7.3.1. 个人启发

  1. 解耦复杂性的强大力量: Lightning Grasp 最重要的启发在于“解耦”思想。将复杂的几何计算(如碰撞检测)与高维搜索/优化过程分离,通过一个高效的中间数据结构(接触场)作为接口,极大地简化了问题,并带来了数量级的性能提升。这种设计原则在解决其他复杂机器人学或计算机图形学问题时也可能非常有效。
  2. 数据结构设计的重要性: Contact Field 不仅仅是一个抽象概念,其具体的 BVH 实现细节(采样、查询、细粒度分解、内存优化)都体现了高效数据结构在算法性能中的决定性作用。这提醒我们,在设计复杂系统时,底层数据结构的选择和优化至关重要。
  3. 算法作为硬件评估工具: 论文中关于不同机械手在 Lightning Grasp 下表现差异的分析,揭示了该算法不仅可以生成抓取,还可以作为一种有效的工具来评估不同机械手硬件设计的优缺点,从而为机器人硬件设计提供量化反馈。
  4. 程序化与数据驱动的结合潜力: 虽然 Lightning Grasp 是一种程序化方法,但作者也展望了其与数据驱动策略结合的潜力。这暗示了未来机器人学领域中,纯粹的程序化或数据驱动方法可能都不是最优解,两者的优势互补才能带来更强大的系统。
  5. 模块化与交互性: 算法的模块化设计使得用户可以灵活地介入流程(如指定物体姿态、接触区域),这对于需要人类专家指导或特定任务需求的场景非常有价值。

7.3.2. 批判

  1. 全局碰撞处理的局限性: 论文明确指出了非凸物体导致全局碰撞的“硬案例”。虽然作者提出了未来工作方向(将指形信息融入接触场),但这仍然是当前方法的一个显著局限。在实践中,许多日常物品都是非凸的,这可能影响其在更广泛场景中的鲁棒性。未来的解决方案需要确保不能过度增加预计算的复杂性或查询时间。
  2. 接触场构建的成本与泛化性: 接触场的构建过程涉及随机采样关节配置。虽然内存消耗在可控范围,但对于具有极高自由度的机械手或需要处理动态变化手部形态的场景,预计算的全面性和实时更新可能仍是一个挑战。此外,接触场的离散化程度(如包围盒宽度、法向量分辨率)会影响抓取精度和多样性,需要在性能和精度之间进行权衡。
  3. “免费午餐”的依赖性: 接触点优化中的“免费午餐”策略依赖于抓取质量目标 JJ 中接触点变化缓慢的假设。在某些情况下,如果接触点变化剧烈,或者目标函数 JJ 的景观非常崎岖,这种策略的有效性可能会降低,导致需要更多的内层迭代。
  4. 缺乏对动态抓取或软物体的考虑: Lightning Grasp 专注于静态抓取合成,并未明确涉及对运动中物体或软体、可变形物体的抓取。这些场景会引入新的复杂性,例如预测物体动态、处理形变等,可能需要对接触场和优化过程进行根本性修改。
  5. 实际部署的复杂性: 尽管算法速度很快,但从仿真环境到真实世界机器人的部署,仍会面临感知、控制精度、实时反馈等诸多挑战。尤其是在实际物理接触和摩擦力模型与仿真环境存在差异时,抓取稳定性可能需要进一步的在线适应或微调。

相似论文推荐

基于向量语义检索推荐的相关论文。

暂时没有找到相似论文。