You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为SUMO和Veins添加自定义属性以实现车辆预计到达时间管控

SUMO+Veins自定义车辆预计到达时间属性开发指导

一、SUMO端自定义属性修改方案

  • 优先使用SUMO原生*通用参数(Generic Parameter)*功能,无需修改SUMO核心C++代码:在路由文件的车辆定义中嵌入param标签即可挂载自定义属性,示例如下:
    <vehicle id="veh0" depart="0.0" route="route0">
        <param key="expectedETA" value="120.5"/>
    </vehicle>
    
    运行过程中可通过TraCI接口的vehicle.getParameter("expectedETA")、vehicle.setParameter("expectedETA", "数值")直接读写该属性,满足大多数研究场景需求。
  • 若需将预计到达时间作为SUMO内置属性参与内核路径规划逻辑,修改路径如下:
    1. 在src/utils/vehicle/SUMOVehicle.h的SUMOVehicle类中添加对应类型的成员变量
    2. 在src/utils/vehicle/SUMOVehicle.cpp的构造函数中完成变量初始化
    3. 在src/vehicle/SUMOVehicleParser.cpp中添加属性解析逻辑,使SUMO可识别路由文件中自定义的ETA字段

二、Veins端数据交互适配方法

  • 若使用上述SUMO通用参数方案,无需修改Veins核心代码:Veins的TraCIVehicle类已封装好getParameter()、setParameter()方法,直接在自定义的车辆应用层代码中调用即可完成ETA属性的读写。
  • 若修改了SUMO内核新增内置属性,按以下流程修改Veins代码:
    1. 在veins/modules/mobility/traci/TraCIConstants.h中新增自定义属性对应的TraCI变量ID
    2. 修改TraCIVehicle类中的属性读写方法,适配SUMO端新增的TraCI接口逻辑,完成属性数据的双向传输
  • Veins修改逻辑可参考自带示例代码,重点阅读veins/examples/veins目录下的示例应用,以及TraCIMobility、TraCIVehicle两个核心类的实现,即可理清SUMO与Veins之间的全量数据交互流程。

内容的提问来源于stack exchange,提问作者kona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:06:03