第2章:SUMO安装与配置

说实话,安装软件这事儿,看着简单,但坑是真不少。我见过太多学员卡在第一步,连个环境变量都配不明白。今天咱们就把SUMO的安装彻底讲透,不管你是Windows、Mac还是Linux用户,都能一次搞定。

2.1 下载前的准备工作

先别急着下载。我建议你先确认两件事:

  • 操作系统位数:右键"此电脑"→属性,看看是32位还是64位。现在基本都是64位了,但万一你是32位系统,那只能装老版本SUMO。
  • Python环境:SUMO的很多工具依赖Python。我个人习惯装Python 3.8以上版本,太老的版本有些新功能跑不起来。
小提示:如果你电脑上已经装了Anaconda,那Python环境基本不用愁。我一般用conda创建个独立环境,避免跟其他项目冲突。

2.2 Windows安装指南

Windows用户是最多的,咱们先说这个。

2.2.1 下载安装包

去SUMO官网(sumo.dlr.de)下载最新版。注意看文件名,带-win64的就是64位版本。我建议下载sumo-1.19.0-setup.exe这种安装包,别下zip压缩包——解压后还得手动配环境,麻烦。

2.2.2 安装步骤

  1. 双击安装包,一路Next。但注意:安装路径不要有中文和空格。我习惯装到C:\SUMO,简单好记。
  2. 安装类型选"Complete",把所有组件都装上。别省那点硬盘空间,后面用netedit画路网时你就知道好处了。
  3. 安装完成后,打开命令行,输入sumo --version。如果显示版本号,恭喜你,装好了。
注意:如果提示"不是内部或外部命令",说明环境变量没配好。别慌,往下看。

2.2.3 环境变量配置

嗯,这里要注意。环境变量配不好,SUMO就找不到它的工具集。我教你个最稳的方法:

  1. 右键"此电脑"→属性→高级系统设置→环境变量
  2. 在"系统变量"里找到Path,双击编辑
  3. 添加以下两个路径(根据你的安装目录调整):
C:\SUMO\bin
C:\SUMO\tools

为什么要加tools?因为很多Python脚本都在这个目录下。不加的话,你后面用duarouter、netconvert这些工具时,还得手动cd到目录,烦不烦?

我的经验:配完环境变量后,一定要重启命令行窗口。我见过有人配完直接运行,结果还是报错,其实就是没刷新环境变量。

2.3 Linux安装指南

Linux用户相对省心。我主要用Ubuntu,其他发行版大同小异。

2.3.1 通过包管理器安装

最简单的方式:

sudo apt update
sudo apt install sumo sumo-tools sumo-doc

装完后,SUMO会自动加到PATH里。输入sumo --version验证一下。

2.3.2 从源码编译

如果你需要最新特性,或者想自己改源码,那就得编译安装了。我在项目中就遇到过这种情况——官方包版本太老,有个bug死活修不了,只能自己编译。

# 安装依赖
sudo apt install build-essential cmake libxerces-c-dev libfox-1.6-dev libgdal-dev libproj-dev libgl2ps-dev

# 下载源码
git clone --recursive https://github.com/eclipse/sumo.git
cd sumo

# 编译
mkdir build && cd build
cmake ..
make -j$(nproc)

# 设置环境变量
echo 'export SUMO_HOME=/path/to/sumo' >> ~/.bashrc
echo 'export PATH=$SUMO_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

编译大概要10-20分钟,取决于你的机器性能。我建议用-j$(nproc)参数,能充分利用多核CPU,快很多。

避坑指南:我曾经在Ubuntu 20.04上编译时,卡在libfox依赖上。后来发现是源里没有这个包,得手动装。如果你也遇到类似问题,试试sudo apt install libfox-1.6-dev。

2.4 MacOS安装指南

Mac用户相对少一些,但SUMO对Mac的支持其实不错。

2.4.1 通过Homebrew安装

这是最推荐的方式:

brew install sumo

装完后,SUMO会自动配置好环境变量。输入sumo --version验证。

2.4.2 手动安装

如果你不想用Homebrew,也可以下载dmg安装包。但说实话,我建议用Homebrew——手动配环境变量太容易出错了。我之前在Mac上手动装过一次,光配DYLD_LIBRARY_PATH就折腾了半小时。

2.5 SUMO工具集介绍

装好SUMO后,你会发现它不只是个仿真器,而是一整套工具集。我刚开始用的时候也被搞晕过——这么多工具,到底用哪个?

