点击下方卡片,关注【Xbotics具身智能实验室】公众号
更多具身干货,欢迎加入(戳我)
👉具身智能学习资料汇总:https://github.com/Xbotics-Embodied-AI-club/Xbotics-Embodied-Guide
👉具身智能求职/实习信息汇总:https://github.com/Xbotics-Embodied-AI-club/Xbotics-Embodied-AI-Job
你想要的这里都有~~
第 1 课我们讲清楚了一件事:人形机器人正在进入端到端模型时代。
VLA 把视觉、语言和动作接成一条链,让机器人不只是“看见”和“听懂”,而是能根据画面和指令直接生成动作,真正动手完成任务。
但第 1 课也留下了一个最关键的问题:
模型再强,数据从哪来?
这就是第 2 课要解决的核心问题。
在这一课里,我们不再停留在“VLA 很厉害”“ACT 可以训练策略”“人形机器人可以做分拣”这些概念上,而是正式进入机器人学习最基础、也是最容易被低估的一环:数据采集与数据格式。
因为对机器人来说,数据不是一堆图片,也不是几段视频,而是一条条严格对齐的“观测 → 动作”记录。
机器人看到什么,下一步应该怎么动。
这才是模仿学习真正要学的东西。
一、机器人模仿学习,本质是在学“看到什么,该怎么做”
如果把机器人训练讲得简单一点,行为克隆就是让模型模仿人。
人做一遍任务,系统把整个过程录下来。之后模型反复学习这些记录,最终希望它在看到类似场景时,也能做出类似动作。
所以训练数据的本质,是成对的:
观测,也就是机器人当时看到了什么、身体处于什么状态;
动作,也就是这一刻应该执行什么控制指令。
这听起来很简单,但真正困难的是:动作标签从哪来?
如果让人手工标注每一帧机械臂该转多少度、夹爪该开多大、末端该移动到哪里,几乎是不可能的。一个 episode 可能几百帧,几十个 episode 就是上万帧。靠人工逐帧标注,既不现实,也不准确。
所以机器人数据采集的核心命题,其实只有一句话:
怎样让人只管把任务做一遍,观测和动作标签就能被系统自动配好对?
第 2 课,就是围绕这个问题展开。
二、不同数采方案,本质都在回答“动作标签从哪来”
机器人操作数据的采集方式很多,但本质上可以按动作标签来源分成几类。
第一类是真机本体示教。

比如手把手拖动机器人,或者使用同构主从臂。人的操作直接驱动机器人本体,机器人自己的关节读数就能成为动作标签。这种方式动作最精确,和真实机器人最贴近,但设备成本和采集成本也更高。
第二类是人类代理设备。

比如 UMI、FastUMI 这类手持末端执行器,或者数据手套、穿戴式设备。它们不一定直接操作机器人,而是先记录人的操作意图,再把这些动作重定向到机器人身上。这种方式更灵活,也更容易大规模采集,但需要解决人手动作到机器人动作之间的映射问题。
第三类是通用遥操作接口。

比如手柄、键盘、VR、AR。人通过通用输入设备控制机器人,系统把输入映射成机器人动作。它的优点是门槛低、适配广;缺点是操作精度和沉浸感取决于接口设计。 第四类是无机器人数据。
比如第一视角人类视频,或者世界模型生成的数据。这类数据规模潜力很大,但动作标签更弱,和真实机器人本体之间存在更大的差距。
第五类是仿真采集。
在 Isaac Sim 等仿真环境里,通过键盘、主臂、VR、脚本或策略 rollout 采集数据。这种方式成本低、速度快、可规模化,是很多机器人训练和比赛数据集的重要来源。
本次课程会重点落在两种最有代表性的方案上。
一个是 SO101 主从臂真机采集,用低成本硬件演示“人做一遍任务,数据自动配好对”。
另一个是 GHRC 官方仿真数据集,也就是 Walker S2 人形机器人在 Isaac Sim 中通过键盘遥操作采集出来的数据。
两者看起来设备不同,一个是真机,一个是仿真;一个是主从臂,一个是键盘控制。但它们最后采集出来的东西是一致的:
都是成对的观测和动作。
三、LeRobotDataset:把五花八门的数据统一起来

