ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A answers.ros.org

# 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

EDIT 2

edit retag close merge delete

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

( 2021-03-09 09:25:31 -0500 )edit

@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.

( 2021-03-09 09:41:39 -0500 )edit

@parzival I have added a screen to represent my situation

( 2021-03-10 01:23:35 -0500 )edit

Sort by » oldest newest most voted

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"}

more

1

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.

( 2021-03-10 05:06:04 -0500 )edit