NO PATH! error when using global_planner with A*
I am trying to use the globalplanner (http://wiki.ros.org/globalplanner) and enable it for A* to use for comparing with my own planner. However, when trying to set 'use_dijkstra' to false so it'll use A* I'm getting the error:
[ERROR] [1664195953.446378924, 239.057000000]: NO PATH!
[ERROR] [1664195953.446519501, 239.057000000]: Failed to get a plan from potential when a legal potential was found. This shouldn't happen.
I've downloaded the globalplanner to a local folder (where it successfully run when I change nothing) and then tried to alter: privatenh.param("usedijkstra", usedijkstra, true); in planner:core.cpp to false. I got the error.
I also tried to undo what I just did above and instead all the line: to move_base.launch in my turtlebot3 folder (which I also have local to try and have more control over what affects my planner) but I get the same error.
I also found this (https://answers.ros.org/question/219109/no-path-error-and-questions-to-gradient_pathcpp-in-global_planner/) and tried to follow the advice and change: if (fabs(nx - startx) < .5 && fabs(ny - starty) < .5) { to see if that might help, but it doesn't either.
Not quite sure about what to do at the moment, so I figured I'd see if anyone could help me. Thanks in advance.
PS: Not my most pressing problem, but as I'd like to compare my planner with another A* I would like them to function similar and I've heard and it seems that global_planner does some smoothing on the path it takes? I'd like to disable this if possible, but not sure how at the moment?
Asked by OverDemon on 2022-09-26 07:55:39 UTC
Answers
If I recall correctly, the use_dijkstra GlobalPlanner property has a dependency on other config properties. Have you tried this combination:
use_dijkstra: false
use_quadratic: false
use_grid_path: true
Updated to fix answer.
Asked by Mike Scheutzow on 2022-09-27 07:33:22 UTC
Comments
Doesn't seem to work unfortunately. I wonder of maybe stevemacenski is correct in that there's no A* implementation in global_planner, just the potential for there to be?
Asked by OverDemon on 2022-09-30 04:44:26 UTC
Just in general, Global Planner nor NavFn are actually A* implementations. They're Global Dynamic Window Approach implementations that can use A* or Dijkstra's for expanding the potential field, but that's not the search itself to generate the path. Its using a gradient descent algorithm on the potential field to generate a path.
Asked by stevemacenski on 2022-09-27 19:06:17 UTC
Comments
Thanks for that information, but why is there a "use_dijkstra: true" param? And we got that issue when we set "use_dijkstra: false". How to make GDWA use A*?
Asked by Zuhair95 on 2023-05-12 03:09:41 UTC
Comments