采集方式可以很多,但训练代码不能被各种设备格式绑死。
如果每换一种机器人、每换一种遥操作设备、每换一个数据来源,都要重写训练代码,那整个机器人学习链路就很难复用。
LeRobotDataset 的价值就在这里。
它把各种采集方式最终统一成一套标准数据格式,让下游训练代码不用关心数据到底是 SO101 采的、UMI 采的,还是 Walker S2 在仿真里采的。
在 LeRobot 的闭环里,数据集处在非常关键的位置。
往下,它是数据采集的结果。人通过遥操作完成任务,lerobot-record 把机器人每一帧的观测、动作、任务信息记录下来。
往上,它是策略训练的输入。ACT、π0、SmolVLA 等模型,都可以从 LeRobotDataset 中读取样本,计算 loss,训练策略。
所以可以把 LeRobotDataset 理解成机器人学习里的“数据中台”。
它负责把硬件、遥操作、视频、关节状态、动作标签、任务描述这些杂乱信息,整理成模型真正能吃进去的统一格式。
四、一个 episode,就是机器人完整做一遍任务
在 LeRobotDataset 里,一个非常重要的概念叫 episode。
一个 episode,就是机器人从任务开始到任务结束的一次完整记录。
比如让机械臂把一个方块放进篮子里,从初始状态开始,到抓取、移动、放下、任务完成,这整个过程就是一个 episode。
一个数据集,就是很多个 episode 的集合。
每个 episode 又由一帧一帧样本组成。每一帧大概包含四类信息:
第一类是 observation.images,也就是一路或多路相机图像。
第二类是 observation.state,也就是机器人本体状态,比如关节角度、夹爪状态,以及任务相关的环境状态。
第三类是 action,也就是这一帧应该执行的动作。
第四类是 task,也就是自然语言任务描述,比如 “Part Sorting”。
这就对应了模型训练时最核心的问题:
输入是什么?
输出是什么?
输入是图像、本体状态和任务描述;输出是机器人下一步动作。
模型要学习的,就是这个从 observation 到 action 的映射。
五、磁盘上怎么看 LeRobotDataset?
很多同学第一次拿到机器人数据集,会以为它就是一堆图片和表格。
但 LeRobotDataset 的组织方式更清晰,可以记成三大支柱:
data、videos、meta。

data 目录主要存低维高频信号,比如关节状态、动作、时间戳,一般是 Parquet 表格。
videos 目录存相机画面。每一路相机通常会被编码成 MP4 视频,而不是逐帧散落成一堆图片。
meta 目录存元数据,包括数据集 schema、统计量、任务表、episode 边界等。
一句话记住:
低维数据进 Parquet,相机画面进 MP4,说明书进 meta。
这套结构和采集方式无关。
不管是 SO101 主从臂真机采集,还是 Walker S2 在 Isaac Sim 里仿真采集,最后都要长成这套结构。只有这样,后面的训练代码才能统一读取和训练。
六、SO101 主从臂:最小真机样例
为了让大家真正理解“动作标签从哪来”,第 2 课会用 SO101 主从臂做一个最小真机演示。
SO101 主从臂是同构结构。主臂和从臂都有相同的关节结构,因此主臂读到的关节角度,可以直接作为从臂的目标动作。
人用手扳动 leader 主臂,follower 从臂实时跟随。
这个过程中,主臂当前的关节角度,就是动作标签 action。
从臂自身的关节状态,加上相机看到的画面,就是 observation。
这就把“人做一遍任务”自动变成了“观测—动作”数据对。
采集时使用 lerobot-record 命令。它的参数虽然看起来很多,但本质上只有三组:
第一组是 robot,配置从臂和相机;
第二组是 teleop,配置主臂;
第三组是 dataset,配置数据集名称、任务描述、episode 数量、每个 episode 时长、是否上传等。
录制过程中,还可以用几个快捷键干预:
右箭头提前结束当前回合;
左箭头丢弃当前回合并重录;
Esc 结束整个录制流程。
这套流程跑完,磁盘上就会生成 data、videos、meta 三个目录。
到这里,大家就能亲眼看到:机器人数据不是凭空来的,而是人在操作机器人完成任务的同时,系统自动把动作和观测配好对。
七、GHRC 数据集:Walker S2 的四大仿真任务
SO101 是最小真机样例,而本次实训营真正要拿来训练的,是 GHRC 官方仿真数据集。
这个数据集来自 Walker S2 人形机器人,在 NVIDIA Isaac Sim 仿真环境中,通过键盘遥操作采集。

它覆盖了 GHRC 全球人形机器人挑战赛的四大任务:
零件桌面精细化分拣;
传送带工件动态分拣;
工件精准嵌装;
纸箱封装打包。
这四个任务都非常贴近工业场景,而且各自考察的能力不同。
零件分拣主要考静态感知和精准抓取。
传送带分拣多了动态追踪和运动抓取。
精准嵌装对位姿调整和装配精度要求更高。
纸箱封装打包则强调双臂协同操作。

