ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

NO PATH! error when using global_planner with A*

asked 2022-09-26 07:55:39 -0500

OverDemon gravatar image

I am trying to use the global_planner (http://wiki.ros.org/global_planner) 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 global_planner to a local folder (where it successfully run when I change nothing) and then tried to alter: private_nh.param("use_dijkstra", use_dijkstra, 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/2191...) and tried to follow the advice and change: if (fabs(nx - start_x) < .5 && fabs(ny - start_y) < .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?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
0

answered 2022-09-27 19:06:17 -0500

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.

edit flag offensive delete link more

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*?

Zuhair95 gravatar image Zuhair95  ( 2023-05-12 03:09:41 -0500 )edit
0

answered 2022-09-27 07:33:22 -0500

Mike Scheutzow gravatar image

updated 2022-09-28 07:00:38 -0500

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.

edit flag offensive delete link more

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?

OverDemon gravatar image OverDemon  ( 2022-09-30 04:44:26 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2022-09-26 07:55:39 -0500

Seen: 1,585 times

Last updated: Sep 28 '22