Skip to main content

🤗 Robotics Course 中文学习讲义

Robotics Course 中文学习讲义封面
Robotics Course 中文学习讲义封面

这是一份把 Hugging Face 官方 robotics-course 当前已发布内容重新整理后的单文件中文学习文档。它不是把 11 篇教程简单首尾拼接,而是按学习路径重新编排,尽量去掉重复铺垫、补上章节过渡,并把核心概念、代码示例和方法脉络串成一条更顺的主线。

当前整合范围对应上游仓库截至 2026 年 4 月 9 日已发布的内容:

  • Unit 0: Welcome to the Robotics Course
  • Unit 1: Course Introduction
  • Unit 2: Classical Robotics

上游规划中的强化学习、模仿学习和基础模型单元,官方仓库当前尚未发布正文,因此本讲义暂不包含这些未来章节。

目录

  1. 课程定位与学习方式
  2. 为什么是机器人学习
  3. LeRobot:端到端机器人学习工具链
  4. LeRobotDataset:机器人数据为什么必须重新设计
  5. 在实践中使用数据集
  6. 经典机器人学的总体图景
  7. 机器人运动的类型
  8. 从平面机械臂理解运动学
  9. 从运动学走向控制
  10. 为什么经典方法会遇到瓶颈
  11. 为什么基于学习的方法会兴起
  12. 下一步应该怎么学
  13. 学习自测
  14. 延伸资源

课程定位与学习方式

这门课程的目标,是带你从经典机器人学走到现代基于学习的机器人方法,理解、实现并应用机器学习技术到真实机器人系统中。它基于 Robot Learning Tutorial 整理而来,但表达方式更偏课程化、更利于社区学习。

整条主线可以概括成一句话:

先理解机器人为什么难,再理解为什么数据驱动方法会变得重要,最后学会用 LeRobot 这样的现代工具把它们真正用起来。

这门课强调的是可落地的技能,而不是只停留在概念层面。学完当前已发布的内容后,你应该能建立下面这套认知:

  • 机器人如何从数据中学习,而不是完全依赖手工规则
  • LeRobot 在机器人学习生态里扮演什么角色
  • 机器人数据为什么比普通机器学习数据复杂得多
  • 经典机器人学中的运动学与控制为什么依然重要
  • 经典方法在真实世界里为什么会暴露出扩展性与建模瓶颈
  • 为什么基于学习的方法会自然地成为下一步

先修要求

推荐你具备以下基础:

  • 基础 Python:变量、函数、循环
  • 对机器学习有基本概念最好,但不是必须
  • 线性代数和微积分的入门直觉会有帮助,但不是硬门槛

最重要的不是背景有多强,而是你愿不愿意持续追问这件事:机器如何在物理世界中学会行动?

推荐学习节奏

如果你是第一次系统接触这门课,建议这样走:

  1. 先把整份讲义通读一遍,建立大图景。
  2. 第二遍重点看 LeRobotDataset 和经典机器人学部分。
  3. 第三遍再结合代码示例和真实数据集动手。

如果你时间有限,可以优先看这四部分:

  • 为什么是机器人学习
  • LeRobot 与 LeRobotDataset
  • 运动学与控制
  • 经典方法的局限与学习方法的动机

为什么是机器人学习

机器人学习的核心思想很直接:不要把所有行为都手工写进控制器,而是让机器人从数据和经验中变得更好。

在实践中,这意味着机器人会利用:

  • 视频
  • 传感器数据
  • 人类示范
  • 成功/失败反馈

来学习完成抓取、放置、推动、行走等任务。

为什么偏偏是现在

机器人学习之所以在近些年快速发展,主要因为两个趋势正在同时成熟:

  • 机器学习模型越来越擅长从复杂高维数据中提取模式
  • 机器人数据集开始更容易采集、共享和复用

过去经典机器人学更像是“把物理、状态估计、规划和控制系统都手工搭出来”;现在我们开始转向“让系统直接从数据中学出行为和表示”。

一个直观例子

一个机械臂要学会抓取方块,可以有两种很典型的学习路线:

  • 强化学习:自己尝试动作,根据任务进展获得奖励,逐渐找到有效策略
  • 模仿学习:观察人类或专家示范,直接学习“在这个状态下应该怎么做”

这类方法一旦形成规模,不只是某一个抓取任务可以学,很多任务、甚至很多不同机器人本体也都可能共享同一套学习框架。

历史背景

