-
Notifications
You must be signed in to change notification settings - Fork 28
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
Navigation broken for geometry with many skinny triangles in the navigation mesh #1411
Comments
So far I was able to find the following issues:
Still this does not fix all path calculations. |
@behrisch See discussion #1404 for a description of the problem. The algorithm is still TA*. Feel free to have a look at jupedsim/libsimulator/src/RoutingEngine.cpp Lines 276 to 420 in 5746156
Right now the branch contains modifications to display all expanded (i.e. straightened paths) that have been considered by TA*.
If you have a suggestion where the implementation is not following the Algorithm described in #1373 I would be very glad to know. |
I am not entirely sure but I suspect it might be necessary to add a search state not only for every face but for every combination of face and "entry edge". The reason to suspect that is that a) the thesis never talks about updating old states it only adds new ones and b) updating a g-value where the h-value actually refers to a different entry edge looks suspicious. To test that out, one could start with really only adding new states and never update old ones. |
@Ozaq Good news! I just tested it and yes if I remove the whole update part in jupedsim/libsimulator/src/RoutingEngine.cpp Lines 392 to 401 in 5746156
|
@behrisch can you please make a PR with your changes with |
Hmm ok, still cannot merge this. I have been doing some testing with an arena example from @JetteSchumann and there are way to many paths created and expanded In the screenshot below you see the start and goal marked with the pink circle and blue denoting alternative routes, green optimal route. In total 2122 paths are computed At the moment It is unclear to me if this is a general problem in the algorithm or if there is an issue somewhere else. Some of the alternate paths though look odd on first glance at I might very well be that there are more paths computed than it should but still the number of computed paths is computationally prohibitive. |
Can you share this scenario or is it already in the examples? And how do you do the drawing? I added two little optimizations to the branch but I am not sure it will improve things a lot. The paths do not look very implausible to me. What is the effect on runtime or how many paths would you deem acceptable? |
Looking at the Demyen thesis the example above might be an instance of the problematic cases mentioned in chapter 8.2. I think there are basically three options (which can be combined of course):
|
Our current navigation is broken for geometries with many skinny triangles.
This is a severe issue with no workaround and we will not be able to provide a quick fix. @JetteSchumann / @chraibi / @schroedtert we need to discuss what to do here.
Thanks @ytipocmk631 for finding this issue!
This was found on 1.2.x
Discussed in #1404
Originally posted by ytipocmk631 April 30, 2024
I set up some queuing areas and connected to the waypoint behind the queue, but when the agent arrived at the waypoint, it did not move as expected (the agents route plan did not seem to be updated)
bandicam.2024-04-30.10-33-54-636.-.Trim.mp4
example.zip
geo.wkt.zip
The text was updated successfully, but these errors were encountered: