Skip to content

Latest commit

 

History

History
693 lines (551 loc) · 29.1 KB

File metadata and controls

693 lines (551 loc) · 29.1 KB

从手机视频到仿真就绪数字孪生:基于 URDF 几何锚定的物体级 3DGS 资产生成

目标会议: NeurIPS 2026 (CCF-A)

  • 摘要截止: ~2026.05.07
  • 论文截止: ~2026.05.11-15
  • 会议日期: 2026.12.06-12, 悉尼

可行性评估

整体方案评价

本方案的核心创新点是**将机械臂作为"盲态几何锚点"**来解决单目视觉重建的尺度模糊性问题,并在此基础上将 SAM 3D 生成的物体级 3DGS 模型校正到真实物理尺度,最终组装为仿真就绪的数字孪生。

优势

  1. 非侵入式标定: 无需连接机器人控制器,适用于任何品牌机械臂
  2. 尺度恢复有理论保证: URDF 几何是精确已知的,通过点云配准可以可靠地恢复绝对尺度
  3. 物体级高保真资产: SAM 3D 生成的 3DGS 模型渲染质量远超传统点云/网格,经校正后可直接用于仿真
  4. 端到端闭环: 从手机视频到仿真器中的碰撞感知运动规划,全流程自动化
  5. 复用已有基础设施: 已完成 MASt3R 重建、SAM 分割、链式配准等核心模块 (Steps 1-4)