机器人学从 20 世纪 50 年代起就一直在发展。第一台真正意义上的机器人是 1961 年出现的 Unimate。人工智能和机器人学也大致在同一时代分别成型,但两者真正深度汇合,其实是近几十年、尤其是机器人学习兴起之后的事。

这场变化到底意味着什么

今天的机器人研究,正在逐步从“工程师显式写出所有模块和规则”的方式,转向“让模型从数据中学出感知到动作的映射”。这背后的关键变化包括:

  • 机器人开始能更直接地从视觉、触觉、音频等多模态传感器中学习
  • 系统不再完全依赖完美的世界模型
  • 大规模开放数据集开始真正发挥价值
  • 方法开始向 GPT、CLIP 这类基础模型的发展路径靠近

这里最重要的认知变化是:

机器人学不再只是“构造一个正确的控制解”,而越来越像“让系统从经验中学会一个足够鲁棒、可迁移的行为”。

LeRobot:端到端机器人学习工具链

一旦接受“机器人要从数据中学习”这个前提,下一个问题就是:用什么工具来做?

课程里贯穿始终的答案是 LeRobot

LeRobot 不是单点工具,而是把机器人接入、数据、训练和部署连成一条统一链路。
LeRobot 不是单点工具,而是把机器人接入、数据、训练和部署连成一条统一链路。

LeRobot 是 Hugging Face 推出的开源机器人学习库。你可以把它看成一个纵向打通的工具链:

  • 向下能连接真实机器人
  • 向上能训练现代学习算法
  • 中间能统一处理复杂机器人数据
  • 并且自然接入 PyTorch 和 Hugging Face 生态

LeRobot 的价值不只是“一个库”

LeRobot 有几个特别重要的设计目标:

  • 提供统一的机器人接入方式,降低新平台支持成本
  • 用统一的数据格式处理多模态机器人数据
  • 实现先进机器人学习算法,而不是只提供底层接口
  • 打通训练、评估和部署,而不是把它们割裂开

这也是为什么 LeRobot 更接近“端到端机器人学习平台”,而不是传统意义上的某个局部工具。

为什么它很适合学习机器人

机器人研究和工程最大的门槛之一,是系统太碎了。真实机器人控制、数据采集、模型训练、策略部署,常常散落在不同脚本、不同接口甚至不同团队流程里。LeRobot 的意义就在于尽量把这些东西收拢进同一套工作方式里。

当前 LeRobot 支持的机器人平台包括一些更容易获得的方案,例如:

  • SO-100 / SO-101
  • ALOHA / ALOHA-2

这也反映出一个现实趋势:机器人研究不再只是昂贵工业平台的专属活动,低成本、可复现、可开源的平台正在迅速扩大参与者范围。

规划与执行的分离

LeRobot 的一个很重要的工程思想,是把“思考要做什么”和“真正执行动作”分开。这对真实机器人极其关键,因为实时控制对延迟非常敏感。只要延迟多了几毫秒,就可能影响控制稳定性和任务表现。

因此,LeRobot 不只是把模型训练出来,更重视让策略真的能在机器人上稳定运行。

最快上手方式

如果你想尽快体验,可以先安装:

pip install lerobot

然后再配合官方文档和示例,逐步接触数据加载、训练和部署。

LeRobotDataset:机器人数据为什么必须重新设计

理解 LeRobot 的最好方式之一,就是先理解 LeRobotDataset

机器人学习里的数据,和图像分类、文本分类完全不是同一个难度级别。传统机器学习数据经常是一条样本对应一个标签;但机器人数据天然更复杂,因为它同时具备下面这些特征:

  • 多模态:图像、关节状态、动作、触觉、语言描述可能同时出现
  • 时序性:当前帧的意义通常依赖前后多帧
  • 回合性:数据不是独立样本,而是按 trajectory 或 episode 组织
  • 高维性:可能存在多个相机视角、多个关节、多个状态流

所以,机器人数据不能简单拿传统图像数据格式硬套。

一条机器人数据样本里往往同时包含图像、状态、动作和任务信息,这也是它比普通机器学习数据复杂得多的原因。
一条机器人数据样本里往往同时包含图像、状态、动作和任务信息,这也是它比普通机器学习数据复杂得多的原因。

LeRobotDataset 到底解决了什么

LeRobotDataset 的目标,是提供一种统一标准,让不同机器人、不同任务、不同采集方式产生的数据,都能用比较一致的方式组织和读取。

它想解决的问题包括:

  • 多模态数据如何同步
  • 视频和传感器数据如何高效存储
  • episode 边界如何表示
  • 大规模数据如何在不过度消耗磁盘和内存的前提下被加载
  • 数据如何自然接入 PyTorch 和 Hugging Face 生态