这也是为什么 GHRC 数据集非常适合用来做人形机器人操作训练:它不是单一玩具任务,而是一组从静态到动态、从单步抓取到双臂协同的综合任务。
八、四目观测 + 20 维动作:人形机器人数据长什么样?
Walker S2 是双臂人形机器人,所以它的数据比普通单臂机械臂更复杂。
在 GHRC 数据集中,Walker S2 带有四路 RGB 相机:
头部左相机、头部右相机,提供全局视野;
左手腕相机、右手腕相机,提供近距离操作细节。
因此,每一帧 observation 里都有四路图像,再加上本体关节状态和任务相关状态。
动作 action 是 20 维,包括手臂关节、夹爪关节和夹持器控制指令。
也就是说,键盘遥操作时,人的操作意图最终会被转换成 20 维动作,写进数据集。
不同任务的 observation.state 维度也不同。
Part Sorting 是 48 维;
Conveyor Sorting 是 76 维;
Foam Inlaying 是 62 维;
Packing Box 是 20 维。
但它们的共同规格是一致的: Walker S2 本体,30 FPS,4 路 RGB 相机,20 维动作,LeRobotDataset V3.0 格式。
下一课 ACT 训练要吃进去的,正是这样的数据。
九、record 的本质:30Hz 循环,把人手动作写成数据集
第 2 课最后还会带大家看一眼 lerobot-record 的内部逻辑。
不管是 SO101 主从臂,还是 Walker S2 键盘遥操作,本质上都是一个 30Hz 的循环。
每一圈循环做四件事:
第一,读取机器人观测,包括关节状态和相机帧;
第二,读取遥操作动作,比如主臂关节角度,或者键盘经过 IK 解算后的关节目标;
第三,把动作下发给机器人,让机器人执行;
第四,把这一帧 observation、action 和 task 拼在一起,写进当前 episode 的缓冲区。
等一个 episode 结束后,系统再统一保存:
图像编码成 MP4;
低维数据写入 Parquet;
meta 更新 episode 信息、统计量和任务描述。
所以 lerobot-record 做的事,可以用一句话概括:
它把“人做一遍任务”包装成回合管理、遥操作控制和数据集写盘,在 30Hz 的节奏下,把人的操作意图、机器人看到的画面和机器人本体状态逐帧配好对。
这也是机器人模仿学习能够成立的根本。
十、第 2 课作业:真正打开数据集看一看
第 2 课的作业也非常明确:看懂本课程要训练的数据,并亲手采一小段。
学员需要下载 GHRC 官方数据集,打开任意一个任务,确认 data、videos、meta 三个目录都存在。
然后播放四路相机视频,理解头部相机和手腕相机分别提供什么信息。
接着查看逐帧数据,确认能看到 20 维 action,以及随任务变化的 observation.state。
如果条件允许,还可以用 SO101 主从臂或者仿真 Walker S2 键盘录制几个 episode 的小数据集。
最终提交内容包括:
GHRC 四大任务画面截图;
四目观测说明;
自录小数据集目录结构;
一帧样本记录;
采集中遇到的问题和解决过程。
这份作业的目的不是让大家机械完成截图,而是让大家真正建立一个数据直觉:
模型训练之前,数据到底长什么样?
十一、下一课:从数据进入 ACT 策略训练
第 2 课打通的是数据这一环。
我们讲了模仿学习为什么需要成对的“观测 → 动作”,讲了不同数采方案如何获得动作标签,讲了 SO101 主从臂如何把人的操作自动记录成数据,也讲了 GHRC 官方数据集如何组织 Walker S2 的四目观测和 20 维动作。
到这里,数据已经准备好了。
下一课,就要进入第一个真正的策略模型:ACT。
如果说第 2 课回答的是“数据从哪来”,那么第 3 课要回答的就是:
数据怎么变成策略?
也就是让机器人不再依赖人手主臂或键盘控制,而是由模型根据当前观测,自己预测下一步动作。
这也是从“人操作机器人”走向“机器人学会操作”的关键一步。
- END -
Ask Me Anything|提问箱
❝对文章有疑惑,或想聊更深?欢迎把你的问题丢给我们:技术方案、实操踩坑、课程与资料、项目合作、职业发展,都可以问。
怎么问:在评论区留言,或私信公众号
我们会做什么:每周集中整理高质量问题并公开回复,重点问题邀请作者或嘉宾深度解答;典型问题会加入知识库并持续更新。
提问小提示:尽量说明「你的目标—当前做法—期望产出」,附上必要信息(硬件/软件版本、数据规模等),能更快获得有用答案。
一起把问题变成知识,推动社区进步 🚀
