第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) # 预测噪声