基于SUMO实现备选路径推荐以及实时动态道路信息获取,这个小车每到一个路口、就返回这个路口的信号灯状态、并输出基于当前所在路段-重点路段的前三个最短备选路径 小车每到达一个路口,返回与当前路口连接路段的拥堵情况,控制小车进行动态规划,每到达一个路口用算法进行一次路径规划,直到到达终点,其实就是备选路径推荐,就是给定两个node_id,返回最短的3条路径,我要在小车运行时,每走一步,到达路口时,返回当前路口的红绿灯信息,以及备选路径 我反正要的是两点之间备选路径
代码功能介绍
该代码基于SUMO(仿真 Urban 移动性)平台实现了车辆行驶仿真、备选路径推荐及实时道路信息获取功能,核心功能如下:
- 环境配置与初始化
- 检查系统环境变量中的SUMO_HOME,确保SUMO相关工具可正常调用
- 加载路网文件(ingolstadt21.net.xml)和路径文件(ingolstadt21.rou.xml)
- 配置Matplotlib支持中文显示,避免可视化时出现乱码
- 路网图构建与管理
- 通过savenetwork()函数将SUMO路网转换为有向图(使用NetworkX库),图中边的权重为路段通行时间(基于路段长度和最大限速计算)
- 支持将路网图序列化到networkroute.pkl文件,及通过load_network()函数从文件加载路网图,提高复用效率
- 路径规划功能
- 实现findkshortestpaths()函数,基于Dijkstra算法查找起点到终点的前k条最短路径(默认k=3)
- 提供calculatepathtraveltime()函数计算指定路径的总通行时间
- SUMO仿真控制
- 初始化SUMO仿真环境,启动带GUI的仿真界面
- 创建虚拟车辆并规划初始行驶路线(从startedge到endedge)
- 循环执行仿真步骤,实时获取仿真时间和车辆状态
- 实时信息采集与处理
- 记录车辆经过的路段和交通信号灯路口
- 当车辆到达交通信号灯路口时,获取并打印:
- 车辆当前所在车道信息
- 路口ID及类型(确认是否为交通信号灯)
- 信号灯当前相位和剩余时长
- 在信号灯路口处计算并展示前3条备选路径,包括路径组成的路段、总通行时间
- 通过多边形高亮显示推荐的最短路径(红色填充),便于在GUI中可视化查看
- 可视化辅助
- 在仿真界面中动态标记推荐路径,增强路径的直观性
- 支持通过注释代码设置视角跟随车辆,便于跟踪车辆行驶状态
整体而言,该代码实现了一个集成路网建模、路径规划、仿真控制和实时交通信息采集的原型系统,重点展示了车辆在信号灯路口处的动态路径推荐逻辑和交通状态感知能力。
基于SUMO实现备选路径推荐以及实时动态道路信息获取,这个小车每到一个路口、就返回这个路口的信号灯状态、并输出基于当前所在路段-重点路段的前三个最短备选路径 小车每到达一个路口,返回与当前路口连接路段的拥堵情况,控制小车进行动态规划,每到达一个路口用算法进行一次路径规划,直到到达终点,其实就是备选路径推荐,就是给定两个node_id,返回最短的3条路径,我要在小车运行时,每走一步,到达路口时,返回当前路口的红绿灯信息,以及备选路径 我反正要的是两点之间备选路径