Robotics StackExchange | Archived questions

DWA fails to produce a plan when the local goal is in dynamic obstacle

Hello, one more problem

While using DWA I faced the error when local planner can't produce control command when the local goal is detected in dynamic obstacle. I mean the the last point of the path in the local costmap is in the dynamic obstacle.

Does anyone has a solution?

EDIT 1

image description

EDIT 2

image description

Asked by Yehor on 2021-03-09 10:00:33 UTC

Comments

I fail to understand the problem. If obstacle is detected at the goal pose, obviously it would not be able to plan a path.

Asked by parzival on 2021-03-09 10:25:31 UTC

@parzival Imagine that the global goal where the robot should move is free of obstacle, but on the local costmap which is 3X3 meters in my configuration there is a dynamic obstacle on the generated path. And this obstacle is in the end of the local map (it is in the border of local costmap). So the robot should start moving towards the global goal, avoid obstacle and move next, but instead the planner response with fail to find path. So the planer consider the local goal unreachable because of the dynamic obstacle.

Asked by Yehor on 2021-03-09 10:41:39 UTC

@parzival I have added a screen to represent my situation

Asked by Yehor on 2021-03-10 02:23:35 UTC

Answers

The problem ,as I understood, is that the global planner didn't know anything about Obstacles in obstacle layer. So when I use default layering and comment the plugin explicit specification the robot starts avoid it and build the path correctly.

However I found a very strange problem and I can't figure out why is that happening. When I explicitly specify the plugins for each costmap they work very bad. The local costmap reduce the inflation to almost 0, while the inflation in the global costmap is ok (both of them use the same inflation layer). But when I let the navigation stack to use plugins auto costmaps work ok.

I think there are still luck of documentation in 2021 how to use plugins with costmaps(

On the EDIT 2 I displayed the problem. This happened only when I specify plugins explicitly like:

plugins:
  - {name: static_layer,           type: "costmap_2d::StaticLayer"}
  - {name: inflation_layer,        type: "costmap_2d::InflationLayer"}
  - {name: obstacle_layer,         type: "costmap_2d::VoxelLayer"}

Asked by Yehor on 2021-03-10 04:52:49 UTC

Comments

I found the problem. The problem was that the plugin connecting order matters. You have to connect Obstacle layers firstly and then inflate that layer.

Asked by Yehor on 2021-03-10 06:06:04 UTC