eclipse-sumo / sumo

Eclipse SUMO is an open source, highly portable, microscopic and continuous traffic simulation package designed to handle large networks. It allows for intermodal simulation including pedestrians and comes with a large set of tools for scenario creation.
https://eclipse.dev/sumo
Eclipse Public License 2.0
2.5k stars 1.41k forks source link

NEMA: support pedestrian crossings #10742

Open namdre opened 2 years ago

namdre commented 2 years ago

at the moment, a sumo phase is "composed" by overlaying the green states from two NEMA phases.

However, pedestrian crossings are enabled in response to the absence, rather than the presence of vehicle streams. It seems to me that there is currently no consistent way to add 'G' states for pedestrian crossings to a NEMA phase in a way that would permit composing a valid sumo phase from any permitted combination of NEMA phases.

@mschrader15 @qichaow can you explain how NEMA controllers handle pedestrian phases (and maybe provide an example test case where this already works, in case my understanding is wrong).

Idea: instead of taking the set-theoretic disjunction of 'G' states (as for vehicles), we need to take the set-theoric conjunction of pedestrian 'G' states when composing the sumo phase.

mschrader15 commented 2 years ago

Below shows a typical scenario. This layout should require 0 changes to the NEMALogic, as the pedestrian phases are simply active along with the even-numbered traffic movements. Source

image

There is another pedestrian phasing situation where there additional phases added, to allow for an "all walk" scenario. I would have to defer to @qichaow as I don't have experience with >8 phases.

I will work on generating a test case for scenario 1, though I must admit that I am unfamiliar with pedestrian modelling in SUMO. @namdre could you point me to a existing test case that I could copy and simply change the traffic signal controller to NEMA?

namdre commented 2 years ago

I think your point of "this is working right now" holds for pedestrian crossings without middle islands. However, if there is a middle island, then some crossings can be active on odd-number phases and we could compose them with the 'conjunction' logic mentioned above.

Examples can be found within sumo/tests/sumo/pedestrian_model/striping/use_crossing Details on how pedestrians work in general are at https://sumo.dlr.de/docs/Simulation/Pedestrians.html

qichaow commented 2 years ago

The pedestrian phasing can be achieved through adding more rings to the settings. Basically having four rings instead of two rings. The pedestrian phases will have longer yellow and red clearance time. In some settings, the pedestrian phases won't start with the left turn phases and will wait until the through phases start. In that case, we can place dummy vehicle left turn phases in front of the pedestrian phases. The connections between phase numbers and pedestrian movements can be achieved by the state string similar to vehicle phases.

I will take a look later this week to see if there need to be any changes to the current code to achieve this function. We probably just need to add more rings to the additional file.

Thanks, Qichao

On Tue, May 17, 2022 at 7:27 AM Jakob Erdmann @.***> wrote:

I think your point of "this is working right now" holds for pedestrian crossings without middle islands. However, if there is a middle island, then some crossings can be active on odd-number phases and we could compose them with the 'conjunction' logic mentioned above.

Examples can be found within sumo/tests/sumo/pedestrian_model/striping/use_crossing Details on how pedestrians work in general are at https://sumo.dlr.de/docs/Simulation/Pedestrians.html

— Reply to this email directly, view it on GitHub https://github.com/eclipse/sumo/issues/10742#issuecomment-1128869440, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADYWAWGMD7ZZQ7WZAN4WVT3VKONCPANCNFSM5WELZCFQ . You are receiving this because you were mentioned.Message ID: @.***>

-- Qichao Wang, Ph.D. Computational Scientist AI, Learning and Intelligent Systems Group Computational Sciences Center National Renewable Energy Laboratory

mschrader15 commented 2 years ago

I reached out to our resident pedestrian phasing expert here at UA (Dr. Alex Hainen). Here is what I found:

Using this annotated figure as reference:

image

For the median crossing with an island (aka pedestrian area of refuge, this FHWA guide shows midblock), here’s the deal. If it is ADA (Americans with Disabilities Act) and meets criteria, you can design the intersection timings as a two-stage crossing such that you would only consider the time to cross half of the intersection (for the P2, P4, P6, and/or P8 times). You have to have pedestrian signal heads and detection (buttons). If there isn’t enough room to meet criteria, then the timings should be designed as a single-stage crossing. Either way, there isn’t any additional phasing like a P2A/P2B. It’s just where you expect the peds to be at the end of P2 each time.

This information is of course only applicable to American modellers, so like @namdre points out, perhaps it does make sense to use conjuction logic for ped phases.

Phase 9 could be added as a ped scramble (aka Barnes crossing). This allows all pedestrians to cross in every direction.

There will have to be modifications to the controller core to support a 9th phase, as it effectively adds a third barrier.

namdre commented 2 years ago

Thanks for getting to the bottom of this so quickly! I still have questions regarding the 1+6 (3+8) phase since they would permit conflicting movements (P6 versus 1 / P8 vs 3):

If you want to test a ped scramble, the infrastructure / actuated control can be found in https://sumo.dlr.de/extractTest.php?path=sumo/pedestrian_model/striping/use_crossing/cross_twice_diagonal

qichaow commented 2 years ago

Hi Jakob,

I didn’t think of 1+6. Let me check with local traffic engineers to figure it out.

Thanks, Qichao

On Tue, May 17, 2022 at 11:48 PM Jakob Erdmann @.***> wrote:

Thanks for getting to the bottom of this so quickly! I still have questions regarding the 1+6 (3+8) phase since they would permit conflicting movements (P6 versus 1 / P8 vs 3):

  • in this case 1 and 3 should be designed with 'g' instead o 'G' since the cars have to yield to the pedestrian stream, do you agree?
  • in the case mentioned by @qichaow https://github.com/qichaow where pedestrians are not permitted in 1+6 and have to wait until 2+6 would this even be achievable without pedestrian-conjunction logic? (by disjunction, if pedestrians are permitted in 6, they are permitted in any phase combined with 6). Or is this something to be solved with additional barriers so that the 6/P6 phase cannot be combined with 1 anymore?

If you want to test a ped scramble, the infrastructure / actuated control can be found in https://sumo.dlr.de/extractTest.php?path=sumo/pedestrian_model/striping/use_crossing/cross_twice_diagonal

— Reply to this email directly, view it on GitHub https://github.com/eclipse/sumo/issues/10742#issuecomment-1129594066, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADYWAWE6JJ3YOIW5QEBPIXDVKSADZANCNFSM5WELZCFQ . You are receiving this because you were mentioned.Message ID: @.***>

mschrader15 commented 2 years ago

Reached out to our local engineers about the 1+6 case:

If/when 1&6 comes up, ped 6 would come up also and remain in walk.

Regarding the timing of the pedestrian phase:

The ped time can be short, equal, or even longer than their matching phase. Shorter is good because there will be a little don’t-walk time at the end. Equal is fine. Longer is a problem. It’s called oversized peds. You HOPE that peds won’t come up often, but when they do you know that they will break coordination. An example is at 15th/Hackberry (local intersection) ... north/south crosswalk has a longer time than the split for phase 4 or phase 8. So then it breaks coordination and the controller needs to get back in step. Not good

namdre commented 2 years ago

Doing the pedestrian timing independent of the vehicle timing would certainly involve some changes. Right now we could only simulate equal time.