Skip to content

第16章 机器学习与机器人

16 第 16 章 机器学习与机器人

16.1 为什么机器人需要机器学习

表 16-1 传统机器人依赖人工设计的规则和模型,面对复杂多变的真实环境时存在根本性挑战:

传统方法的局限 具体问题 ML 解决思路
手工特征设计 不同场景需要不同特征,难以泛化 深度学习自动学习特征表示
精确建模困难 复杂动力学难以用解析公式描述 数据驱动的模型学习
规则组合爆炸 任务越复杂,规则越难维护 强化学习端到端策略
语义理解缺失 传统感知只有几何,缺乏语义 视觉-语言模型理解场景

上表汇总了为什么机器人需要机器学习中常见的问题现象、可能原因及推荐解决方案,可作为排障时的快速参考手册。

→ ↓ vs. → ↓ → ↓ → ↓ → PID → 传统方法 ML 方法 手工设计 数据驱动 感知 规则 感知 学习 规划 优化 规划 端到端 控制 控制 策略网络 每个模块人工设计 从数据中学习

图 16-1 上图直观呈现了为什么机器人需要机器学习的组成要素与数据通路,有助于理解系统整体的工作机理。

16.2 监督学习在感知中的应用

16.2.1 深度学习基础回顾

深度学习的核心是多层神经网络通过反向传播自动学习特征表示。

卷积神经网络(CNN)是视觉任务的基石:

输入图像 卷积层×N 池化 全连接 输出 特征图 降采样 分类 类别 边缘/纹理 回归 框 → 语义 分割 224× 224 × 3

图 16-2 上图以框图形式描绘了深度学习基础回顾的系统架构,清晰呈现了各模块之间的连接关系与信号流向。

16.2.2 视觉感知任务

在第 12 章我们介绍了目标检测(YOLO)和语义分割。这里补充几个机器人特有的视觉任务:

1. 深度估计(Monocular Depth Estimation)

从单张 RGB 图像预测深度图,解决单目相机无深度信息的问题:

import torch

# MiDaS 单目深度估计
model = torch.hub.load("intel-isl/MiDaS", "MiDaS_small")

model.eval()

transform = torch.hub.load("intel-isl/MiDaS", "transforms").small_transform

img = cv2.imread("scene.jpg")
input_batch = transform(img)

with torch.no_grad():
    prediction = model(input_batch)
    depth = prediction.squeeze().cpu().numpy()
# depth: 相对深度图(值越大越远)

2. 光流估计(Optical Flow)

表 16-2 估计连续帧之间像素级的运动,用于动态物体检测和避障:

算法 类型 精度 速度
Lucas-Kanade 经典,稀疏 中 快
FlowNet2 深度学习 高 中(GPU)
RAFT 深度学习 最高 中(GPU)

3. 位姿估计(Pose Estimation)

检测图像中人的关节位置,用于人机交互和安全避让。

16.3 强化学习基础

16.3.1 马尔可夫决策过程(MDP)

强化学习(RL)的数学框架:

