Thanks a lot, it helped. Unfortunately, I didn’t pay attention to the flag 
settings.

From: sumo-user <[email protected]> On Behalf Of Jakob Erdmann via 
sumo-user
Sent: Tuesday, 23 April 2024 19:42
To: Sumo project User discussions <[email protected]>
Cc: Jakob Erdmann <[email protected]>
Subject: Re: [sumo-user] Vehicles do not resume driving after a stop using 
"setStop" in TraCI

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 
<[email protected]<mailto:[email protected]>>:
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
[email protected]<mailto:[email protected]>
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________
sumo-user mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/sumo-user

Reply via email to