跳转至

第11章 · 自主系统 · 阶段测试题答案


一 · 单选 (8 题)

1.1 B - VLA = Vision Language Action。

1.2 A - RT-2 是 Google 首个 VLA 大模型。

1.3 C - π0 是 Physical Intelligence 的机器人基础模型。

1.4 B - 自动驾驶分级 SAE 0-5。

1.5 A - LiDAR 是 3D 感知主要传感器。

1.6 B - BEV 是鸟瞰视角, 用于自动驾驶感知。

1.7 C - Waymo 是 L4 自动驾驶领头羊。

1.8 A - SLAM 是定位与地图构建。


二 · 多选 (4 题)

2.1 ABCD - 4 大感知传感器。

2.2 ABD - C 错: 仿真训练是真车训练的前置。

2.3 ABC - 自动驾驶关键任务。

2.4 ABD - 都是机器学习方法。


三 · 简答 (5 题)

3.1 VLA 模型

核心: Vision + Language + Action 三模态融合 架构: - 视觉编码器 (ViT / SigLIP) - 语言模型 (LLM) - Action Head (输出机器人动作)

代表: RT-2 / π0 / OpenVLA / GR00T 训练: 互联网 (V+L) + 机器人轨迹数据

3.2 自动驾驶分级

级别 名称 自动化
L0 无自动化 司机全权
L1 驾驶辅助 巡航 / 车道
L2 部分自动化 Tesla FSD
L3 有条件自动化 紧急时司机
L4 高度自动化 Waymo (限定区域)
L5 完全自动化 科幻

3.3 感知 - 决策 - 控制

感知: 摄像头 / 雷达 / LiDAR → 物体检测 / 跟踪 / 占据网格 预测: 周围车辆 / 行人轨迹预测 规划: 全局路线 + 局部轨迹 控制: 油门 / 刹车 / 转向

3.4 BEV 感知

Bird's Eye View: 鸟瞰图视角 优势: - 统一多摄像头 - 易于规划(规划也在 BEV) - 几何清晰

代表: BEVFormer / BEVDet / Tesla Occupancy Network

3.5 机器人学习

模仿学习 (IL): 从人类示范学 强化学习 (RL): 试错 离线 RL: 从已有数据学 Diffusion Policy: 扩散模型生成动作 VLA: 视觉-语言-动作大模型


四 · 编程 (2 题)

4.1 BEV 感知简化

import torch
import torch.nn as nn

class SimpleBEV(nn.Module):
    def __init__(self, n_cameras=6):
        super().__init__()
        self.backbone = nn.Sequential(
            nn.Conv2d(3, 64, 3, padding=1), nn.ReLU(),
            nn.MaxPool2d(2),
        )
        # 6 camera → BEV transform
        self.bev_pool = nn.Linear(64 * n_cameras, 64)

    def forward(self, images):
        # images: (B, N, 3, H, W)
        B, N, C, H, W = images.shape
        feats = self.backbone(images.view(B*N, C, H, W))  # (B*N, 64, h, w)
        feats = feats.mean(dim=[2, 3])  # (B*N, 64)
        bev = self.bev_pool(feats.view(B, N * 64))  # (B, 64)
        return bev

4.2 Diffusion Policy

import torch
import torch.nn as nn

class DiffusionPolicy(nn.Module):
    def __init__(self, state_dim, action_dim, n_diffusion=100):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(state_dim + action_dim + 1, 256), nn.ReLU(),
            nn.Linear(256, 256), nn.ReLU(),
            nn.Linear(256, action_dim),
        )
        self.n_diffusion = n_diffusion

    def forward(self, state, t, noisy_action):
        # state: (B, state_dim)
        # t: (B, 1) 扩散步
        # noisy_action: (B, action_dim)
        x = torch.cat([state, noisy_action, t], dim=-1)
        return self.net(x)  # 预测噪声