$$ MDP = (\mathcal{S}, \mathcal{A}, P, R, \gamma) $$

  • $\mathcal{S}$:状态空间
  • $\mathcal{A}$:动作空间
  • $P(s'|s, a)$:状态转移概率
  • $R(s, a)$:奖励函数
  • $\gamma \in [0, 1)$:折扣因子

目标:找到策略 $\pi(a|s)$ 最大化累积奖励:

$$ \max_\pi \mathbb{E}\left[\sum_{t=0}^{\infty} \gamma^t R(s_t, a_t)\right] $$

→ ← → 强化学习交互循环 状态 s_t 环境 智能体 动作 a_t 奖励 r_t 下一状态 s_{t+1}

图 16-3 该框图展示了马尔可夫决策过程(MDP)的核心结构,读者可以从中把握各功能单元的层次划分与协作方式。

16.3.2 值函数与策略梯度

两大类 RL 方法:

基于值函数(Value-based):学习状态-动作值 $Q(s, a)$,选择使 $Q$ 最大的动作。

$$ Q^(s, a) = R(s, a) + \gamma \sum_{s'} P(s'|s, a) \max_{a'} Q^(s', a') $$

代表算法:DQN、Double DQN、Dueling DQN

基于策略梯度(Policy Gradient):直接优化策略网络参数。

$$ \nabla_\theta J(\theta) = \mathbb{E}{\pi\theta} \left[\nabla_\theta \log \pi_\theta(a|s) \cdot A(s, a)\right] $$

代表算法:PPO、SAC、TD3

16.3.3 常用 RL 算法对比

表 16-3 常用 RL 算法对比

算法 类型 动作空间 特点 适用场景
DQN 值函数 离散 简单,稳定 网格导航
PPO 策略梯度 连续/离散 鲁棒,易调参 运动控制
SAC Actor-Critic 连续 样本效率高 精细操作
TD3 Actor-Critic 连续 解决过估计 机器人控制

通过上表的对比可以看出,不同方案在算法、类型、动作空间等等方面各有优劣,实际选型时应结合具体应用场景综合权衡。

16.4 强化学习用于机器人控制

16.4.1 经典控制 vs RL 控制

vs ↓ ↓ ↓ ↓ 经典控制 RL 控制 需要精确模型 无需精确模型 系统辨识 仿真训练 控制器设计 策略网络学习 (PID/MPC) (神经网络) 参数调优 Sim-to-Real 迁移

图 16-4 上图直观呈现了经典控制 vs RL 控制的组成要素与数据通路,有助于理解系统整体的工作机理。

16.4.2 仿真训练环境

RL 训练需要大量交互数据,在真实机器人上直接训练效率低且有安全风险。仿真器提供安全、可并行、可加速的训练环境:

表 16-4 仿真训练环境

仿真器 开发者 特点 适用场景
Gazebo Open Robotics 开源,ROS2 集成 移动机器人、通用
Isaac Sim NVIDIA GPU 加速物理,光线追踪 大规模并行训练
MuJoCo DeepMind 精确接触模拟 操作臂、灵巧手
PyBullet Erwin Coumans Python 友好,轻量 教学、快速原型

上表对仿真训练环境中各方案的特性进行了横向对比,便于读者根据实际需求选择最合适的技术路线。

16.4.3 Sim-to-Real 迁移

仿真中训练的策略直接部署到真实机器人通常效果不佳(Reality Gap)。常用的迁移方法:

1. 域随机化(Domain Randomization)

在训练时随机化仿真参数(摄擦系数、质量、视觉纹理等),使策略对不确定性具有鲁棒性。

2. 系统辨识(System Identification)

精确测量真实系统参数,在仿真中复现。

3. 域适应(Domain Adaptation)

使用对抗学习等方法使仿真特征与真实特征对齐。

# PyBullet 简单 RL 训练示例
import gymnasium as gym
from stable_baselines3 import PPO

# 创建差速机器人导航环境
env = gym.make("CartPole-v1")  # 基础示例

# PPO 训练
model = PPO("MlpPolicy", env, verbose=1,
            learning_rate=3e-4,
            n_steps=2048,
            batch_size=64)
model.learn(total_timesteps=100000)

# 评估
obs, _ = env.reset()
for _ in range(1000):
    action, _ = model.predict(obs, deterministic=True)
    obs, reward, terminated, truncated, info = env.step(action)
    if terminated or truncated:
        obs, _ = env.reset()

16.5 模仿学习

16.5.1 从示范中学习

模仿学习(Imitation Learning)从人类示范中直接学习策略,绕过奖励函数设计:

s, a 对 → → πa s) 专家示范 学习策略 自主执行 人类操作 神经 机器人 遥控机器人 网络 自主 录制数据 训练 拟合 部署 运行

图 16-5 上图以框图形式描绘了从示范中学习的系统架构,清晰呈现了各模块之间的连接关系与信号流向。

两种主要方法:

表 16-5 从示范中学习

方法 原理 优点 缺点
行为克隆(BC) 监督学习拟合 $(s, a)$ 对 简单直接 分布偏移(compounding error)
DAgger 迭代收集修正数据 解决分布偏移 需要专家在线标注

通过上表的对比可以看出,不同方案在方法、原理、优点等等方面各有优劣,实际选型时应结合具体应用场景综合权衡。

16.5.2 行为克隆实现

import torch
import torch.nn as nn
import numpy as np

class PolicyNetwork(nn.Module):
    def __init__(self, state_dim, action_dim):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(state_dim, 256),
            nn.ReLU(),
            nn.Linear(256, 256),
            nn.ReLU(),
            nn.Linear(256, action_dim),
            nn.Tanh()  # 动作归一化到 [-1, 1]
        )

    def forward(self, state):
        return self.net(state)