挑战与风险

  1. SAM 3D 生成的几何精度有限:

    • SAM 3D 本质是"幻觉补全",对不可见部分的重建基于先验猜测
    • 应对: 利用标定后的 MASt3R 点云对 SAM 3D 输出做 Sim3 配准,校正尺度和姿态
    • 应对: 仅对可见侧保留 SAM 3D 细节,不可见侧作为碰撞近似即可
  2. 稀疏点云上的物体级分割:

    • 当前 pipeline 仅区分机器人/背景,需扩展到逐物体分割
    • 应对: 复用已有多视角投票机制,GroundingDINO 检测全部桌面物体后按相同流程投影
  3. 3DGS 配准到稀疏点云:

    • SAM 3D 输出在归一化坐标系,管线点云在标定坐标系,两者尺度/姿态差距大
    • 应对: GaussReg (ECCV'24) 和 SIREN (2025) 已证明 3DGS 级别配准可行
  4. 仿真器集成:

    • 3DGS 渲染 + 物理碰撞需要混合表示 (Gaussian-on-Mesh)
    • 应对: 采用 DISCOVERSE (IROS'25 oral) 或 GSWorld 的 GSDF 格式

技术可行性结论

步骤 可行性 成熟度 说明
Step 1-2: MASt3R 重建 + 分割 成熟 已在项目中实现并验证
Step 3: 机械臂点云分割 成熟 多视角投票已实现
Step 4: URDF 链式配准 成熟 PCA + ICP 已实现
Step 5: 物体级点云分割 扩展 复用已有投票机制,仅需扩展到多物体
Step 6: SAM 3D 物体生成 新兴 Meta 2025.11 发布,精度仍在提升中
Step 7: 3DGS 尺度/姿态校正 中高 研究 Sim3 ICP 成熟,3DGS 级配准 (GaussReg) 可行
Step 8: 仿真组装 + 碰撞避让 工程 DISCOVERSE/GSWorld 已有框架,需集成工作

1. 执行摘要与引言

在机器人桌面操作与具身智能领域,获取目标物体的高精度、具有物理尺度一致性的三维模型是实现精准抓取与规划的前提。当前方法要么依赖 RGB-D 传感器 (SyncTwin),要么假设标定已完成 (Splat-MOVER),要么不做尺度恢复 (RL-GSBridge)。

本项目提出了一套从手机视频到仿真就绪数字孪生的全自动管线:

  • 利用 MASt3R 从低质量视频中提取稠密几何与相机位姿
  • 将场景中静止的机械臂视为**"盲态几何锚点"**,通过 URDF 配准恢复绝对尺度
  • 使用 GroundingDINO + SAM2 分割全部桌面物体
  • 使用 SAM 3D 为每个物体生成高质量 3DGS 模型
  • 通过 Sim3 配准将 SAM 3D 输出校正到标定坐标系
  • 组装为仿真就绪数字孪生,集成 cuRobo / CBF 碰撞避让

2. 系统架构总览

┌──────────────────────────────────────────────────────────────────────┐
│                    输入: 手机环绕视频 + URDF + 关节角度                  │
└─────────────────────────────┬────────────────────────────────────────┘
                              │
              ┌───────────────┴───────────────┐
              ▼                               ▼
┌─────────────────────────┐    ┌─────────────────────────────────┐
│  Step 1a: 机器人检测追踪  │    │  Step 1b: 全部物体检测追踪        │
│  GDino("robot arm")     │    │  GDino("cup","bottle",...)      │
│  + SAM2 视频传播         │    │  + SAM2 视频传播                 │
│  → robot masks          │    │  → per-object masks             │
└────────────┬────────────┘    └──────────────┬──────────────────┘
             │                                │
             ▼                                │
┌─────────────────────────────────────────┐   │
│  Step 2: MASt3R 稠密三维重建              │   │
│  → 点云 (约500万) + 相机位姿 + 内参       │   │
└────────────┬────────────────────────────┘   │
             │                                │
             ▼                                │
┌─────────────────────────────────────────┐   │
│  Step 3: 机器人点云分割 (多视角投票)       │   │
│  → robot_cloud + background_cloud       │   │
└────────────┬────────────────────────────┘   │
             │                                │
             ▼                                │
┌─────────────────────────────────────────┐   │
│  Step 4: URDF 配准 (PCA+ICP)             │   │
│  → 绝对尺度 s + 基座位姿 T_base          │   │
│  → 标定后相机内外参                       │   │
└────────────┬────────────────────────────┘   │
             │                                │
             ▼                                ▼
┌──────────────────────────────────────────────────────────────┐
│  Step 5: 物体级点云分割 (扩展多视角投票)                        │
│  ├─ 利用 per-object masks 对标定后点云逐物体投票              │
│  ├─ 桌面 RANSAC → 保留桌面上方全密度点云                      │
│  └─ → per_object_clouds[] (在机器人基座坐标系下)              │
└────────────┬─────────────────────────────────────────────────┘
             │
             ▼
┌──────────────────────────────────────────────────────────────┐
│  Step 6: SAM 3D 物体级 3DGS 生成                               │
│  ├─ 为每个物体选择最佳视角图像                                 │
│  ├─ SAM 3D(image, mask) → 3DGS (.ply) + mesh (.glb)          │
│  └─ → per_object_3dgs[] (归一化坐标系)                        │
└────────────┬─────────────────────────────────────────────────┘
             │
             ▼
┌──────────────────────────────────────────────────────────────┐
│  Step 7: 3DGS 尺度/姿态校正 (Sim3 配准)                       │
│  ├─ SAM 3D 高斯中心点 → 采样点云                              │
│  ├─ PCA 粗对齐 + Sim3 ICP 精配准                              │
│  ├─ 变换应用到全部高斯参数 (中心、协方差、SH)                  │
│  ├─ (可选) 可微渲染损失微调                                   │
│  └─ → calibrated_3dgs[] (标定坐标系,物理尺度)                │
└────────────┬─────────────────────────────────────────────────┘
             │
             ▼
┌──────────────────────────────────────────────────────────────┐
│  Step 8: 仿真组装 + 碰撞避让                                   │
│  ├─ 3DGS → 网格提取 (TSDF / Poisson 表面重建)                │
│  ├─ 场景组装: URDF + 桌面网格 + 逐物体 (3DGS + 碰撞网格)     │
│  ├─ 导出: GSDF (GSWorld) / DISCOVERSE 格式                    │
│  ├─ cuRobo GPU 加速运动规划 (离线轨迹优化)                    │
│  └─ CBF 安全约束 (在线反应式碰撞避让)                         │
└──────────────────────────────────────────────────────────────┘
输出: 仿真就绪数字孪生 + 碰撞感知运动规划轨迹

3. 技术实施方案

Step 1: 视频分割 (已完成)

实现位置: run_pipeline.py + src/modules/sam2/auto_segment.py

核心技术:

  • GroundingDINO: 开放词汇目标检测,支持多 prompt 融合
  • SAM2: 视频分割与追踪,支持多对象追踪

Step 1a: 机器人检测 (已实现):

  • 多 prompt 融合:robot arm, robot base, robot manipulator
  • 检测框合并 + 基座扩展 + 点 prompt 增强

Step 1b: 全物体检测 (新增):

  • 扩展 prompt:cup, bottle, box, bowl, keyboard 等桌面常见物体
  • 或使用 RAM (Recognize Anything) 自动生成物体标签后送入 GroundingDINO
  • 每个物体独立追踪,输出逐物体逐帧 masks

输出:

outputs/step1_xxxx/
├── masks/robot_01/      # 机器人逐帧 mask
├── masks/cup_02/        # 杯子逐帧 mask
├── masks/bottle_03/     # 瓶子逐帧 mask
├── ...
├── robot_detection.jpg
├── config.json
└── meta.json

Step 2: 点云重建 (已完成)

实现位置: tools/step1_reconstruct.py + src/modules/mast3r/

核心技术:

  • MASt3R: 多帧稠密重建,提取稠密 3D 点云与相机位姿
  • 支持三种后端: MASt3R (默认), COLMAP, VGGT

输出:

outputs/step1_xxxx/ (或 step2)
├── sparse_cloud.ply     # 稠密点云 (约 500 万点)
├── camera_poses.npy     # Camera-to-World (N, 4, 4)
├── intrinsics.npy       # 相机内参 (N, 3, 3)
├── frame_indices.npy    # 帧索引
├── frames/              # 提取的关键帧
└── visualization/

Step 3: 机器人点云分割 (已完成)

实现位置: tools/step2_segment_cloud.py

核心算法: 多视角投票 + DBSCAN 聚类

对每个 3D 点 p:
  vote(p) = (1/|V(p)|) * Σ 1[π_i(p) ∈ M_robot_i]
  若 vote(p) > τ (默认 0.6) → 标记为机器人

输出: robot_cloud.ply, scene_cloud.ply, labels.npy

Step 4: URDF 配准 (已完成)

实现位置: tools/step3_calibrate.py + src/modules/kinematics/

核心算法:

  • RobustRegistrator: 已知关节角度时的鲁棒配准
    • PCA + 8 种符号组合 → 综合旋转搜索 → FGR → Umeyama Sim3 → 尺度微调
  • JointAngleEstimator: 关节角度未知时的分而治之估计
    • 基座锚定 → 逐级搜索 → 联合微调 → 尺度微调

输出: calibration_result.json (scale, transform, joints), calibrated_camera_poses.npy

性能:

模式 Scale Error 时间
使用先验关节角度 2.12 0.0127 ~26s
自动估计关节角度 1.67 0.0294 ~2min

Step 5: 物体级点云分割 (待实现)

状态: 待实现 实现位置: tools/step5_object_segment.py (新文件)

核心思想: 复用 Step 3 的多视角投票机制,扩展到全部桌面物体。

算法流程:

1. 桌面检测
   ├─ RANSAC 平面拟合 → 桌面平面方程
   ├─ 保留桌面上方 (距桌面 > 5mm) 的全密度点云
   └─ 标记桌面点

2. 逐物体多视角投票
   ├─ 对每个物体 mask (来自 Step 1b):
   │   ├─ 对桌面上方每个 3D 点,投影到所有视角
   │   ├─ 检查投影位置是否在该物体 mask 内
   │   └─ 投票比例 > τ → 归属该物体
   └─ 处理交叉归属 (取最高投票比例)

3. 聚类清洗
   ├─ 对每个物体点云做 DBSCAN
   └─ 取最大簇,去除噪声点

关键设计决策: 保留桌面区域全密度点云

  • 当前 pipeline 在 Step 5 (数字孪生) 中使用 5mm 体素下采样
  • 对于物体级分割和配准,需要保留更高密度
  • 方案: 桌面 ROI 内不下采样,仅对远处背景下采样

输出:

outputs/step5_xxxx/
├── table_cloud.ply                # 桌面点云
├── objects/
│   ├── object_001_cup.ply         # 杯子点云 (标定坐标系)
│   ├── object_002_bottle.ply      # 瓶子点云
│   └── ...
├── object_labels.json             # 物体列表 + 标签
├── full_density_tabletop.ply      # 桌面上方全密度点云
└── visualization.ply              # 逐物体着色可视化

Step 6: SAM 3D 物体级 3DGS 生成 (待实现)

状态: 待实现 实现位置: tools/step6_generate_3d.py (新文件) 依赖: src/modules/sam3d_objects/generator.py (已有封装)

核心技术: SAM 3D (Meta, arXiv 2511.16624)

  • 输入: 单张 RGB 图像 + 前景 mask
  • 输出: 3D Gaussian Splatting (.ply) + Mesh (.glb) + 布局 (R, t, s)

算法流程:

对每个分割出的物体:
  1. 最佳视角选择
     ├─ 遍历所有关键帧
     ├─ 计算该物体 mask 面积、遮挡比例、视角角度
     └─ 选择面积最大 + 遮挡最少 + 最正面的帧

  2. SAM 3D 推理
     ├─ 输入: best_frame_image + object_mask
     ├─ SAM3DGenerator.generate(image, mask, seed=42)
     └─ 输出: GenerationResult
          ├─ gaussian_points (高斯中心坐标)
          ├─ mesh_vertices, mesh_faces, mesh_colors
          ├─ rotation, translation, scale (归一化布局)
          └─ (原始 3DGS .ply 可通过 output["gs"].save() 导出)

  3. 保存
     ├─ 3DGS: object_xxx.ply (完整高斯属性)
     ├─ 网格: object_xxx.glb
     └─ 布局: object_xxx_layout.json (R, t, s)

SAM3DGenerator 已有实现: src/modules/sam3d_objects/generator.py

  • 自动查找 sam3d-objects 代码路径
  • 支持 checkpoint 加载与显存管理
  • 输出 GenerationResult 含 mesh + gaussian + 布局信息

输出:

outputs/step6_xxxx/
├── object_001_cup/
│   ├── gaussian.ply        # 完整 3DGS (含 SH、协方差等)
│   ├── mesh.glb            # 网格模型
│   ├── layout.json         # 布局: R, t, s (归一化坐标系)
│   └── preview.png         # 多视角渲染预览
├── object_002_bottle/
│   └── ...
└── generation_summary.json # 生成统计

Step 7: 3DGS 尺度/姿态校正 (待实现)

状态: 待实现 (核心创新) 实现位置: tools/step7_register_3dgs.py (新文件)

问题定义: SAM 3D 输出的 3DGS 模型存在:

  1. 无物理尺度: 模型在归一化坐标系,没有真实尺寸
  2. 无绝对位置: 不知道在桌面上的具体位置
  3. 姿态偏差: SAM 3D 预测的姿态可能不准

需要将其配准到 Step 4 标定后的机器人基座坐标系。

方案 A: 基于点云的 Sim3 ICP 配准 (主推)

对每个物体:
  1. SAM 3D 高斯中心 → 采样点云
     sam3d_pc = extract_gaussian_centers(gaussian.ply)  # 或概率采样

  2. PCA 粗对齐
     T_pca = align_principal_axes(sam3d_pc, calibrated_object_pc)

  3. Sim3 ICP 精配准 (同时求解 R, t, s)
     T_sim3, s = sim3_icp(sam3d_pc_aligned, calibrated_object_pc)

  4. 应用到全部高斯参数
     对每个高斯 g:
       g.center = s * R @ g.center + t
       g.covariance = s² * R @ g.covariance @ R^T
       # SH 系数需旋转 (参考 GaussReg)

  5. 质量评估
     chamfer_dist = chamfer(transformed_sam3d_pc, calibrated_object_pc)

方案 B: 基于 2D 重投影的优化 (备选)

当 3D 点云过于稀疏时,利用 2D 掩码约束:

对每个物体:
  优化目标: max Σ_i IoU(render_silhouette(3DGS, cam_i), mask_i)
  参数: [tx, ty, tz, rx, ry, rz, scale]
  方法: 可微渲染 + 梯度下降

方案 C: 联合优化 (最佳,但复杂度高)

Loss = λ_1 * L_chamfer(3DGS_pc, calibrated_pc)
     + λ_2 * L_render(render(3DGS, cam_i), real_image_i)
     + λ_3 * L_silhouette(render_mask(3DGS, cam_i), object_mask_i)

参考 GaussReg (ECCV'24) 的粗到精策略: 先用方案 A 粗对齐,再用可微渲染做精调。

预期精度:

配准方法 预期位置误差 预期尺度误差 适用场景
Sim3 ICP (方案 A) 1-3 cm <5% 点云质量好
2D 重投影 (方案 B) 2-5 cm 5-10% 点云稀疏
联合优化 (方案 C) <1 cm <3% 充足计算资源
仅 SAM 3D 布局 (无校正) >10 cm >20% 基线对照

输出:

outputs/step7_xxxx/
├── object_001_cup/
│   ├── calibrated_gaussian.ply     # 校正后 3DGS (标定坐标系)
│   ├─  calibrated_mesh.glb          # 校正后网格
│   ├── registration_result.json    # 配准参数: R, t, s, chamfer
│   └── comparison.png              # 配准前后对比可视化
├── object_002_bottle/
│   └── ...
├── scene_assembly.ply              # 全场景 3DGS 组装可视化
└── registration_summary.json       # 全部物体配准统计

Step 8: 仿真组装 + 碰撞避让 (待实现)

状态: 待实现 实现位置: tools/step8_sim_assembly.py (新文件)

核心目标: 将校正后的物体级 3DGS 资产组装为仿真就绪数字孪生,并集成碰撞避让。

8.1 3DGS → 碰撞网格提取

SAM 3D 输出的 3DGS 需要转换为碰撞网格用于物理仿真:

对每个物体的校正后 3DGS:
  方法 1: 直接使用 SAM 3D 输出的 mesh (.glb)
    优点: 简单直接
    缺点: SAM 3D 网格面数可能过多

  方法 2: 3DGS → 稠密点云 → Poisson 表面重建
    参考: 3DGS-to-PC (ICCVW'25)
    优点: 更光滑的碰撞表面
    缺点: 额外计算步骤

  方法 3: TSDF 体素化 → Marching Cubes
    参考: FGGS-LiDAR
    优点: 保证水密性
    缺点: 分辨率有损

建议: 方法 1 为默认,方法 2 作为高质量选项。

8.2 场景组装

数字孪生场景 = {
  robot:   URDF 模型 (已知)
  table:   RANSAC 桌面 → 碰撞长方体
  objects: [
    {name: "cup",    3dgs: calibrated_gaussian.ply, collision: mesh.obj},
    {name: "bottle", 3dgs: calibrated_gaussian.ply, collision: mesh.obj},
    ...
  ]
  scale:   来自 Step 4 标定
  frame:   机器人基座坐标系
}

8.3 仿真器集成

主推: DISCOVERSE (IROS 2025 oral)

  • 3DGS + MuJoCo 统一框架
  • 650 FPS (5 相机 640x480 RGB-D)
  • 开源,支持 ROS 插件

备选: GSWorld

  • GSDF 格式: Gaussian-on-Mesh + URDF
  • 专注机器人操控
  • 支持零样本 sim-to-real

备选: ManiSkill3 + 自定义 3DGS 渲染

  • 无原生 3DGS 支持,但 SAPIEN 渲染可扩展
  • 已有丰富任务库

8.4 碰撞避让

离线轨迹优化: cuRobo

  • NVIDIA GPU 加速运动规划
  • 60x 快于传统轨迹优化
  • 支持网格、体素、nvblox 碰撞世界
  • 成功率 99.85%,平均规划时间 ~39ms

在线反应式安全: CBF (Control Barrier Function)

  • 参考 SAFER-Splat (ICRA'25): 15Hz 实时避障
  • 参考 Collision Cone CBF (2025): 将每个 3D 高斯转换为闭式碰撞锥
    • 直接在 3DGS 表示上做碰撞检测,无需转网格
    • 嵌入二次规划 (QP) 做反应式控制
    • 比距离式 CBF 快 3x,更平滑

混合策略 (建议):

1. cuRobo 离线规划 → 全局轨迹 (碰撞安全)
2. CBF 在线滤波 → 实时安全约束 (处理扰动)
3. 3DGS 碰撞表示 → 碰撞锥 CBF (无需网格转换)

输出:

outputs/step8_xxxx/
├── scene.gsdf                    # GSDF 场景描述 (GSWorld 格式)
├── scene_discoverse/             # DISCOVERSE 场景配置
│   ├── scene.xml                 # MuJoCo MJCF
│   └── assets/                   # 3DGS + 碰撞网格
├── collision_meshes/
│   ├── table.obj
│   ├── object_001_cup.obj
│   └── ...
├── motion_plan/
│   ├── trajectory.json           # cuRobo 规划轨迹
│   └── plan_result.json          # 规划统计
└── visualization/
    ├── digital_twin_overview.png
    └── trajectory_animation.mp4

4. 环境配置与 Checkpoint 下载

必要依赖

基础环境

conda create -n semiff python=3.10
conda activate semiff
pip install torch==2.5.1 torchvision --index-url https://download.pytorch.org/whl/cu121

SAM3D Pipeline 依赖

pip install segment-anything transformers>=4.40 trimesh open3d
pip install pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py311_cu121_pyt251/download.html
pip install spconv-cu120

仿真器依赖 (新增)

# DISCOVERSE
git clone https://github.com/TATP-233/DISCOVERSE && pip install -e ./DISCOVERSE

# cuRobo
pip install curobo

# GSWorld (备选)
git clone https://github.com/luccachiang/GSWorld

Checkpoint 下载清单

模型 下载地址 目标路径 大小
GroundingDINO GitHub ckpt/groundingdino_swinb_cogcoor.pth ~700MB
SAM2 GitHub ckpt/sam2/ ~2.5GB
SAM 3D HuggingFace ckpt/sam3d/ ~4GB
MASt3R HuggingFace checkpoints/MASt3R_ViTLarge_*.pth ~1.5GB
RAM Plus HuggingFace ckpt/ram_plus_swin_large_14m.pth ~2GB

5. NeurIPS 2026 论文规划

论文定位

标题: "从手机视频到仿真就绪数字孪生:基于 URDF 几何锚定的物体级 3DGS 资产校正与碰撞感知规划"

核心贡献:

  1. 首个端到端管线: 从手机视频自动生成物体级 3DGS 数字孪生 + 碰撞避让,无需 RGB-D、标定板
  2. URDF 几何锚定: 利用机器人 URDF 同时恢复场景绝对尺度并校正 SAM 3D 生成模型的尺度/姿态
  3. 3DGS 仿真闭环验证: 校正后的 3DGS 资产可直接用于仿真器中的 sim-to-real 碰撞避让

与竞品对比

                标定层           物体表征层           仿真/规划层
                ────            ────               ────
Splat-MOVER:   (假设已标定)    → 3DGS+语义+可供性 → 多阶段抓取操控
SyncTwin:      绿色方块尺度    → 点云+mesh+记忆库  → cuRobo碰撞规划
RL-GSBridge:   (不做标定)      → mesh-3DGS         → RL策略sim2real
HoloScene:     (无机器人)      → 场景图+3DGS       → 交互式仿真
GSWorld:       ArUco+ICP       → GSDF (GS+Mesh)   → 零样本sim2real
Real-is-Sim:   (需已知TF)      → Embodied Gaussian → 60Hz策略同步

Ours:          URDF锚定标定    → 校正后物体3DGS    → cuRobo+CBF避碰
                ↑                 ↑                    ↑
              自动,纯RGB      生成式+几何校正       仿真闭环验证

我们填补的空白: 上述方法中没有一个能同时满足 "纯单目 RGB + 无标定物 + 物体级 3DGS 生成 + 尺度校正 + 仿真碰撞避让"。

实验设计

实验 指标 对照方法
标定精度 R_err (°), T_err (mm), Scale_err (%) EasyHeC++, Kalib, JCR
3DGS 质量 Chamfer (mm), PSNR, LPIPS 未校正 SAM 3D, 仅 ICP mesh
物体定位 位置误差 (cm), 姿态误差 (°) 仅 SAM 3D 布局, RANSAC 基线
仿真避碰 成功率 (%), 碰撞率 (%), 规划时间 无碰撞模型, 点云碰撞, GT mesh
消融实验 各指标 w/o URDF, w/o SAM3D, w/o 3DGS 校正
运行时间 端到端秒数 各步骤分解

时间线 (~10 周)

周次 日期 任务
1-2 02.24 - 03.09 精读 P0 论文; 实现 Step 5 (物体级点云分割)
3-4 03.10 - 03.23 实现 Step 6 (SAM3D 生成); 搭建 DISCOVERSE/GSWorld
5-6 03.24 - 04.06 实现 Step 7 (3DGS 配准); 集成 cuRobo
7-8 04.07 - 04.20 Step 8 (仿真组装); 运行实验; 收集结果
9 04.21 - 04.27 撰写论文; 制作图表
10 04.28 - 05.07 完善摘要 + 论文; 提交

6. 已知限制与未来工作

当前限制

  1. SAM 3D 生成精度有限: 背面几何为"幻觉补全",不适合精密操作
  2. 遮挡处理: 严重遮挡的物体无法准确分割和重建
  3. 计算成本: 完整 pipeline 需要 >24GB VRAM GPU
  4. 静态场景假设: 当前方案假设拍摄期间场景静止
  5. 碰撞近似: 3DGS → 网格的转换存在几何损失

未来工作

  • 增量式在线重建 (参考 MASt3R-SLAM)
  • 多机械臂协作场景
  • 可变形物体的 3DGS 操控 (参考 Splatting Physical Scenes)
  • 直接在 3DGS 上做物理仿真 (无需网格转换)
  • Sim-to-real 策略迁移验证

7. 快速开始

完整 Pipeline 运行

# Step 1-4: 视频预处理 + 点云分割 + URDF 配准
python run_pipeline.py \
    --video data/example_01/video.mp4 \
    --urdf data/example_01/robot_2/rm75_ag2f90c.urdf \
    --joints data/example_01/robot_2/joints_config.json

# Step 5: 物体级点云分割 (待实现)
python tools/step5_object_segment.py \
    --step4-dir outputs/.../step4_xxx \
    --step1-dir outputs/.../step1_xxx

# Step 6: SAM 3D 物体生成 (待实现)
python tools/step6_generate_3d.py \
    --step5-dir outputs/.../step5_xxx

# Step 7: 3DGS 配准 (待实现)
python tools/step7_register_3dgs.py \
    --step5-dir outputs/.../step5_xxx \
    --step6-dir outputs/.../step6_xxx

# Step 8: 仿真组装 + 碰撞避让 (待实现)
python tools/step8_sim_assembly.py \
    --step7-dir outputs/.../step7_xxx \
    --urdf data/example_01/robot_2/rm75_ag2f90c.urdf

参考文献

核心模型

  1. MASt3R - 多视角稠密三维重建
  2. SAM 2 - 视频分割与追踪
  3. SAM 3D - 单图三维物体生成 (arXiv:2511.16624)
  4. GroundingDINO - 开放词汇检测

3DGS 配准与操控

  1. GaussReg - 3DGS 配准 (ECCV'24, arXiv:2407.05254)
  2. SIREN - 语义 3DGS 地图配准 (arXiv:2502.06519)
  3. 3DGS-to-PC - 3DGS → 稠密点云转换

仿真与数字孪生

  1. DISCOVERSE - 3DGS + MuJoCo 仿真 (IROS'25)
  2. GSWorld - GSDF 格式仿真 (arXiv:2510.20813)
  3. HoloScene - 视频→仿真就绪 3D (NeurIPS'25)
  4. Real-is-Sim - 动态数字孪生 (arXiv:2504.03597)

碰撞避让

  1. cuRobo - GPU 加速碰撞规划 (ICRA'23)
  2. SAFER-Splat - 3DGS CBF 避障 (ICRA'25)
  3. Collision Cone CBF on 3DGS (arXiv:2509.14421) - 解析碰撞锥避障

竞品

  1. Splat-MOVER - 可编辑 3DGS 操控 (CoRL'24)
  2. SyncTwin - RGB-D 数字孪生同步
  3. RL-GSBridge - 3DGS sim-to-real (ICRA'25)
  4. SplatSim - 3DGS 零样本 sim2real (ICRA'25)

辅助工具

  1. SAB3R - 语义增强 MASt3R (CVPR'25 WS)
  2. MASt3R-SLAM - 实时稠密 SLAM (CVPR'25)
  3. pytorch_kinematics - 可微前向运动学