4. 协同仿真环境搭建

说实话,做自动驾驶仿真这么多年,我踩过最多的坑,就是环境搭建这一步。很多人一上来就急着跑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接口安装

接口安装其实不复杂,但步骤顺序不能乱。我习惯分三步走:

  1. 安装Prescan:默认路径就行,别改。改了后面环境变量配置容易出问题。
  2. 安装SUMO:同样默认路径,但安装时记得勾选“Add SUMO to PATH”。这一步很多人会忘,导致后面命令行找不到sumo命令。
  3. 安装Prescan-SUMO接口:Prescan安装目录下有个Interfaces文件夹,里面有个SUMO_Interface_Installer.exe,双击运行就行。

接口安装完成后,你会看到Prescan的工具栏里多了一个“SUMO”的图标。如果没出现,别慌,重启一下Prescan试试。我曾经遇到过安装完接口后图标不显示,重启电脑就好了,可能是系统缓存的问题。

注意:接口安装时,Prescan和SUMO都不能打开。否则安装程序会报“文件被占用”的错误。

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

如果都能正确输出路径和版本号,说明环境变量配置成功了。

小技巧:配置完环境变量后,最好重启一下电脑。有些系统不会立即刷新环境变量,导致Prescan找不到SUMO。

4.4 联合仿真验证

环境搭好了,怎么知道能不能用?我一般用Prescan自带的SUMO示例来验证。路径在:Prescan安装目录\Examples\SUMO_CoSimulation。

操作步骤很简单:

  1. 打开Prescan,加载示例工程SUMO_CoSimulation.pb
  2. 点击工具栏的“SUMO”图标,打开SUMO配置界面
  3. 配置SUMO网络文件路径(示例里自带了一个cross.sumocfg)
  4. 点击“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。检查了半天才发现。所以,配置完环境变量后,一定要用命令行验证一下。
协同仿真环境搭建核心流程 操作系统准备 Windows 10 专业版 Prescan安装 版本 8.5.0 / 8.6.0 SUMO安装 版本 1.12.0 / 1.14.0 Prescan-SUMO接口安装 运行 SUMO_Interface_Installer.exe 环境变量配置 SUMO_HOME → C:\...\sumo-1.12.0 PRESCAN_HOME → C:\...\Prescan_8.5.0 联合仿真验证 运行示例工程,检查通信是否正常 步骤1 步骤2 步骤3

这张图把整个流程串起来了。你照着这个顺序做,基本不会出大问题。如果中间哪一步卡住了,回头检查一下上一步是不是漏了什么。

可可精品资料库