这套格式的三大组成

LeRobotDataset 的磁盘组织可以概括为三层:

  1. 表格数据(Tabular Data) 存放低维、高频的数据,例如关节状态和动作。通常以高效、适合内存映射的方式保存。

  2. 视觉数据(Visual Data) 大量图像帧会被拼接编码到 MP4 文件里,而不是把每一帧都存成单独文件。

  3. 元数据(Metadata) 用 JSON 等结构保存 schema、帧率、归一化统计量、episode 边界、任务描述映射等信息。

一个很重要的设计思想是:底层存储结构和用户 API 分离。

磁盘上的组织要服务于效率和规模,而用户真正用的时候,希望得到的是干净、直观、可直接训练的 tensor。

为什么要把多个 episode 合并到大文件里

机器人数据一旦大起来,很快就会遇到“小文件灾难”。如果一个百万级 episode 的数据集把每条 episode、每张图片都拆成独立文件,文件系统很快就会吃不消。

LeRobotDataset 采用的策略是:

  • 把多个 episode 合并到同一个 parquet 文件或 MP4 文件里
  • 再通过元数据来定位每个 episode 的边界和索引

也就是说,元数据在这里更像一层“数据库索引”。

你应该按什么顺序理解一个数据集

当你第一次接触某个 LeRobotDataset 时,建议按这个顺序看:

  1. 先看 meta/info.json
  2. 再看 meta/stats.json
  3. 再看 meta/tasks.jsonl
  4. 然后随便打开一份 data/*
  5. 最后再看 videos/*

这样会比直接去翻磁盘目录更容易建立结构感。

在实践中使用数据集

理解格式之后,下一步就是会用。

LeRobotDataset 的一个核心优点,是你通常可以用一行代码直接加载一个遵循标准格式的机器人数据集:

from lerobot.datasets.lerobot_dataset import LeRobotDataset

dataset = LeRobotDataset("lerobot/svla_so101_pickplace")
sample = dataset[100]

为什么机器人学习经常需要时间窗口

机器人决策很少只依赖“当前这一帧”。例如抓取任务中,系统通常要知道前几帧发生了什么,才更容易判断当前物体是否在移动、夹爪是否已经接近目标、动作是否需要继续。

因此,LeRobotDataset 提供了 delta_timestamps 机制,让你显式声明想要哪些时间偏移量。

例如:

  • [-0.2, -0.1, 0.0] 表示取过去 200ms、100ms 和当前的观测
  • [0.0, 0.1, 0.2, 0.3] 表示取当前动作和未来若干动作

这就让你可以轻松构造:

  • 观测历史
  • 动作序列
  • 行为克隆中的动作分块预测
时间窗口会把同一时刻附近的多帧观测和动作一起取出,这对机器人策略学习尤其重要。
时间窗口会把同一时刻附近的多帧观测和动作一起取出,这对机器人策略学习尤其重要。

三种典型用法

1. 基础行为克隆

delta_timestamps = {
"observation.images.up": [0.0],
"action": [0.0]
}

dataset = LeRobotDataset(
"lerobot/svla_so101_pickplace",
delta_timestamps=delta_timestamps
)

适合刚开始时建立“当前观测预测当前动作”的最简单模型。

2. 利用历史观测

delta_timestamps = {
"observation.images.up": [-0.2, -0.1, 0.0],
"action": [0.0]
}

dataset = LeRobotDataset(
"lerobot/svla_so101_pickplace",
delta_timestamps=delta_timestamps
)

sample = dataset[100]
# Images shape: [3, C, H, W]
# Action shape: [action_dim]

适合让模型在决策时利用过去短时间的上下文。

3. 动作分块预测

delta_timestamps = {
"observation.images.up": [-0.1, 0.0],
"action": [0.0, 0.1, 0.2, 0.3]
}

dataset = LeRobotDataset(
"lerobot/svla_so101_pickplace",
delta_timestamps=delta_timestamps
)

sample = dataset[100]
# Images shape: [2, C, H, W]
# Action shape: [4, action_dim]

这种方式适合很多现代策略学习方法,因为一次预测一段动作通常能让控制更平滑。

边界帧怎么处理

如果你请求的时间窗口跨到了 episode 起点或终点,LeRobotDataset 会自动补齐缺失帧,并且通常还会配套提供 mask,告诉你哪些帧是真实的、哪些是填充出来的。

这意味着你可以把注意力集中在模型设计上,而不是被时间序列边界条件拖住。

大数据集怎么读:下载 vs 流式

如果你的磁盘够大、训练会反复进行,那么本地下载是最直接的方案。
如果你的磁盘放不下,或者你只是快速试验,流式读取更合适。

下载模式

from lerobot.datasets.lerobot_dataset import LeRobotDataset

dataset = LeRobotDataset("lerobot/svla_so101_pickplace")
sample = dataset[100]

流式模式

from lerobot.datasets.streaming_dataset import StreamingLeRobotDataset

streaming_dataset = StreamingLeRobotDataset(
"lerobot/svla_so101_pickplace",
delta_timestamps=delta_timestamps
)

sample = streaming_dataset[100]

流式读取的价值在于:

  • 节省本地存储
  • 可以快速切换和试验不同数据集
  • 适合云端训练

前提是你的网络连接足够稳定。

接入 PyTorch DataLoader

真正开始训练时,最常见的方式还是接入 torch.utils.data.DataLoader

import torch
from torch.utils.data import DataLoader

dataloader = DataLoader(
dataset,
batch_size=16,
shuffle=True,
num_workers=4
)

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

for batch in dataloader:
observations = batch["observation.state"].to(device)
actions = batch["action"].to(device)
images = batch["observation.images.up"].to(device)

# loss = model(observations, images, actions)
# loss.backward()
# optimizer.step()

这段代码本身并不复杂,但背后其实屏蔽掉了很多麻烦:

  • 多模态同步
  • 时间窗口抽取
  • 视频与状态对齐
  • 大规模数据加载

也正因如此,LeRobotDataset 的意义不是“能读数据”,而是“把机器人数据处理从重工程工作降低成标准工作流”。

经典机器人学的总体图景

理解完数据与工具之后,要真正理解为什么机器人学习会兴起,还得回到经典机器人学本身。

机器人运动生成方法,粗略可以分成三类:

  • 显式方法(基于动力学/模型)
  • 隐式方法(基于学习)
  • 混合方法
机器人运动生成方法可以粗略看成从显式模型到隐式学习的一条谱系,中间还存在大量混合路线。
机器人运动生成方法可以粗略看成从显式模型到隐式学习的一条谱系,中间还存在大量混合路线。

显式方法

显式方法依赖人工写出的物理模型、控制方程和约束结构。它们在以下场景里通常很强:

  • 场景可控
  • 模型比较准确
  • 任务结构稳定
  • 安全和可解释性要求高

经典控制、PID、MPC、轨迹优化等,都属于这条路线。

隐式方法

隐式方法不试图手工写出全部规律,而是让模型直接从数据中学习模式。它们在以下场景中更有吸引力:

  • 环境复杂且难建模
  • 输入高维且多模态
  • 希望跨任务迁移
  • 数据规模足以支撑训练

强化学习、模仿学习、神经网络策略等,都属于这一方向。

混合方法

很多真正有前景的系统,并不是“全经典”或“全学习”,而是结合两者:

  • 用控制理论提供安全约束
  • 用学习模型提供感知与策略泛化能力

所以,理解经典机器人学并不是为了回到过去,而是为了以后能更好地构造混合系统。

机器人运动的类型

从任务角度看,大多数机器人问题都可以先归到三类之一:

从桌面机械臂到四足、轮式和类人机器人,不同平台天然适合不同类型的运动任务。
从桌面机械臂到四足、轮式和类人机器人,不同平台天然适合不同类型的运动任务。

1. Manipulation(操作)

机器人改变世界,而自身相对固定。典型任务包括:

  • 抓取
  • 放置
  • 装配
  • 使用工具

典型平台是机械臂。

2. Locomotion(移动)

机器人改变自己的位置。典型任务包括:

  • 轮式导航
  • 自动驾驶
  • 双足或四足行走

典型平台是移动底盘、腿式机器人、自动驾驶平台。

3. Mobile Manipulation(移动操作)

机器人既移动自己,又操作环境。它需要同时协调底盘和操作机构,因此难度明显更高。

一个快速判断法

问自己:主要发生变化的是什么?

  • 世界变了:更像 manipulation
  • 机器人位置变了:更像 locomotion
  • 两者都在强耦合变化:多半是 mobile manipulation

这套分类的价值不只是命名任务,它会直接影响:

  • 你该记录哪些观测模态
  • 你该预测什么动作空间
  • 你该如何评估策略
像 SO-100 这样的低成本平台正在降低机器人学习的进入门槛,使更多人能实际动手。
像 SO-100 这样的低成本平台正在降低机器人学习的进入门槛,使更多人能实际动手。

从平面机械臂理解运动学

现在进入经典机器人学最基础、也最关键的一层:运动学。

为了避免一上来就陷入复杂机械结构,我们用 SO-100 的简化版做例子,把它压缩成一个二维平面上的 2 自由度机械臂。

把真实机械臂简化成二维平面模型,是理解运动学最常见也最有效的入门方法。
把真实机械臂简化成二维平面模型,是理解运动学最常见也最有效的入门方法。

设这个简化机器人有:

  • 两个关节角:θ₁、θ₂
  • 两段等长连杆:长度都为 l
  • 构型:q = [θ₁, θ₂]

正向运动学 FK

FK 回答的问题是:

给定关节角度,末端执行器在哪里?

在这个二维例子里:

这个公式本质上就是两段连杆向量首尾相接后的结果。
FK 的特点通常是:方向明确、计算直接。

逆向运动学 IK

IK 回答的问题则相反:

给定目标末端位置,关节应该怎么配?

也就是求解:

在更一般情况下,IK 往往写成优化问题:

为什么 IK 很快就会变难

就算这个例子只有两个自由度,IK 也已经会遇到这些问题:

  • 同一个末端位置可能对应多个关节解
  • 方程是非线性的
  • 关节有限位
  • 环境中可能有障碍物
  • 有些目标点甚至本来就不可达

所以可以把 FK 和 IK 的区别记成一句话:

  • FK 更像直接计算
  • IK 更像带约束的搜索

一旦进入真实机器人场景,IK 的难度会迅速上升。

自由运动的平面机械臂带地面约束的平面机械臂带障碍物约束的平面机械臂
同一个机械臂,一旦加入地面、障碍物和关节约束,IK 的可行解空间就会迅速变复杂。

从运动学走向控制

如果直接求 IK 太难,一个自然思路就是:先不直接求位置,而先求速度

这就进入了微分运动学。

Jacobian 的作用

J(q) 是正向运动学对构型的 Jacobian,那么有:

这表示:

  • 关节速度 \dot{q} 决定末端速度 \dot{p}
  • 我们可以通过控制速度来逐步逼近目标,而不一定一次性解出完整位置

微分逆运动学

当给定目标末端速度 \dot{p}^* 时,一个常见解是:

其中 J(q)^+ 是 Moore-Penrose 伪逆。

这类方法的意义在于:

  • 比直接解位置形式更灵活
  • 更适合连续控制
  • 更容易形成闭环跟踪

为什么还要加反馈

即使你有 Jacobian,真实世界中依然存在:

  • 建模误差
  • 传感器噪声
  • 接触扰动
  • 动态障碍物

所以只做开环控制通常不够,必须加上反馈项。一个典型形式是:

其中:

  • \Delta p = p^* - p(q) 是位置误差
  • k_p 是比例增益

也就是说,控制器会一边沿着目标方向走,一边根据当前误差不断修正。

一旦环境里出现动态障碍物,单纯开环控制就不够了,必须依赖反馈持续修正。
一旦环境里出现动态障碍物,单纯开环控制就不够了,必须依赖反馈持续修正。

这类方法为什么在工程上有效

因为它们把控制问题分成了更容易处理的几块:

  • 几何关系由 FK / Jacobian 表达
  • 实时动作由速度控制表达
  • 稳定性由反馈控制增强

这也是经典机器人学在工业环境里长期有效的原因。

为什么经典方法会遇到瓶颈

如果经典方法已经能做出很多机器人系统,为什么还要转向学习?

因为一旦任务进入真实、复杂、开放环境,经典方法会逐步暴露四类根本瓶颈。

集成、扩展性、建模和数据利用,是经典机器人方法在真实世界中最容易卡住的四个方向。
集成、扩展性、建模和数据利用,是经典机器人方法在真实世界中最容易卡住的四个方向。

1. 集成挑战

经典机器人系统往往是一个模块栈:

感知 → 状态估计 → 规划 → 控制 → 执行

每个模块都可能独立设计得很好,但一旦连起来,问题就来了:

  • 模块接口固定,改动成本高
  • 上游误差会传到下游
  • 某个局部模块失效会拖垮整体表现

2. 扩展性有限

经典方法更擅长处理压缩过、人工设计过的状态表示。
但面对真实机器人常见的高维输入时,它们会迅速变得吃力:

  • RGB 图像
  • 深度图
  • 触觉
  • 音频
  • 语言条件

多模态、多任务、多机器人形态,一起叠加时,手工工程成本会爆炸式增长。

3. 建模局限

真实世界里最难的地方,恰恰往往是不容易被解析建模的部分:

  • 接触
  • 摩擦
  • 柔顺性
  • 可变形物体
  • 动态环境

而机器人又恰恰经常需要与这些因素正面交互。

4. 数据趋势被浪费

现在机器人领域最重要的新变化之一,是开放数据集越来越多。
如果方法本身不利用数据,它其实就在错过这个时代最强的新增资源。

所以,经典方法的问题不在于“完全没用”,而在于:

它们在复杂开放世界里,越来越难以仅靠人工建模继续扩展。

为什么基于学习的方法会兴起

当你把前面这些瓶颈连在一起看,基于学习的方法就不是“时髦替代品”,而更像是一种结构上更自然的回应。

传统模块化管线和学习式感知到动作路径之间的差别,正是这场范式变化的核心。
传统模块化管线和学习式感知到动作路径之间的差别,正是这场范式变化的核心。

学习方法带来的直接优势

1. 感知与控制可以更紧地耦合

学习模型可以直接从原始传感器输入出发,输出动作或策略表示,而不必严格依赖人工拆开的中间模块。

2. 更容易处理高维多模态输入

神经网络天生更适合处理图像、语言、触觉等复杂输入形式,这对机器人来说尤其关键。

3. 更有机会跨任务、跨机器人泛化

只要数据和建模方式设计得当,一个模型有机会在多个任务或多个机器人平台之间共享知识。

4. 性能可以随着数据和算力继续扩大

经典方法的提升经常依赖专家继续精细建模;学习方法则更可能沿着“更多数据 + 更大模型 + 更强算力”这条路线持续扩展。

但这不是“经典已死”

需要特别注意的是,课程强调的并不是“传统方法全错了”。
更准确的结论是:

  • 经典方法提供了必要的数学和控制基础
  • 学习方法提供了处理复杂性与规模的新能力
  • 真正强的系统,很可能是两者结合

所以这门课真正想建立的,不是立场,而是一种判断力:

什么问题适合经典方法,什么问题必须引入学习,什么地方应该做混合。

下一步应该怎么学

虽然官方后续单元还没发布正文,但从当前内容已经能看出后面的清晰方向。

1. 强化学习

你会进一步学习:

  • 奖励如何设计
  • 试错学习如何推动策略改进
  • 样本效率为什么是机器人 RL 的核心难点

2. 模仿学习

你会进一步学习:

  • 如何从人类示范中学策略
  • 行为克隆为什么是机器人入门最实用的路线之一
  • 分布偏移为什么是部署中的关键问题

3. 基础模型与通用机器人

你会进一步学习:

  • 多任务学习如何共享知识
  • 语言条件策略如何让机器人理解指令
  • 为什么大模型和大数据会逐步改变机器人系统能力边界

现在最适合做的第一个项目

如果你准备从理论切换到实践,一个很好的起点是:

用 LeRobotDataset 做一个小型 pick-and-place 模仿学习任务。

它的优点是:

  • 闭环完整:数据、训练、评估都能走一遍
  • 不需要自己设计奖励
  • 不一定要先搭仿真器
  • 更容易对“从数据到动作”的工作流建立完整直觉

学习自测

下面这些问题适合你在读完整份讲义后自己回答。它们不是机械记忆题,而是用来检查你的结构性理解。

  1. 机器人学习和传统“手工写控制器”的区别到底在哪里?
  2. 为什么机器人数据不能直接照搬图像分类数据格式?
  3. LeRobot 和普通机器人代码仓库相比,最大的不同是什么?
  4. delta_timestamps 为什么对机器人学习特别重要?
  5. 为什么 FK 通常比 IK 容易?
  6. Jacobian 在微分运动学里扮演什么角色?
  7. 为什么闭环反馈对真实机器人控制是必要的?
  8. 经典机器人学在真实世界里最核心的四类瓶颈是什么?
  9. 为什么开放机器人数据集的增长会自然推动学习方法兴起?
  10. 为什么未来最有前景的系统很可能不是纯经典、也不是纯学习,而是混合系统?

如果你能不看原文,顺畅回答这些问题,说明你已经真正掌握了当前课程的主干。

延伸资源

继续深入时,建议优先看下面这些资源:

如果你更偏经典机器人学基础,可以继续看:

如果你更偏学习方法,可以从课程中已经提到的这些代表性工作继续: