P-AnyGrasp-2023:空间+时序鲁棒的工业级抓取感知(GraspNet 团队商业化版)
作者 / 机构:Hao-Shu Fang, Chenxi Wang, Hongjie Fang, Minghao Gou, Jirong Liu, Hengxu Yan, Wenhai Liu, Yichen Xie, Cewu Lu(上海交通大学 MVIG / John Hopcroft Center)
发表:IEEE Transactions on Robotics(T-RO)2023(arXiv:2212.08333v2,"AnyGrasp: Robust and Efficient Grasp Perception in Spatial and Temporal Domains");后续扩展为商用 SDK(Anygrasp SDK / ROS 服务)
代码/产品:github.com/graspnet/anygrasp_sdk(核心权重闭源,提供 pip/ROS 接口)· 项目页:https://graspnet.net/anygrasp.html
在线索中的位置:T14 · 抓取 的工业化节点——GraspNet-1Billion 学术线(2020)的延续;spatial+temporal 鲁棒,是当前最成熟的开源抓取感知系统之一。
一句话定位:把 GraspNet baseline 从「单帧判别 + 学术 benchmark」推进到「空间+时序双重连续、真机数据训练、真机部署」的抓取系统——给单帧点云一次性输出稠密 7-DoF 抓取,再跨帧做 grasp 对应跟踪,在 300+ 未见物体上达到 93.3% 清框成功率(比肩人类受试者)。
动机
GraspNet-1Billion(2020)建立了 6-DoF 抓取基准,但其谱系的前作留下三个未解工程问题:
- sampling-evaluation 范式稀疏且慢:先在点云上采候选、再用网络逐个评分,计算成本与候选密度互相制约;不能在单次前向里给出场景的稠密抓取预测。
- 只考虑静态场景:动态抓取(移动相机 / 移动物体)的 grasp 时序一致性问题基本未被学习式方法覆盖。
- 仿真训练的 sim-real gap:用仿真深度(完美 partial-view)训练的模型,在低成本商用深度相机(如 RealSense D435,±5mm 噪声)下性能明显下降。
AnyGrasp 要回答:能不能用真机数据训练 + 空间-时序统一建模,做一个在真机乱堆场景下比肩人类的抓取感知系统?
方法核心
抓取表示与问题定义
平行夹爪的抓取表示为 $G = [R, t, w]$:方向 $R \in \mathbb{R}^{3\times3}$、中心 $t \in \mathbb{R}^{3}$、夹爪宽度 $w \in \mathbb{R}$,即 7-DoF 抓取配置(6-DoF 位姿 + 1-DoF 宽度)。静态问题是在场景中找一组抓取 $G^*=\{G_1^*,\dots,G_n^*\}$ 最大化成功率;引入时序后,额外要求相邻两帧对同一物体的 grasp 在物体坐标系下 SE(3) 距离小于容差 $\delta$(公式 2-3)。
Spatial-Continuous Learning:Geometry Processing Module
核心思路:不用「采样 → 评分」两阶段,而是单次前向直接对整场景输出稠密 7-DoF 抓取。模块基于团队前作 GSNet(同样的 GraspNet 谱系),结构为:
- 3D 卷积 backbone 对输入点云逐点提特征(非稀疏卷积、非 transformer);
- MLP 输出 objectness mask + graspable probability heatmap;
- Graspable FPS 按可抓性采样 $M=1024$ 个 seed point;
- 每个 seed 经 Graspable PVS 在 300 个 view 中选最可抓视角,再展开 12 in-plane rotation × 4 approach depth × 4 width 的候选;
- Cylinder Grouping 在 seed 周围圆柱邻域内汇聚特征,回归出 grasp point / view / in-plane rotation / approach depth / width 五项参数。
把整场景作为输入带来两个额外能力:(i) 稳定分数——预测夹爪平面到物体质心(COG)的归一化垂直距离,距离越小、重力矩越平衡、抗扰动越强;(ii) 隐式碰撞检测——若 grasp 周围无夹爪预成形空间,直接把分数置零,省掉显式碰撞检查。
Temporal-Continuous Learning:Temporal Association Module
核心创新:不是「多帧点云拼到世界坐标系」,而是跨两帧的 grasp 对应跟踪。Geometry Processing Module 对每帧生成 $M$ 个 grasp 各一个 $C$ 维特征向量 $f$;对两帧间的任一 grasp 对 $(G_1, G_2)$,用余弦相似度 $f_1\cdot f_2$ 构成 $M\times M$ 的对应矩阵。训练目标是:在物体坐标系下 SE(3) 距离越小的 grasp 对、特征余弦相似度越高(监督式对比学习,距离度量见公式 4-5,$w_{\max}=0.01$ m,$\gamma=0.1$)。
$$d(G_1,G_2) = \frac{\Delta t}{w_{\max}} + \gamma\frac{\Delta R}{\pi},\quad \Delta R=\arccos\frac{\text{trace}(R_1^\top R_2)-1}{2}$$
由于 spatial 模块本身就是稠密的,对应矩阵可以在选中目标周围产生密集、时序一致的候选,支持动态抓取(机器人持续 servoing 到不断更新的目标位姿)。关联标签从 GraspNet-1Billion 每个 scene 的 256 个相邻视角对自动生成——相邻视角的细微差异模拟了物体微动。
Dense Supervision Strategy:坚持真机数据
不用仿真:用 GraspNet-1Billion 训练集(同团队 2020)+ 团队自采的 168 个新场景 / 104 个新物体,合计 268 场景、144 个真实物体。每个场景用商业 3D 扫描仪获取网格、解析 antipodal 评分算稠密 grasp、再投影到 256 个视角的真机深度图。除原 4 个 approach depth(1/2/3/4 cm)外加 0.5 cm 档以抓小物体;并额外标 stable score(COG 距离)和 grasp association label。论文用对照实验显示:在 GraspNet-1Billion 测试集上,真机数据训练反而优于仿真数据训练(即便仿真+高斯噪声增强),且测试集越难(novel scene)差距越大——这是 AnyGrasp 坚持真机数据的实证依据。
# AnyGrasp 推理伪代码
P_t = depth_to_pointcloud(rgb, xyz) # 单视角点云
seeds = GraspableFPS(backbone_3Dconv(P_t), M=1024)
grasps, features = CylinderGrouping(seeds) # 稠密 7-DoF + 每个 grasp 的 C 维特征
if dynamic:
corr = cosine_similarity(features, prev_features) # M×M 对应矩阵
target = track(prev_target, corr) # 时序对应到上一帧目标
实验结果(真机为主)
- 300+ 未见物体清框:在 Hardware / Snack / Ragdoll / Toy / Household 五类共 300+ 物体上,attempt-centric 成功率 93.3%(平均),completion rate 99.8% 以上,比肩人类受试者用同夹爪的开环表现;对比 DexNet 4.0 显著领先。
- 吞吐:单臂(末端 1 m/s、Robotiq 夹爪)900+ MPPH(mean-picks-per-hour),是前 SOTA [7] 双臂 300 MPPH 的 3×(人类最大速度约 1,000-1,200 MPPH)。
- 深度噪声鲁棒:在 Intel D435(±5mm 偏差) vs D435/D415 对比下成功率稳定,归功于真机数据训练。
- 动态抓取:在水池里追捕机器鱼(8 条/轮 × 5 轮),平均成功率 75.5%;水中低摩擦 + 鱼体小 + 持续运动 + 水下点云噪声,是已发表 grasp 检测方法少有演示的场景。
- 对抗物体集:DexNet 2.0 的 13 个对抗物体 + EGAD 49 个评测物体上对比前作 [7] 全面提升。
- 推理速度:100 ms / 帧。
为什么重要
- 真机数据训练的胜利:用仅 144 个真实物体训出的模型,在 300+ 未见物体上比肩人类,且优于仿真训练——直接反驳「抓取必须靠海量仿真数据」的惯例。
- 空间-时序统一:把 grasp detection 从单帧静态推进到跨帧对应跟踪,让动态抓取(移动相机、移动物体)变成可学习问题,是 grasping 工业化的关键一步。
- 工业级可部署:93.3% / 900+ MPPH 把学术 benchmark 推到「pip install 即用」的工程系统。许多 manipulation pipeline(机械臂自动拣选 demo、人形 manipulation 抓取前端)直接接 AnyGrasp 出抓取姿态,省掉自训抓取模型。
- 跨平台:SDK 提供 Python / ROS 接口,社区适配 Franka、UR、Unitree H1/G1 等主流机械臂/人形。
- 「抓取即基础设施」范式:让抓取从「每个项目重训一次」变成「调一个 API」——和 OpenX/GR00T 之于 VLA 类似,是抓取的基础设施化。
局限
- 核心权重闭源:SDK 免费但模型权重不公开,学术上不能 fine-tune,只能当黑盒用。学术要自己改抓取模型仍要回 GraspNet baseline 或 DexGraspNet。
- 只支持 parallel-jaw:论文明确只做两指平行夹爪;灵巧手抓取要换 DexGraspNet。论文结论里把灵巧手列为 future work。
- 不闭环:失败会在同一物体上重复尝试,不利用失败反馈;论文 future work 段提到要做 closed-loop grasp。
- 不输出抓取分布:只输出 top-N 排序候选(判别式),不输出 SE(3) 概率分布。Diffusion-EDMF / SE(3)-DiffusionFields 在多对称解场景更强。
- 依赖点云质量:透明物、反光物上点云本身退化,AnyGrasp 无能为力(D435 深度偏差已是它能容忍的极限)。
工业应用(2024-2026)
- 物流拣选:仓库乱堆物体的自动拣选,AnyGrasp + Franka/UR 机械臂是事实标准 demo。
- 人形 manipulation 前端:Unitree H1/G1 + AnyGrasp 出抓取姿态 → IK/MPC 执行 → 灵巧手 RL policy 做后续精细动作(T14+T11 经典组合)。
- 家庭服务机器人:部分国产服务机器人用 AnyGrasp 做日常抓取。
- 教学/科研 baseline:抓取相关 paper 默认报「AnyGrasp 作为基线」对比新方法,是事实 SOTA 基线。
复现要点
- 复现门槛:⭐(pip 一行装,免费学术 license)
- 安装:
pip install anygrasp,申请免费学术 license(官方邮箱)。 - 输入:对齐点云(相机坐标系或世界坐标系,单位 m)+ 可选相机内参。
- 输出:top-N 7-DoF 抓取候选(position + rotation matrix + width + score)。
- 关键坑:① 点云要预先去 NaN、降采样(否则显存爆);② 真机要做手眼标定(eye-in-hand / eye-to-hand);③ AnyGrasp 出的是夹爪位姿,要再接 IK / motion planner(MoveIt / cuRobo)才能执行;④ 动态抓取要维护 temporal buffer,跨帧对应矩阵对相似相邻物体(如两条同样的鱼)会出现 correspondence switch。
相关
- 建立在:GraspNet-1Billion(同团队 2020,数据 + 评估)、GSNet(同团队前作,geometry processing 模块直接沿用)、PointNet++/3D 卷积 backbone。
- 同期/后续抓取:
- SE(3)-DiffusionFields [Urain 2022, CoRL, arxiv:2209.03855]——生成式抓取,互补。
- Diffusion-EDMF [2023]——diffusion + GraspNet 数据。
- DexGraspNet [Wang 2023, ICRA, arxiv:2210.02697]——灵巧手版本,同团队。
- FoundationPose [Wen 2023, CVPR 2024]——6-DoF pose + 抓取联动。
- 本仓库线索:T14 抓取 工业化节点、T11 灵巧操作(AnyGrasp 出姿态 → 灵巧手 policy 做后续)、T02 数据集。
- 本仓库笔记:P-GraspNet-2020.md(前作学术 benchmark)、P-DexPilot-2019.md(早期抓取遥控)。