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 仿真环境配置与传感器模拟
不管用哪个平台,核心工作就两件:搭环境和配传感器。
环境配置要点:
- 地图导入: 支持 OpenDRIVE、Lanelet2、Apollo HD Map 等格式
- 场景设置: 天气、光照、行人、车辆密度都可调
- 物理引擎: 碰撞检测、轮胎摩擦、悬挂系统都要真实
传感器模拟对比:
| 传感器类型 | CARLA | SUMO | LGSVL |
|---|---|---|---|
| RGB 相机 | ✅ 支持多种分辨率 | ❌ 无 | ✅ 支持畸变模型 |
| 激光雷达 | ✅ 支持 32/64/128 线 | ❌ 无 | ✅ 点云噪声可调 |
| GPS/IMU | ✅ 支持噪声模拟 | ❌ 无 | ✅ 支持 ROS 消息 |
| 毫米波雷达 | ✅ 支持 | ❌ 无 | ✅ 支持 |
我的建议: 如果你刚开始做高精度地图仿真,先从 CARLA 入手。它的文档最全,社区最活跃,遇到问题随便一搜就有答案。等需要做交通流分析时,再引入 SUMO 做联合仿真。
2.5 知识体系总览
下面这张图,是我梳理的本章核心逻辑。你看一眼,心里就有数了。
你看,三个平台各有侧重。CARLA 管视觉和传感器,SUMO 管交通逻辑,LGSVL 管高精度地图集成。实际项目中,我经常把它们组合起来用,各取所长。
一句话总结: 仿真不是为了替代真车测试,而是为了在可控环境下快速迭代。选对平台,事半功倍。
公众号:蓝海资料掘金营,微信deep3321