Ask Your Question
1

DWA planner failed to produce path.

asked 2020-10-26 10:53:26 -0600

Zimba96 gravatar image

updated 2020-10-26 19:29:43 -0600

I'm trying to build a navigation framework using move_base with DWAPlannerROS as the local planner/controller on ROS Melodic.

Whenever I set a goal, the global planning is successful but the DWAPlannerROS doesn't work well. In fact, it only appears to get a trajectory very sporadically. Most of the times, it throws a

"DWA planner failed to produce path"-Warning

and quits at some point.

Therefore, my terminal output looks as follows: terminal output

The corresponding rviz-visualization (with activated global and local costmap) looks as follows: rviz-visualization

Note that the trajectory that can be seen in this visualization is one of the mentioned sporadically occuring trajectories which has been computed a couple of seconds before the screenshot was taken!

I've read some other posts solved the issue using the turtlebot-params. I've tried that but the issue remained. Other threads suggested to use default parameters and then tune every single parameter in order so see which parameter causes the problem, but when using only default-params the issue remained, too.

At the moment I'm using the following params:

base_global_planner_params.yaml:

GlobalPlanner:
  #basic parameters
  default_tolerance: 3.0  #default is 0.0
  use_dijkstra: true  #default is true
  old_navfn_behavior: false  #default is false
  use_quadratic: true  #default is true
  use_grid_path: false  #default is false
  allow_unknown: true  #default is true
  lethal_cost: 253  #default is 253
  neutral_cost: 50  #default is 50
  cost_factor: 3  #default is 3

  #debug parameters
  publish_potential: True

base_local_planner_params.yaml:

DWAPlannerROS:
  max_vel_x: 3.7
  max_vel_y: 0.0
  min_vel_y: 0.0
  max_vel_trans: 3.7 
  min_vel_trans: 0.0
  max_vel_theta: 2.09 
  min_vel_theta: 0

  acc_lim_x: 2.47 
  acc_lim_y: 0
  acc_lim_theta: 4.18 

  sim_time: 2.0
  vx_samples: 3
  vy_samples: 0
  vth_samples: 20

  holonomic_robot: false

move_base_params.yaml:

controller_frequency: 5.0
controller_patience: 3.0


planner_frequency: 1.0
planner_patience: 5.0

oscillation_timeout: 10.0
oscillation_distance: 0.2

base_global_planner: "global_planner/GlobalPlanner"

base_local_planner: "dwa_local_planner/DWAPlannerROS"
recovery_behavior_enabled: false

costmap_common_params.yaml:

footprint: [[0.20, 0.24125], [0.20, 0.175], [0.65, 0.175], [0.65, -0.175], [0.20, -0.175], [0.20, -0.24125], [-0.20, -0.24125], [-0.20, -0.175], [-0.65, -0.175], [-0.65, 0.175], [-0.20, 0.175], [-0.20, 0.24125]]
inflation_radius: 0.1
transform_tolerance: 0.05

global_costmap_params.yaml:

global_costmap:
  plugins: 
    - {name: static_layer, type: "costmap_2d::StaticLayer"}
    - {name: inflation_layer, type: "costmap_2d::InflationLayer"}
  track_unknown_space: true
  global_frame: map
  robot_base_frame: base_link
  update_frequency: 10.0 # data comes in
  publish_frequency: 10.0 # costmap publishes info
  rolling_window: true
  recovery_behavior: false
  width: 100
  height: 100
  static_layer:
      trinary_costmap: false
      map_topic: "path_segmentation_occgrid"

Note that the occupancy grid which is used as map_topic gets updated/published every 5 seconds.

local_costmap_params:

local_costmap:
  global_frame: odom 
  map_topic: "semi_global_map"
  robot_base_frame: base_link
  update_frequency: 10.0 
  publish_frequency: 10.0 
  track_unknown_space: true
  static_map: true
  rolling_window: true
  width: 10
  height: 10
plugins: 
- {name: static_layer2, type: "costmap_2d::StaticLayer"}
- {name: inflation_layer2, type: "costmap_2d::InflationLayer"}

Does anyone have an idea on what could be the issue?

Thank you in advance for any hint!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2020-10-27 07:29:44 -0600

Zimba96 gravatar image

I figured it out: The issue appears to be with the

track_unknown_space: true

inside the local_costmap_params. Apparently, the DWAPlanner cannot handle unknown-areas (represented by NO_INFORMATION-cost values) properly. By setting track_unknown_space to false, the unknown-area is treated like free-space and the local planner works perfectly fine.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2020-10-26 10:53:26 -0600

Seen: 48 times

Last updated: Oct 27