从零到专家:驾驶仿真器、CG、3DGS、智能体运动与强化学习接口完整教学文档
2026/6/21 19:50:38 网站建设 项目流程

从零到专家:驾驶仿真器、CG、3DGS、智能体运动与强化学习接口完整教学文档

目录

  1. 先建立整体认识:驾驶仿真器到底是什么
  2. 为什么自动驾驶需要仿真器
  3. 两大技术阵营:CG 类与 3DGS 类
  4. 小白必懂:什么是“人工构建虚拟世界”
  5. 小白必懂:什么是“真实数据重建世界”
  6. 驾驶仿真中的“自车”和“其他智能体”
  7. 其他智能体的运动是不是固定的
  8. 各类智能体运动方式详解
  9. CG 类仿真器详解
  10. 3DGS 类仿真器详解
  11. 主要平台名称与缩写解释
  12. CARLA 详解
  13. MetaDrive 详解
  14. SVL、AWSIM、BeamNG.tech、AirSim 详解
  15. HUGSIM、RealEngine、Street Gaussians、DriveStudio、DrivingGaussian 详解
  16. Gymnasium 是什么
  17. Gymnasium 与 NVIDIA Isaac 系列的关系
  18. 强化学习在驾驶仿真中的基本逻辑
  19. CG 类与 3DGS 类对比
  20. 各平台中其他智能体运动方式对比
  21. 从小白到专家的学习路线
  22. 如何根据研究目标选型
  23. 未来趋势:CG 仿真内核 + 3DGS 高保真渲染
  24. 最终总结

一、先建立整体认识:驾驶仿真器到底是什么

驾驶仿真器可以理解成:

在电脑里创建一个可以开车的虚拟世界,然后让自动驾驶算法在里面学习、测试和评估。

这个虚拟世界里可以有:

  • 道路;
  • 车道线;
  • 红绿灯;
  • 交通标志;
  • 建筑;
  • 树木;
  • 天气;
  • 白天和夜晚;
  • 自车;
  • 其他车辆;
  • 行人;
  • 骑行者;
  • 摄像头;
  • 激光雷达;
  • 毫米波雷达;
  • 碰撞检测;
  • 交通规则;
  • 自动驾驶算法接口。

小白可以把驾驶仿真器想象成一个“自动驾驶版赛车游戏”。

区别是:

普通赛车游戏是给人玩的;驾驶仿真器是给自动驾驶算法测试和训练用的。

在真实世界中,自动驾驶汽车不能随便撞车、闯红灯、遇到行人急刹来试错。
但在仿真世界里,算法可以反复犯错、反复学习,而且不会伤害真人,也不会损坏真实车辆。


二、为什么自动驾驶需要仿真器

自动驾驶不能完全依靠真实道路测试,原因包括:

  1. 真实道路测试成本高
    需要真实车辆、测试员、安全员、测试场地、传感器和大量时间。

  2. 危险场景不能随便制造
    例如行人突然横穿马路、前车急刹、大货车突然变道,这些场景在现实中测试很危险。

  3. 长尾场景很难采集
    所谓长尾场景,就是不常发生但一旦发生很危险的情况,例如暴雨夜晚、施工路段、动物横穿、高速爆胎等。

  4. 真实事故场景很难复现
    现实中同一个路口、同一辆车、同一个行人、同一秒出现,几乎不可能精确复现。

  5. 强化学习需要大量试错
    强化学习算法可能要训练几十万、几百万甚至上亿步,不能直接在真实道路上试错。

  6. 自动驾驶系统需要可控评测
    研究人员希望同一个算法在同一场景中反复测试,这样才能公平比较算法优劣。

因此,驾驶仿真器的核心作用是:

  • 构造可控驾驶场景;
  • 生成传感器数据;
  • 支持算法闭环交互;
  • 评估驾驶策略安全性;
  • 生成训练数据;
  • 复现真实交通事件;
  • 支持强化学习、模仿学习、监督学习和端到端自动驾驶研究。

