---
layout: single
title:  "具身智能（Embodied AI）技术综述：从基础理论到工程实践"
date:   2026-04-12 12:00:00 +0800
categories: [AI 与大模型, 教程实践]
tags: [具身智能, VLA, Every-Embodied, Robotics, Datawhale]
---

具身智能（Embodied AI）作为人工智能通往通用人工智能（AGI）的关键路径，近年来取得了突破性进展。本文基于 Every-Embodied 开源项目的丰富实践经验，系统性地综述具身智能领域的技术栈、算法演进、工程实践和前沿复现。全文涵盖：（1）具身智能的基础理论与发展历程；（2）机器人学基础（运动学、动力学、坐标变换）；（3）计算机视觉在具身场景中的应用；（4）强化学习与模仿学习；（5）视觉-语言-动作（VLA）大模型全景；（6）视觉语言导航（VLN）技术；（7）世界模型最新进展；（8）无人机控制与规划专题；（9）仿真环境与真机部署；（10）数据集与评估基准。本文强调"理论-实践-复现"三位一体的学习路径，为工程师和从业者提供从入门到前沿复现的完整技术指南。

<!-- more -->

**关键词**：具身智能、机器人学习、视觉-语言-动作模型、VLA、视觉语言导航、VLN、世界模型、强化学习、模仿学习、MuJoCo仿真

## 目录