# 训练行为克隆
def train_bc(expert_states, expert_actions, epochs=100):
    model = PolicyNetwork(state_dim=6, action_dim=2)  # [v, omega]
    optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
    criterion = nn.MSELoss()

    states = torch.FloatTensor(expert_states)
    actions = torch.FloatTensor(expert_actions)

    for epoch in range(epochs):
        pred_actions = model(states)
        loss = criterion(pred_actions, actions)

        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

        if epoch % 10 == 0:
            print(f"Epoch {epoch}, Loss: {loss.item():.4f}")

    return model

16.6 基础模型与具身智能

16.6.1 大语言模型 + 机器人

2023 年以来,大语言模型(LLM)和视觉-语言模型(VLM)开始深入机器人领域,形成**具身智能(Embodied AI)**的新范式:

→ → 自然语言指令 LLM/VLM 机器人动作 帮我把桌上 1. 导航到桌子 的杯子拿来 理解 + 规划 2. 识别杯子 任务分解 3. 伸手抓取 4. 导航到人 5. 递出 场景感知 (相机/LiDAR)

图 16-6 该框图展示了大语言模型 + 机器人的核心结构,读者可以从中把握各功能单元的层次划分与协作方式。

16.6.2 代表性工作

表 16-6 代表性工作

系统 机构 方法 关键创新
SayCan Google LLM + 可行性评分 LLM 提议动作,机器人评估可行性
Code as Policies Google LLM 生成控制代码 将自然语言转为 Python 控制程序
RT-2 Google DeepMind VLM 直接输出动作 视觉-语言-动作端到端模型
Mobile ALOHA Stanford 双臂灵巧操作 低成本全身遥操作+模仿学习
Open X-Embodiment Google et al. 跨机器人数据集 统一 53 种机器人的数据训练

上表对代表性工作中各方案的特性进行了横向对比,便于读者根据实际需求选择最合适的技术路线。

16.6.3 语义 SLAM 与场景图

将深度学习的语义理解与 SLAM 建图结合:

. . → + . 点 . . . 点 . 传统 SLAM 语义 SLAM 点/线特征 物体级特征 几何地图 语义标注地图 场景图 桌子 杯子 椅子

图 16-7 上图直观呈现了语义 SLAM 与场景图的组成要素与数据通路,有助于理解系统整体的工作机理。

场景图(Scene Graph)将环境表示为物体节点和关系边的图结构:

  • 节点:物体(桌子、椅子、杯子)及其属性(位置、颜色、大小)

  • 边:空间关系(on、near、inside)

  • 应用:支持基于自然语言的导航("去放着红色杯子的那张桌子旁")

16.7 VLA 实时推理与毫秒级响应

16.6 节介绍的 VLA 可直接把视觉观测与语言指令映射为动作,但要把这类模型放进机器人的实时闭环,时延就成为决定成败的指标。本节先剖析普通 LLM 与 VLA 慢的根源,再按落地优先级给出面向毫秒级响应的工程改造路线。

