setting flags=2 in setStop defines a "triggered" stop. The vehicle will only resume after stop_time has passed *and* a person has entered. Setting the flag to 0 will fix this.
Am Di., 23. Apr. 2024 um 18:56 Uhr schrieb Belikhov, Danil via sumo-user < sumo-user@eclipse.org>: > Hello, SUMO community, > > I would appreciate any help on my issue. > > In my scenario, I want vehicles to stop for several seconds when they > enter a specific edge and then resume driving. For that, I am using TraCI > with the ‘setStop’ function and a dictionary to store the ‘hasStopped’ > value for vehicles that have already stopped. But after making a stop, the > vehicle does not resume driving and the simulation runs indefinitely. What > could be the problem here? > > > > Best Regards, > Danil > > > Here is my code: > > class EvaluationVehicle: > > > *"""Data container class for the individual vehicles. Stores all relevant > data for the Evaluation vehicle-related.""" *def __init__(self, id, > type): > self.id = id > self.type = type > self.hasStopped = False > > > def run(): > start = datetime.now() > print(str(datetime.now())) > > # create empty dictionaries to store data > vehicleMap = {} > > # begin and end times of the simulation in seconds from 00:00 > begin = 0 > end = 4000 > seed = 1 > > # set parking entrance edge ID and parking exit edge ID > pEntrEdgeID = "988716348.13" > nextToEntryID = "988716348.13.3" > > # start Traci > traci.start(["sumo-gui", "-n", "osm_1.net.xml", > "-r", "osm.bicycle.trips.xml", > "-a", "parking.add.xml", > "--step-length", "0.25", > "--delay", "250", > "--parking.maneuver", "true", > "-b", f"{begin}", "-e", f"{end}", "--seed", f"{seed}"]) > > > while traci.simulation.getMinExpectedNumber() > 0: > traci.simulationStep() > > # get the list of vehicles currently in the simulation > vehIdList = traci.vehicle.getIDList() > > # loop over each vehicle in the simulation > for vehicle_id in vehIdList: > vehEdgeID = traci.vehicle.getRoadID(vehicle_id) > vehType = traci.vehicle.getTypeID(vehicle_id) > > # check if the vehicle ID is not in vehicleMap > if vehicle_id not in vehicleMap: > # if not, create an EvaluationVehicle object for the > vehicle and store it in vehicleMap > vehicleMap[str(vehicle_id)] = > EvaluationVehicle(str(vehicle_id), > str(vehType)) > > # If the vehicle enters the edge and has not stopped before, > stop it for a specific time > if vehEdgeID == pEntrEdgeID and not vehicleMap[str > (vehicle_id)].hasStopped: > stop_time = 2 > traci.vehicle.setStop(vehID=vehicle_id, edgeID > =nextToEntryID, > pos=1, laneIndex=0, duration=stop_time, > flags=2) > vehicleMap[str(vehicle_id)].hasStopped = True > > # close simulation > traci.close() > > > if __name__ == '__main__': > > run() > > > _______________________________________________ > sumo-user mailing list > sumo-user@eclipse.org > To unsubscribe from this list, visit > https://www.eclipse.org/mailman/listinfo/sumo-user >
_______________________________________________ sumo-user mailing list sumo-user@eclipse.org To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user