
# DexCanvas：连接人类演示与机器人学习，实现灵巧操作

徐欣月 $^{*}$、$^{1,2}$、孙杰强 $^{*}$、$^{1}$、戴静（Daisy）$^{*}$、$^{1,3}$、陈思远 $^{1}$、马兰杰 $^{1,4}$、孙科 $^{1}$、赵斌 $^{1,5}$、袁建波 $^{1,3}$、易胜 $^{1}$、朱浩华 $^{1}$、陆一雯 $^{1,\dagger}$

 $^{1}$DexRobot有限公司 $^{2}$密歇根大学 $^{3}$上海交通大学 $^{4}$重庆大学 $^{5}$华东理工大学

 $^{*}$贡献相同 $\dagger$通讯作者：<mailto:lyw@dex-robot.com>

## 摘要

我们提出了DexCanvas，这是一个大规模混合真实与合成的人类操作数据集，包含7000小时灵巧手与物体的交互数据，这些数据源自70小时的真实人类演示。该数据集根据Cutkosky分类法（Feix等人，2016年）划分为21种基本操作类型。每条数据都结合了同步多视角RGB-D图像、高精度动作捕捉数据以及MANO手部参数，还有逐帧接触点信息及物理上一致的受力曲线。我们的真实到仿真流程利用强化学习来训练策略，以在物理模拟中控制带驱动的MANO手，既能够复现人类演示，又能揭示产生物体运动的底层接触力。DexCanvas是首个同时具备大规模真实演示数据、基于成熟分类法的系统性技能覆盖，以及经过物理验证的接触标注的操作数据集。该数据集能够促进机器人操作学习、富含接触的控制以及不同手部形态间的技能迁移研究。

## 1 引言

利用高自由度类人手进行灵巧操作是机器人学习的基础：它能实现最通用的物体交互形式，对于机器人在非结构化环境中达到人类水平的自主性至关重要（Yu & Wang, 2022；Ozawa & Tahara, 2017）。该领域在两个维度上取得了快速发展：一方面是包括用于富含接触的控制的强化学习（Chen等人，2024年；2023年），以及用于处理多模态动作分布的基于扩散的方法（Weng等人，2024年；Wu等人，2024年）在内的多样化学习范式；另一方面是从任务特定模型到十亿参数级基础模型的规模大幅扩展（Wen等人，2025年；Kim等人，2024年；Zitkovich等人，2023年）。然而，当前主流的操作系统主要依赖平行夹爪，而类人手的通用控制仍局限于仿真环境或狭窄的现实场景。这一差距凸显了一个机遇：要充分发挥灵巧操作的潜力，我们需要大规模数据集来捕捉多样化的人类操作策略，这些策略需具备物理上精确的接触动力学和受力曲线——这正是学习稳健灵巧控制的关键信号。

构建此类数据集需要仔细考量数据来源与采集方法。在机器人生成数据与人类采集数据之间做出选择时，会对操控学习带来根本性的权衡。通过遥操作获取的机器人数据（Arunachalam等人，2022年）能够在目标硬件上提供直接的演示，但面临严重的可扩展性挑战：操作带宽低、成本高昂，尤其是对于高自由度灵巧手而言，操作员需承受沉重的认知负担，这往往会导致手指运动轨迹不自然（Rajaraman等人，2020年）。合成数据生成则是一种成本效益更高的替代方案，近期的方法通过优化算法可生成数百万种抓取样本（Wang等人，2022年；Zhang等人，2024a年），或通过生成模型产生数十亿个样本（Ye等人，2025年）；然而这些方法常常生成生物力学上不合理的抓取动作，且仍局限于特定机器人形态。

---

![Image](images/c1df72e543d592d1827f6c6a93056d03e1c2705a96a862628f96a44b6d513b65.jpg)

<div style="text-align: center;">Figure 1: DexCanvas dataset overview. (a) Real human demonstrations captured through optical mo-cap showing diverse manipulation strategies. (b) MANO hand model fitted to mocap data preserving accurate kinematics. (c) Physics simulation with actuated MANO hand reproducing demonstrations while extracting contact forces and validating physical plausibility.</div>

人类演示提供了一种不受机器人形态限制的方案，但现有的采集方法均存在各自的局限性。互联网规模的视频数据集（Hoque等人，2025年；Damen等人，2018年）虽然覆盖面广，但缺乏系统的覆盖度与质量保障。基于视觉的方法（Chao等人，2021年；Hampali等人，2020年；Qin等人，2022年）存在物体自遮挡问题，且三维姿态估计结果噪声较大。动作捕捉系统（Fan等人，2023年；Taheri等人，2020年；Wang等人，2024年）能够提供精确的运动轨迹，但仅能捕捉几何运动信息，无法获取操控过程中至关重要的接触力数据。

我们推出了DexCanvas $^{1}$，这是一款大规模混合真实-合成数据集，包含7000小时的人类操控数据，这些数据源自70小时的真实演示（图1）。该数据集围绕从现有抓取分类体系（Feix等人，2016年；Chen等人，2025年）中提炼出的21种基础操控类型组织而成，系统性地涵盖了从强力抓取到精准捏取以及手中物体重新定位等各类策略。其中的真实数据部分通过多视角同步RGB-D光学动作捕捉技术，记录下真实的人类操控策略；合成数据部分则通过我们的真实到仿真流程生成，提供了经过物理验证的数据样本，并附带完整的力与接触标注。每条数据记录都包含MANO手部参数（形状系数、关节角度及关键点坐标）、物体的六自由度位姿，以及物理上一致的接触力信息。这种混合方案弥补了现有数据集的关键不足：既满足了现代学习方法所需的数据规模要求，又提供了接触式操控所必备的物理基础。

DexCanvas的核心是我们开发的真实到仿真流程，它能将动作捕捉演示转化为带有力标注且经过物理验证的数据。对于每一次记录的操控动作，我们都会训练强化学习策略，以控制仿真环境中的驱动式MANO手（Romero等人，2017年），使其重现真实演示中观察到的物体运动轨迹。该强化学习策略会施加相应的力，以复现捕获的物体轨迹，同时遵守摩擦力、接触动力学及稳定性等物理约束。从成功的仿真运行中，我们可以直接从物理引擎中提取力数据：每帧的接触点、力矢量以及物体力矩，其精度可达到仿真级别。这种方法将原本仅能提供几何信息的动作捕捉技术，转变为能够同时提供运动轨迹与产生这些轨迹的接触力的综合性操控数据源。

我们的贡献主要有三点：（1）我们提出了DexCanvas，这是一个包含7000小时人类操作数据的混合真实-合成数据集，涵盖了21种操作类型。该数据集独特地结合了动作捕捉轨迹、多视角RGB-D数据以及通过仿真提取的物理上一致的力信息。（2）我们提出了一种利用强化学习从人类演示中提取接触力的真实到仿真方法，从而将仅有几何信息的动作捕捉数据转化为带有力标注的完整操作数据——这一技术也适用于现有的动作捕捉数据集。（3）我们为跨形态迁移到各类机器人手奠定了基础，并发布了完整的数据集、预处理流程和示例代码，以加速基于学习的灵巧操作研究。

---

