我需要帮助:在模拟结束时的相扑场景中,我尝试计算我在TRACI4Matlab中添加的车辆行驶的距离。
使用我的代码,我可以计算距离,但一旦通过最后一个节点,由于在SUMO场景中没有我的车辆,因此会抛出错误:这是我的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()
如何继续模拟或避免错误?
1条答案
按热度按时间kg7wmglp1#
无法通过traci获取不在模拟中的车辆的信息。您可以在路线的终点添加一个停靠点,或者只存储您注意到的最后一个距离。获取总路线长度的另一种方法是生成XML输出(例如tripinfo)并解析它。