2. 虚拟仿真环境搭建:主流仿真平台介绍

做高精度地图开发,最头疼的是什么?

我个人觉得,是「真车跑不起来」。你想想看,每次改个地图参数就要上路实测,成本高不说,有些极端场景(比如暴雨、夜间、传感器故障)根本没法复现。所以,仿真平台就成了我们的「第二战场」。

这一节,我带你看看目前主流的三个仿真平台:CARLA、SUMO、LGSVL。它们各有各的脾气,也各有各的绝活。

2.1 CARLA:自动驾驶仿真的「老大哥」

CARLA 是我用得最多的平台。它开源、生态好,社区活跃得像菜市场。说白了,它就是为自动驾驶算法验证而生的。

核心特点:

  • 基于 Unreal Engine 4,画面逼真,传感器模拟很全
  • 支持 RGB 相机、深度相机、激光雷达、GPS、IMU 等
  • 提供 Python API,控制车辆、行人、天气都很方便
  • 内置地图编辑器,可以自定义道路和场景
我的经验: 我在做高精度地图车道线提取时,就靠 CARLA 生成带标注的合成数据。你只要调好天气和光照,就能批量生成不同场景下的图片,省去了大量人工标注的功夫。

安装与配置:

# 推荐用 conda 创建环境
conda create -n carla python=3.7
conda activate carla

# 安装 CARLA Python API
pip install carla

# 下载 CARLA 二进制包(约 10GB)
# 解压后运行 ./CarlaUE4.sh

嗯,这里要注意:CARLA 对显卡要求不低。我建议至少 GTX 1060 以上,否则跑起来会卡成 PPT。

2.2 SUMO:交通流的「调度大师」

SUMO 和 CARLA 不一样。它不关心画面好不好看,它只关心车怎么走、路怎么堵。说白了,SUMO 是微观交通仿真工具,专门用来模拟交通流和路网逻辑。

核心特点:

  • 开源免费,德国宇航中心出品,靠谱
  • 支持自定义路网、信号灯、车辆行为
  • 可以跟 CARLA 联合仿真:SUMO 管交通流,CARLA 管渲染
  • 输出丰富的交通统计数据
避坑指南: 我曾经在 SUMO 里导入 OpenDRIVE 地图时,发现车道连接关系对不上。后来才发现,SUMO 对某些复杂路口(比如环岛)的解析有 bug。解决办法是手动在 netedit 里调整连接边。

典型用法:

# 生成路网文件
netconvert --osm-files map.osm -o map.net.xml

# 生成随机交通流
python tools/randomTrips.py -n map.net.xml -o trips.trips.xml

# 启动仿真
sumo-gui -c sumo.sumocfg

2.3 LGSVL:LG 的「仿真利器」

LGSVL 是 LG 旗下的仿真平台,后来被收购了,但它的代码和文档还在。我个人觉得,LGSVL 在传感器模拟的精度上做得不错,尤其是激光雷达的点云效果很真实。

核心特点:

  • 基于 Unity,跨平台支持好
  • 支持 ROS/ROS2 直接对接,方便算法集成
  • 内置高精度地图格式(HD Map),跟 Apollo 兼容
  • 支持多车协同仿真
注意: LGSVL 的官方维护已经停止,但社区还在用。如果你是新项目,我建议优先考虑 CARLA。不过,如果你需要跟 Apollo 深度集成,LGSVL 仍然是个好选择。

2.4 仿真环境配置与传感器模拟

不管用哪个平台,核心工作就两件:搭环境配传感器

环境配置要点:

  1. 地图导入: 支持 OpenDRIVE、Lanelet2、Apollo HD Map 等格式
  2. 场景设置: 天气、光照、行人、车辆密度都可调
  3. 物理引擎: 碰撞检测、轮胎摩擦、悬挂系统都要真实

传感器模拟对比:

传感器类型 CARLA SUMO LGSVL
RGB 相机 ✅ 支持多种分辨率 ❌ 无 ✅ 支持畸变模型
激光雷达 ✅ 支持 32/64/128 线 ❌ 无 ✅ 点云噪声可调
GPS/IMU ✅ 支持噪声模拟 ❌ 无 ✅ 支持 ROS 消息
毫米波雷达 ✅ 支持 ❌ 无 ✅ 支持
我的建议: 如果你刚开始做高精度地图仿真,先从 CARLA 入手。它的文档最全,社区最活跃,遇到问题随便一搜就有答案。等需要做交通流分析时,再引入 SUMO 做联合仿真。

2.5 知识体系总览

下面这张图,是我梳理的本章核心逻辑。你看一眼,心里就有数了。

虚拟仿真环境搭建知识体系 CARLA Unreal Engine 4 渲染 SUMO 交通流与路网仿真 LGSVL Unity 传感器模拟 核心功能:地图导入 · 场景设置 · 传感器模拟 · 联合仿真 RGB 相机 激光雷达 GPS/IMU 毫米波雷达 输出:高精度地图验证数据 · 算法测试结果

你看,三个平台各有侧重。CARLA 管视觉和传感器,SUMO 管交通逻辑,LGSVL 管高精度地图集成。实际项目中,我经常把它们组合起来用,各取所长。

一句话总结: 仿真不是为了替代真车测试,而是为了在可控环境下快速迭代。选对平台,事半功倍。

公众号:蓝海资料掘金营,微信deep3321