下面这张图能帮你快速理清思路:

SUMO工具集核心架构 SUMO核心仿真引擎 netedit(路网编辑器) netconvert(路网转换) duarouter(路径规划) od2trips(OD矩阵转换) sumo-gui(可视化) traci(Python接口) output分析工具 输入工具 → 核心引擎 → 输出工具

2.5.1 sumo-gui:可视化仿真器

这是你用得最多的工具。说白了,就是给SUMO加了个图形界面。你可以实时看到车辆怎么跑、信号灯怎么变、路网长什么样。

启动方式:在命令行输入sumo-gui。如果配好了环境变量,直接敲就行。

核心功能:
  • 加载路网文件(.net.xml)和交通需求文件(.rou.xml)
  • 实时显示车辆位置、速度、加速度
  • 支持暂停、单步执行、加速仿真
  • 可以导出仿真截图和视频

2.5.2 netedit:路网编辑器

这个工具我特别喜欢。你想想看,如果每次都要手写XML来定义路网,那得多痛苦?netedit让你像画图一样画路网。

启动方式:netedit。然后你就可以:

  • 画道路:点一下起点,再点一下终点,一条路就出来了
  • 加信号灯:选中路口,右键设置信号灯方案
  • 调车道数:选中道路,在属性面板里改laneNumber

我在项目中用netedit画过一个十字路口,从零开始到完成,也就10分钟。要是手写XML,至少得半小时。

2.5.3 duarouter:路径规划器

这个工具负责生成车辆的行驶路径。你给它一个OD矩阵(起点-终点对),它就能算出每辆车该走哪条路。

基本用法:

duarouter --net-file road.net.xml --route-files trips.xml --output-file routes.rou.xml

这里trips.xml是OD矩阵文件,routes.rou.xml是生成的路径文件。说白了,duarouter就是帮你把"从哪到哪"变成"怎么走"。

2.5.4 其他常用工具

工具名 功能 典型用法
netconvert 把OpenStreetMap、MATSim等格式的路网转成SUMO格式 netconvert --osm-file map.osm --output-file road.net.xml
od2trips 把OD矩阵转成trips文件 od2trips --net-file road.net.xml --od-matrix-files matrix.txt --output-file trips.xml
polyconvert 把多边形数据(建筑物、公园等)转成SUMO格式 polyconvert --net-file road.net.xml --shape-files buildings.shp --output-file polygons.xml
traci Python接口,可以在仿真过程中动态控制车辆 import traci; traci.start(["sumo-gui", "-c", "config.sumocfg"])

2.6 验证安装是否成功

装完别急着走,先跑个最简单的例子验证一下。我一般用SUMO自带的示例:

# 进入示例目录
cd %SUMO_HOME%/docs/examples/sumo/basic

# 运行仿真
sumo -c hello.sumocfg

如果看到命令行里开始输出仿真信息,说明安装成功了。你也可以用sumo-gui -c hello.sumocfg打开图形界面,看看车辆跑起来的样子。

我的习惯:每次装完新版本,我都会跑一遍这个示例。不是为了验证功能,而是看看有没有什么兼容性问题。有一次我装了个测试版,结果示例都跑不起来,赶紧换回稳定版。

2.7 常见问题与解决方案

嗯,这里我总结几个我遇到过的问题,你八成也会碰到:

  • 问题1:sumo命令找不到
    原因:环境变量没配好。检查Path里有没有bin目录。
  • 问题2:sumo-gui启动后黑屏
    原因:显卡驱动问题。试试更新显卡驱动,或者在启动时加--window-size 800,600参数。
  • 问题3:Python脚本报错"No module named traci"
    原因:Python找不到SUMO的库。把SUMO_HOME/tools加到PYTHONPATH里。
  • 问题4:netedit打不开
    原因:缺少Java环境。netedit需要Java 8以上版本。去Oracle官网下载安装就行。

我曾经在Windows上遇到过一个问题——sumo-gui启动后闪退。查了半天,发现是杀毒软件把SUMO的某个dll文件隔离了。关掉杀毒软件重新安装就好了。所以如果你也遇到类似问题,先看看杀毒软件有没有搞鬼。

好了,安装配置这块就讲这么多。工具集的具体用法,后面章节会一个一个展开。你现在只要知道每个工具是干什么的就行,不用急着全记住。

可可精品资料库