RVT: Robotic View Transformer for 3D Object Manipulation

meta data

论文通读

方法

image

  • 输入输出:

    • 输入:语言描述、RGB-D 视觉状态、抓夹状态

    • 输出:下一个关键帧的 EE 位姿和状态

      关键帧主要是抓夹状态发生变化的时刻;因为一系列动作可以分解成 EE 的移动和抓夹状态的改变,而 EE 的移动一般可以通过底层规划层进行处理规划,因此(可能)关键帧需要反应抓夹的状态改变。

  • 数据集:有多个 demonstration 构成:D_i=(\{o_{1\cdots m_i}^i\},\{a_{1\cdots m_i}^i\},l_i),每个 demonstration 包括 观测、相应的行动和语言描述

  • 主要步骤:渲染、Joint Transformer(特征提取)、动作预测

Rendering 重新渲染(可以当作一种预处理手段)

  1. 将 RGB-D(s) 重构为整个场景的点云(基于相机内参和外参)

  2. 将点云重新分割(投影)成多个固定视角的点云(以及 RGB-D),每个视角包括 7 个通道:RGB、深度、(该视角的?)点云。由于不同视角的 RGB 和深度都是基于相机坐标系的,因此在各个视角加入点云通道可以帮助建立起不同视角之间的关系

    • 最佳的视角和投影方式:正视 + 正交相机(现实中并不存在?)

      image

  • 优点:

    • 将视觉输入和 Transformer 的输入进行解耦,使得实际相机的位姿可以变化(可以不用和训练时候一样),提高了泛化性
    • 可以自由定制最后输入的相机的视角(比如正交)

Joint Transformer 特征提取

  1. 特征嵌入

    • 自然语言:CLIP 进行嵌入,得到 tokens
    • 图像:分块后使用 MLP 进行嵌入,得到 tokens
    • 夹爪状态:使用 MLP 进行嵌入,得到 tokens,最后和图像的 tokens 进行连接(不知到是不是每张图都连接还是只连接哪一张;更倾向于每张图都连接)

    除此之外,对图像和语言都加入位置编码

  2. 特征提取

    使用 8 层自注意力层

    1. 前四层只处理每个视角的图像内部信息,不将所有图像的 tokens 连接起来处理(输入的 tokens 长度是?)
    2. 后四层将所有 tokens,即所有视角的图像和自然语言的 tokens 连接起来进行处理
  3. 后处理

    将提取完的特征恢复到原先的空间配置(比如图片的 C H W,只不过这时候的 C 可能就不是输入时候的 7 通道了,而是更多的通道)

Action Prediction 动作预测

  • 输出:3-DoF 的 EE 平动 + 3-DoF 的 EE 转动 + 1-DoF 的夹爪的状态 + 1 是否允许碰撞的标志位

  • 平动的预测

    将提取到的特征图经过 MLP 得到多个视角的热力图,将热力图投影到空间的 3D 体素上,得到每个体素的分数,最高的得分即目标位置

  • 其他输出的预测

    基于全局特征 G 进行预测,其包括两个部分相连接

    1. 各个特征图在空间位置上的加权求和,权重为上一步得到的热力图,将得到的加权特征进行连接
    2. 各个特征图在空间维度上进行最大池化,并连接得到的特征

    具体怎么预测的呢??MLP??

损失函数

混合损失函数

  • 对于热力图部分,采用交叉熵损失,GT 热力图为 GT 空间点投影到各个平面上的的高斯分布热力图
  • 对于转动部分,对每个欧拉角采用交叉熵损失
  • 对于夹爪状态和碰撞标志使用二分类损失(这是个什么损失?)

  • 算法
    428 引用 • 254 回帖 • 24 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...