Any Grasp
Paper
Introduce
弥合机器人与人类对于抓取的感知的差距, 结合物体center of gravity(COG)重心感知
问题: 缺少数据集; 解决: 仍然使用真实世界数据(而不是Sim2Real), 使用静态场景
Related Work
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
使用几何处理模块, 直接感知场景的单视角点云, 并在的空间中判断抓取质量
将整个场景输入:
- 使用卷积网络, 能够同时考虑相邻区域的几何结构
- 通过找中心的方法拟合重心, 考虑COG以提高稳定性
- 考虑障碍物避免碰撞
Temporal-Continuous Learning
为了grasp平稳且一致的移动, 需要两帧之间的grasp pose有较小的SE(3) distance
Methods and Materials
data collision
主要使用GraspNet-1B的训练集, 额外添加三个标签.
- 添加0.5cm的抓取深度
- 定义稳定性分数: 抓手平面与COG之间的归一化垂直距离. 该分数越低, 表示抓取更稳定, 抗干扰性越强. 由于无法通过视觉计算COG, 因此假设中心就是重心
- 将两帧的object关联, 保证时间一致性. 其中和是转换后相同坐标系(如, target object坐标系)下的grasp pose. 因此定义两个pose的距离:
Grasp Perception Model Details
Geometry processing module
基于GSNet
- 输入点云, 使用3D-Conv提取features
- 使用MLP生成object mask和指示可抓取概率的heatmap
- 执行Graspable FPS(可抓取最远端采样, Graspable Farthest Point Sampling): 根据object mask和heatmap, 从场景中采样个seed point
- 使用MLP生成300个view score, 给Graspable PVS(可抓取概率视图, Graspable Probabilistic View Selection), 选择抓取的view
- Cylinder Grouping圆柱体分组模块沿该view对object的局部几何特征进行分组
- 使用MLP对每个分组预测48个grasp pose的grasp score, 这些pose由12个in-plane的旋转和4个approach depth和48个grasp width组成
inference时, 将原始分数作为最终分数, 保证稳定性
Temporal association module
为每个Pose构建特征向量
- 给定输入点云, Geometry processing module返回个seed point. 同时, 返回在前几层计算获得的features
- 使用cylinder grouping的方法对RGB信息分组, 其中输入的seed features被替换成RGB信息. 对于每一个seed point, cylinder分成个点, 因此最终有的shape
- 使用MLP forward+Pooling, 得到color feature
- 将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处于中间