核心结论可概括为一句话:普通对话 LLM 慢,根源是自回归逐 token 解码 + 大量图像 token 预填充(prefill);而 VLA(Vision-Language-Action, VLA,视觉-语言-动作模型)要做到毫秒级端到端(几十至 200 ms),不能只优化 LLM,必须对模型架构、动作输出范式、缓存、量化、硬件与分层控制做全套改造。

注意:真正低于 50 ms 的 VLA 很难用 7B 量级的大 VLM 主干直接硬跑。工程语境下的「VLA 毫秒级响应」通常指 100~200 ms;要求低于 50 ms 时,一般需要采用分层双系统(见 16.7.7 节)。

16.7.1 为什么 VLA 慢:Prefill 与自回归解码双瓶颈

VLA 的典型结构为:图像编码器 + 投影层 + LLM 主干 + 动作头(Action Head)。时延来自两个瓶颈:

  1. Prefill 瓶颈(最致命):每当相机产生新图像,都要把几百至上千个图像 patch token 送入 Transformer 做一次完整前向计算。普通聊天 LLM 的输入只有文本 token,而 VLA 在每一个控制周期都要重新编码图像,prefill 属计算密集型,是端到端时延的主要来源。
  2. 自回归解码瓶颈:LLM 逐个串行生成动作 token,每一步都要访问键值缓存(KV Cache),访存量受显存带宽限制,难以并行。

注意:OpenVLA、RT-2 等把动作编码为文本 token,直接复用 LLM 的自回归解码,因此天然偏慢。

16.7.2 架构方案 A:一次性连续动作输出

治本的思路是抛弃动作 token 自回归,改用一次性连续动作输出,代表范式包括流匹配(Flow-Matching)、扩散 Transformer(DiT, Diffusion Transformer)与 ACT(Action Chunking with Transformers)。

π₀.₅、GR00T 等流匹配 VLA 不把动作变成 token,而是直接输出连续动作向量:

  • 普通 LLM:token1 -> token2 -> token3 串行解码;
  • 流匹配 VLA:一次前向(少量去噪迭代)直接输出一整段动作轨迹。

配套加速手段是动作缓存(ActionCache):缓存相似场景下的中间去噪状态,画面相似时直接复用缓存,可把动作头的速度提升数倍到数十倍。

16.7.3 架构方案 B:分层双系统

分层双系统(如 SP-VLA 思路)最适合机器人闭环,它让两套策略并行工作:

  1. 快速直觉策略(轻量小模型或查表):高频运行,以毫秒级时延输出基础动作,负责稳定、重复的场景;
  2. 重型 VLA(大模型):低频触发,仅在需要语义决策、遇到新物体或新指令时才运行。

提示:机器人大部分时间不需要大模型推理,只有环境显著变化时才唤醒 VLA 重新规划。多数控制周期由轻量模型兜底,从而在整体上实现毫秒级控制响应。

16.7.4 架构方案 C/D:Token 剪枝与一致性蒸馏

图像 token 过多是 prefill 的元凶,可用以下两种方式削减:

  • Token 剪枝与动态稀疏注意力:利用空间语义重要性丢弃不重要的图像 patch,只保留与物体相关的视觉 token;或只对关键 token 计算注意力以减少浮点运算量。EcoVLA、FastV 属于这一路线。
  • 一致性蒸馏(Consistency Distillation):流模型本需多次迭代去噪,蒸馏后 1~2 步即可得到最终动作,大幅减少迭代次数,无需完整采样链。

16.7.5 量化压缩:W4A8 与动作头精度保护

VLA 的量化痛点是视觉 prefill 计算量巨大,因此不能只对 LLM 权重做量化。推荐 W4A8(权重 4 bit、激活 8 bit)方案:

  • 权重 4 bit,采用 AWQ、ParoQuant 等方法;
  • 激活 8 bit;
  • 动作头对数值误差敏感,保留 BF16,不做量化;
  • KV Cache 使用 INT4/INT8 量化,以缓解显存带宽压力。

