1. SUMO入门:交通仿真概述、SUMO发展史、SUMO核心功能与安装
各位同学好,我是老张。做交通仿真这行十几年了,SUMO一直是我最顺手的工具。今天咱们聊聊SUMO的入门知识——别觉得基础就跳过,我见过太多人因为安装配置踩坑,白白浪费一整天。
1.1 交通仿真到底在干什么?
说白了,交通仿真就是用计算机模拟车流、人流、信号灯这些东西。你想想看,现实中改一个路口的设计,动辄几十万、上百万,万一改错了怎么办?仿真就是让你在电脑里先试一遍。
我个人习惯把交通仿真分成三类:
- 微观仿真:每辆车单独建模,有加速、减速、换道行为。SUMO就是干这个的。
- 中观仿真:把车流当成一个个小组来模拟,精度介于微观和宏观之间。
- 宏观仿真:用流体力学那套,看整体流量、密度、速度。
咱们这门课主要讲微观仿真。为什么?因为做数据回放、做自动驾驶测试,必须精细到每辆车的轨迹。宏观仿真给不了这个精度。
核心观点:SUMO是开源微观交通仿真领域的扛把子。没有之一。
1.2 SUMO的发展史——一个德国学生的毕业设计
SUMO全称是"Simulation of Urban MObility",城市交通仿真。它最早是2001年德国航空航天中心(DLR)一个博士生的课题。嗯,你没听错,最初就是一个毕业设计。
我记得2012年第一次接触SUMO时,版本才0.12,文档少得可怜。那时候遇到问题只能去邮件列表问,等回复要两三天。现在好多了,社区活跃,版本也到了1.20+。
几个关键时间节点:
| 年份 | 事件 |
|---|---|
| 2001 | SUMO项目启动,作为DLR内部研究工具 |
| 2002 | 首次公开发布,支持基本路网和车辆模型 |
| 2010 | 加入TraCI接口,支持外部程序实时控制仿真 |
| 2016 | 集成OpenDrive导入,开始支持自动驾驶仿真 |
| 2020至今 | 大规模并行仿真、3D可视化、与CARLA/SUMO联合仿真 |
为什么SUMO能活下来而且越来越强?我觉得核心就两点:开源和接口开放。你想想看,商业软件换个接口要等版本更新,SUMO自己就能改。
1.3 SUMO能干什么?核心功能一览
我建议你把SUMO理解成一个工具箱,而不是一个单一软件。它包含十几个工具,各司其职。下面这几个是你必须掌握的:
- sumo:主仿真程序,跑仿真的核心引擎
- sumo-gui:带图形界面的仿真器,调试用很方便
- netedit:路网编辑器,画路、设信号灯都在这里
- netconvert:路网转换器,把OpenStreetMap、OpenDrive等格式转成SUMO格式
- duarouter:路径规划器,给车辆分配行驶路线
- TraCI:Python/C++接口,实时控制仿真中的每一辆车
我的习惯:平时调试用sumo-gui,批量跑仿真用sumo命令行。TraCI是咱们做数据回放的核心,后面章节会重点讲。
SUMO能输出的数据也很丰富:每辆车的速度、位置、加速度、油耗、排放、信号灯状态……基本上你能想到的交通参数,它都能给你。我在项目中遇到过最夸张的一次,一次仿真跑了10万辆车,输出文件有8个G。嗯,那之后我就学会了用筛选输出。
1.4 安装SUMO——别踩这些坑
安装看起来简单,但我见过太多人卡在这一步。咱们分平台说。
Windows安装
最简单的方式:去官网下载安装包,一路Next就行。但我建议你注意两点:
- 安装路径不要有中文和空格。我习惯装到
C:\SUMO这种纯英文路径。 - 安装时勾选"Add SUMO to system PATH",省得后面配环境变量。
避坑指南:我曾经遇到过安装后sumo命令找不到,就是因为没勾选PATH。后来手动加环境变量又搞了半小时。所以安装时一定看清楚那个勾选框。
Linux安装
Ubuntu用户直接:
sudo apt install sumo sumo-tools sumo-doc
CentOS/RHEL用户需要先添加EPEL源:
sudo yum install epel-release
sudo yum install sumo
我个人习惯用源码编译安装,因为可以选最新的版本。但初学者建议直接用包管理器,省心。
macOS安装
用Homebrew:
brew install sumo
或者去官网下载dmg安装包。macOS用户要注意,M1/M2芯片的Mac需要确认安装的是ARM版本。
验证安装
装完之后,打开终端(Windows是cmd),输入:
sumo --version
如果看到类似 SUMO Version 1.20.0 的输出,恭喜你,安装成功。
小技巧:再跑一下 sumo-gui,如果能弹出图形界面,说明GUI也正常。我第一次装完只测了命令行,结果后面要用GUI才发现缺依赖,又折腾了一轮。
1.5 本章知识体系
下面这张图帮你理清SUMO的定位和核心模块。我画了好几个版本,这个是最清晰的:
这张图把咱们这章的内容串起来了。从上到下看:交通仿真分三类,SUMO属于微观仿真;它内部有六个核心模块,各管一摊;最后是安装方式,选一个适合你的就行。
1.6 本章小结
嗯,到这咱们把SUMO的来龙去脉讲清楚了。你知道了交通仿真是干什么的,SUMO是怎么从德国一个博士课题长成今天这个样子的,它有哪些核心功能,以及怎么装到你的电脑上。
下一章咱们就要动手了——用SUMO跑第一个仿真。我会带你从零搭建一个十字路口,让车跑起来。到时候你会发现,SUMO其实没那么神秘。
可可精品资料库