如何在 Veins 中找到汽车未来的 RoadID?

How to find future RoadIDs for a car in Veins?

在 Veins 中模拟的场景中,我需要确定 car 节点的下一个 RoadID 值。由于此信息存储在模拟的 .route 文件中,因此我认为可以将其提取出来。

当前RoadID值可以由traci->getRoadID()函数返回。我探索了它如何提取此 ID 并可能到达 addModule() 函数添加新模块的地步,但我无法理解它如何提取此信息。

请帮忙。提前致谢。

据我所知,目前 Veins 没有这样的内置功能。您可以为特定车辆执行类似 getRouteId() 的操作。那将 return 你的路线。

接下来,在您的应用程序(.cc 文件)中,您可以阅读当前示例的 <example_name>.rou.xml,其中可能包含如下内容:

<route id="4" edges="0/1to1/1 1/1to2/1"/>

从那里你可以推断出 roadID,它实际上是边缘的名称。

我知道结果不会是最优的。

供将来参考,如@user4786271 所述,目前 Veins 4 alpha 2 和 SUMO 0.22 均未实现此功能。

功能 was added in ticket #1823 并计划在 SUMO 0.24 中添加。添加对 Veins 4 支持的相应代码将是:

int32_t TraCICommandInterface::Vehicle::getRouteIndex() {
    return traci->genericGetInt(CMD_GET_VEHICLE_VARIABLE, nodeId, VAR_ROUTE_INDEX, RESPONSE_GET_VEHICLE_VARIABLE);
}