提示:FlashDrive 在 RTX PRO 6000 上依靠该方案把单次推理从 716 ms 降到 151 ms,取得约 4.7 倍加速。

16.7.6 推理引擎与缓存系统

这一层是工程落地的核心,包含三项关键技术。

(1)PagedAttention 与前缀缓存(Prefix Cache):VLA 中的语言指令往往固定(例如「抓取物体」),这部分文本前缀的 KV 可以提前计算并缓存;每次推理只需对新图像 token 做 prefill,无需重复编码指令。

(2)图像编码缓存与状态缓存:相机帧率通常高于 VLA 推理帧率,相邻帧高度相似。可复用上一帧的视觉 embedding,只有当画面变化超过阈值时才重新运行视觉编码器。也就是说,并非每帧图像都跑完整 VLA,变化小时直接复用上次输出。

(3)推测解码(Speculative Decoding):如果必须保留 LLM 自回归动作 token 范式(如 OpenVLA、RT-2),可由小草稿模型一次性预生成多个动作 token,再由大模型一次前向批量校验,一次验证多个 token,减少串行步数。该方法适合无法改动模型结构的场景。

16.7.7 硬件调度、控制域与落地路线

硬件与系统层面的优化包括:

  1. 本地高带宽 GPU,避免走网络:网络往返时延(RTT)会直接吃掉几十毫秒,毫秒级 VLA 必须端侧本地推理(如 Jetson Thor、RTX 4090/5090),不能依赖远程 API。
  2. 算子融合与编译优化:使用 TensorRT-LLM、SGLang、MLC-LLM 等对 Transformer 层与视觉编码器进行算子融合,减少 GPU 核启动开销与内存读写。
  3. 异步流水线推理(最重要的系统技巧):将相机采集、图像编码、VLA 推理、机器人执行做流水线重叠,机器人在执行上一轮动作时,VLA 已在并行处理下一帧图像,从而掩盖推理时延。其目标不是降低单次推理耗时,而是掩盖时延、使控制闭环周期达到毫秒级。

分层 VLA 异步流水线(ms 级闭环) 高频控制环(5~20 ms) 相机采集 图像编码 轻量策略 机器人执行 视觉特征缓存 动作执行 低频规划环(200 ms 级,按需触发) 重型 VLA(慢速规划器) 参考轨迹/子目标 语义决策 / 新物体 / 新指令

图 16-8 上图展示分层 VLA 异步流水线:高频控制环由轻量策略持续输出动作,低频规划环按需唤醒重型 VLA 更新参考轨迹,两条流水线并行重叠,以掩盖大模型推理时延。

控制域方面,VLA 通常一次性预测未来 N 步动作轨迹:N 越大推理越慢。做闭环控制时应缩短动作预测窗口(horizon),只预测很短的一段动作并快速重规划;代价是重规划频率升高,但单步推理时延显著下降。

综合上述手段,可按需求选择两条落地路线:

  • 路线 A:端到端单模型,100~200 ms(适合研究)。推荐组合:流匹配 VLA + ActionCache + W4A8 量化 + 图像特征缓存 + Prefix Cache + TensorRT 算子编译;代表工作有 FlashDrive、π₀.₅ + ActionCache。
  • 路线 B:低于 50 ms 闭环响应(工业实时控制,推荐工程方案)。采用分层双系统:轻量快速策略以 5~20 ms 持续输出控制量,重型 VLA 作为慢速规划器以 200 ms 级低频更新参考轨迹。实时控制由轻量模型负责,VLA 只承担语义理解、新场景适应与目标切换,不参与高频控制环。SP-VLA 即这一范式,是目前兼顾毫秒级闭环与 VLA 泛化能力的可行方案。

16.7.8 常见误区与落地检查清单

