Any Grasp

Introduce

弥合机器人与人类对于抓取的感知的差距, 结合物体center of gravity(COG)重心感知

问题: 缺少数据集; 解决: 仍然使用真实世界数据(而不是Sim2Real), 使用静态场景

Grasp Pose Detection

通常在完整的笛卡尔空间内. 早期 假设物体有完整的2D/3D知识, 或者将物体近似为一组原始形状. 后期使用在点云上进行采样, 然后使用神经网络评估抓取效果.

但是上述是在静态场景. 提出generation-associate的抓取方法

Continuous Action Learning for Grasping

直接将observation映射到action space(不是本文的内容, 偏向pi0,RT-1,RT-2,RDT-1B等, 传统的 VLA 也是类似)

Training Data for 6-DoF Grasping

144 object组成的数据集

AnyGrasp Design Principles

定义抓取姿势为 , 其中表示gripper orientation, 表示抓取重心, 表示抓取target需要的最小gripper宽度

定义抓取成功的指示变量为 , 其中是环境信息, 是摄像机观测转换的点云, 表示在环境下观测到点云, 使用的欻去成功的概率

引入时间维度, 定义表示 在target坐标系中, 成对的两个grasp pose在两个时刻的距离

目标: 找到一组抓取, 最大化成功的概率:

其中是误差容差

Spatial-Continuous Learning

使用几何处理模块, 直接感知场景的单视角点云, 并在的空间中判断抓取质量

将整个场景输入:

  1. 使用卷积网络, 能够同时考虑相邻区域的几何结构
  2. 通过找中心的方法拟合重心, 考虑COG以提高稳定性
  3. 考虑障碍物避免碰撞

Temporal-Continuous Learning

为了grasp平稳且一致的移动, 需要两帧之间的grasp pose有较小的SE(3) distance

Methods and Materials

data collision

主要使用GraspNet-1B的训练集, 额外添加三个标签.

  1. 添加0.5cm的抓取深度
  2. 定义稳定性分数: 抓手平面与COG之间的归一化垂直距离. 该分数越低, 表示抓取更稳定, 抗干扰性越强. 由于无法通过视觉计算COG, 因此假设中心就是重心
  3. 将两帧的object关联, 保证时间一致性. 其中是转换后相同坐标系(如, target object坐标系)下的grasp pose. 因此定义两个pose的距离:

Grasp Perception Model Details

Geometry processing module

几何处理模块

基于GSNet

  1. 输入点云, 使用3D-Conv提取features
  2. 使用MLP生成object mask和指示可抓取概率的heatmap
  3. 执行Graspable FPS(可抓取最远端采样, Graspable Farthest Point Sampling): 根据object mask和heatmap, 从场景中采样个seed point
  4. 使用MLP生成300个view score, 给Graspable PVS(可抓取概率视图, Graspable Probabilistic View Selection), 选择抓取的view
  5. Cylinder Grouping圆柱体分组模块沿该view对object的局部几何特征进行分组
  6. 使用MLP对每个分组预测48个grasp pose的grasp score, 这些pose由12个in-plane的旋转和4个approach depth和48个grasp width组成

inference时, 将原始分数作为最终分数, 保证稳定性

Temporal association module

为每个Pose构建特征向量

  1. 给定输入点云, Geometry processing module返回个seed point. 同时, 返回在前几层计算获得的features
  2. 使用cylinder grouping的方法对RGB信息分组, 其中输入的seed features被替换成RGB信息. 对于每一个seed point, cylinder分成个点, 因此最终有的shape
  3. 使用MLP forward+Pooling, 得到color feature
  4. 将color feature(刚刚获得的), seed feature, pose feature(GSNet中生成的), pose(GSNet最终结果)拼接, 给MLP, 生成大小的特征向量

计算相似分数

假设特征向量是, 抓取pose是, 那么correspondence score:

计算所有的, 得到矩阵

训练过程中, 将其作为Loss Function

inference时, 将计算得到的features vectors储存到temporal buffer, score matrix是通过当前的features和buffer中的features计算得到的. 因此如果想track某个确定向量, 那么把个向量的feature vectors和当前的seed的feature计算分数, 找到top- score的pose

Loss Function

其中,

Detection Post-processing

碰撞检测

网络会隐式学习碰撞检测, 但是没用硬性约束. 因此对前100个pose进行检测, 基于点云, 检查gripper所表示的方格内是否有点

gripper-centering process

防止两侧手指中的一根提前接触object, 导致将object推开.

计算两侧手指距离接触点的距离, 然后沿接触方向平移gripper, 使object处于中间