0
$\begingroup$

Rosanswers logo

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!


Originally posted by Zimba96 on ROS Answers with karma: 121 on 2020-10-26

Post score: 3

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.


Originally posted by Zimba96 with karma: 121 on 2020-10-27

This answer was ACCEPTED on the original site

Post score: 2

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.