工程实践中常见的三个误区:

  1. 只靠推测解码无法把 VLA 压到毫秒级:VLA 最大的瓶颈是图像 prefill 而非 token 解码,推测解码只优化解码阶段,对视觉预填充几乎无效。
  2. 远程 API 调用不可能达到毫秒级:网络时延几十至上百毫秒,直接卡死时延下限,VLA 必须本地端侧 GPU 推理。
  3. 把 7B VLM 直接量化到 4 bit 就期望几十毫秒:图像 token 数量庞大、prefill 开销巨大,单纯量化并不足够,必须配合图像 token 裁剪与特征缓存。

落地时可按成本从低到高依次尝试:

  1. 启用图像特征缓存:画面变化小时复用视觉 embedding(改动最小、收益高);
  2. 采用 W4A8 量化,动作头保持高精度;
  3. 用 Prefix Cache 缓存固定语言指令的 KV;
  4. 做 token 剪枝,减少图像 patch token 数量;
  5. 换成流匹配架构并配合 ActionCache(治本,需要微调或重训模型);
  6. 采用分层双系统架构,由轻量策略接管高频实时控制。

16.8 机器学习在机器人各模块的应用总览

↓ ↓ ↓ ↓ 机器学习 × 机器人全栈 感知层 估计层 规划层 控制层 目标检测 学习型 学习型 RL 控制 深度估计 里程计 路径规划 模仿学习 语义分割 Neural 行为树 自适应 (第12章) SLAM 任务规划 (10.6节) 特征自动 数据驱动 经验驱动 端到端 提取 状态估计 决策 策略

图 16-9 上图以框图形式描绘了机器学习在机器人各模块的应用总览的系统架构,清晰呈现了各模块之间的连接关系与信号流向。

表 16-7 机器学习在机器人各模块的应用总览

应用领域 ML 方法 替代/增强的传统方法 成熟度
目标检测 YOLO, DETR 手工特征+分类器 工业部署
深度估计 MiDaS, ZoeDepth 双目匹配 半成熟
里程计 DROID-SLAM, TartanVO 特征点法 VO 研究阶段
路径规划 RL+图搜索 A*/RRT 研究阶段
运动控制 PPO, SAC PID/MPC 仿真成熟
抓取规划 GraspNet, Contact-GraspNet 解析方法 半成熟
任务规划 LLM+VLM 有限状态机 早期研究

通过上表的对比可以看出,不同方案在应用领域、ML 方法、替代/增强的传统方法等等方面各有优劣,实际选型时应结合具体应用场景综合权衡。

16.9 实践:基于 RL 的导航策略

16.9.1 环境设计

使用 Gazebo 仿真创建一个简单的避障导航环境:

# 基于 ROS2 的 RL 导航环境(简化版)
import gymnasium as gym
import numpy as np

class GazeboNavEnv(gym.Env):
    """差速机器人避障导航环境"""

    def __init__(self):
        super().__init__()
        # 状态:[激光雷达 24 点, 目标方向, 目标距离]
        self.observation_space = gym.spaces.Box(
            low=0, high=10, shape=(26,), dtype=np.float32)
        # 动作:[线速度, 角速度]
        self.action_space = gym.spaces.Box(
            low=np.array([0.0, -1.0]),
            high=np.array([0.5, 1.0]),
            dtype=np.float32)

    def step(self, action):
        v, omega = action
        # 发送速度指令到 Gazebo
        self._send_cmd_vel(v, omega)

        # 获取新状态
        obs = self._get_observation()

        # 计算奖励
        reward = self._compute_reward(obs)

        # 判断是否结束
        terminated = self._check_collision() or self._check_goal_reached()

        return obs, reward, terminated, False, {}

    def _compute_reward(self, obs):
        """奖励函数设计"""
        min_laser = np.min(obs[:24])
        goal_dist = obs[25]

        reward = 0.0
        # 接近目标奖励
        reward += (self.prev_goal_dist - goal_dist) * 10.0
        # 碰撞惩罚
        if min_laser < 0.2:
            reward -= 100.0
        # 靠近障碍物惩罚
        elif min_laser < 0.5:
            reward -= 1.0
        # 到达目标奖励
        if goal_dist < 0.3:
            reward += 200.0

        self.prev_goal_dist = goal_dist
        return reward

