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$