4. 协同仿真环境搭建:操作系统与软件版本要求、Prescan与SUMO接口安装、环境变量配置、联合仿真验证
说实话,做自动驾驶仿真这么多年,我踩过最多的坑,就是环境搭建这一步。很多人一上来就急着跑demo,结果卡在接口报错上,一卡就是好几天。我个人习惯是,先把地基打牢,再往上盖楼。这一章,我就把Prescan和SUMO协同仿真的环境搭建,掰开了揉碎了讲给你听。
4.1 操作系统与软件版本要求
先说说操作系统。Prescan对Windows的支持比较友好,我个人建议用Windows 10 专业版(64位),版本号不低于1909。为什么强调专业版?因为家庭版有时候会缺一些组件,比如组策略、Hyper-V这些,虽然不直接影响Prescan,但后续做联合仿真时可能会出幺蛾子。
SUMO这边,它本身就是跨平台的,Windows下跑完全没问题。但要注意,SUMO的版本和Prescan的版本得对上号。我整理了一张表,你直接照着配就行:
| 软件 | 推荐版本 | 备注 |
|---|---|---|
| Prescan | 8.5.0 / 8.6.0 | 8.5.0最稳定,8.6.0新增了一些传感器模型 |
| SUMO | 1.12.0 / 1.14.0 | 1.12.0兼容性最好,1.14.0支持更多交通场景 |
| MATLAB | 2020b / 2021a | Prescan依赖MATLAB运行时,版本要匹配 |
| Visual Studio | 2019 (Community) | 用于编译自定义接口,非必需但建议装 |
嗯,这里要注意:Prescan 8.5.0 不支持 SUMO 1.15.0 以上版本。我在项目里试过,接口死活连不上,后来降级SUMO才解决。所以别追新,稳定第一。
4.2 Prescan与SUMO接口安装
接口安装其实不复杂,但步骤顺序不能乱。我习惯分三步走:
- 安装Prescan:默认路径就行,别改。改了后面环境变量配置容易出问题。
- 安装SUMO:同样默认路径,但安装时记得勾选“Add SUMO to PATH”。这一步很多人会忘,导致后面命令行找不到sumo命令。
- 安装Prescan-SUMO接口:Prescan安装目录下有个
Interfaces文件夹,里面有个SUMO_Interface_Installer.exe,双击运行就行。
接口安装完成后,你会看到Prescan的工具栏里多了一个“SUMO”的图标。如果没出现,别慌,重启一下Prescan试试。我曾经遇到过安装完接口后图标不显示,重启电脑就好了,可能是系统缓存的问题。
4.3 环境变量配置
环境变量配置,说白了就是告诉系统“Prescan和SUMO装在哪”。我见过太多人在这步翻车了。你按我说的来:
第一步:配置SUMO环境变量
打开系统环境变量设置,在系统变量里新建:
变量名:SUMO_HOME变量值:你的SUMO安装路径,比如C:\Program Files (x86)\Eclipse SUMO\sumo-1.12.0
然后在Path变量里添加:%SUMO_HOME%\bin
第二步:配置Prescan环境变量
同样在系统变量里新建:
变量名:PRESCAN_HOME变量值:你的Prescan安装路径,比如C:\Program Files\Prescan\Prescan_8.5.0
然后在Path变量里添加:%PRESCAN_HOME%\bin
第三步:验证环境变量
打开命令行(Win+R,输入cmd),分别输入以下命令:
echo %SUMO_HOME%
echo %PRESCAN_HOME%
sumo --version
如果都能正确输出路径和版本号,说明环境变量配置成功了。
4.4 联合仿真验证
环境搭好了,怎么知道能不能用?我一般用Prescan自带的SUMO示例来验证。路径在:Prescan安装目录\Examples\SUMO_CoSimulation。
操作步骤很简单:
- 打开Prescan,加载示例工程
SUMO_CoSimulation.pb - 点击工具栏的“SUMO”图标,打开SUMO配置界面
- 配置SUMO网络文件路径(示例里自带了一个
cross.sumocfg) - 点击“Start Simulation”,Prescan会自动启动SUMO并开始联合仿真
如果一切正常,你会看到Prescan的3D视图中出现车辆,同时SUMO的GUI界面也在运行。这时候,你可以在SUMO里手动添加车辆,Prescan这边会实时显示出来。
为什么会这样?因为Prescan通过TCP/IP协议和SUMO通信,Prescan负责传感器仿真和3D渲染,SUMO负责交通流逻辑。说白了,就是各干各的,但数据是实时同步的。
我曾经在验证时遇到一个问题:Prescan启动了,但SUMO没反应。后来发现是防火墙把端口给拦了。Prescan和SUMO默认用端口8813通信,你需要在防火墙里把这个端口放行。
- Prescan的3D视图中,车辆按照SUMO的交通流规则行驶
- SUMO的GUI中,车辆数量和Prescan中一致
- Prescan的日志窗口没有报错信息
嗯,到这里,协同仿真环境就算搭好了。别觉得步骤多,其实熟练了也就十分钟的事。后面几章,我们会在这个环境基础上,一步步搭建完整的交通流仿真场景。
SUMO_HOME写成了SUMO_HOME(多打了个空格),结果Prescan死活找不到SUMO。检查了半天才发现。所以,配置完环境变量后,一定要用命令行验证一下。
这张图把整个流程串起来了。你照着这个顺序做,基本不会出大问题。如果中间哪一步卡住了,回头检查一下上一步是不是漏了什么。
可可精品资料库