16.9.2 训练与评估

from stable_baselines3 import PPO
from stable_baselines3.common.vec_env import SubprocVecEnv

# 多环境并行训练(加速数据收集)
def make_env():
    return GazeboNavEnv()

env = SubprocVecEnv([make_env for _ in range(4)])

# PPO 训练
model = PPO(
    "MlpPolicy", env,
    learning_rate=3e-4,
    n_steps=2048,
    batch_size=256,
    n_epochs=10,
    gamma=0.99,
    verbose=1,
    tensorboard_log="./nav_tensorboard/"
)

model.learn(total_timesteps=1_000_000)
model.save("nav_policy_ppo")

16.10 前沿展望

表 16-8 机器学习与机器人的融合正在加速演进,以下是值得关注的方向:

方向 描述 代表工作 挑战
世界模型 学习环境的物理模型用于规划 Dreamer, IRIS 模型精度与泛化
Foundation Models for Robotics 预训练大模型适配机器人 RT-2, Octo 数据集规模、泛化性
Sim-to-Real 零样本 仅在仿真训练,直接部署 域随机化+课程学习 Reality Gap
多模态融合 视觉+触觉+力+语言联合学习 RoboCasa 传感器对齐
安全 RL 满足安全约束的强化学习 Constrained RL 约束满足与性能

上表对前沿展望中各方案的特性进行了横向对比,便于读者根据实际需求选择最合适的技术路线。

16.11 小结与习题

本章概览了机器学习在机器人系统中的应用,从监督学习感知、强化学习控制到模仿学习和具身智能。机器学习正在改变机器人系统的每一层——从感知到规划到控制,但距离大规模工业部署仍有差距。

监督 强化 模仿 基础 前沿 学习 学习 学习 模型 展望 感知能力 控制策略 从示范学 语言交互 (视觉/深度) (避障/操作) (行为克隆) (具身智能)

图 16-10 该框图展示了小结与习题的核心结构,读者可以从中把握各功能单元的层次划分与协作方式。

习题

??? question "16-1 奖励函数设计" 为差速机器人设计一个"走廊跟随"任务的强化学习奖励函数。机器人需要沿走廊中线行驶,遇到 T 字路口向右转。讨论奖励的各个分量及其权重。

??? question "16-2 Sim-to-Real Gap" 列举至少 5 种导致仿真与真实环境差异的因素。对于差速机器人的避障导航任务,哪些因素影响最大?域随机化如何缓解这些问题?

??? question "16-3 行为克隆 vs RL" 对于"差速机器人循线行驶"任务,分别设计行为克隆和强化学习的解决方案。对比两种方法在数据需求、训练效率、泛化能力方面的差异。

??? question "16-4 LLM + 机器人" 假设你有一个配备相机和机械臂的移动机器人,设计一个系统架构使其能理解自然语言指令"把桌上的红色杯子放到柜子里"。画出从语言理解到动作执行的完整流程图,标注每个模块使用的技术。

??? question "16-5 综合项目" 使用 stable-baselines3 和 Gymnasium,训练一个 PPO 策略完成 CartPole-v1 任务(或自定义的机器人导航任务)。记录训练曲线(reward vs timesteps),分析超参数(learning_rate, n_steps, gamma)对训练效果的影响。


16.12 本章测验

Quiz results are saved to your browser's local storage and will persist between sessions.

#

1) 在深度学习中,单目深度估计网络为什么需要使用大量数据训练?

#

2) PPO(Proximal Policy Optimization)相比原始策略梯度方法的改进是什么?

#

3) 行为克隆(Behavior Cloning)最主要的局限性是什么?

#

4) 具身智能(Embodied AI)中"大语言模型作为任务规划器"的典型架构是怎样的?

#

5) 在 VLA 推理中,限制端到端时延的最主要瓶颈是什么?

Quiz Progress

0 / 0 questions answered (0%)

0 correct