-
-
Notifications
You must be signed in to change notification settings - Fork 353
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gridlock due to tiny roads #114
Comments
It's a bug, perhaps the most infamous one: gridlock. I've been fighting in some form since ~2011, when I was a lowly undergrad working on a different simulator. :) It has many causes, but you've hit upon two of the big ones. For the traffic signals, there's an attempt at dealing with this, but it's incomplete. If you press ctrl+S in game to activate dev mode, then click one of these pairs of signals, there's a button to explore uber-turns. I'm trying to make the traffic signal editor understand movements across pairs of intersection that people think of as logically one intersection. Long cars getting stuck in short roads has a bunch of causes. I have some hacks that I've hardcoded for some intersections that sort of help; they may help with Main and 1st, but may not. Anyway, this is a hard problem always on my radar. I'm working on a comprehensive presentation of the modelling assumptions in A/B Street, which will definitely cover this topic. I'll link that here when it's ready. |
I made some progress in #8 on synchronizing pairs of traffic lights. It'll be in the build tomorrow (along with a few other fixes I've been slow at getting in) |
Not sure if this is the right place for this convo, but I'm curious about the gridlock that came up here (I don't see any way to comment on the "project" page for gridlock). Is there anything that I can do to contribute to this issue? I'm doing a lot of spot fixes to try to fight gridlock on the South Seattle map, but I still can't get it to run past about 8 a.m. without a meltdown. Some spot fixes are easy, like around Boeing Access Rd and SR 99 ramps, but Yesler and Jackson remain the dynamic duo of throughput destruction. Downtown is where all the gridlock issues seem to come together and I can't find an easy spot-fix solution. |
Issues are the easiest place to track conversation, and I don't think Github has a way to change permissions for projects. You can definitely help!
If you're interested in the south seattle map but the stuff near downtown is causing problems, we could cheat and adjust the boundary to start at King or Dearborn or so. Also, I haven't looked at the Boeing Access Rd area closely before; this is horrendous. I'll see if there's some obvious bugs here. At least one is that I'm sticking sidewalks on roads that OSM labels as "trunk". |
Excellent, thanks for the suggestions. I'll export some simple signal
timing issues that cause big problems. I'll also work on fixing some lane
issues in OpenStreetMap. I know there are some problems on MLK where OSM
indicates one travel lane where there are actually two, and I'm sure there
are others.
Ultimately, I'd like to be able to work with the entire Seattle map to do
some more meaningful simulation work, so while changing the map boundary
might be helpful in the short term, I'm willing to put up with the
annoyance for the sake of working towards solving the underlying gridlock
issue.
Thanks again.
…On Sun, Jul 5, 2020 at 7:29 PM Dustin Carlino ***@***.***> wrote:
Issues are the easiest place to track conversation, and I don't think
Github has a way to change permissions for projects. You can definitely
help!
1.
If there's a traffic light that's particularly dumb and you fix it, or
you know the real timings, then enable dev mode (*ctrl+S*), hit export
in the signal editor, and send the files in traffic_signal_data. Or if
you have a bunch in the whole map, send the edits .json. I can add these as hand-mapped
defaults <https://github.com/dabreegster/seattle_traffic_signals>.
2.
If the number of type of lanes in a certain area is wrong, either make
a note of it in an issue or fix it in OpenStreetMap directly. I'd like to
make more tools to fix OSM problems directly, but for now, you'd have to use
the existing editors <https://learnosm.org/en/>. (The exception to
"wrong lanes" is sidewalks -- I'm not using OSM for these at all yet.)
If you're interested in the south seattle map but the stuff near downtown
is causing problems, we could cheat and adjust the boundary to start at
King or Dearborn or so.
Also, I haven't looked at the Boeing Access Rd area closely before; this
is horrendous. I'll see if there's some obvious bugs here. At least one is
that I'm sticking sidewalks on roads that OSM labels as "trunk".
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#114 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQEDTNAVZQUK62K37AGREB3R2EZKBANCNFSM4OOP3T5Q>
.
|
Next steps here, all confusingly co-dependent:
|
sequence as one thing to lock -- don't start it until it's clear, and prevent new conflicting turns once started. disable block-the-box protection inside. I'm not sure this is helping at all yet. maybe it's just more complex.
Just organizing some thoughts. Causes/problems:
Attempted solutions:
|
… stop signs nearby. this will also capture things like roundabouts. for #114. stuff's not even attempting to enter some clusters now.
I went back to spot-fixing problems. Using the "modify traffic patterns" tool, cancelling 90% of all trips makes the downtown map complete. Took it down to 80, it was easier to spot specific problems. I made a flurry of OSM fixes, for example Lenora and Westlake went from Still need to make the code more generally robust, but I had somehow forgot that it's much easier to make progress by tackling individual issues. |
I haven't dug through the history to find the commit deleting it, but there used to be a
I think it's time to attempt merging short roads again, though, after doing a bit of archaeology and recalling why the last try failed. One thought is that #255 could be a way to manually annotate in OSM which "roads" are really just parts of an intersection and would be good candidates for merging. |
…using the original attempted shapes. #114
Brief history to record: Back in ~May, there was a way to merge short roads at the So the new idea is:
Getting the merge to actually work will require improvements to things like the intersection geometry algorithm and signal heuristics, but all of that is probably doable. |
…114 For the (still disabled) cases of merging short roads, this helps immensely. It doesn't affect most other maps visibly. Makes a few already broken things in Krakow and London slightly worse, but don't care, because they didn't look sane before either.
in the interior of a big intersection. #255, #114 - No sidewalks or parking on it - Automatically try to merge it Bring in fresh Seattle OSM with a few places on Aurora tagged, for further experimentation. Also, there's some bug in the importer; Seattle maps didn't get regenerated last change. Picking up the diffs now.
…114 Not updating the Montlake map yet.
it only fixes a banned u-turn in one direction... still, progress. #114
generated incorrectly, but regardless, calling them TurnType::Left is just confusing. For the moment, always filter out U-turns from merged intersections. When connections across merged one-ways are handled properly, we won't need this, but in the meantime, it moves forward. #114 Not regenerating just yet, but will bundle it with the next commit.
Not sure how to properly handle the one-way problem. For now, the simple workaround is to detect U-turns that get generated in merged intersections, and just filter them out. Sometimes they're legal, but usually not. Other thoughts on more sanely preserving turn restrictions:
And for handling one-ways: can we turn the constraint into a bunch of turn restrictions? Sometimes, yes, but in the example above, not safely, because there might be other paths to get between the off- and on-ramp. |
everything along Aurora looks fine, but maybe I wrote the other way when testing in Montlake earlier. Guess I'll find out soon. #114 Not regenerating all maps yet, since more churn is on the way.
later overriding a .osm file with tags for these roads. This is a way to test the effects of making simple OSM changes locally before upstreaming. Also handle repeated merging collapsing one of the roads. Not 100% what happens here, but skipping the collapsed road works fine. The scary Montlake intersections now look great with all the merging done, so upstreaming the change! #114
@matkoniecz, just an update in case you wanted to try out the new merging. Right now, any ways with You can just run the importer on a .osm to get the new behavior. If you want a convenient way to experiment locally, you could manually edit your .osm file. But another method is:
I don't think the definition in #436 should be determined by what A/B Street does, of course -- that's like tagging for a particular renderer or router. So there may be cases where |
threshold is hardcoded to 0 to disable this, but it can be more easily changed when experimenting locally. I tried this out in a few maps manually and saw that it helps sometimes, but breaks strangely other times. My plan is to work through the bugs that result and eventually enable this for all imports. #114
…r. The map_editor can now live-debug intersection geometry and merge short roads; faster to iterate there. #114
1) If a car is blocked by a conflicting turn and is part of a cycle, wake up the car blocking it. In some cases, this wakes it up faster and unsticks things. Otherwise, it just wastes a little bit of time. 2) If a car is part of a cycle, allow blocking-the-box. 3) Continue sorting people at a stop sign by the time they've been waiting. But for cars "overflowing" their current lane, move them to the front of this ordering. It unsticks one particular situation. 4) Fix wakeup_waiting entirely. Before, it was waking up protected turns before permitted, but otherwise the ordering was arbitrary. Now actually respect stop sign ordering. I expect this to improve many other situations than the one I was checking. This was all motivated by one particular roundabout in Poundbury. It doesn't solve gridlock there, but it gets past a major blockage.
Not sure if this is a feature or a bug, but reporting here because the behavior seems unexpected, or at least undesired. Working in the sandbox with the South Seattle map.
Roads with medians, like 1st Ave S in downtown Seattle, can cause permanent backups. These are roads that are treated as two separate one-way streets that run parallel. These backups seem to result from the very closely-spaced intersections that occur with cross streets where there is only space for one car in the space between the intersections with the respective sides of the street.
Seems like there are two primary reasons (possibly more) why these persistent, unresolvable backups occur at these locations:
See attached screenshot. There is a car turning left from South Main St to go north on 1st Ave S. This car is in the small "holding area" in the median of 1st Ave S. The tail of this car sticks out a bit into the intersection of 1st Ave S heading south and S Main St. The two cars that are trying to go south on 1st Ave S through this intersection have been waiting more than an hour because there is a always a small section of a car sticking out into the intersection at the end of every light cycle, preventing them from going forwards. They're stuck forever, and that permanent backup eventually ripples out through the rest of the street grid.
So, maybe this is a feature and not a bug, but it's annoying. Likely also a known issue. A few possible ways to fix it:
The text was updated successfully, but these errors were encountered: