我需要一些帮助:我正试图计算模拟结束时在SUMO场景中添加到TRACI4Matlab中的车辆行驶的距离。
使用我的代码,我可以计算距离,但一旦通过最后一个节点,由于在SUMO场景中不再有我的车辆,因此会出现错误:Error: Answered with error to command 0xa4: Vehicle 'prova' is not known.
这是我的MATLAB代码:
clear
close all
clc
import traci.constants
[scenarioPath,~,~] = fileparts(which(mfilename));
cd(scenarioPath);
traci.start('sumo-gui -c ./scenario1.sumocfg --start');
SIM_STEPS = [0 1000];
beginTime = SIM_STEPS(1);
duration = SIM_STEPS(2);
endTime = SIM_STEPS(1) + SIM_STEPS(2) - 1;
traci.vehicle.add('prova', 'percorso1', depart='100')
for i = 1 : duration
id{i}=(traci.vehicle.getIDList());
d1(i)=traci.vehicle.getDistance('prova');
traci.simulation.step();
end
traci.close()
如何继续模拟或避免错误?
无法通过traci获取有关不再处于模拟中的车辆的信息。你可以在路线的尽头添加一个站点,或者只存储你注意到的最后一段距离。获取总路由长度的另一种方法是生成例如tripinfo的XML输出并对其进行解析