1. [引言](#1-引言)
2. [具身智能基础理论](#2-具身智能基础理论)
3. [机器人学基础](#3-机器人学基础)
4. [具身场景的计算机视觉](#4-具身场景的计算机视觉)
5. [强化学习与模仿学习](#5-强化学习与模仿学习)
6. [视觉-语言-动作（VLA）大模型](#6-视觉-语言-动作vla大模型)
7. [视觉语言导航（VLN）](#7-视觉语言导航vln)
8. [具身世界模型](#8-具身世界模型)
9. [无人机控制与规划专题](#9-无人机控制与规划专题)
10. [仿真环境与真机部署](#10-仿真环境与真机部署)
11. [数据集与评估基准](#11-数据集与评估基准)
12. [工程实践指南](#12-工程实践指南)
13. [总结与展望](#13-总结与展望)

---

## 1. 引言

### 1.1 什么是具身智能？

人工智能的发展历程中，我们见证了从"非具身"（Disembodied）到"具身"（Embodied）的范式转变。传统的AI系统——无论是对话机器人（ChatGPT）、图像生成模型（Midjourney）还是推荐系统——都生活在数据的虚拟世界里，宛如"缸中之脑"。它们知道"苹果"这个词的所有语义信息，却从未"触摸"过一个苹果的冰凉与光滑，也无法"摘下"它。

**具身智能（Embodied AI）** 致力于打破这层次元壁。其核心定义是：能够通过物理身体（如机器人、自动驾驶汽车等）在真实世界中进行感知、交互和学习的智能系统。它强调智能体必须拥有一个"身体"（Body），并通过这个身体与环境互动，从而获得对世界更深层次、更符合物理规律的理解。

简单来说：

$$ \text{具身智能} = \text{智能的大脑} + \text{行动的身体} $$

这不仅仅是给AI装上轮子和手臂那么简单，其背后是一场深刻的哲学和技术变革。具身智能认为，真正的智能是在与环境的持续互动和反馈中涌现的，而非凭空产生的——就像人类婴儿，不是通过阅读百科全书来学习，而是通过抓握、爬行、摔倒和探索来认识世界。

### 1.2 关键三要素

具身智能系统包含三个不可或缺的核心组件：

1. **身体（Body）**：智能体的物理形态，包括各种传感器（摄像头、激光雷达、触觉传感器）用于感知，以及执行器（电机、机械臂、轮子）用于行动。

2. **大脑（Brain）**：智能算法的核心，负责处理来自传感器的数据，进行思考、决策，并向执行器发出指令。这通常涉及到深度学习、强化学习、大语言模型等前沿AI技术。

3. **环境（Environment）**：智能体所处的物理世界。它是智能体学习和实践的舞台，充满着不确定性、动态变化和复杂的物理规律。

### 1.3 发展历程

具身智能的发展史，就是一部机器人与人工智能技术交织演进的奋斗史，可分为三个主要阶段：

#### 第一阶段：蹒跚学步的先驱（20世纪中叶 - 20世纪末）

- **理论萌芽**：控制论（Cybernetics）的创始人诺伯特·维纳等人最早提出了关于机器与环境交互的构想。

- **标志性项目**：1966年至1972年，斯坦福研究院研制的世界第一台真正意义上的移动机器人**Shakey**，被誉为具身智能的"始祖"。它能感知周围环境、制定计划并执行简单的任务（如推箱子）。尽管行动迟缓，但它首次将感知、推理和行动整合在一个系统中，意义非凡。

#### 第二阶段：深度学习的赋能（21世纪初 - 2020年）

- **技术突破**：随着算力的巨大提升和深度学习算法的成熟，计算机视觉（Computer Vision）技术让机器人拥有了更敏锐的"眼睛"。同时，强化学习（Reinforcement Learning）让机器人可以通过"试错"来学习复杂技能，而无需人类编写所有规则。

- **明星玩家**：**波士顿动力（Boston Dynamics）** 公司成为这个时代的绝对焦点。从大狗机器人（BigDog）到能够跑酷、后空翻的人形机器人Atlas，它向世界展示了具身智能在运动控制（Locomotion）和平衡能力上所能达到的惊人高度。

#### 第三阶段：大模型开启新纪元（2021年 - 至今）

- **范式转移**：以GPT-3、PaLM等为代表的大语言模型（LLM）展现出强大的通用理解和推理能力。研究者们惊喜地发现，可以将LLM作为具身智能的"大脑"，负责理解高层次的指令，并将其分解为机器人可以执行的具体步骤。

- **代表性突破**：
  - **谷歌的RT-2模型**：首次证明了可以将视觉和语言模型直接迁移到机器人控制上，实现了"视觉-语言-行动"（Vision-Language-Action）的端到端控制，让机器人能听懂"把桌上那瓶快要掉下去的可乐扶正"这样复杂的指令。
  - **特斯拉的Optimus（擎天柱）机器人**：旨在打造通用的"人形工人"，其背后利用了特斯拉在自动驾驶领域积累的强大视觉感知和AI计算能力。
  - **Figure AI 与 OpenAI 的合作**：将ChatGPT的对话和推理能力集成到Figure 01机器人中，使其能够与人类自然对话，并理解和执行任务，成为具身智能走向通用化的一个重要里程碑。

### 1.4 应用领域

当AI拥有了身体，它的价值将从数字世界溢出，深刻变革我们生活的方方面面：

1. **工业制造与物流**：这是具身智能最先落地、也是最成熟的领域。从高度自动化的汽车生产线上的机械臂，到亚马逊仓库里高效分拣包裹的Kiva机器人，它们正在承担越来越复杂、重复性高或危险的工作，极大地提升了生产效率。

2. **家庭服务与陪伴**：未来家中的机器人不仅能扫地、拖地，还能为你整理房间、烹饪、照顾宠物，甚至成为老人的贴心伴侣和孩子的玩伴。随着技术的进步和成本的降低，通用服务机器人进入家庭已不再是科幻。

3. **医疗健康与康复**：包括手术机器人（如"达芬奇"手术机器人）辅助医生进行更精准、微创的手术；康复机器人帮助行动不便的患者进行康复训练；智能假肢能够理解佩戴者意图，实现更自然、灵活的动作。

4. **科学探索与特种作业**：在人类难以企及或极端危险的环境中，具身智能将成为我们的"化身"，如深空探索（NASA的"毅力号"火星车）、深海勘探（自主水下航行器）、灾难救援等。

### 1.5 面临的核心挑战

通往通用具身智能的道路依然漫长且充满挑战：

1. **"Sim-to-Real"的鸿沟**：在模拟器中训练好的模型，转移到现实世界时往往会"水土不服"，因为现实世界充满了模拟器无法穷尽的细节和意外。

2. **泛化能力**：如何让机器人在面对从未见过的物体和环境时，依然能做出正确的决策和行动，这是实现"通用"的关键。

3. **数据稀缺**：与互联网上取之不尽的文本和图片数据不同，高质量的机器人交互数据既昂贵又难以获取。

4. **安全性与伦理**：一个拥有强大物理能力的AI系统，如何确保其行为的安全、可控和符合人类伦理，是一个必须严肃对待的问题。

---

## 2. 机器人学基础

### 2.1 空间描述与坐标变换

在机器人学中，描述物体在空间中的位置和姿态（位姿）是所有后续分析的基础。本节详细介绍如何使用旋转矩阵和平移向量来描述刚体运动，以及如何通过**齐次变换矩阵 (Homogeneous Transformation Matrix)** 将两者结合。

#### 2.1.1 旋转矩阵 (Rotation Matrix)

二维或三维空间中的旋转可以通过正交矩阵描述。以绕 $Z$ 轴旋转 $\theta$ 角为例，其旋转矩阵 $R_z(\theta)$ 为：

$$ R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} $$

同理，绕 $Y$ 轴（俯仰角 $\theta$）和绕 $X$ 轴（滚转角 $\phi$）的旋转矩阵分别为：

$$ R(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix} $$

$$ R(\phi) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\phi & -\sin\phi \\ 0 & \sin\phi & \cos\phi \end{bmatrix} $$

**两种旋转模式的区别**：

- **模式一：坐标轴旋转（点不动，坐标系旋转）**：当原坐标系不动，坐标轴旋转时，求点在新坐标系下的坐标。
- **模式二：点旋转（坐标系不动，点旋转）**：点绕原点主动旋转。

在无人机和机器人应用中，我们通常使用模式一——已知机体旋转了多少角度，求同一个点在新坐标系下的表示。

#### 2.1.2 齐次变换矩阵 (Homogeneous Transformation)

为了将旋转 ($R, 3\times3$) 和平移 ($P, 3\times1$) 统一在通过线性运算中，引入了 $4\times4$ 的齐次变换矩阵 $T$：

$$ T = \begin{bmatrix} R & P \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} r_{11} & r_{12} & r_{13} & p_x \\ r_{21} & r_{22} & r_{23} & p_y \\ r_{31} & r_{32} & r_{33} & p_z \\ 0 & 0 & 0 & 1 \end{bmatrix} $$

**Python 代码验证**：

```python
import numpy as np

def get_rotation_z(theta_deg):
    """生成绕Z轴的旋转矩阵"""
    theta = np.radians(theta_deg)
    c, s = np.cos(theta), np.sin(theta)
    return np.array([
        [c, -s, 0],
        [s,  c, 0],
        [0,  0, 1]
    ])

def get_homogeneous_matrix(R, P):
    """组合旋转和平移生成4x4齐次变换矩阵"""
    T = np.eye(4)
    T[:3, :3] = R
    T[:3, 3] = P
    return T

# --- 场景模拟 ---
# 机器人末端坐标系 {B} 相对于基坐标系 {A}:
# 1. 绕 Z 轴旋转 90 度
# 2. 沿 X 轴平移 2 米, 沿 Y 轴平移 1 米

# 1. 定义旋转和平移
R_AB = get_rotation_z(90)
P_AB = np.array([2, 1, 0])

# 2. 构建变换矩阵 T_AB
T_AB = get_homogeneous_matrix(R_AB, P_AB)

# 3. 定义末端上的一个点 P (在 {B} 系中坐标为 [1, 0, 0])
P_B = np.array([1, 0, 0, 1]) # 齐次坐标

# 4. 计算该点在基坐标系 {A} 中的位置
P_A = T_AB @ P_B

print("变换矩阵 T_AB:\n", T_AB)
print("-" * 30)
print(f"点在局部坐标系 B: {P_B[:3]}")
print(f"点在全局坐标系 A: {P_A[:3]}")
```

### 2.2 机器人运动学与 DH 参数

Denavit-Hartenberg (DH) 参数法是描述机器人连杆间几何关系的标准方法。对于每个连杆 $i$，我们需要定义四个参数：

1. $a_i$：沿 $x_i$ 轴，从 $z_i$ 移动到 $z_{i+1}$ 的距离
2. $\alpha_i$：绕 $x_i$ 轴，从 $z_i$ 旋转到 $z_{i+1}$ 的角度
3. $d_i$：沿 $z_i$ 轴，从 $x_{i-1}$ 移动到 $x_i$ 的距离
4. $\theta_i$：绕 $z_i$ 轴，从 $x_{i-1}$ 旋转到 $x_i$ 的角度

通过这四个参数，可以构建相邻连杆间的变换矩阵：

$$ T_i = \text{Rot}_z(\theta_i) \cdot \text{Trans}_z(d_i) \cdot \text{Trans}_x(a_i) \cdot \text{Rot}_x(\alpha_i) $$

### 2.3 机器人动力学

机器人动力学研究力和运动之间的关系，主要包含两个问题：

1. **正动力学（Forward Dynamics）**：给定关节力矩 $\tau$，计算机器人的运动 $\ddot{q}$
2. **逆动力学（Inverse Dynamics）**：给定期望的运动 $q, \dot{q}, \ddot{q}$，计算所需的关节力矩 $\tau$

机器人动力学方程通常可以表示为：

$$ M(q) \ddot{q} + C(q, \dot{q}) \dot{q} + G(q) = \tau $$

其中：
- $M(q)$ 是惯性矩阵
- $C(q, \dot{q})$ 是科里奥利和离心力项
- $G(q)$ 是重力项

### 2.4 手眼协调与标定

手眼标定（Hand-Eye Calibration）是建立相机坐标系与机器人末端坐标系之间关系的关键步骤。主要解决如下问题：

$$ AX = XB $$

其中：
- $A$ 是机器人末端在不同位置间的变换
- $B$ 是相机在不同位置间的变换
- $X$ 是待求的相机与末端间的固定变换

---

## 3. 具身场景的计算机视觉

### 3.1 SAM（Segment Anything Model）与深度估计

在具身智能场景中，让机器人"看懂"环境是第一步。Meta 提出的 SAM（Segment Anything Model）提供了强大的零样本分割能力，可以：

1. **点击分割**：用户点击图像中的任意位置，SAM 能准确分割出该物体
2. **框选分割**：通过边界框指定感兴趣区域
3. **文本分割**：通过文本描述分割物体

结合深度估计技术（如 MiDaS、ZoeDepth），机器人可以获得场景的三维信息，为后续的抓取和导航提供基础。

### 3.2 抓取注意力热图

抓取注意力热图（Grasp Attention Heatmap）通过学习图像中适合抓取的区域，帮助机器人理解"哪里可以抓"。这类方法通常：

1. 使用卷积神经网络预测像素级的抓取质量
2. 结合抓取角度和宽度预测
3. 输出完整的抓取候选集合

### 3.3 6D 位姿估计

6D位姿（3D位置 + 3D旋转）估计是高精度抓取的关键。常用方法包括：

- **基于关键点**：检测物体的预定义关键点，再通过 PnP 求解位姿
- **基于模板匹配**：将物体模型与场景进行对齐
- **端到端学习**：直接从图像回归位姿参数

---

## 4. 强化学习与模仿学习

### 4.1 强化学习基础

强化学习让智能体通过与环境交互进行试错学习。核心要素包括：

- **状态（State）$s$**：环境的当前描述
- **动作（Action）$a$**：智能体的选择
- **奖励（Reward）$r$**：反馈信号
- **策略（Policy）$\pi(a|s)$**：从状态到动作的映射

### 4.2 常用算法

#### 4.2.1 PPO（Proximal Policy Optimization）

PPO 是目前最常用的策略梯度算法，通过限制策略更新的幅度来保证训练稳定性：

$$ L^{CLIP}(\theta) = \hat{\mathbb{E}}_t \left[ \min(r_t(\theta) \hat{A}_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) \hat{A}_t) \right] $$

其中 $r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}$ 是概率比。

#### 4.2.2 SAC（Soft Actor-Critic）

SAC 是一种最大熵强化学习算法，在最大化奖励的同时也最大化策略的随机性：

$$ J(\pi) = \mathbb{E}_{(s,a)\sim\rho_\pi} [r(s,a) + \alpha \mathcal{H}(\pi(\cdot|s))] $$

### 4.3 模仿学习

当强化学习奖励难以设计时，模仿学习通过专家演示进行学习：

1. **行为克隆（Behavioral Cloning）**：直接学习从状态到动作的映射
2. **逆强化学习（Inverse RL）**：从演示中推断奖励函数
3. **生成对抗模仿学习（GAIL）**：结合 GAN 进行模仿学习

### 4.4 多机器人强化学习

在多机器人场景中，智能体需要学会协作。主要挑战包括：

- **非平稳性**：其他智能体也在学习
- **信用分配**：如何分配团队奖励给个体
- **通信**：是否允许以及如何进行智能体间通信

---

## 5. 视觉-语言-动作（VLA）大模型

### 5.1 VLA 模型全景对比

视觉-语言-动作（Vision-Language-Action, VLA）模型是具身智能领域的重大突破。下表对比了12款核心模型：

| **模型名称** | **范式类别** | **视觉基座** | **语言/推理基座** | **输出预测头** | **参数量** | **语言推理能力** |
|------------|------------|------------|----------------|-------------|----------|----------------|
| **RT-1** | VLA | EfficientNet-B3 | Universal Sentence Encoder | 离散化 Token (256分箱) | 35M | 弱 |
| **RT-2** | VLA | ViT-e (22B) / ViT-G (2B) | PaLI-X (55B) / PaLM-E (12B) | 离散化 Token (复用 LLM 词表) | 12B、55B | 极强 |
| **RT-X** | VLA/VA | 与 RT-1/RT-2 一致 | 与 RT-1/RT-2 一致 | 与 RT-1/RT-2 一致 | 35M、12B、55B | 强 |
| **Octo** | VA(VOA) | ViT-Patch | 无 LLM | 扩散模型头 / 连续值 L1 | 27M、93M | 否 |
| **OpenVLA** | VLA | DINOv2 + SigLIP | Llama 2 (7B) | 离散化 Action Token | 7B | 强 |
| **RoboFlamingo** | VLA | CLIP (ViT-Large-14) | MPT / RedPajama | 显式策略头 | 3B、4B、9B | 强 |
| **SpatialVLA** | VLA | SigLIP + Ego3D 空间编码 | PaLiGemma 2 | 自适应空间动作网格 | 3B | 强 |
| **SmolVLA** | VLA | SigLIP | SmolLM2 | Action Expert Transformer | 450M | 中 |
| **SwiftVLA** | VLA | streamVGGT + SmolVLM | SmolVLM | Diffusion Action Expert | 450M | 中 |
| **GR00T N1.5** | VLA | NVIDIA Eagle VLM | Eagle VLM 文本编码器 | 流匹配 Transformer (16层) | 3B | 强 |
| **GR00T N1.6** | VLA | SigLIP 2 + Cosmos Reason | Cosmos Reason (2B) | 流匹配 Transformer (32层) | 3B | 极强 |
| **HoloBrain-0** | VLA | Grounding DINO / Qwen2.5-VL + SEM | 同左 | 具身感知动作专家 | 183.7M / 1.1B | 强 |

### 5.2 时代划分与代表性模型

#### 5.2.1 开山与奠基时代：Google 的霸权

**RT-1：开启 VLA 时代的探路者**

它向全世界证明了一件事——不需要为机器人单独设计复杂的控制算法，直接把机械臂的动作映射成文字字典里的"单词"（离散 Token），扔进 Transformer 里硬算，机器人就能学会做事。

**RT-2：降维打击的涌现级巨无霸**

解决了"机器人没有常识"的痛点。谷歌极其暴力地把拥有 550 亿参数的超大多模态语言模型直接接入机器人。这让机器人不仅能听懂指令，甚至涌现出了类似人类的"思维链"，比如它能听懂"把过期的食物扔掉"并自动从桌子上准确挑出腐烂的香蕉。

**RT-X：跨界数据的"世界大一统"**

严格来说，它不是一个新架构，而是谷歌牵头联合全球顶级学术机构打造的"终极权重与数据集"。它解决了各家实验室只用自家数据训练导致机器人"换个机械臂就不会动"的痛点，实现了真正的跨具身（Cross-Embodiment）控制。

#### 5.2.2 开源爆发时代：学术界的狂欢

**Octo：最纯粹的 VOA 动作肌肉男**

这是伯克利和斯坦福团队专门为不需要对话的机器人打造的。它没有任何臃肿的语言大模型包袱，依靠极致轻量的 Transformer 和扩散模型（Diffusion）直接看图做动作。在纯粹的动作模仿学习任务上，它是推理速度最快的开源基准。

**OpenVLA：开源社区的六边形战士**

直接解决了 RT-2 闭源且太庞大的问题。它基于 7B 级别的 Llama 2 模型，融合了能理解语义和空间信息的混合视觉基座，是目前全世界绝大多数创业公司和科研实验室首选的"开箱即用"机器人大脑。

**RoboFlamingo：治好失忆症的多帧记忆大师**

以往的模型都是"单帧输入"（看一眼图做一个动作），导致机器人做多步长线任务时经常忘记一开始的目的。它在网络末端外挂了专门的显式策略头，牢牢记住历史多帧画面，处理"打开抽屉拿苹果再关上"这种长线任务极其稳定。

#### 5.2.3 细分极致进化时代：解决具体绝症

**SpatialVLA：突破 2D 限制的 3D 空间主宰**

解决了传统模型"看世界是扁平的"这一绝症。它强行给网络注入了 Ego3D 深度位置编码，并首创自适应空间动作网格。机器人在执行需要极高空间精度的插入、精密抓取任务时，成功率获得了史诗级跨越。

**SmolVLA：极致轻量的平民化大杀器**

Hugging Face 专门为算力贫困户打造的奇迹。通过极其残暴的网络层跳跃和特征压缩，将参数量死死压制在 450M。它彻底解决了 VLA 模型必须依赖几十万服务器级显卡的痛点，让普通人在笔记本电脑上就能训练家用小型机械臂。

**SwiftVLA：引入时间的时空动态预测师**

当目标物体在移动时（抛接球、抓取传送带物品），静态 VLA 就会彻底抓瞎。该模型创新性地引入了 4D streamVGGT 时空特征与掩码重建策略，在仅有 450M 的极小参数量下，让大模型学会了"预判"机械臂和物体在未来的相遇轨迹，动态场景适应力极强，且推理速度吊打大型模型。

#### 5.2.4 工业收割时代：NVIDIA 与地平线的降维重塑

**GR00T N1.5：合成数据喂养的跨具身中坚力量**

英伟达用来秀肌肉的工业级核武器。它最大的革新在于不再极度依赖人类遥控机械臂采集的真实数据，而是大量吸收由 NVIDIA Omniverse 和 GR00T-Dreams 在仿真引擎里自动生成的"合成数据"。后端挂载了极其平滑的 16 层流匹配（Flow Matching）Transformer，动作执行细腻且极其稳定。

**GR00T N1.6：具备深层物理逻辑的究极进化体**

当前人形机器人领域的顶级天花板。它的语言基座直接换成了英伟达专为物理世界打造的 Cosmos Reason 推理大模型。这赋予了它类似人类的"System 2（慢思考）"能力——当给出极其模糊的指令时，它会在大脑里先进行带有物理常识的沙盘推演，再将动作意图交给足足翻倍到 32 层的动作预测头，最终转化为人形机器人的全身高难度协同动作。

**HoloBrain-0：懂物理结构的具身"全能管家"**

它精准解决了 VLA 模型在不同机器人硬件间难以迁移的"水土不服"绝症。不同于其他模型让机器人死记硬背像素与动作的映射，它创新性地将机器人的"筋骨"（URDF 动力学描述）和"眼睛方位"（相机内外参）作为显式输入。配合强大的"空间增强器"（SEM），它能直接在 3D 坐标系下进行规划，实现了极强的跨具身通用性。

更硬核的是其配套的 **RoboOrchard（机器人果园）** 基础设施。通过一套"测试驱动"的闭环迭代数据策略，它不再盲目堆砌海量数据，而是针对失败案例进行精准"补课"。这使得其 0.2B 的超轻量版本，仅需约 30 小时的真实数据，就能在百元级国产边缘芯片上流畅完成折衣服、叠纸盒等极具挑战的长程任务。

### 5.3 ACT（Action Chunking Transformer）复现实践

ACT 是目前最流行的模仿学习算法之一。基于 Every-Embodied 项目的实践，完整流程包括：

#### 步骤1：数据采集

使用键盘遥操作采集示教数据。任务通常是抓起杯子并放到盘子上。当杯子在盘子上、夹爪打开且末端执行器位于杯子上方时，环境判定成功。

**键位说明**：
- `WASD`：x-y 平面移动
- `R/F`：z 轴移动
- `Q/E`：倾斜
- `方向键`：其余旋转
- `空格`：切换夹爪状态
- `Z`：重置环境，并丢弃当前回合缓存数据

**数据集结构**：
```python
fps = 20,
features={
    "observation.image": {
        "dtype": "image",
        "shape": (256, 256, 3),
    },
    "observation.wrist_image": {
        "dtype": "image",
        "shape": (256, 256, 3),
    },
    "observation.state": {
        "dtype": "float32",
        "shape": (6,),  # x, y, z, roll, pitch, yaw
    },
    "action": {
        "dtype": "float32",
        "shape": (7,),  # 6 个关节角 + 1 个夹爪
    },
}
```

#### 步骤2：数据可视化

在重建后的仿真场景中可视化采集的动作，验证数据质量。

#### 步骤3：训练 ACT

在自定义数据集上训练 ACT，典型配置为 `chunk_size=10`。训练时间大约需要 30-60 分钟，取决于硬件配置。

#### 步骤4：部署测试

将训练好的策略部署到仿真或真实机器人上进行测试。

---

## 6. 视觉语言导航（VLN）

### 6.1 VLN 任务概述

视觉语言导航（Vision-Language Navigation, VLN）要求智能体根据自然语言指令，在视觉观察的引导下，在真实或模拟的 3D 环境中导航到目标位置。

核心挑战包括：
- 语言理解与视觉感知的对齐
- 部分可观测性
- 长程规划
- 泛化到新环境

### 6.2 ETPNav 复现详解

ETPNav（Evolving Topological Planning）是 VLN-CE（连续环境视觉语言导航）领域的强力 Baseline，论文发表于 IEEE TPAMI 2024。

#### 6.2.1 核心创新

ETPNav 主要解决了现有方法在长距离规划和避障上的局限，重点突破了两个核心能力：

1. **在线拓扑建图与长距离规划**：模型无需预先探索环境，即可通过自组织沿途预测的路点（waypoints）在线动态构建拓扑地图。这使得智能体能够将导航任务解耦为高层规划与底层控制。基于该拓扑地图，跨模态规划器（基于 Transformer）能够更好地理解指令并生成长距离的导航路径规划。

2. **连续环境下的避障控制**：针对连续环境的复杂性，ETPNav 提出了一种基于试错启发式（trial-and-error heuristic）的鲁棒避障控制器（Tryout），有效防止了智能体在连续环境中因碰撞障碍物而陷入死锁的情况。

#### 6.2.2 环境配置

**Python 环境**：推荐 Python 3.8

```bash
# 创建并激活 conda 虚拟环境
conda create -n vlnce38 python=3.8
conda activate vlnce38

# 安装 PyTorch (1.9.1+cu111)
pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 \
-f https://download.pytorch.org/whl/torch_stable.html
```

**Habitat 仿真器安装**：
```bash
# 安装 habitat-sim
conda install habitat-sim-0.1.7-py3.8_headless

# 安装 habitat-lab
cd habitat-lab-0.1.7
pip install -e .
```

**系统依赖修复**：
```bash
# 安装图形渲染依赖
apt-get install -y libopengl0 libgl1-mesa-glx libglib2.0-0 libegl1

# 升级 C++ 标准库
add-apt-repository ppa:ubuntu-toolchain-r/test -y
apt-get update
apt-get install --only-upgrade libstdc++6 -y
```

#### 6.2.3 数据集下载

**场景数据**：Matterport3D（MP3D），共 90 个场景，约 22GB。

**任务数据**：
- R2R_VLNCE_v1-2_preprocessed
- R2R_VLNCE_v1-2_preprocessed_BERTidx
- RxR

**连通图**：connectivity_graphs.pkl 用于可视化。

#### 6.2.4 模型权重

**编码器与组件权重**：
- Waypoint Predictor (R2R-CE)
- Waypoint Predictor (RxR-CE)
- BERT 权重
- RGB 编码器 (ViT-B32)
- Depth 编码器 (ResNet50)

#### 6.2.5 训练流程

**预训练**：执行 MLM (Masked Language Modeling) 和 SAP 两个预训练任务。
```bash
CUDA_VISIBLE_DEVICES=0 bash pretrain_src/run_pt/run_r2r.bash 233
```

**微调**：单张 RTX 4090 显卡完成微调大约需要 1.5 天。
```bash
CUDA_VISIBLE_DEVICES=0 bash run_r2r/main.bash train 2333
```

**评估**：
```bash
CUDA_VISIBLE_DEVICES=0 bash run_r2r/main.bash eval 2333
```

**推理**：
```bash
CUDA_VISIBLE_DEVICES=0 bash run_r2r/main.bash inference 2333
```

---

## 7. 具身世界模型

### 7.1 世界模型的核心价值

世界模型（World Model）让智能体在"脑海"中模拟环境，通过预测未来状态来进行规划。核心优势包括：

1. **样本效率**：不需要在真实环境中大量试错
2. **安全探索**：在模拟中学习危险技能
3. **长程规划**：通过多步预测进行规划
4. **迁移能力**：学到的物理规律可迁移

### 7.2 表征崩溃问题

世界模型训练中的核心难题是**表征崩溃**（Representation Collapse）。举一个简单的例子：输入一个汽车运行时候的画面，让世界模型推断下一秒车在什么位置，然后输出对应的特征向量，学会环境里的物理规律。但是由于模型的编码器和预测器都是一起训练的，那模型就会想要"走捷径"，不管你的输入是什么画面，编码器都编码输出一个固定的0向量，那接下来预测未来状态的时候，未来的状态也全是0，这样预测值和真实值的误差直接完美等于0，损失函数直接拉到最低，模型直接"躺赢"。当你把这个训练好的模型拿去做下游任务时，它完全无法区分不同的图像，因为它眼里所有的东西特征都一样，这就意味着模型白训练了，提取的特征完全是没有用的。

### 7.3 现有解决方案的局限

#### 第一类：靠外部方法"治标不治本"

这类问题不从模型本身解决问题，全部采用外部手段来给模型"打补丁"：

1. **启发式规则**：靠经验定一些规则来限制模型，比如强行约束特征的均值、方差不能太离谱。但问题也很明显，换个任务、换个数据集，规则就失效了，基本没啥泛化性。

2. **多目标损失函数**：在主预测损失之外，加一堆辅助损失来约束特征。比如 PLDM 直接用了7个损失函数，但是各个损失之间的权重得反复试，稍微调不好，训练曲线就会出现不稳定的情况。

3. **直接用预训练模型**：比如 DINO-WM，直接拿一个在海量数据上预训练好的 DINOv2 视觉大模型当编码器，训练的时候直接把编码器参数冻住，完全不更新。这样确实绝对不会崩，因为特征提取能力是已经训练好的。但这完全违背了自监督学习从头学特征的初衷，属于"逃避问题"而不是解决问题。更关键的是，模型的上限直接被预训练模型锁死了。

#### 第二类：靠内部方法"管用但说不清"

这类方法就是 JEPA 系列模型（I-JEPA、V-JEPA）用的方案，比如采用 Stop-Gradient（SG，停止梯度）+ Exponential Moving Average（EMA，指数移动平均）。

这套方法效果确实不错，现在也用得很多，但它有个致命的问题：**数学上根本解释不通为什么管用**。停止梯度，就是人为把反向传播的梯度流给剪断；EMA 中老师的参数更新，根本不是算梯度、求导算出来的，是强行把学生过去的参数拿过来做加权平均。也就是说这就是个经验性的黑盒操作，管用是管用，但理论上站不住脚，调参还特别复杂。

### 7.4 LeWorldModel（LeWM）的核心解法

#### 7.4.1 基础模型结构

Leworldmodel 的基础架构特别简单，就两个核心模块：编码器 Encoder + 预测器 Predictor。

$$ \text{Encoder:} \quad z_t = \text{enc}_\theta(o_t) $$

$$ \text{Predictor:} \quad \hat{z}_{t+1} = \text{pred}_\phi(z_t, a_t) $$

1. 编码器用的是 ViT 架构，输入当前时刻的环境画面 $o_t$，把它压缩编码成一个高维的潜在特征向量 $z_t$，给画面做特征提取。

2. 预测器接收编码器输出的当前特征 $z_t$，还有智能体当前执行的动作 $a_t$，预测出下一时刻的特征表示 $\hat{z}_{t+1}$，让模型在潜在空间里，推演环境接下来会怎么变，学会物理规律。

#### 7.4.2 SIGReg：核心创新点

表征崩溃的本质是什么？是模型把所有输入都映射成了同一个常数向量（比如全0），那这个特征的分布，就完全不是正态分布了，是一个固定的单点。那反过来想，如果我们能逼着模型输出的高维特征，必须符合一个完美的高维正态分布，那它就不可能把所有特征都变成同一个常数，从根本上就断了它走捷径的可能。

但这里有个难题：一维数据的正态分布检验，有很多成熟好用的方法，比如 Epps-Pulley 检验，但一个高维特征，比如论文里用的 192 维向量，想判断它是不是符合高维正态分布就很难。

LeWM 是怎么解决这个问题的？它用了一个特别巧妙的方法：**随机投影 + 一维正态性检验**，也就是 SIGReg 方法。

$$ \text{SIGReg}(Z) \triangleq \frac{1}{M} \sum_{m=1}^{M} T(h^{(m)}) $$

$$ \mathcal{L}_{\text{LeWM}} \triangleq \mathcal{L}_{\text{pred}} + \lambda \text{SIGReg}(Z) $$

只需要在 d 维的特征空间里，随机找 M 个不同的方向，把高维特征全部投影到这 M 条一维的线上，就能得到 M 组一维的特征数据。然后对这 M 组一维数据，分别用成熟的 Epps-Pulley 检验，逼着它们都符合一维正态分布就行。

**通俗理解**：你想检查一个悬浮在空中的复杂云团，是不是一个完美的球体（对应高维正态分布），直接去测量它的三维体积、曲面曲率，太难了。于是你拿手电筒，从 M 个随机的角度照向这个云团，去看墙上的影子，如果每个角度照出来的影子，都是完美的圆形（对应一维正态分布），那这个云团，大概率就是个完美的球体。

LeWM 就是这个逻辑，训练的时候不断随机抽取 M 个投影方向，逼着特征在这些方向上都符合一维正态分布。随着训练的进行，这就等价于把整个高维特征空间，塑造成了完美的高维正态分布。模型想把所有特征都映射成 0？不可能，因为全 0 的分布根本过不了正态性检验，SIGReg 损失会直接拉满，模型想走捷径都不行。

最关键的是，整个方法超简单，你只需要调整两个超参数：随机投影的维度 M，还有两个损失之间的权重 lambda，大大简化了超参数的选择，新手也能快速上手。

同时，这里有个数学定理给咱们兜底，叫 **Cramér–Wold 定理**：一个高维数据，如果它在所有可能的一维投影方向上都符合正态分布，那这个高维数据本身，一定是高维正态分布。

#### 7.4.3 完整损失函数

```python
# LeWM loss
output["pred_loss"] = (pred_emb - tgt_emb).pow(2).mean()
output["sigreg_loss"]= self.sigreg(emb.transpose(0, 1))
output["loss"] = output["pred_loss"] + lambd * output["sigreg_loss"]
```

相比于 PLDM 采用了 7 个损失函数导致训练曲线不稳定，LeWM 仅采用了两个 loss 函数，简洁优雅。

### 7.5 如何使用训练好的 LeWM

训练世界模型，最终目的不是让它预测特征，而是要让它真正驱动智能体，在环境里完成任务。

#### 第一步：先给目标和当前状态做编码

$$ \hat{z}_1 = \text{enc}_\theta(o_1), \quad z_g = \text{enc}_\theta(o_g) $$

使用训练好的世界模型编码器，将当前的真实图像以及任务目标的最终图像进行编码器编码，将两张图片压缩成 192 维的潜在特征向量，分别记作 $z_1$ 和 $z_g$。

最终目标就是找到一系列动作，让智能体从当前的 $z_1$ 状态，最终走到 $z_g$ 这个目标状态。

#### 第二步：在脑海里疯狂试错，模拟未来轨迹

$$ \hat{z}_{t+1} = \text{pred}_\phi(\hat{z}_t, a_t) $$

随机生成一大批候选动作序列，每个序列里都包含了未来 H 步的动作（比如 H=10，就是规划未来 10 步要做什么）。

然后把每一个候选动作序列，都输入到 LeWM 的预测器里，从当前状态 $z_1$ 开始，结合第一个动作 $a_1$ 生成下一步的 $z_2$，再结合 $a_2$ 生成 $z_3$，就这样自回归地一直预测到第 H 步的最终状态 $z_h$。

这里的核心就是利用世界模型在潜在空间里，把每一套动作方案会带来什么结果，全都提前模拟一遍，不用真的在现实环境里试错。

#### 第三步：筛选最优动作，迭代优化

$$ \mathcal{C}(\hat{z}_H) = \|\hat{z}_H - z_g\|_2^2 $$

$$ a_{1:H}^* = \arg\min_{\boldsymbol{a}_{1:H}} \mathcal{C}(\hat{z}_H) $$

模拟完所有方案之后，咱们计算每一套方案最终得到的 $z_h$，和目标状态 $z_g$ 之间的差距，差距越小，说明这套动作越好，越能帮我们完成任务。

然后我们挑出表现最好的前 k 个方案，根据这些优秀方案的均值和方差，更新动作采样的分布，就像进化一样，好的动作被保留下来，差的被淘汰，经过几次迭代，就能得到一个最优动作序列。

#### 第四步：执行动作，走一步看一步

虽然规划了未来 H 步的最优动作，但不会把这 H 步一次性全执行完。因为世界模型的预测是自回归的，每一步的预测都会带一点微小的误差，随着预测步数增加，误差会不断累积，要是一次性执行完 H 步，最后智能体可能离目标越来越远。

### 7.6 LeWM 的优势总结

1. **从根上解决表征崩溃，理论严谨**：不像 SG+EMA 的黑盒操作，LeWM 从特征分布的本质出发，用严谨的数学定理做支撑，减轻了模型走捷径的可能。

2. **超参数极少，训练简单稳定**：整个模型只需要调 M 和 lambda 两个超参数，对比多损失函数的方案、JEPA 系列的复杂调参，友好很多，训练曲线也特别平滑。

3. **端到端从头训练，不用依赖预训练模型**：不需要采用训练好的大模型冻住编码器的方式，完全可以根据你的任务，从零开始训一个专属的世界模型，模型的表达能力和上限完全不受限，特别适合机器人、具身智能这种垂类任务。

4. **架构极简，方便修改和拓展**：没有复杂的老师-学生双架构，就是编码器 + 预测器的极简结构，你想加什么模块、做什么改进都特别方便。

### 7.7 实验复现

#### 环境配置

```python
# 方案一：uv 管理
uv venv --python=3.10
source .venv/bin/activate
uv pip install stable-worldmodel[train,env]

# 方案二：conda 管理
conda create -n lewm python=3.10
conda activate lewm
pip install stable-worldmodel[train,env]
```

#### 数据下载

推荐下载 tworoom 和 cube 这两个数据集：
- tworoom 任务数据：https://huggingface.co/datasets/quentinll/lewm-tworooms
- cube 任务数据：https://huggingface.co/datasets/quentinll/lewm-cube

预训练模型权重：https://huggingface.co/Datawhale/lewm

#### 训练和测试

设置路径：
```python
export STABLEWM_HOME=/home/your-user/lewm/tworoom
```

配置 wandb：
```python
wandb:
  config:
    entity: your_entity
    project: your_project
```

启动训练：
```python
python train.py data=tworoom
```

推理测试：
```python
python eval.py --config-name=tworoom.yaml policy=tworoom/lewm
```

---

## 8. 无人机控制与规划专题

### 8.1 无人机控制教程概览

无人机控制教程从数学基础出发，逐步构建四旋翼无人机的完整控制体系。

| 章节 | 解决的核心问题 | 与其他章节的关系 |
|-----|--------------|----------------|
| **一、坐标系与旋转基础** | 如何描述无人机在三维空间中的姿态？ | 数学预备，后续所有章节的基础 |
| **二、动力学建模** | 力和力矩如何驱动无人机运动？运动方程是什么？ | 依赖一（旋转矩阵），为所有控制器设计提供被控对象模型 |
| **三、微分平坦性** | 能否只规划 $[x,y,z,\psi]$ 的轨迹就推出全部状态和输入？ | 依赖二（牛顿方程），是连接"轨迹规划"与"控制"的桥梁 |
| **四、PID 控制基础** | 控制器参数如何影响系统响应？ | 控制理论入门，后续所有控制方法的起点 |
| **五、基于模型的控制** | 如何利用模型信息改善控制效果？（2D） | 依赖二（线性化模型）+ 四（PID），引入前馈+反馈结构 |
| **六、三维轨迹跟踪** | 如何将 2D 控制推广到完整的 3D 飞行？ | 五的三维扩展，增加了偏航角耦合处理 |
| **七、SE(3) 控制** | 大角度机动时如何避免欧拉角的万向节锁？ | 依赖三（姿态矩阵构建），是六的非线性替代方案 |
| **八、MPC 控制** | 如何在有约束条件下同时做局部规划和控制？ | 融合规划与控制，依赖二（预测模型） |

**阅读建议**：
- **快速入门**（理解基本控制）：一 → 二 → 四 → 五
- **完整学习**：按顺序 一 → 八
- **专题阅读**：三（微分平坦性）是理解轨迹规划教程的前置知识

### 8.2 坐标系与旋转基础

#### 8.2.1 二维坐标旋转

考虑平面上一个点 $A(x, y)$，当坐标系旋转角度 $\theta$ 后，该点在新坐标系下的坐标为 $A'(x', y')$。

**方式一：几何投影法**

设原坐标系为 $OXY$，新坐标系为 $OX'Y'$（逆时针旋转 $\theta$）。通过几何投影关系：

$$ x' = x\cos\theta + y\sin\theta $$

$$ y' = -x\sin\theta + y\cos\theta $$

写成矩阵形式：

$$ \begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} \cos\theta & \sin\theta \\ -\sin\theta & \cos\theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} $$

#### 8.2.2 两种旋转模式的区别

**模式一：坐标轴旋转（点不动，坐标系旋转）**

当原坐标系不动，坐标轴旋转时，求点在新坐标系下的坐标。

**模式二：点旋转（坐标系不动，点旋转）**

两种模式的旋转矩阵互为转置。模式一可理解为"坐标系主动旋转"，模式二为"点的主动旋转"。在无人机中，我们通常使用模式一——已知机体旋转了多少角度，求同一个点在新坐标系下的表示。

#### 8.2.3 三维旋转矩阵

将二维推广到三维，分别绕三个轴旋转：

**绕 $Z$ 轴旋转（Yaw，偏航角 $\psi$）：**

$$ R(\psi) = \begin{bmatrix} \cos\psi & -\sin\psi & 0 \\ \sin\psi & \cos\psi & 0 \\ 0 & 0 & 1 \end{bmatrix} $$

**绕 $Y$ 轴旋转（Pitch，俯仰角 $\theta$）：**

$$ R(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix} $$

**绕 $X$ 轴旋转（Roll，滚转角 $\phi$）：**

$$ R(\phi) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\phi & -\sin\phi \\ 0 & \sin\phi & \cos\phi \end{bmatrix} $$

在无人机应用中，旋转矩阵 $R$ 通常表示从机体坐标系（Body Frame）到世界坐标系（World Frame）的变换，即 $\mathbf{p}_W = R \cdot \mathbf{p}_B$。其逆变换（世界→机体）为 $R^T$，因为旋转矩阵是正交矩阵，$R^{-1} = R^T$。

### 8.3 微分平坦性

微分平坦性是连接轨迹规划与控制的关键桥梁。对于四旋翼无人机，平坦输出通常选择为 $[x, y, z, \psi]$，即位置和偏航角。微分平坦性的核心价值在于：

1. **所有状态和输入都可以由平坦输出及其有限阶导数表示**
2. **轨迹规划可以在平坦输出空间进行，大大简化问题**
3. **可以将物理约束转化为平坦输出及其导数的约束**

### 8.4 SE(3) 控制

当进行大角度机动时，欧拉角会遇到万向节锁（Gimbal Lock）问题。SE(3) 控制直接在李群上进行控制设计，避免了这个问题。

核心思想是使用旋转矩阵（或四元数）直接表示姿态，而不是欧拉角，然后设计李雅普诺夫函数来保证稳定性。

### 8.5 MPC 控制

模型预测控制（Model Predictive Control, MPC）在每一个时刻：

1. 求解一个有限时间窗口的最优控制问题
2. 只执行第一个控制动作
3. 在下一时刻重复这个过程

MPC 的优势在于可以显式处理约束条件，这对无人机的安全飞行至关重要（如最大倾角限制、最大推力限制等）。

### 8.6 Minimum Snap 轨迹优化

Minimum Snap 轨迹优化通过最小化轨迹的"Snap"（加加速度的导数，即位置的四阶导数）来生成平滑的轨迹。

优化问题可以表述为：

$$ \min_{p(t)} \int_{t_0}^{t_f} \left\| \frac{d^4 p}{dt^4} \right\|^2 dt $$

subject to 初始和末端的位置、速度、加速度约束，以及中间的路径点约束。

---

## 9. 仿真环境与真机部署

### 9.1 MuJoCo

MuJoCo（Multi-Joint dynamics with Contact）是由 DeepMind 开发的物理引擎，因其轻量、快速、跨平台的特点，成为具身智能入门的首选。

**快速开始**：
```bash
pip install mujoco
python examples/01_hello_every_embodied_mujoco.py
```

**优势**：
- 安装简单，`pip install` 即可
- 跨平台：Windows / Linux / macOS 均可用
- 物理仿真稳定，适合做轨迹规划与控制演示

### 9.2 Isaac Sim / Isaac Lab

NVIDIA Isaac Sim 是一个高保真的机器人仿真平台，基于 Omniverse 构建。

**特点**：
- 支持实时光线追踪渲染
- 可并行运行数千个环境
- 内置丰富的机器人模型和传感器
- 支持 Python API 和 ROS 集成

**GR00T 集成**：NVIDIA 的 GR00T 模型可以直接在 Isaac Lab 中使用，支持合成数据生成和模型训练。

### 9.3 Habitat

Habitat 是 Facebook AI Research 开发的专门用于导航任务的仿真平台。

**特点**：
- 高速：可以实现每秒数千步的仿真
- 高质量：基于 Matterport3D 等真实场景重建
- 标准基准：支持 VLN、PointNav 等标准任务

### 9.4 GenieSim

GenieSim 是一个高保真的机器人仿真环境，支持 Pi0 等模型的部署。项目提供了一键启动镜像，大大简化了配置流程。

### 9.5 真机部署：地瓜 RDK-X5 + LeRobot

对于想要进行真机实验的学习者，项目提供了完整的硬件教程：

**地瓜 RDK-X5 入门**：
- 系统烧录与配置
- 网络连接
- 开发环境搭建

**LeRobot 遥操作**：
- 机械臂连接
- 键盘/游戏杆控制
- 数据采集

---

## 10. 数据集与评估基准

### 10.1 LIBERO 数据集

LIBERO（Lifelong Learning Benchmark for Robot Manipulation）是一个具有里程碑意义的基准测试集，专为研究终身学习和知识迁移而设计。

#### 10.1.1 数据集架构与任务分类学

LIBERO 被精心划分为四个具有特定语义目标的任务套件：

**LIBERO-Object：物体层面的泛化**
- **设计意图**：测试机器人对不同物体视觉特征（颜色、形状、纹理）的鲁棒性
- **核心逻辑**：动作序列高度相似（"捡起 X 放入篮子"），但操作对象 $X$ 发生变化

**LIBERO-Spatial：空间布局的鲁棒性**
- **设计意图**：测试机器人在物体相对位置发生变化时的空间感知与规划能力
- **核心逻辑**：操作对象固定，但其初始位置及周围环境发生变化

**LIBERO-Goal：目标状态的多样性**
- **设计意图**：测试机器人完成特定目标状态的能力，涉及复杂的交互
- **核心逻辑**：任务目标不再是单一的抓取，而是涉及开合、推拉、放置等多种物理交互

**LIBERO-10 (Long-Horizon)：长程时序推理**
- **设计意图**：测试机器人执行长序列、多步骤组合任务的能力
- **核心逻辑**：通常涉及两个或以上的连续动作，或者条件触发动作

#### 10.1.2 定量统计分析

- **总 Episodes**：1,693 个
- **总样本帧数**：273,465 帧
- **平均采样率**：约 161.5 帧/Episode

| 数据集名称 | 任务数 | Episodes 数量 | 总样本数 | 平均长度 |
|---------|-------|--------------|---------|---------|
| libero_10 | 10 | 379 | 101,469 | 267.7 |
| libero_goal | 10 | 428 | 52,042 | 121.6 |
| libero_object | 10 | 454 | 66,984 | 147.5 |
| libero_spatial | 10 | 432 | 52,970 | 122.6 |

### 10.2 其他数据集

**SimpleENV**：一个简单但全面的机器人操作基准。

**RT-X 数据集**：谷歌联合多家机构构建的跨具身数据集，包含多种机器人平台的数据。

---

## 11. 工程实践指南

### 11.1 项目结构组织

Every-Embodied 项目采用章节式组织，每个章节聚焦一个特定主题：

```
every-embodied/
├── 01-具身智能概述/              # 领域背景介绍
├── 02-机器人基础和控制、手眼协调/ # 数学基础
├── 03-机器人硬件、lerobot及地瓜RDK-X5开发板控制教程/  # 硬件实战
├── 04-具身场景的计算机视觉、3D重建/  # 视觉感知
├── 05-具身场景的深度和强化学习/    # RL算法
├── 06-策略抓取或抓取VLA/          # VLA大模型系列
├── 07-机器人操作、运动控制/       # 运动控制
├── 08-具身导航及VLN/             # 视觉语言导航
├── 09-具身智能数据及评估基准benchmark/  # 数据集
├── 10-具身智能其他仿真工具及仿真前沿/  # 仿真环境
├── 12-具身智能面试问题汇总/       # 面试准备
├── 13-其他前沿项目复现/           # 其他复现
├── 15-Challenge竞赛/              # 竞赛教程
├── 16-专题组队学习/               # 组队学习
├── 17-具身世界模型/               # 世界模型
├── 18-无人机专题/                 # 无人机
├── examples/                      # 快速体验
└── assets/                        # 资源文件
```

### 11.2 学习路径建议

#### 纯仿真学习路径（适合无硬件）

```
第1周：快速体验 → 具身智能概述 → 空间描述与坐标变换
第2周：机器人运动学 → MuJoCo仿真基础
第3-4周：计算机视觉模块 → 强化学习基础
第5-6周：ACT/SmolVLA复现（MuJoCo版）
第7-8周：ETPNav导航复现
```

#### 硬件+仿真路径（适合有开发板）

```
第1周：快速体验 → 地瓜RDK-X5入门
第2周：LeRobot遥操作 → 传感器数据采集
第3-4周：MuJoCo数据采集 → ACT训练
第5-6周：SmolVLA微调 → 真机部署
第7-8周：综合项目调试
```

#### 前沿研究导向

```
第1-2周：基础扫盲 + VLA综述
第3-4周：SmolVLA/OpenVLA深入理解
第5-6周：LeWorldModel复现
第7-8周：无人机控制+规划
第9-12周：选定方向深入科研
```

### 11.3 常见问题与解决方案

#### 环境配置问题

**MuJoCo 渲染问题**：
- 无头模式：使用 `--headless` 参数
- 缺少 OpenGL 库：安装 `libopengl0 libgl1-mesa-glx`

**CUDA 版本不匹配**：
```bash
pip uninstall -y torch torchvision torchaudio
pip install --no-cache-dir --force-reinstall \
--index-url https://download.pytorch.org/whl/cu124 \
torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0
```

#### 训练问题

**DataLoader Pickling 错误**：
将 `num_workers` 设为 0：
```python
dataloader = torch.utils.data.DataLoader(
    dataset,
    num_workers=0,  # 改为0
    batch_size=64,
    ...
)
```

**显存不足**：
- 减小 batch size
- 使用梯度累积
- 模型量化

---

## 12. 总结与展望

### 12.1 技术演进总结

具身智能领域在过去几年经历了快速发展，我们可以看到几个明显的趋势：

1. **从专用到通用**：早期的机器人系统通常是为特定任务设计的，现在的 VLA 模型展现出了令人印象深刻的泛化能力。

2. **大模型赋能**：LLM 和 VLM 的进步为具身智能带来了"常识"和推理能力，RT-2、OpenVLA 等模型是这一趋势的代表。

3. **开源化**：从早期的闭源系统到现在的 OpenVLA、SmolVLA 等开源模型，生态正在快速繁荣。

4. **轻量化**：SmolVLA、SwiftVLA 等模型证明，即使在 450M 参数量级别，也能实现不错的效果。

5. **世界模型复兴**：LeWM 等工作展示了世界模型在解决表征崩溃问题上的新进展。

### 12.2 当前局限与未来方向

#### 当前局限

1. **Sim-to-Real 差距**：仿真到真实的迁移依然是一个挑战。

2. **数据效率**：机器人数据的获取成本依然很高。

3. **长程任务**：对于需要上百步决策的任务，当前方法的可靠性还有限。

4. **实时推理**：大型模型在边缘设备上的实时推理还需要进一步优化。

#### 未来方向

1. **更好的世界模型**：能够准确预测更长时间跨度的世界模型。

2. **自监督学习**：从大量无标注视频中学习物理规律。

3. **更强的泛化**：能够快速适应新物体、新环境的方法。

4. **更高的安全性**：确保机器人在开放环境中的安全行为。

5. **多机器人协作**：多个机器人之间的有效协作。

### 12.3 结语

从虚拟世界的"思考者"，到物理世界的"行动者"，具身智能正在引领 AI 开启下一段伟大的征程。它不仅是技术的飞跃，更关乎我们如何理解"智能"本身，以及我们期望与一个怎样的智能物种共存。

Every-Embodied 项目通过"理论-实践-复现"三位一体的方式，为学习者提供了从入门到前沿的完整路径。我们希望这份综述能够帮助更多工程师和从业者进入这个令人兴奋的领域，共同推动具身智能的发展。

这扇门已经打开，门后的世界，既充满挑战，也蕴藏着无限的可能。让我们共同见证，这个由代码和齿轮驱动的"新物种"，将如何学习、成长，并最终改变世界。

---

## 参考文献

由于篇幅限制，这里仅列出 Every-Embodied 项目中涉及的部分关键工作：

1. **RT-1**: Brohan et al., "RT-1: Robotics Transformer for Real-World Control at Scale", 2022

2. **RT-2**: Brohan et al., "RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control", 2023

3. **OpenVLA**: Kim et al., "OpenVLA: An Open-Source Vision-Language-Action Model", 2024

4. **SmolVLA**: Vemprala et al., "SmolVLA: A Small but Mighty Vision-Language-Action Model", 2024

5. **ETPNav**: An et al., "ETPNav: Evolving Topological Planning for Vision-Language Navigation in Continuous Environments", IEEE TPAMI 2024

6. **LeWM**: Li et al., "Scalable Training of Stable World Models via Signals from the Future", 2025

7. **GR00T**: NVIDIA, "GR00T: A General-Purpose Foundation Model for Humanoid Robotics", 2025

8. **HoloBrain-0**: Horizon Robotics, "HoloBrain-0: A Versatile Embodied AI Foundation Model with Explicit Physical Modeling", 2025

---

## 附录

### A. 快速开始代码

```bash
# 克隆仓库
git clone --depth 1 https://github.com/datawhalechina/every-embodied.git
cd every-embodied

# 创建并激活 Conda 环境
conda create -n embodied python=3.8
conda activate embodied

# 安装依赖并运行基础机械臂抓取 Demo
pip install mujoco
pip install ruckig  # 可选：更平滑的轨迹规划
python examples/01_hello_every_embodied_mujoco.py
```

### B. 学习资源链接

- **Every-Embodied 项目主页**: https://github.com/datawhalechina/every-embodied
- **飞书知识库**: https://datawhale-eai.feishu.cn/wiki/QvxQwV2Qyij1NakV9IdcjTl1nJd
- **官方网站**: https://www.datawhale.cn/learn/summary/258

### C. 硬件要求参考

| 配置级别 | 适用场景 | 推荐配置 |
|---------|---------|---------|
| 入门级 | MuJoCo 轻量仿真 | 普通笔记本电脑 |
| 进阶级 | 训练中小型 VLA 模型 | RTX 3060+ 显卡 |
| 旗舰级 | 完整复现前沿论文 | RTX 4090 或多卡 |

---

**致谢**

本文档基于 Datawhale Every-Embodied 社区的丰富实践经验编写。感谢所有贡献者的辛勤工作，特别感谢：

- Ethan-Chen-plus（项目负责人）
- YYPro、李昀迪、张天一、陈可为、霍海杰 等核心贡献者
- 以及所有参与项目建设的社区成员

**关于 Every-Embodied**

Every-Embodied 致力于打造一个"基础友好、工程可复现、前沿可拓展"的学习库。我们希望降低门槛：即使你目前只有 Python 基础，也可以从仿真和最小可运行 Demo 出发，逐步完成从"看懂"到"动手复现"的跨越。

欢迎加入我们，共同构建具身智能开源生态！