<div style="text-align: center;">Table 1: Comparison with representative human hand-object interaction datasets.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Dataset</td><td style='text-align: center; word-wrap: break-word;'>Force/ Contact</td><td style='text-align: center; word-wrap: break-word;'>Manip. Scope</td><td style='text-align: center; word-wrap: break-word;'>Physics Valid</td><td style='text-align: center; word-wrap: break-word;'>Scale (frames)</td><td style='text-align: center; word-wrap: break-word;'>Modality</td><td style='text-align: center; word-wrap: break-word;'>Annotation Source</td></tr><tr><td colspan="7">Vision-focused Datasets</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FreiHAND (Zimmermann et al., 2019)</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>Poses</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>130K</td><td style='text-align: center; word-wrap: break-word;'>RGB</td><td style='text-align: center; word-wrap: break-word;'>Model fit</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HO3D (Hampali et al., 2020)</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>Poses</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>78K</td><td style='text-align: center; word-wrap: break-word;'>RGB-D</td><td style='text-align: center; word-wrap: break-word;'>Manual</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DexYCB (Chao et al., 2021)</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>Grasp</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>90K</td><td style='text-align: center; word-wrap: break-word;'>RGB-D</td><td style='text-align: center; word-wrap: break-word;'>Manual</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOI4D (Hampali et al., 2022)</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>General</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>2.4M</td><td style='text-align: center; word-wrap: break-word;'>RGB-D (ego)</td><td style='text-align: center; word-wrap: break-word;'>Manual+auto</td></tr><tr><td colspan="7">Motion-focused Datasets</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>GRAB (Taheri et al., 2020)</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>Grasp</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>1.6M</td><td style='text-align: center; word-wrap: break-word;'>Mocap</td><td style='text-align: center; word-wrap: break-word;'>Markers</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ARCTIC (Fan et al., 2023)</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>Bimanual</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>2.1M</td><td style='text-align: center; word-wrap: break-word;'>RGB-D+Mocap</td><td style='text-align: center; word-wrap: break-word;'>Markers</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hi4D (Zheng et al., 2023)</td><td style='text-align: center; word-wrap: break-word;'>Binary</td><td style='text-align: center; word-wrap: break-word;'>Human $^{{*}}$</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>11K</td><td style='text-align: center; word-wrap: break-word;'>4D scans</td><td style='text-align: center; word-wrap: break-word;'>Multi-view</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>OpenEgo (Jawaid &amp; Xiang, 2025)</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>General</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>119.6M</td><td style='text-align: center; word-wrap: break-word;'>Multimodal</td><td style='text-align: center; word-wrap: break-word;'>Fusion $^{{\dagger}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EgoDex (Hoque et al., 2025)</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>General</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>90M</td><td style='text-align: center; word-wrap: break-word;'>RGB+3D</td><td style='text-align: center; word-wrap: break-word;'>Vision Pro</td></tr><tr><td colspan="7">Synthetic/Hybrid Human Datasets</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ObMan (Hasson et al., 2019)</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>Grasp</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>150K</td><td style='text-align: center; word-wrap: break-word;'>Synthetic</td><td style='text-align: center; word-wrap: break-word;'>Synthesis</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>RenderIH (Li et al., 2023)</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>Two-hand</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>1M</td><td style='text-align: center; word-wrap: break-word;'>Synthetic</td><td style='text-align: center; word-wrap: break-word;'>Synthesis</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOIDiffusion (Zhang et al., 2024c)</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>Grasp</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>N/A $^{{\ddagger}}$</td><td style='text-align: center; word-wrap: break-word;'>Hybrid</td><td style='text-align: center; word-wrap: break-word;'>Diffusion</td></tr><tr><td colspan="7">Contact-aware Datasets</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ContactDB (Brahmbhatt et al., 2019)</td><td style='text-align: center; word-wrap: break-word;'>Binary</td><td style='text-align: center; word-wrap: break-word;'>Grasp</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>375K</td><td style='text-align: center; word-wrap: break-word;'>Thermal</td><td style='text-align: center; word-wrap: break-word;'>Thermal</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ContactPose (Brahmbhatt et al., 2020)</td><td style='text-align: center; word-wrap: break-word;'>Binary</td><td style='text-align: center; word-wrap: break-word;'>Grasp</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>2.9M</td><td style='text-align: center; word-wrap: break-word;'>RGB-D+Thermal</td><td style='text-align: center; word-wrap: break-word;'>Thermal</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DexCanvas (Ours)</td><td style='text-align: center; word-wrap: break-word;'>Continuous</td><td style='text-align: center; word-wrap: break-word;'>General</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>3.0B</td><td style='text-align: center; word-wrap: break-word;'>RGB-D+Mocap</td><td style='text-align: center; word-wrap: break-word;'>Simulation</td></tr></table>

 $^{*}$人机交互。$\dagger$源自6个数据集。$\ddagger$属于生成方法，而非固定数据集。操作范围：姿势 = 静态手部姿势；抓取 = 抓取动作；通用 = 多样化的操作任务；双手操作 = 双手协同操作；双手互动 = 两只手的相互作用。

我们为跨形态迁移到各类机器人手奠定了基础，并发布了完整的数据集、预处理流程和示例代码 $^{2}$，以加速基于学习的灵巧操作研究。

## 2 相关工作

我们首先回顾现有的手-物体交互数据集，以确定DexCanvas在现有研究中的位置。接着我们探讨接触与力估计的相关方法，指出我们的基于物理的重建技术所填补的方法论空白。关于各个数据集和力估计方法的详细讨论可参见附录A.2。

### 2.1 人手-物体交互数据集

人类演示提供了自然的操作策略，但面临根本性的标注挑战。人手数据集反映了传感能力的演进过程（表1）：早期的基于视觉的研究侧重于手部姿势估计（Zimmermann等人，2019年）或简单的抓取操作（Chao等人，2021年），这些研究受限于人工标注成本。动作捕捉系统（Taheri等人，2020年；Fan等人，2023年）虽然实现了运动学上的精确性，但仅能捕捉几何运动。近期的多模态方法规模大幅提升，如EgoDex（Hoque等人，2025年）和OpenEgo（Jawaid & Xiang，2025年）的数据量超过了9000万帧，但均未能提供对富接触控制至关重要的测量信息。热成像（Brahmbhatt等人，2020年）或4D扫描（Zheng等人，2023年）得到的二元接触信息部分弥补了这一缺口，但缺乏力的大小信息。合成数据生成方法（Hasson等人，2019年；Zhang等人，2024c年）能提供完美的标注，却牺牲了自然性。DexCanvas的独特之处在于它将大规模的真实人类演示与物理仿真的力信息相结合，在保留真实运动的同时添加了完整的物理标注。

### 2.2 合成机器人操作数据集

虽然人类数据集能捕捉自然的操作策略，但针对机器人的合成数据集具有互补优势：规模无限且基准真值完美。合成数据集从早期经过物理验证的集合（Aktaş等人，2022年）迅速发展到规模达十亿级的演示数据（Ye等人，2025年），其生成方式包括基于优化的方法（Wang等人，2022年；Zhang等人，2024b年）或

---

生成模型。如今该领域已涵盖关节物体操作（Bao等人，2023年）、双手协调操作（Chen等人，2023年）以及杂乱场景下的操作（Zhang等人，2024a年）。然而，这些数据集仍局限于特定的机器人形态，往往缺乏自然适应性。DexCanvas采取了混合策略：从人类演示中合成数据可提供高效的现实世界种子，编码成功的操作策略，同时作为连接不同机器人手形态的桥梁，便于将其适配到各类机器人手上。

### 2.3 接触与力估计

当前的力标注方法面临一个根本性难题：直接测量需要借助带有传感器的物体，这会限制自然的操作行为；而间接方法只能提供近似的力估计值。基于视觉的方法（Pham等人，2015年；Grady等人，2022年）缺乏真实值的验证；考虑接触信息的重建方法（Corona等人，2020年；Hasson等人，2019年；Zhou等人，2022年）无法测量实际的力；热成像技术（Brahmbhatt等人，2019年）仅能生成二值的接触掩码。DexCanvas通过基于物理的重建来解决这一问题：训练强化学习策略在仿真环境中重现人类演示，从而从观测到的运动学数据中提取符合物理规律的力曲线，既保留了自然的运动方式，又能提供基于物理的力标注。

![Image](images/a2aaa45963993731d1d7ec5fea2ee62f2645f29371f79d7af3e4cf7dc91e917d.jpg)

<div style="text-align: center;">Figure 2: Complete taxonomy of 21 manipulation types in DexCanvas. The taxonomy hierarchically organizes manipulation strategies into four main categories: Power (whole-hand grasps for stability), Intermediate (transitional grasps combining power and precision), Precision (fingertip control for dexterity), and In-hand Manipulation (dynamic object reorientation). Each category is further subdivided by thumb position and finger participation, with visual demonstrations showing the characteristic hand configurations for each manipulation type.</div>

## 3 数据集构建与处理流程

DexCanvas是一个大规模数据集，包含7000小时的人类灵巧操作数据，其中70小时为真实的动作捕捉演示，其余部分通过物理仿真扩展得到，可提供接触力标注。本节将介绍数据集的构建过程：指导数据采集范围的操作分类与采集协议（$\S$3.1）、用于记录人类演示的多模态硬件系统（$\S$3.2），以及将原始采集数据转换为标准化的MANO表示、并通过物理仿真合成力曲线的处理流程（$\S$3.3）。这些组件共同使DexCanvas既能提供真实的人类操作策略，又能提供学习接触丰富的控制策略所需的物理标注。

---

### 3.1 操作分类与数据采集设计

我们围绕21种基础操作类型来构建DexCanvas数据集，这些类型源自Cutkosky分类法（Feix等人，2016年）。它们被分为四大类：精细抓取、强力抓取、中间型抓取以及手内操作（滚动、滑动、手指转移和旋转）。图2展示了完整的分类体系，以及每种操作类型的可视化示例，这些示例按照拇指位置（外展/内收）和参与手指数量进行分类。这种分类方式能够系统地覆盖人类的灵巧操作能力，超越了针对特定任务的随意性动作，从而捕捉到机器人学习所需的各种操作策略。

物体选择：我们的30个物体集包含多种尺寸的几何基本体，用于测试尺度适应性；还包含重量不同的重复物体（标记为“H”），用于探究力的调节机制；此外还有YCB物体（Chao等人，2021年），比如电钻和水壶，用于获取复杂的特定任务抓取方式。详见附录A.3.1。

数据采集：五名操作员在掌握标准化演示流程后，对每种可行的操作-物体组合执行50次重复实验。实验流程保持一致：放置物体、执行操作、回到初始状态。总共我们采集了12000个序列，时长达70小时的演示数据，排除了出现掉落或严重遮挡情况的试验。

### 3.2 多模态采集系统

<div style="text-align: center;">(a)</div>

<div style="text-align: center;">(b)</div>

![Image](images/82759e280f13a5ef720bb5a3b7c986808355abbf4f4d538ed808d92742e36bc9.jpg)

<div style="text-align: center;">Figure 3: Overview of the capture setup and data pipeline. (a) The room-scale optical motion capture system with 22 infrared cameras and synchronized RGB-D sensors. (b) Samples from the two calibrated RGB-D cameras: top row shows RGB view and depth map from the front perspectives and the bottom row shows the bottom perspective. (c) Data processing pipeline. Raw mocap markers are pre-processed and transformed into the MANO coordinate system, aligned with RGB-D observations, and fitted to the MANO hand model. The resulting hand–object trajectories are then used to train reinforcement learning policies in simulation.</div>

我们的采集系统采用了22台红外摄像头来实现毫米级精度的光学动作捕捉，同时配备两台同步的RGB-D摄像头（见图3(a-c)）。

标记装置：我们在右手上于解剖学意义上的关键位置粘贴了14个反射标记，每个物体上则粘贴4个标记。关键在于，这些物体是根据CAD模型进行3D打印的，标记安装位置直接被设计在几何结构中。这消除了坐标框架不对齐的问题，所追踪到的姿态也就与物理模拟中使用的URDF模型完全一致。

---

数据流：该系统以30 Hz的频率采集手部姿态（腕部的6自由度数据、手指关节数据）、物体轨迹以及多视角RGB-D数据。原始标记位置会被处理后用于提取关节角度，短暂的遮挡现象则通过插值算法来处理。针对每位参与者的校准过程会考虑其手部尺寸的差异，而时间同步机制则确保了所有模态数据在帧级别上能够对应。

### 3.3 处理与合成流程

MANO形状：原始的动作捕捉标记数据会被处理成MANO表示形式（Romero等人，2017年）。我们首先根据校准序列估算出每位参与者的形状参数（$\beta \in \mathbb{R}^{10}$），随后优化每一帧的腕部变换矩阵和关节角度，从而在满足解剖学约束的前提下最小化标记到表面的距离（详情见附录A.3.2）。

数据处理：如图3(c)所示，动作捕捉系统会生成原始的手部和物体姿态轨迹，这些轨迹会通过预处理流程被转换到MANO坐标系下（附录A.4）。处理后的参数随后会被传入MANO正向模型，以重建手部网格和关节位置，从而实现一致的可视化效果，并便于后续在模拟中的应用。

基于物理的力提取：核心创新在于利用强化学习仅从运动学数据中发现接触力。我们训练策略来控制IsaacGym中的驱动式MANO手模型（Makoviychuk等人，2021年），使其重现捕获到的物体运动，同时借助物理模拟来揭示背后的作用力。成功的模拟过程会提供每一帧的接触点、力矢量以及扭矩数据，这些数据与观测到的运动在物理上是一致的。这种方法将70小时的动作捕捉数据转化为包含完整力标注的7000小时数据。第4节将详细介绍强化学习的方法论。

## 4 基于强化学习的物理力重建

从动作捕捉数据中提取力的核心难题在于：仅靠几何信息无法确定接触动力学特性：即便追踪精度达到毫米级，其中仍会存在系统性误差，导致在模拟中开环回放时出现穿透或接触丢失现象。我们的解决方案（图4）是利用强化学习训练闭环追踪控制器，使其重现观测到的物体运动，同时由物理模拟器提供真实的力测量值。

关键在于，强化学习策略充当了残差控制器，对拟合出的MANO关节角度进行微小修正以维持稳定的接触。该策略会接收全部的动作捕捉数据——包括手部运动学信息、物体轨迹以及未来的物体姿态——并输出用于补偿追踪误差的关节角度残差。重要的是，力并非由策略推断得出，而是在模拟过程中由物理模拟器直接测量得到的。这种方法将力重建问题转化为追踪控制问题，其中的物理一致性由模拟器来保证。除了用于标注外，策略模拟还能通过扰动物体尺寸、初始姿态、材料属性以及MANO形状参数来生成数据，从而从每一次演示中创造出多种物理上合理的变体。

### 4.1 问题设定

我们为每一对物体-操作组合训练一个策略$\pi_\theta$，从而避免多任务条件化带来的复杂性。每种操作都被建模为一个马尔可夫决策过程（MDP）$\mathcal{M} = (\mathcal{S}, \mathcal{A}, \mathcal{P}, R, \gamma)$，其中状态$s_t \in \mathcal{S}$包含了手部和物体的运动学信息。动作$a_t \in \mathcal{A} \subset \mathbb{R}^n$指的是施加在拟合的MANO角度上的连续关节残差。$\mathcal{P}$代表了基于物理的状态转移动力学，R是奖励函数，$\gamma$是折扣因子，而情节会在时间范围T内因成功或失败而终止。该策略是一种随机控制器：

 $$ a_{t}\sim\pi_{\theta}(a_{t}\mid s_{t}). $$

我们的目标是最大化期望折扣回报：

 $$ \max_{\theta}J(\theta)=\mathbb{E}_{\pi_{\theta}}\left[\sum_{t=0}^{T}\gamma^{t}R(s_{t},a_{t})\right]. $$

奖励结构采用了双重目标：精确的物体轨迹跟踪（参考Chen等人，2024年的研究）以及通过残差将操作姿态与原始姿态的偏差降至最低。

---

这种设定确保了策略既能复现所演示的物体运动，又能保持与人类手部运动学的一致性。

对于每一对物体-操作组合，我们都会加载时间对齐的MANO格式的演示数据，这些数据提供了参考手部姿态和物体轨迹。策略会学习针对这些姿态的残差修正，输出能够维持稳定接触的关节角度调整值。使用PPO算法（Schulman等人，2017年）完成训练后，我们会运行该策略，并仅保留物理上可行的轨迹。这些运行结果提供了由物理模拟器直接测量的逐帧接触点、力矢量和扭矩，这些信息仅靠动作捕捉技术是无法获取的。

![Image](images/6749a7c091790f7697d7175b5c34179884212c93b2f0e0c8c615539900b80020.jpg)

<div style="text-align: center;">Figure 4: Overview of the reinforcement learning-based force reconstruction pipeline.</div>

### 4.2 训练

数据加载与初始化。训练使用的是经过处理、转换为MANO坐标的动作捕捉数据。初始化时，MANO手部会与捕获的姿态相匹配，而物体则遵循其动作捕捉姿态。模拟器会记录物体轨迹误差以供计算奖励。

动作空间。MANO手部作为一个具有驱动手指的浮动基座系统运作。动作是对拟合关节角的残差修正，而非绝对指令。这些残差会通过指数滤波累积，从而使策略既贴近人类演示，又能补偿跟踪误差（详见附录A.5.1）。

观测空间。策略可以观察到完整的非因果动作捕捉数据，包括未来的物体姿态——这是一种特权信息，能够提升跟踪效果，且无需在实际场景中部署。评估期间，我们会记录模拟器中的接触点和受力情况（详见附录A.5.2）。

奖励函数。奖励通过残差惩罚来平衡物体轨迹跟踪与姿态一致性，从而确保生成物理上合理的运动，同时保留人类运动学特征。情节会在轨迹完成或偏差过大时终止。训练采用PPO算法，详细的奖励分解见附录A.5.3。

## 5 实验

方法的有效性与数据合成。为了验证我们的处理流程，我们为所有可行的物体-操作组合训练了策略，并在图5所示的32个代表性组合上评估了成功率。每个策略在模拟环境中运行100次，成功定义为在不终止的情况下完成演示轨迹（当位置误差超过5厘米时便会触发终止）。

在理想条件下，这些策略的成功率达到了80.15%，表明它们能够有效复现人类在物理模拟中的操作演示。当初始物体的姿态发生扰动，扰动幅度达到物体尺寸的20%时，成功率仅适度下降至62.54%，降幅仅为17.61个百分点。这种在较大扰动下的适度性能衰减说明：每种策略都能从单一的演示样本出发，生成多样化且符合物理规律的训练数据，从而显著拓展数据集的覆盖范围。因此，我们的合成流程能够将70小时的真实演示转化为7,000小时经过物理验证的操作数据——这一100倍的扩展对于满足现代学习需求至关重要。

---

![Image](images/be996983669709372e28dea62a6758028a5c74bb95783720d80b9cf6dc4d3a67.jpg)

<div style="text-align: center;">Figure 5: Success rates of policies across 32 representative object-manipulation pairs under both nominal and perturbed initial conditions. Bars show success under perturbed settings (20% of object size shift in length and width), with orange overlays indicating the success rates achieved under the original conditions.</div>

强制标注质量。接下来，我们评估由真实到仿真流程生成的接触力标注的质量。

![Image](images/e9b4a07ceb553b32be1bad10df89d9a6d118de774fa8c9b68909ac1f98d71329.jpg)

<div style="text-align: center;">Figure 6: Evaluation of force annotation quality. (a) Example manipulation trajectory reproduced in simulation. (b) Time series of per-finger contact forces and maximum contact force. (c) Rendered force distributions on the hand mesh at selected timesteps.</div>

图6展示了一个操作示例。图6(a)显示了在仿真中重现的输入轨迹。图6(b)绘制了随时间变化的各手指接触力大小，以及每个时间步的最大受力值。图6(c)则可视化了在选定关键帧处手部网格上的受力分布情况。

图6(b)中的时间曲线显示出不同手指间接触力的平滑且符合物理规律的变化，而图6(c)中的空间渲染结果则印证了受力峰值与操作中实际接触区域的对应关系。综合来看，这些结果证明我们的重建流程不仅能成功复现轨迹，还能提供细致到单个手指层面的丰富力标注信息。这种级别的标注在现有数据集中十分罕见，有望为学习具备接触感知能力的灵巧操作策略提供宝贵的监督信号。

---

特定操作类型的受力分布。我们分析了分类体系中的不同操作类型所产生的独特接触力模式。针对三种具有代表性的操作类型，我们汇总了100次仿真运行中的接触统计数据，以刻画其受力特征。

![Image](images/872e7b3caa657983cd9d97805e8aed0fcebc262318bb26572a80b1060faf40e4.jpg)

<div style="text-align: center;">Figure 7: Manipulation-specific contact distributions. (a) Three representative manipulation types from our taxonomy. (b) Heatmaps of joint-level contact frequencies aggregated over 100 trials, revealing distinct force patterns for each manipulation type.</div>

图7(b)揭示了每种操作类型的独特力特征：强力抓取会均匀作用于多个关节，而精细操作则将力集中在特定的指尖上。在我们所定义的21种操作类型中均呈现出这类特征性模式，这说明我们的流程能够准确捕捉每种操作策略独有的物理特性。每种类型内部存在的差异也反映出我们的合成过程能生成多样化的有效操作实例，从而为学习特定操作的控制策略提供丰富的监督信号。

后续版本中将提供展示跨数据集适用性和下游任务评估的补充实验成果。

## 6 讨论与结论

DexCanvas为通过带有基于物理的力标注的人类演示来学习灵巧操作提供了基础。我们承认目前仍存在若干局限性，同时也提出了未来发展的具体方向。

拓展操作范围。目前我们的覆盖范畴仅限于基本几何物体和基础操作原语。这些构成了更复杂行为的基础：从简单几何体到YCB物体再到现实世界中的物品，从基础抓取、手中重新定位到结合多种原语的自由形式场景。

统一策略学习。我们针对物体操作的策略训练面临着明显的可扩展性挑战。一种以物体和任务编码为条件的统一MANO控制模型，能够批量生成多样化的运动轨迹，从而取代数千个专用策略。对于需要自然组合多种技能的较长动作序列而言，这一点尤为重要。

跨形态重定向。目前该数据集仅发布了人手数据，不过我们的方法为将其重定向到机器人形态奠定了坚实基础。力标注能够实现具备物理感知能力的重定向，在保持与人类演示的物理一致性同时，保留不同手部设计（从欠驱动系统到全拟人化系统）间的接触动力学特性。

多模态标注。虽然数据集包含了RGB-D流，但目前尚未被深入探究。视觉模态可用于视觉运动策略学习，而照片级真实感渲染或基于世界模型的合成技术则能生成无限的感知训练数据。语言标注目前较为有限，但力标注……

---

为物理属性提供了依据：“轻柔”抓取与“牢固”抓取对应着可测量的力特征，而非主观描述。

下游应用。该数据集支持多样的研究方向。在强化学习领域，力标注能够实现奖励塑形和基于接触感知的探索；在视觉-语言-动作模型的预训练方面，视觉观测、操作原语和物理测量数据的结合提供了丰富的多模态监督信息。通过发布包含完整预处理流程和基线实现的DexCanvas，我们旨在加速具备强大操控能力的机器人系统的研发进程。

---

## 可复现性声明

为确保研究结果的可复现性，我们在论文及附录中提供了详尽的实现细节。完整的数据处理流程在第3.3节和附录A.3中有详细描述，其中包含了MANO拟合和力重建的数学公式。强化学习训练方法（第4节）在附录A.4.1至A.4.3中列出了状态/动作空间、奖励函数和超参数的全部规格说明。数据处理、物理仿真设置和策略训练的所有代码将在<https://github.com/dexrobot/dexcanvas>发布。数据集本身，包括原始动作捕捉数据、RGB-D流以及合成的力标注数据，将在<https://huggingface.co/datasets/DEXROBOT/DexCanvas>提供，同时附有文档化的数据格式和加载工具说明。动作捕捉系统的硬件规格在第3.2节中有详细说明。物理仿真采用IsaacGym，其接触建模和摩擦系数参数均已明确指定。训练好的策略和检查点也将一并发布，以便直接复现力提取结果。

## 参考文献

Ümit Ruşen Aktaş、赵超、Marek Kopicki和Jeremy L Wyatt。基于单视图的深度灵巧物体抓取。《国际仿人机器人期刊》，19(02):2250011，2022年。

Sridhar Pandian Arunachalam、Sneha Silwal、Ben Evans和Lerrel Pinto。简易灵巧模仿：一种用于高效灵巧操控的基于学习的框架。arXiv预印本arXiv:2203.13251，2022年。

陈宝、徐赫林、秦宇哲和王小龙。Dexart：面向关节物体的通用灵巧操控基准测试。载于《IEEE/CVF计算机视觉与模式识别会议论文集》，第21190–21200页，2023年。

Samarth Brahmbhatt、Cush Ham、Charles C Kemp和James Hays。Contactdb：通过热成像分析和预测抓取接触。arXiv预印本arXiv:1904.06830，2019年。

Samarth Brahmbhatt、Chengcheng Tang、Christopher D Twigg、Charles C Kemp和James Hays。Contactpose：包含物体接触与手部姿态的抓取数据集。收录于欧洲计算机视觉会议（ECCV），第361–378页，2020年。

Yu-Wei Chao、Wei Yang、Yu Xiang、Pavlo Molchanov、Ankur Handa、Jonathan Tremblay、Yashraj S. Narang、Karl Van Wyk、Umar Iqbal、Stan Birchfield、Jan Kautz和Dieter Fox。DexYCB：用于捕捉物体抓取动作的基准测试。收录于2021年IEEE/CVF计算机视觉与模式识别会议（CVPR），第9040–9049页。IEEE出版社，2021年。doi: 10.1109/CVPR46437.2021.00893。

Jiayi Chen、Yubin Ke、Lin Peng和He Wang。Dexonomy：在抓取分类体系中合成所有灵巧抓取类型。arXiv预印本arXiv:2504.18829，2025年。

Yuanpei Chen、Yiran Geng、Fangwei Zhong、Jiaming Ji、Jiechuang Jiang、Zongqing Lu、Hao Dong和Yaodong Yang。Bi-dexhands：迈向人类水平的双手法灵巧操控。IEEE模式分析与机器智能交易刊，第46卷第5期：2804–2818页，2023年。

Yuanpei Chen、Chen Wang、Yaodong Yang和Karen Liu。基于人体运动数据的以物体为中心的灵巧操控。收录于第八届机器人学习年会，2024年。

Enric Corona、Albert Pumarola、Guillem Alenya、Francesc Moreno-Noguer和Gregory Rogez。GANHand：预测多物体场景中人类的抓取可能性。收录于IEEE/CVF计算机视觉与模式识别会议（CVPR），第5031–5041页，2020年。

Dima Damen、Hazel Doughty、Giovanni Maria Farinella、Sanja Fidler、Antonino Furnari、Evangelos Kazakos、Davide Moltisanti、Jonathan Munro、Toby Perrett、Will Price等。扩展以人为中心的视觉：EPIC-Kitchens数据集。收录于欧洲计算机视觉会议（ECCV），第720–736页，2018年。

---

Zicong Fan、Omid Taheri、Dimitrios Tzionas、Muhammed Kocabas、Manuel Kaufmann、Michael J. Black和Otmar Hilliges。ARCTIC：一个关于双手法物体操控的数据集。收录于IEEE/CVF计算机视觉与模式识别会议（CVPR）论文集，第12943–12954页，2023年。

Thomas Feix、Javier Romero、Heinz-Bodo Schmiedmayer、Aaron M Dollar和Danica Kragic。人类抓取类型的分类体系。IEEE人机系统交易刊，第46卷第1期：66–77页，2016年。

Patrick Grady、Chengcheng Tang、Christopher D Twigg、Minh Vo、Samarth Brahmbhatt和Charles C Kemp。PressureVision：从单张RGB图像估算手部压力。收录于欧洲计算机视觉会议（ECCV），第328–345页，2022年。

Shreyas Hampali、Mahdi Rad、Markus Oberweger和Vincent Lepetit。HonnoTrace：一种用于标注手部与物体姿态的方法。收录于IEEE/CVF计算机视觉与模式识别会议（CVPR），第3196–3206页，2020年。

Shreyas Hampali、Sayan Sarkar、Mahdi Rad和Vincent Lepetit。HOI4D：一个用于类别级人机交互的4D以人为中心数据集。收录于IEEE/CVF计算机视觉与模式识别会议（CVPR），第21013–21023页，2022年。

Yana Hasson、Gül Varol、Dimitrios Tzionas、Igor Kalevatykh、Michael J Black、Ivan Laptev和Cordelia Schmid。学习手部与被操控物体的联合重建。收录于IEEE/CVF计算机视觉与模式识别会议（CVPR），第11807–11816页，2019年。

Ryan Hoque、Peide Huang、David J. Yoon、Mouli Sivapurapu和Jian Zhang。EgoDex：从大规模自中心视频中学习灵巧操作。arXiv预印本arXiv:2505.11709，2025年。doi: 10.48550/arXiv.2505.11709。

Ahad Jawaid和Yu Xiang。Openego：一个用于灵巧操作的大规模多模态自中心数据集。arXiv预印本arXiv:2509.05513，2025年。

Moo Jin Kim、Karl Pertsch、Siddharth Karamcheti、Ted Xiao、Ashwin Balakrishna、Suraj Nair、Rafael Rafailov、Ethan Foster、Grace Lam、Pannag Sanketi等。Openvla：一种开源的视觉-语言-动作模型。arXiv预印本arXiv:2406.09246，2024年。

Lijun Li、Linrui Tian、Xindi Zhang、Qi Wang、Bang Zhang、Liefeng Bo、Mengyuan Liu和Chen Chen。Renderih：一个用于3D交互手部姿态估计的大规模合成数据集。载于IEEE/CVF国际计算机视觉会议论文集，第20395–20405页，2023年。

Viktor Makoviychuk、Lukasz Wawrzyniak、Yunrong Guo、Michelle Lu、Kier Storey、Miles Macklin、David Hoeller、Nikita Rudin、Arthur Allshire、Ankur Handa等。Isaac Gym：面向机器人学习的高性能基于GPU的物理仿真工具。arXiv预印本arXiv:2108.10470，2021年。

Soroush Nasiriany、Abhiram Maddukuri、Lance Zhang、Adeet Parikh、Aaron Lo、Abhishek Joshi、Ajay Mandlekar和Yuke Zhu。Robocasa：面向通用机器人日常任务的大规模仿真平台。arXiv预印本arXiv:2406.02523，2024年。

Ryuta Ozawa和Kenji Tahara。多指机械手的抓取与灵巧操作：从控制视角进行的综述。《先进机器人》期刊，31卷(19-20期)：1030–1050页，2017年。

Georgios Pavlakos、Dandan Shan、Ilija Radosavovic、Angjoo Kanazawa、David Fouhey和Jitendra Malik。利用Transformer重建3D手部模型。载于IEEE/CVF计算机视觉与模式识别会议论文集，第9826–9836页，2024年。

Tu-Hoa Pham、Abderrahmane Kheddar、Argyro Qammaz和Antonis A Argyros。迈向基于视觉的力感知：通过观察手-物体交互来推断操作力。载于IEEE计算机视觉与模式识别会议（CVPR），第2810–2819页，2015年。

Yuzhe Qin、Yueh-Hua Wu、Shaowei Liu、Hanwen Jiang、Ruihan Yang、Yang Fu和Xiaolong Wang。Dexmv：从人类视频中通过模仿学习实现灵巧操作。载于欧洲计算机视觉会议论文集，第570–587页。Springer出版社，2022年。

---

Nived Rajaraman、Lin Yang、Jiantao Jiao和Kannan Ramchandran。迈向模仿学习的基本极限。《神经信息处理系统进展》期刊，第33卷：2914–2924页，2020年。

Javier Romero、Dimitrios Tzionas和Michael J Black。具身化手部：手部与身体的联合建模与捕捉。ACM图形学交易（TOG）期刊，36卷(6期)：1–17页，2017年。

John Schulman、Filip Wolski、Prafulla Dhariwal、Alec Radford和Oleg Klimov。近端策略优化算法。arXiv预印本arXiv:1707.06347，2017年。

Omid Taheri、Nima Ghorbani、Michael J. Black和Dimitrios Tzionas。GRAB：一个全身人体抓取物体的数据集。arXiv预印本，12349卷：581–600页，2020年。doi: 10.1007/978-3-030-58548-8_34。

Chen Wang、Haochen Shi、Weizhuo Wang、Ruohan Zhang、Li Fei-Fei和C Karen Liu。Dexcap：一种用于灵巧操作的可扩展且便携的动作捕捉数据采集系统。arXiv预印本arXiv:2403.07788，2024年。

王瑞成、张佳良、陈佳怡、徐银珍、李普浩、刘腾宇、王赫。Dexgraspnet：基于仿真的大规模通用物体灵巧抓取数据集。arXiv预印本arXiv:2210.02697，2022年。

温俊杰、朱一辰、李明明、唐志斌、沈超敏、冯菲菲。Dexvla：具备插件式扩散专家模块的视觉语言模型，用于通用机器人控制。arXiv预印本arXiv:2502.05855，2025年。

翁泽航、卢浩飞、达妮卡·克拉吉奇、延斯·伦德尔。Dexdiffuser：利用扩散模型生成灵巧抓取方案。《IEEE机器人与自动化快报》，2024年。

吴天浩、甘云冲、吴明东、程景波、杨耀东、朱宜欣、董浩。基于扩散策略的灵巧功能性预抓取操作。arXiv预印本arXiv:2403.12421，2024年。

叶江龙、王可毅、袁承静、杨瑞涵、李一全、朱继月、秦宇哲、邹雪燕、王晓龙。Dex1b：利用10亿个演示样本学习灵巧操控技术。arXiv预印本arXiv:2506.17198，2025年。

余春苗、王鹏。基于强化学习的多指机械手灵巧操控技术综述。《神经机器人学前沿》第16卷，861825页，2022年。

张佳良、刘浩然、李丹石、虞新强、耿浩然、丁宇飞、陈佳怡、王赫。Dexgraspnet 2.0：在大规模合成杂乱场景中学习生成式灵巧抓取技术。收录于第八届年度机器人学习会议论文集，2024a年。

张洁怡、徐文强、余振军、谢鹏飞、唐图天、卢泽武。Dextog：基于语言条件学习面向任务的灵巧抓取技术。《IEEE机器人与自动化快报》，2024b年。

张梦琪、付阳、丁峥、刘思飞、涂卓文、王晓龙。Hoidiffusion：生成逼真的3D手-物交互数据。收录于IEEE/CVF计算机视觉与模式识别会议论文集，第8521–8531页，2024c年。

郑一飞、王燕、安德烈亚·韦茨勒、帕斯卡尔·富阿。Hi4d：近距离人体交互的4D实例分割技术。收录于IEEE/CVF计算机视觉与模式识别会议（CVPR）论文集，第17011–17021页，2023年。

周凯昂、巴拉特·拉尔·巴特纳加尔、扬·埃里克·伦森、杰拉德·庞斯-莫尔。Toch：用于运动优化的时空物体-手部对应关系技术。收录于欧洲计算机视觉会议（ECCV）论文集，第1–17页，2022年。

克里斯蒂安·齐默尔曼、杜伊古·塞兰、杨继美、布莱恩·拉塞尔、马克斯·阿格斯、托马斯·布罗克斯。Freihand：基于单张RGB图像的无标记手姿与形状捕捉数据集。收录于IEEE/CVF国际计算机视觉会议（ICCV）论文集，第813–822页，2019年。

布丽安娜·齐特科维奇、余天赫、徐思纯、徐鹏、肖特德、夏飞、吴佳林、保罗·沃尔哈特、斯特凡·韦尔克、阿扎恩·瓦希德等。Rt-2：视觉-语言-动作模型将网络知识迁移至机器人控制领域。收录于机器人学习会议论文集，第2165–2183页。PMLR，2023年。

---

## 附录

### A.1 数据集获取与使用说明

DexCanvas托管于HuggingFace Hub平台，支持完整下载和流式访问两种方式。该数据集提供了两种截然不同的访问模式，分别针对监督学习和强化学习范式进行了优化。

#### A.1.1 数据格式

每条轨迹都包含元数据以及同步的多模态序列。元数据指定了演示者、被操纵物体，以及基于Cutkosky分类法的操纵类型，同时还标明了主动操纵时期的帧范围以及针对特定受试者的MANO形状参数。这些序列包括MANO手部运动学数据（手腕姿态和45维手指关节）、物体的6自由度姿态，以及经过物理模拟的接触信息，其中包含每帧的力矢量和物体力矩。

<div style="text-align: center;">Table 2: DexCanvas trajectory data structure</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Category</td><td style='text-align: center; word-wrap: break-word;'>Field</td><td style='text-align: center; word-wrap: break-word;'>Dimensions</td></tr><tr><td rowspan="6">Metadata</td><td style='text-align: center; word-wrap: break-word;'>operator</td><td style='text-align: center; word-wrap: break-word;'>String ID</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>object</td><td style='text-align: center; word-wrap: break-word;'>String ID</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>manipulation_type</td><td style='text-align: center; word-wrap: break-word;'>Cutkosky category</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>mano_shape</td><td style='text-align: center; word-wrap: break-word;'>[^10]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>active_frames</td><td style='text-align: center; word-wrap: break-word;'>Start/end indices</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>fps</td><td style='text-align: center; word-wrap: break-word;'>30Hz (RGB-D), 120Hz (mocap/sim)</td></tr><tr><td rowspan="4" colspan="3">Hand kinematics</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>wrist_position</td><td style='text-align: center; word-wrap: break-word;'>[T, 3]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>wrist_rotation</td><td style='text-align: center; word-wrap: break-word;'>[T, 3]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>finger_pose</td><td style='text-align: center; word-wrap: break-word;'>[T, 45]</td></tr><tr><td rowspan="3" colspan="3">Object trajectory</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>object_position</td><td style='text-align: center; word-wrap: break-word;'>[T, 3]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>object_rotation</td><td style='text-align: center; word-wrap: break-word;'>[T, 3]</td></tr><tr><td rowspan="4" colspan="3">Contact forces</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>contact_points</td><td style='text-align: center; word-wrap: break-word;'>[T, N, 3]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>force_vectors</td><td style='text-align: center; word-wrap: break-word;'>[T, N, 3]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>object_wrench</td><td style='text-align: center; word-wrap: break-word;'>[T, 6]</td></tr></table>

所有模态在时间上均对齐：RGB-D数据以30 Hz的频率采集，而动作捕捉和物理模拟则以120 Hz的频率运行，从而提供$4\times$的时间分辨率，以便精确描述接触动力学过程。

#### A.1.2 监督学习访问方式

对于轨迹预测、行为克隆和运动分析，该数据集提供了与标准PyTorch DataLoader兼容的接口：

from datasets import load_dataset
from torch.utils.data import DataLoader

## 无需下载即可直接从HuggingFace Hub流式读取数据

dataset = load_dataset("DEXROBOT/DexCanvas", streaming=True)

## 可按操纵类型、物体或演示者进行筛选

filtered = dataset.filter(
    lambda x: x.manipulation_type in ["tripod", "palmar_pinch"] and
    x.object in ["cube2", "sphere1"]
)

## 标准的批量同步迭代方式

for batch in DataLoader(filtered, batch_size=32):

---

mano_poses = batch["finger_pose"] # [B, T, 45]
object_poses = batch["object_info"] # [B, T, 6]
forces = batch["contact_info"] # [B, T, ...]
masks = batch["attention_mask"] # [B, T]，用于处理长度不一的数据

### A.1.3 强化学习访问方式

针对并行强化学习训练，该数据集提供了一种具有独特特性的有状态轨迹缓冲区。与批量同步处理方式不同，每个并行环境都会为其分配的轨迹保留持久的GPU存储，并独立跟踪自身的时间步。当环境i完成其片段后，仅替换轨迹i，而其他环境可继续不间断运行。接触力和力矩会一直保留在GPU中，以便直接用于奖励计算，无需传输到CPU。这种异步设计能够支持数千个并行物理环境的扩展，每个环境都需要独立的、有状态的轨迹播放功能。

import torch
from dexcanvas import DexCanvasDataset, RLTrajectoryBuffer

## 为并行环境初始化有状态的缓冲区

dataset = DexCanvasDataset(manipulation_types=["tripod", "pinch"])
buffer = RLTrajectoryBuffer(dataset, num_envs=1024, device="cuda")

## 每个环境各自跟踪其时间步

for step in range(max_steps):

    # Get current observations for all environments

    obs = buffer.get_observations() # Zero-copy GPU indexing
    hand_poses = obs["mano_pose"] # [num_envs, 45]
    object_poses = obs["object_pose"] # [num_envs, 6]
    contact_forces = obs["forces"] # [num_envs, N, 3]

    # Step environments (physics simulation)
    actions = policy(obs)
    rewards = compute_rewards(contact_forces, object_poses)
    dones = check_termination()

    # Asynchronousously replace completed trajectories
    if dones.any():
        done_envs = torch.where(dones)[^0]
        buffer.reset_envs(done_envs)  # Only these envs get new data
    else:
        buffer.advance_timesteps()  # Others continue current trajectory

### A.1.4 灵活的数据选择方式

研究人员可以沿着多个维度对轨迹进行筛选。Cutkosky分类法中的21种操作类型，使得针对特定策略（如强力抓取、精准捏取或手中旋转）的实验成为可能。几何原型有多种尺寸和重量变体——标有“H”标记的重物能提供具有对比性的受力特征，便于在保持相同操作策略的前提下研究物体属性对操作的影响。通过单独的演示者ID，还可以分析个人操作风格以及手部形态的差异。该完整数据集包含30亿帧图像，采用统一的MANO参数化方式，并配有经过物理验证的力标注，既可用于从人类演示中学习，也能用于系统评估接触丰富的操作策略。

#### A.2 相关研究工作综述

##### A.2.1 人手-物体交互数据集的发展历程

人类操作数据集的发展反映了传感能力和研究重点的演变。早期的基于视觉的研究如FreiHAND（Zimmermann等人，2019年）确立了大规模数据采集方法，但仅局限于静态手部姿势，未能涵盖理解操作过程所需的动力学信息。

---

当研究人员将重点转向实际的物体交互时，便遇到了根本性挑战：HO3D（Hampali等人，2020年）和DexYCB（Chao等人，2021年）虽然实现了多视角捕捉，但针对规模相对较小的数据集仍需花费数月时间进行人工标注，这暴露了仅靠视觉方法所存在的可扩展性瓶颈。

动作捕捉系统有望通过毫米级精度的追踪来克服这些局限。GRAB（Taheri等人，2020年）证明，动作捕捉技术能够记录自然的全身抓取行为；而ARCTIC（Fan等人，2023年）则将这一技术拓展到复杂的双手操作场景，并能同步获取RGB-D流数据。然而，即便这些高精度系统也存在一个关键缺陷：它们只能捕捉几何运动，却无法获取驱动运动的力信息。当试图将人类演示转化为机器人操作指令时，这种局限尤为突出——因为力的调节直接决定了操作的成败。

近期出现的大规模第一人称视角数据集标志着人类操作数据采集方式的范式转变。使用Apple Vision Pro采集的EgoDex（Hoque等人，2025年）提供了829小时的桌面操作数据，具备原生3D手部追踪功能，这是早期的第一人称视角数据集（如Ego4D）所不具备的。OpenEgo（Jawaid & Xiang，2025年）则采取了一种互补思路，将六个现有数据集整合为一个具有语言对齐动作原语的连贯框架，从而解决了该领域长期存在的碎片化问题。这些数据集虽达到了前所未有的规模，但仍继承了所有观测类数据的根本局限：它们无法测量产生观测到的运动所需的力。

合成数据生成技术为解决规模和标注难题提供了潜在方案。Ob-Man（Hasson等人，2019年）证明，通过优化可以生成无限量的手-物交互数据，且几何标注完美无缺，但由此产生的抓取动作往往违反生物力学约束。ContactPose（Brahmbhatt等人，2020年）试图通过热成像技术弥合真实数据与合成数据之间的差距，捕捉接触点的热信号。尽管颇具创新性，但热成像只能提供二值的接触掩码，且会因无实际接触却发生热传递的邻近效应而产生误差。业界亟需一种能从自然的人类演示中提取连续力谱的方法。

##### A.2.2 合成机器人操作数据集：从优化到生成

合成操作数据集的发展揭示了物理有效性与数据规模之间的根本矛盾。早期的研究如DexGraspNet（Wang等人，2022年）采用可微分的力闭合优化方法来确保抓取的稳定性，最终生成了132万个物理上有效的演示样本。然而，基于优化的方法存在固有的瓶颈：每次抓取都需要耗费大量算力的迭代计算，从而限制了数据的规模和多样性。

这一局限性促使该领域转向生成式方法。DexGraspNet 2.0（Zhang等人，2024a年）采用了一种混合流程：先通过优化生成种子数据，再用以训练条件扩散模型，最终将可抓取样本数量提升至4.27亿个，且在实际应用中的成功率达到90.7%。其核心洞见在于：生成式模型能够从优化生成的样本中学习到有效抓取的流形结构，进而无需显式的物理计算就能快速生成新样本。

Dex1B（Ye等人，2025年）将这一思路推向极致，它涵盖了多种手部形态下的数十亿个演示样本。Dex1B并未将每种手部设计视为需要独立数据集的情况，而是训练出能够针对Shadow、Inspire和Ability手部生成抓取方案的统一模型。该数据集采用了带有几何约束的条件VAE，利用近似有向距离函数防止物体相互穿透，同时兼顾计算效率。这一方法表明，瓶颈已从数据生成转移到了数据利用上——如今我们所能生成的合成演示样本数量，已经超出了当前学习算法能够有效处理的范围。

为了应对抓取之外的特定操作挑战，各类专业化数据集应运而生。BiDexHands（Chen等人，2023年）专注于双手协调任务，其模拟速度达到了每秒4万帧以上，从而支持大规模的强化学习训练。DexArt（Bao等人，2023年）则致力于解决关节物体的操作问题，这类任务要求算法必须同时考虑手部和物体的运动学特性。Robo-Casa（Nasiriyan等人，2024年）采取以任务为中心的思路，在厨房环境中设置了100个评估场景，并利用大型语言模型生成复合任务规范。这些专业化的数据集表明，仅有规模并不够——该领域还需要多样化的任务覆盖范围和评估协议。

---

这些专业化数据集凸显出一个事实：仅有规模并不足以满足需求——该领域还需要涵盖多样化的任务类型以及相应的评估协议。

##### A.2.3 力估计挑战：从视觉到物理

从观测结果中估计操作力量的研究催生了愈发复杂的方法，每种方法都揭示了这一问题难以简单解决的新层面。Pham等人（2015年）通过将方程力估计表述为逆动力学问题，奠定了相关理论框架：给定观察到的物体运动，手部需要施加多大的力量？他们的方法结合了视觉跟踪与二阶锥优化技术，研究发现人类施加的力量往往超出机械需求所需的“过量力量”——这一发现凸显了理论上的力量最小化与自然操作行为之间的差距。

现代学习方法从优化转向直接回归。PressureVision（Grady等人，2022年）利用了与施加压力相关的细微视觉线索：软组织变形、血流变化以及投影阴影。该系统通过在参与者按压经过仪器测量的表面的受控场景下采集数据进行训练，从而学会将外观变化映射到压力分布上。然而，在部署过程中缺乏真实的力数据作为参照，因此验证工作仍局限于定性评估和受控场景之中。

基于接触感知的重建方法采取了不同的路径，它们更注重几何一致性而非力的测量。GanHand（Corona等人，2020年）利用对抗性训练来确保手与物体之间的配置合理；TOCH（Zhou等人，2022年）则通过学习到的运动先验来维持时间一致性。这些方法能生成视觉上令人信服的结果，但却无法区分轻柔放置与用力抓取——几何上相同的接触情况可能对应截然不同的受力特征。

通过装有传感器的物体或热成像技术进行直接测量，看似能提供真实数据，但每种方法都带来了新的局限。力矩传感器会改变其所要测量的接触力学特性，而热像仪只能捕捉到接触的存在，无法获取力的大小。ContactDB（Brahmbhatt等人，2019年）的研究表明，即便使用专用传感器，要捕捉整个手部表面的分布式接触模式仍不现实。这一系列方法的发展揭示了一个重要结论：仅从观测结果中估算力是受约束不足的，要么需要采用会干扰自然行为的物理传感器，要么依靠能够确保运动与力之间一致性的物理仿真。

##### A.2.4 操作分类体系：理论与实践之间的差距

理论上的抓取分类体系与数据集覆盖范围之间的脱节，反映出该领域在优先关注操作的某些方面时忽视了其他方面。Cutkosky分类体系中的16种抓取类型，以及GRASP分类体系扩展后的33种类型（Feix等人，2016年），为归类人类操作策略提供了全面的框架。然而，大多数数据集所涵盖的抓取类型不足五种，通常只聚焦于强力抓取和简单的捏取动作，而忽略了诸如手指步态调整或手内重新定位等复杂模式。

这种覆盖范围的缺口部分源于数据采集的挑战——动态操作比静态抓取更难以捕捉和标注，同时也反映了关于机器人学习需求的隐含假设。机器人操作领域对拾取-放置任务的侧重，使得数据集倾向于稳定的抓取而非灵巧操作。Dexonomy（Chen等人，2025年）试图填补这一缺口，它合成了GRASP分类体系中的33种类型里的31种，证明通过精心设计能够实现系统的覆盖。不过，仅靠合成无法捕捉人类在不确定环境下操作物体时所采用的适应性策略。

分类体系覆盖的问题不仅存在于抓取类型，还延伸到操作原语层面。虽然抓取受到了广泛关注，但受控滑动、柔性交互以及多指协调运动等同样重要的技能却仍研究不足。数据集覆盖范围的这些缺口直接限制了学习型操作系统的能力，进而形成恶性循环：机器人因缺乏训练数据而难以完成某些任务，这又进一步强化了人们对覆盖较广的场景的关注。打破这一循环需要能够系统涵盖人类全部操作能力的数据集，而不仅仅是那些最容易采集或对当前机器人系统最实用的能力。

---

#### A.3 数据集详情

<div style="text-align: center;">A.3.1 LIST OF OBJECTS</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>ID</td><td style='text-align: center; word-wrap: break-word;'>Type</td><td style='text-align: center; word-wrap: break-word;'>Size (cm)</td><td style='text-align: center; word-wrap: break-word;'>Weight (g)</td><td style='text-align: center; word-wrap: break-word;'>Placement</td><td style='text-align: center; word-wrap: break-word;'>Schematic d</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cube1</td><td style='text-align: center; word-wrap: break-word;'>Large cube</td><td style='text-align: center; word-wrap: break-word;'>$8 \times 8 \times 8$</td><td style='text-align: center; word-wrap: break-word;'>125</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cube2</td><td style='text-align: center; word-wrap: break-word;'>Small cube</td><td style='text-align: center; word-wrap: break-word;'>$5 \times 5 \times 5$</td><td style='text-align: center; word-wrap: break-word;'>37</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cuboid1</td><td style='text-align: center; word-wrap: break-word;'>Flat cuboid</td><td style='text-align: center; word-wrap: break-word;'>$15 \times 15 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>128</td><td style='text-align: center; word-wrap: break-word;'>Large face down; side face down</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cuboid2</td><td style='text-align: center; word-wrap: break-word;'>Long cuboid</td><td style='text-align: center; word-wrap: break-word;'>$15 \times 5 \times 2.5$</td><td style='text-align: center; word-wrap: break-word;'>55</td><td style='text-align: center; word-wrap: break-word;'>Long edge along X-axis</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cuboid3</td><td style='text-align: center; word-wrap: break-word;'>Small cuboid</td><td style='text-align: center; word-wrap: break-word;'>$5 \times 5 \times 2.5$</td><td style='text-align: center; word-wrap: break-word;'>22</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cylinder1</td><td style='text-align: center; word-wrap: break-word;'>Thick cylinder</td><td style='text-align: center; word-wrap: break-word;'>$D7 \times 15$</td><td style='text-align: center; word-wrap: break-word;'>140</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cylinder2</td><td style='text-align: center; word-wrap: break-word;'>Disk cylinder</td><td style='text-align: center; word-wrap: break-word;'>$D10 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>50</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cylinder3</td><td style='text-align: center; word-wrap: break-word;'>Long cylinder</td><td style='text-align: center; word-wrap: break-word;'>$D3 \times 10$</td><td style='text-align: center; word-wrap: break-word;'>25</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cylinder4</td><td style='text-align: center; word-wrap: break-word;'>Thin cylinder</td><td style='text-align: center; word-wrap: break-word;'>$D1 \times 15$</td><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cylinder5</td><td style='text-align: center; word-wrap: break-word;'>Mini cylinder</td><td style='text-align: center; word-wrap: break-word;'>$D2 \times 2.7$</td><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cylinder6</td><td style='text-align: center; word-wrap: break-word;'>Short thick cylinder</td><td style='text-align: center; word-wrap: break-word;'>$D8 \times 10$</td><td style='text-align: center; word-wrap: break-word;'>123</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>sphere1</td><td style='text-align: center; word-wrap: break-word;'>Large sphere</td><td style='text-align: center; word-wrap: break-word;'>D4</td><td style='text-align: center; word-wrap: break-word;'>13</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>sphere2</td><td style='text-align: center; word-wrap: break-word;'>Medium sphere</td><td style='text-align: center; word-wrap: break-word;'>D3</td><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>sphere3</td><td style='text-align: center; word-wrap: break-word;'>Small sphere</td><td style='text-align: center; word-wrap: break-word;'>D2</td><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cube2H</td><td style='text-align: center; word-wrap: break-word;'>Small cube (heavy)</td><td style='text-align: center; word-wrap: break-word;'>$5 \times 5 \times 5$</td><td style='text-align: center; word-wrap: break-word;'>123</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cuboid2H</td><td style='text-align: center; word-wrap: break-word;'>Long cuboid (heavy)</td><td style='text-align: center; word-wrap: break-word;'>$15 \times 5 \times 2.5$</td><td style='text-align: center; word-wrap: break-word;'>203</td><td style='text-align: center; word-wrap: break-word;'>Long edge along X-axis</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cuboid3H</td><td style='text-align: center; word-wrap: break-word;'>Small cuboid (heavy)</td><td style='text-align: center; word-wrap: break-word;'>$5 \times 5 \times 2.5$</td><td style='text-align: center; word-wrap: break-word;'>82</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cylinder1H</td><td style='text-align: center; word-wrap: break-word;'>Thick cylinder (heavy)</td><td style='text-align: center; word-wrap: break-word;'>$D7 \times 15$</td><td style='text-align: center; word-wrap: break-word;'>554</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cylinder4H</td><td style='text-align: center; word-wrap: break-word;'>Thin cylinder (heavy)</td><td style='text-align: center; word-wrap: break-word;'>$D1 \times 15$</td><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cylinder5H</td><td style='text-align: center; word-wrap: break-word;'>Mini cylinder (heavy)</td><td style='text-align: center; word-wrap: break-word;'>$D2 \times 2.7$</td><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>cylinder6H</td><td style='text-align: center; word-wrap: break-word;'>Short thick cylinder (heavy)</td><td style='text-align: center; word-wrap: break-word;'>$D8 \times 10$</td><td style='text-align: center; word-wrap: break-word;'>472</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>sphere1H</td><td style='text-align: center; word-wrap: break-word;'>Large sphere (heavy)</td><td style='text-align: center; word-wrap: break-word;'>D4</td><td style='text-align: center; word-wrap: break-word;'>35</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>mayonnaisebottle</td><td style='text-align: center; word-wrap: break-word;'>Mayonnaise bottle</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>224</td><td style='text-align: center; word-wrap: break-word;'>Base down</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>banana</td><td style='text-align: center; word-wrap: break-word;'>Banana</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>75</td><td style='text-align: center; word-wrap: break-word;'>Long edge along X-axis</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>bowl</td><td style='text-align: center; word-wrap: break-word;'>Bowl</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>42</td><td style='text-align: center; word-wrap: break-word;'>Base down</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>largeclamp</td><td style='text-align: center; word-wrap: break-word;'>Clamp</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>59</td><td style='text-align: center; word-wrap: break-word;'>Base down</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>pitcherbase</td><td style='text-align: center; word-wrap: break-word;'>Pitcher</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>482</td><td style='text-align: center; word-wrap: break-word;'>Base down</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>powerdrill</td><td style='text-align: center; word-wrap: break-word;'>Power drill</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>228</td><td style='text-align: center; word-wrap: break-word;'>Handle along Z-axis</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>scissor</td><td style='text-align: center; word-wrap: break-word;'>Scissors</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>32</td><td style='text-align: center; word-wrap: break-word;'>Base down</td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

![Image](images/b21ac7834884e0f3d5e47ccafa2b54dbef0f27e1783cf8e4fcec97174713d6c5.jpg)

![Image](images/246af5b1ee1397dca061046915ab6215c1f705bc5053250d62490a039b05d2b1.jpg)

![Image](images/6b893dc94c5c9da7f7affb61307810c764da743988e92b94dd5cb3df1ac95ca9.jpg)

![Image](images/3cadc06448875fdb1c853ef210eee5b9ba3e3e3c016fd43241d2859adc0448e4.jpg)

![Image](images/99c8b481f3a732c39f62427a8cae9beed86a861deaeafaa783ebe0ae7724d775.jpg)

##### A.3.2 创建MANO模型

![Image](images/588e20d39ae08cbd81911b5a3e958953bab2286366026692f08f0913f117e2a3.jpg)

<div style="text-align: center;">Table 3: List of objects with dimensions, weights, placement setup, and schematic diagrams.</div>

估算MANO形状参数：我们利用HaMeR手部网格回归器（Pavlakos等人，2024年）来推导每位受试者的MANO形状参数（betas，共10维）。对于每位参与者，我们先检测其右手，裁剪对应的RGB图像块，再运行HaMeR以获取MANO参数估计值（betas，

---

全局朝向和手部姿态）。随后，我们通过稳健平均（均值并剔除异常值）的方式，对有效裁剪区域中的beta值进行聚合，从而为每位受试者生成一个稳定的右手形状向量。在进行动作捕捉拟合时，这些beta值保持不变，我们仅优化全局腕部变换以及每帧的MANO姿态，以使标记对齐。由此得到的针对特定受试者的形状会在不同会话以及模拟中的角色重定向过程中被重复使用。

MANO拟合：MANO是一种参数化手部模型，它可将10维形状向量$\beta$、姿态参数$\theta$以及全局腕部变换，通过线性混合蒙皮技术映射为可微分的手部网格和关节位置。我们为每位受试者的手部设定MANO参数。通过简短的校准序列，我们估算出该受试者特有的形状向量$\hat{\beta} \in \mathbb{R}^{10}$，并确定标记与模型的对应关系。在试验的每一帧t，给定测量得到的3D标记位置$\{x_{i,t}\}_{i=1}^N$后，我们通过最小化标记与模型之间的差异来求解全局腕部变换$T_t \in SE(3)$和MANO姿态参数$\theta_t$：

 $$ \min_{T_{t},\theta_{t}}\sum_{i=1}^{N}\left\|x_{i,t}-p_{i}\Big(T_{t},\hat{\beta},\theta_{t}\Big)\right\|_{2}^{2}+\lambda_{\mathrm{p o s e}}\psi(\theta_{t}), $$

其中$p_i(\cdot)$返回由$(\hat{\beta}, \theta_t)$生成并经$T_t$变换后的MANO表面上第i个虚拟标记的3D位置，而$\psi$则编码了柔性的关节限制先验。优化结果会给出世界坐标系下腕部的旋转和平移时间序列、所有MANO关节的局部关节旋转，以及固定的受试者形状$\hat{\beta}$。给定$(\hat{\beta}, \theta_t, T_t)$后，我们运行MANO前向模型，以获取每帧的关节位置和手部网格顶点，这些数据会与动作捕捉世界坐标系对齐，并与物体姿态及RGB-D数据流时间同步。

#### A.4 数据处理

预处理：我们首先移除无法使用的片段（例如长时间遮挡或标记排列破损的情况），并用质量标签标记异常的试验。对于每个试验，通过其四个反光标记利用刚体配准技术，恢复物体在动作捕捉世界坐标系下的6自由度姿态，从而得到一系列旋转和平移数据。对于手部，我们执行针对特定受试者的校准，以估算MANO形状向量并确定标记到骨骼的偏移量。随后随时间跟踪右手标记排列，从而获取腕部姿态以及在动作捕捉世界坐标系下的绝对关节旋转。

为了将动作捕捉输出与MANO坐标系对齐，我们应用从动作捕捉世界坐标系（W）到MANO世界坐标系（M）的固定变换$T_{MW}$。由此得到的全局和关节级映射关系如下：

 $$ T_{H}^{M}(t)=T_{M W}T_{H}^{W}(t),\qquad T_{O}^{M}(t)=T_{M W}T_{O}^{W}(t),\qquad R_{j}^{M}(t)=R_{M W}R_{j}^{W}(t). $$

此处$T_{H}^{W}(t)$和$T_{Q}^{W}(t)$表示从动作捕捉数据中估算出的手部和物体姿态，而$R_{j}^{W}(t)$是关节j的绝对旋转。它们被变换到MANO的世界坐标系中，以生成一致的每帧手部及物体状态。所有数据流均利用记录的时间戳与前置及侧置RGB-D摄像头时间对齐，并通过简短的校准手势验证同步性，从而确保每一帧RGB-D图像都对应明确的手-物配置。

#### A.5 基于物理的力重建与强化学习

##### A.5.1 动作

<div style="text-align: center;">Table 4: Action space and DoF allocation. Actions are continuous and bounded.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Group</td><td style='text-align: center; word-wrap: break-word;'>Symbol</td><td style='text-align: center; word-wrap: break-word;'>Dim</td><td style='text-align: center; word-wrap: break-word;'>Meaning</td><td style='text-align: center; word-wrap: break-word;'>Typical bounds</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Wrist translation</td><td style='text-align: center; word-wrap: break-word;'>$a_{t}^{\text{lin}}$</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Cartesian increments (x, y, z)</td><td style='text-align: center; word-wrap: break-word;'>$[-a_{\text{max}}, a_{\text{max}}]$ m/step</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Wrist rotation</td><td style='text-align: center; word-wrap: break-word;'>$a_{t}^{\text{rot}}$</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Roll–pitch–yaw increments</td><td style='text-align: center; word-wrap: break-word;'>$[-r_{\text{max}}, r_{\text{max}}]$ rad/step</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Finger joints</td><td style='text-align: center; word-wrap: break-word;'>$a_{t}^{\text{fin}}$</td><td style='text-align: center; word-wrap: break-word;'>$n_{f}$</td><td style='text-align: center; word-wrap: break-word;'>Per-joint increments (thumb+4 fingers)</td><td style='text-align: center; word-wrap: break-word;'>Joint-group specific caps</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Total</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>6+ $n_{f}$</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

---

我们的控制方案采用指数加权累积动作，以确保操纵轨迹平滑。我们并非直接应用策略输出的原始值，而是维持一个平滑的动作信号，这样既能避免动作抖动，又能保持对策略决策的响应性。

对于每个动作分量（腕部平移、旋转、手指关节），我们计算得出的执行控制信号$u_{t}$为：

 $$ u_{t}=\tau\cdot u_{t-1}+a_{t} $$

其中 $a_t$ 是原始的策略动作，而 $\tau \in [0.8, 0.95]$ 则是衰减因子。这种方式会生成指数移动平均值，使得最近的动作具有更高的权重：$u_t = \sum_{i=1}^t \tau^{t-i} a_i$。

示例：在手腕平移场景中，如果策略输出了微小的增量运动 $a_t = [0.01, 0, 0]$（x方向上1厘米），执行的控制指令会在保持前几步所积累的动量的同时，平滑地融入新指令。借助 $\tau = 0.9$，经过5次相同的动作后，累积效果 $u_5 \approx 0.041$ 米就能实现平滑加速，而非离散的跳跃。

这种平滑处理对于稳定抓取至关重要：手腕姿态或手指位置的突变可能会导致接触中断或物体滑落，而我们的方案能在复杂的操作序列中始终保持接触稳定性。

##### A.5.2 观察结果

<div style="text-align: center;">Table 5: Observation (training-time privileged state). Replace  $n_{q}, n_{f}$ with your exact values.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Block</td><td style='text-align: center; word-wrap: break-word;'>Symbol</td><td style='text-align: center; word-wrap: break-word;'>Dim</td><td style='text-align: center; word-wrap: break-word;'>Definition / Contents</td><td style='text-align: center; word-wrap: break-word;'>Notes</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Joint positions</td><td style='text-align: center; word-wrap: break-word;'>$q_t$</td><td style='text-align: center; word-wrap: break-word;'>$n_q$</td><td style='text-align: center; word-wrap: break-word;'>Hand joint angles (local)</td><td style='text-align: center; word-wrap: break-word;'>Normalized by joint limits</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Joint velocities</td><td style='text-align: center; word-wrap: break-word;'>$\dot{q}_t$</td><td style='text-align: center; word-wrap: break-word;'>$n_q$</td><td style='text-align: center; word-wrap: break-word;'>Finite-difference of $q_t$</td><td style='text-align: center; word-wrap: break-word;'>Clipped to safe range</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Object pose</td><td style='text-align: center; word-wrap: break-word;'>$T_{o,t}$</td><td style='text-align: center; word-wrap: break-word;'>7</td><td style='text-align: center; word-wrap: break-word;'>$(p_{o,t} \in \mathbb{R}^3, R_{o,t} \in \mathbb{H}^1)$</td><td style='text-align: center; word-wrap: break-word;'>Position + quaternion</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand–object relative</td><td style='text-align: center; word-wrap: break-word;'>$\Delta_{ho,t}$</td><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>$(p_{o,t} - p_{h,t}, \text{relative ori})$</td><td style='text-align: center; word-wrap: break-word;'>Minimal relative pose</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Target object pose</td><td style='text-align: center; word-wrap: break-word;'>$\hat{T}_{o,t}$</td><td style='text-align: center; word-wrap: break-word;'>7</td><td style='text-align: center; word-wrap: break-word;'>Mocap-derived target $(\hat{p}_{o,t}, \hat{R}_{o,t})$</td><td style='text-align: center; word-wrap: break-word;'>Reference trajectory</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Short-horizon target</td><td style='text-align: center; word-wrap: break-word;'>$\hat{p}_{o,t+\tau}$</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Future object position (e.g., $\tau=10$ steps)</td><td style='text-align: center; word-wrap: break-word;'>Trajectory preview</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Cumulative offsets</td><td style='text-align: center; word-wrap: break-word;'>$\delta p_t$</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Position residual accumulator</td><td style='text-align: center; word-wrap: break-word;'>For residual control</td></tr></table>

##### A.5.3 奖励机制

<div style="text-align: center;">Table 6: Reward and penalty components used during physics-validated replay.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Component</td><td style='text-align: center; word-wrap: break-word;'>Symbol</td><td style='text-align: center; word-wrap: break-word;'>Definition</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Distance reward</td><td style='text-align: center; word-wrap: break-word;'>$r_{dist}$</td><td style='text-align: center; word-wrap: break-word;'>Distance between sim and mocap object: $\exp(-60 \cdot \text{goal\_dist})$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Rotation reward</td><td style='text-align: center; word-wrap: break-word;'>$r_{rot}$</td><td style='text-align: center; word-wrap: break-word;'>Angular difference: $\exp(-10 \cdot \text{rot\_error})$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Action penalty</td><td style='text-align: center; word-wrap: break-word;'>$c_{act}$</td><td style='text-align: center; word-wrap: break-word;'>Cumulative action offset: $\|a_t\|_2^2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Total reward</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>$r_t = r_{dist} + r_{rot} - c_{act}$</td></tr></table>
