使用traCI4Matlab计算相扑中车辆行驶的距离

vbopmzt1  于 2022-12-27  发布在  Matlab
关注(0)|答案(1)|浏览(282)

我需要帮助:在模拟结束时的相扑场景中,我尝试计算我在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()

如何继续模拟或避免错误?

kg7wmglp

kg7wmglp1#

无法通过traci获取不在模拟中的车辆的信息。您可以在路线的终点添加一个停靠点,或者只存储您注意到的最后一个距离。获取总路线长度的另一种方法是生成XML输出(例如tripinfo)并解析它。

相关问题