在强化学习中,仿真器常被看作一个环境:

ot+1,rt,terminated,truncated,info=Env.step(at) o_{t+1}, r_t, terminated, truncated, info = Env.step(a_t)ot+1,rt,terminated,truncated,info=Env.step(at)

其中:

  • ata_tat表示第ttt个时刻自车执行的动作;
  • ot+1o_{t+1}ot+1表示执行动作后得到的新观测;
  • rtr_trt表示奖励;
  • terminatedterminatedterminated表示任务是否自然结束;
  • truncatedtruncatedtruncated表示任务是否因为时间限制等原因被强制结束;
  • infoinfoinfo表示额外信息。
    这就是自动驾驶算法和仿真器交互的基本形式。

三、两大技术阵营:CG 类与 3DGS 类

现有驾驶仿真器大体可以分成两大技术阵营。

3.1 第一类:CG 类驾驶仿真器

CGComputer Graphics的缩写,中文是计算机图形学

在驾驶仿真中,CG 类仿真器指:

使用游戏引擎、传统三维建模、物理引擎、程序式地图、交通规则系统和传感器模拟模块,人工构建出一个虚拟驾驶世界。

代表平台包括:

  • CARLA;
  • MetaDrive;
  • SVL;
  • AWSIM;
  • BeamNG.tech;
  • AirSim。

CG 类仿真器像是:

一个自动驾驶版的大型游戏世界。

它的优势是:

  • 可以控制道路;
  • 可以控制天气;
  • 可以控制交通;
  • 可以控制车辆;
  • 可以控制行人;
  • 可以写脚本制造危险场景;
  • 可以支持闭环交互;
  • 可以支持强化学习。

它的不足是:

  • 画面可能像游戏,不够真实;
  • 与真实摄像头画面存在差距;
  • 构建高质量城市资产成本高。

3.2 第二类:3DGS 类驾驶仿真器

3DGS3D Gaussian Splatting的缩写,中文可以理解为:

三维高斯泼溅 / 三维高斯点渲染。

3DGS 类驾驶仿真器指:

从真实道路采集数据中重建真实场景,再用 3D Gaussian Splatting 技术进行高保真渲染、新视角合成和闭环评估。

代表项目包括:

  • HUGSIM;
  • RealEngine;
  • Street Gaussians;
  • DriveStudio;
  • DrivingGaussian。

3DGS 类仿真器像是:

把真实街道扫描进电脑,再让自动驾驶算法在这个重建出来的真实场景中测试。

它的优势是:

  • 视觉真实感强;
  • 更接近真实摄像头图像;
  • 适合视觉感知评测;
  • 适合真实场景回放;
  • 适合高保真数据生成。

它的不足是:

  • 交通规则系统通常不如 CG 类成熟;
  • 物理交互能力较弱;
  • 强化学习生态不成熟;
  • 依赖真实数据;
  • 工程复杂度高。

四、小白必懂:什么是“人工构建虚拟世界”

“人工构建虚拟世界”可以理解成:

人类用电脑软件搭建出来的一个假的、可控制的驾驶城市。

它不是直接拍摄真实道路,也不是直接扫描真实街道,而是像做游戏地图一样,在电脑中创建:

  • 道路;
  • 车道线;
  • 红绿灯;
  • 交通标志;
  • 建筑物;
  • 树木;
  • 天空;
  • 天气;
  • 车辆;
  • 行人;
  • 交通流;
  • 传感器。

举个例子:

研究人员想测试自动驾驶车遇到行人横穿马路时会不会刹车。

现实中不能真的让人冲到车前面。
于是他们在电脑里做一个虚拟路口:

  • 中间有马路;
  • 两边有人行道;
  • 有红绿灯;
  • 有几辆车;
  • 有一个行人;
  • 有一辆自车;
  • 自车前方安装虚拟摄像头和 LiDAR。

然后设置:

555秒,行人从右边走到左边。

自动驾驶算法看到这个场景后,需要判断是否刹车。

这就是人工构建虚拟世界的用途。

