Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sumo-user] Vehicles do not resume driving after a stop using "setStop" in TraCI

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

 

From: sumo-user <sumo-user-bounces@xxxxxxxxxxx> On Behalf Of Jakob Erdmann via sumo-user
Sent: Tuesday, 23 April 2024 19:42
To: Sumo project User discussions <sumo-user@xxxxxxxxxxx>
Cc: Jakob Erdmann <namdre.sumo@xxxxxxxxx>
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 <sumo-user@xxxxxxxxxxx>:

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@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user


Back to the top