TinyVLA: Toward Fast, Data-Efficient Vision-Language-Action Models for Robotic Manipulation
我要看这篇文章能否复现
论文
实验
- 模拟基准测试:我们在 MetaWorld 上评估我们的方法。MetaWorld [36] 中的 50 个任务可以分为多个级别 [37],即简单、中等、困难和非常困难。
- 真实的机器人设置:TinyVLA 既在使用使用 Franka Panda 7Dof 机器人手臂的单臂设置上进行评估,也可以在使用两个 UR5 机械臂的双手动设置上进行评估,如图 3 所示。单臂场景通过固定在机器人两侧的两个外部 ZED 2 立体摄像头感知。双手动机器人的场景由手腕上的两个摄像头捕捉,顶部还有一个额外的摄像头。这些相机是 Realsense D435i。
- 任务:在单臂设置中,有五个任务:1) 关闭抽屉 (CloseDrawer),2) 将粉红色立方体堆叠在蓝色立方体的顶部 (StackCubes),3) 打开盒子的盖子 (OpenBox),4) 将网球放入球盒,以及 5) 直立翻倒的杯子 (FlipMug)。在双手动人实验中,我们设置了三个涉及两只手臂合作的任务:1) 将面包转移到盘子上 (TransferBread),2) 拉开袋子的拉链并将网球放入其中 (PlaceTennisBag),以及 3) 将立方体堆叠在盘子上 (StackCubes)。值得注意的是,任务的动作空间差异很大。例如,翻转杯需要机器人进行大范围的旋转才能将夹持器横向插入杯中,这与堆垛立方体完全不同,后者是拾取和放置型的。跨度同一任务中不同轨迹的长度也明显不同,例如,堆栈立方体轨迹的长度范围为 100 到 300。这为 TinyVLA 在学习执行这些任务方面带来了更多挑战。
- 数据收集:我们通过远程作收集数据集。我们记录来自两个摄像头视图的 RGB 流和机器人状态,例如整个机器人控制过程中的关节位置。我们将机器人夹持器的宽度记录为 0 到 1 之间的值,其中 0 表示完全关闭,1 表示完全打开。TinyVLA 预测 7 维动作,包括位置 (x, y, z)、旋转 (roll, pitch, yaw) 和 (gripper_width)。对于所有任务,除了 remove the lid of the box 任务外,我们不会添加额外的干扰项,以便更好地评估模型对干扰项的泛化能力。我们总共为每个任务收集了 100 个轨迹,以平衡所有 5 个任务之间的数据分布。
可以看出来实验的train data需要自己收集,包括RGB 流和机器人状态,输出预测的7维动作
freejoint的qpos一共有七个数,其中,qpos[0~2]是freejoint自身坐标系原点在世界坐标系的位置,qpos[3~6]是自身坐标系相对于世界坐标系的四元数;qvel一共有六个数,其中,qvel[0~2]是freejoint速度在世界坐标系下的表示,而qvel[3~5]是freejoint角速度在自身坐标系下的表示
实验
- 按照tinavla
github readme的install安装,conda创建
tinyvla
环境 - data preparation
rlds_to_h5py.py
将rlds的数据转换为h5py,rlds数据是它给的吗?然后h5py是要用的。这个py应该需要修改文件位置,cfg- 必须在
constants.py
中添加一个条目来指定数据的路径,不知道有什么路径可以填
- data需要自己找
- h5py格式,结构:
1
2
3
4
5
6
7
8
9
10
11
12# h5 data structure
root
|-action (100,10)
|-language_raw (1,)
|-observations
|-images # multi-view
|-left (100,480,640,3)
|-right (100,480,640,3)
|-wrist (100,480,640,3)
|-joint_positions (100,7)
|-qpos (100,7)
|-qvel (100,7) - 之前是rlds的也行
- 一定要aloha吗?因为aloha scripts。但是我现在不用训练,可以看别的,得搞清楚它这个模型的输出是什么
- 仿真环境用的MetaWorld ,实验中做了单臂 Franka 和双手 UR5
- h5py格式,结构:
- data来源
- act++有没有可以用的示例data
- public_mobile_aloha_datasets
- 训练要收集的数据和维度对所有机器人都通用?
- 所以训练数据里面不包含物体的位置,quat等,只有机器人的。
- action,observation的qpos,vel,joint_positions是什么,为什么是这个维度?可以看act++
- The bimanual actions are formulated as target joint positions aarms ∈ R14 which includes two continuous gripper actions, and the base actions are formulated as target base linear and angular velocities abase ∈ R2.
- oi is the observation consisting of two wrist camera RGB observations, one egocentric top camera RGB observation mounted between the arms, and joint positions of the arms, and L is the imitation loss function.
- action里面是目标的关节位置,qpos是实时关节位置
- 那action和qpos咋收集的:act++这篇里面用模仿学习,真人手和实际机械臂运动带来的差异
- 什么平台,能不能把数据转换成genesis的世界坐标表示?
- open-source
- eval_real_franka的pred_action为什么是10维,不管,反正最后合成6D位姿+夹爪
aloha执行动作
- aloha双机械臂模型
- act++的assets,但是不知道show哪个比较好,好了这么复杂的xml genesis还没能显示