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"}
I fail to understand the problem. If obstacle is detected at the goal pose, obviously it would not be able to plan a path.
@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.
@parzival I have added a screen to represent my situation