第2章:SUMO安装与配置
说实话,安装软件这事儿,看着简单,但坑是真不少。我见过太多学员卡在第一步,连个环境变量都配不明白。今天咱们就把SUMO的安装彻底讲透,不管你是Windows、Mac还是Linux用户,都能一次搞定。
2.1 下载前的准备工作
先别急着下载。我建议你先确认两件事:
- 操作系统位数:右键"此电脑"→属性,看看是32位还是64位。现在基本都是64位了,但万一你是32位系统,那只能装老版本SUMO。
- Python环境:SUMO的很多工具依赖Python。我个人习惯装Python 3.8以上版本,太老的版本有些新功能跑不起来。
2.2 Windows安装指南
Windows用户是最多的,咱们先说这个。
2.2.1 下载安装包
去SUMO官网(sumo.dlr.de)下载最新版。注意看文件名,带-win64的就是64位版本。我建议下载sumo-1.19.0-setup.exe这种安装包,别下zip压缩包——解压后还得手动配环境,麻烦。
2.2.2 安装步骤
- 双击安装包,一路Next。但注意:安装路径不要有中文和空格。我习惯装到
C:\SUMO,简单好记。 - 安装类型选"Complete",把所有组件都装上。别省那点硬盘空间,后面用netedit画路网时你就知道好处了。
- 安装完成后,打开命令行,输入
sumo --version。如果显示版本号,恭喜你,装好了。
2.2.3 环境变量配置
嗯,这里要注意。环境变量配不好,SUMO就找不到它的工具集。我教你个最稳的方法:
- 右键"此电脑"→属性→高级系统设置→环境变量
- 在"系统变量"里找到
Path,双击编辑 - 添加以下两个路径(根据你的安装目录调整):
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,快很多。
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后,你会发现它不只是个仿真器,而是一整套工具集。我刚开始用的时候也被搞晕过——这么多工具,到底用哪个?
下面这张图能帮你快速理清思路:
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文件隔离了。关掉杀毒软件重新安装就好了。所以如果你也遇到类似问题,先看看杀毒软件有没有搞鬼。
好了,安装配置这块就讲这么多。工具集的具体用法,后面章节会一个一个展开。你现在只要知道每个工具是干什么的就行,不用急着全记住。
可可精品资料库