可以用一个比喻理解:

CG 类仿真器就像乐高城市或游戏地图。道路、房子、车、人、树,都是人为设计和摆放出来的。


五、小白必懂:什么是“真实数据重建世界”

真实数据重建世界的思路不同。

它不是先在电脑里从零造一座城市,而是:

先去真实道路采集图像、LiDAR、轨迹和相机参数,然后用算法把真实街道重建成三维场景。

比如研究人员开车经过一个真实路口,车上有多个摄像头和激光雷达。

采集到的数据包括:

  • 前视摄像头图像;
  • 后视摄像头图像;
  • 左右摄像头图像;
  • LiDAR 点云;
  • 自车位置;
  • 相机标定;
  • 周围车辆轨迹;
  • 行人轨迹。

然后 3DGS 类方法会把这个真实路口重建出来。

这样做出来的场景,视觉上更接近真实相机画面。

可以用一个比喻理解:

CG 类是“搭一个假城市”;3DGS 类是“把真实城市复制进电脑”。


六、驾驶仿真中的“自车”和“其他智能体”

在驾驶仿真中,经常会看到两个概念:

  • 自车;
  • 其他智能体。

6.1 自车是什么

自车通常叫ego vehicle

它是自动驾驶算法正在控制的那辆车。

如果你训练一个自动驾驶 AI,那么这个 AI 控制的车辆就是自车。

自车每一步要决定:

  • 是否加速;
  • 是否刹车;
  • 是否左转;
  • 是否右转;
  • 是否变道;
  • 是否保持车道;
  • 是否避让行人;
  • 是否停车等待。

自车动作可以写成:

at=[steert,throttlet,braket] a_t = [steer_t, throttle_t, brake_t]at=[steert,throttlet,braket]

其中:

  • steertsteer_tsteert表示方向盘;
  • throttletthrottle_tthrottlet表示油门;
  • braketbrake_tbraket表示刹车。

6.2 其他智能体是什么

其他智能体就是除了自车之外,仿真世界中会移动、会影响交通的对象。

包括:

  • 其他车辆;
  • 行人;
  • 骑行者;
  • 摩托车;
  • 卡车;
  • 公交车;
  • 施工车辆;
  • 障碍车辆。

它们不是背景,而是“会动的交通参与者”。

背景包括:

  • 道路;
  • 建筑;
  • 树;
  • 路灯;
  • 交通标志;
  • 天空。

智能体包括:

  • 车;
  • 人;
  • 自行车;
  • 摩托车。

简单说:

背景像舞台,智能体像演员。


七、其他智能体的运动是不是固定的

答案是:

不是所有其他智能体的运动都是固定的。

在驾驶仿真中,其他智能体的运动可能是固定的,也可能是会变化的。

有些像“剧本演员”,每次都按固定时间和固定路线走。
有些像“游戏 NPC”,会根据交通规则行动。
有些像“真实录像中的车辆”,按真实记录轨迹回放。
有些像“AI 驾驶员”,会根据自车行为做出反应。

因此,不能简单说:

仿真中的所有智能体运动规律都是固定不变的。

更准确的说法是:

不同仿真器、不同任务、不同实验目的,会选择不同的智能体运动方式。


八、各类智能体运动方式详解

8.1 固定脚本式运动

固定脚本就是提前写好:

  • 谁;
  • 在什么时间;
  • 从哪里出现;
  • 做什么动作;
  • 走到哪里。

例如:

  • 333秒,前车急刹;
  • 555秒,行人开始过马路;
  • 888秒,旁车切入自车车道。

这种方式像电影剧本。

优点是:

  • 容易复现;
  • 适合标准测试;
  • 便于比较算法。

缺点是:

  • 不够真实;
  • 不一定会响应自车行为。

8.2 Waypoint 轨迹运动

Waypoint 可以理解成“路线点”。

例如让一辆 NPC 车辆依次经过:

P1→P2→P3→P4 P_1 \rightarrow P_2 \rightarrow P_3 \rightarrow P_4P1

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询