Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sumo-user] Inquiry : Controlling traffic lights

Once you call, setRedYellowGreenState sumo maintains that state until you change it with another call to setRedYellowGreenState  or you hand control back to sumo with setProgram.

To perform green wave optimization do either of the following but only ONE of them:
- use setPhase with an appropriate initial program as described here: https://sumo.dlr.de/wiki/Simulation/Traffic_Lights#Setting_the_phase (must be called again in every cycle)
- use setDuration (called during the green phase) this must be called again in every cycle because the duration is reset to the original value in every cycle

If the cycle duration is to be fixed, then calling setDuration once at the start of the simulation can be used to alter the offsets to achieve green waves as well. (But you don't even need TraCI for that since you can set the offset parameter in XML as well).

regards,
Jakob



Am Mo., 6. Mai 2019 um 02:41 Uhr schrieb Sheshadri Kalkunte Ramachandra <sheshadrik@xxxxxxxxxx>:
Namaste,

We are trying to provide a green wave for a vehicle traveling from point A to point B. For that we need to turn the traffic lights in its path to Green .

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Requirement:

I read from the article https://sumo.dlr.de/wiki/Simulation/Traffic_Lights#Actuated_Traffic_Lights (Controlling traffic lights via TraCI) that we need to load a program that have green phases for long duration and then use setPhase() to switch to the next phase.

We tried to set the current traffic light to green and set its phase and set its phase duration. using the following code.

----------------------------------------------------------------------------------------------------------------------------------------------------------
Code:

Here '1024500711' is a valid traffic light

>>> traci.trafficlight.getCompleteRedYellowGreenDefinition('1024500711') # tried to obtain the definition to see what state it is in

O/P => [Logic(programID='0', type=2, currentPhaseIndex=0, phases=[Phase(duration=0.001, state='GG', minDur=0.001, maxDur=0.001, next=-1), Phase(duration=5.0, state='yy', minDur=5.0, maxDur=5.0, next=-1), Phase(duration=0.001, state='rr', minDur=0.001, maxDur=0.001, next=-1)], subParameter={})]

>>> traci.trafficlight.setRedYellowGreenState('1024500711','GGGGGG') # Wanted to set Green for all

>>> traci.trafficlight.getRedYellowGreenState('1024500711')
O/P =>'GGGGGG'

>>> traci.trafficlight.getCompleteRedYellowGreenDefinition('1024500711') # wanted to confirm whether the traffic changes got set

O/P =>[Logic(programID='0', type=2, currentPhaseIndex=0, phases=[Phase(duration=0.001, state='GG', minDur=0.001, maxDur=0.001, next=-1), Phase(duration=5.0, state='yy', minDur=5.0, maxDur=5.0, next=-1), Phase(duration=0.001, state='rr', minDur=0.001, maxDur=0.001, next=-1)], subParameter={}), Logic(programID='online', type=0, currentPhaseIndex=0, phases=[Phase(duration=1.0, state='GGGGGG', minDur=1.0, maxDur=1.0, next=-1)], subParameter={})]

>>> traci.trafficlight.setPhaseDuration('1024500711',165.5) # Wanted to set the Green phase for 165 seconds
>>> traci.trafficlight.getPhaseDuration('1024500711') # Not showing 165.5
O/P => 1.0

>>> traci.simulationStep() # Ran a traci simulation step
O/P =>[]
>>> traci.trafficlight.getPhaseDuration('1024500711') # Still no change
O/P =>1.0

>>> traci.trafficlight.getProgram('1024500711') # Not sure how to interpret this program Id
'online'
----------------------------------------------------------------------------------------------------------------------------------------------------------

Problem:
  • The traffic light phase duration is not getting updated even after running a sumulationStep().
  • How do we ensure that it remains green for a specified amount of time?
  • After specified amount of time, how to handover control to Sumo for automatically switching to Yellow and Red in future.
----------------------------------------------------------------------------------------------------------------------------------------------------------
Doubts:

Also, if we set a traffic signal state (like GgRrGg) and set phase duration, after the phase duration elapses, will Sumo take over control and resume with automatically switching traffic lights?

Can you provide any insights on how to control traffic lights using Traci api to provide greenwave?
 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Regards,
Sheshadri K R

+91-9845213149

_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user

Back to the top