Understanding the Default dwa_local_planner Parameters

asked 2020-04-20 15:17:21 -0500

adwiii gravatar image

At a high level, I am trying to better understand the dwa_local_planner parameters and how they influence robot behavior. I have referenced and read through the dwa_local_planner wiki page and read through the short descriptions of the parameters.

I am trying to understand the default values for path_distance_bias: 32.0, goal_distance_bias: 24.0, occdist_scale: 0.01.

The documentation says that these are used for the formula:

cost = path_distance_bias * (distance to path from the endpoint of the trajectory in meters) + goal_distance_bias * (distance to local goal from the endpoint of the trajectory in meters) + occdist_scale * (maximum obstacle cost along the trajectory in obstacle cost (0-254))

From this it would seem that a reasonable distance to the local goal and path endpoint would be on the order of a few meters and as stated the obstacle cost can be as high as 254. However, say 2 meters * 32 = 64, while 0.01*254=2.5 - this seems to be lopsided.

  1. How were these default values determined?
  2. Is there a standard procedure to tune these parameters for a specific robot/environment setup?
  3. Does this mean that much more weight is given to path_distance_bias and goal_distance_bias than to occdist_scale?
  4. Why is occdist_scale so much smaller compared to the other two?
  5. The default values for pdist_scale and gdist_scale given in the base_local_planner wiki are much lower (0.6, 0.8 respectively). Why are these different? Is it because meter_scoring defaults to off so the units are different?
  6. Why is pdist_scale lower than gdist_scale for base_local_planner, but path_distance_bias is higher than goal_distance_bias for dwa_local_planner?

I have been simulating the Husky along with Google Cartographer for the Husky with ROS melodic and examining it's provided planner.yaml here. In my tests the robot appears to get very close to obstacles when the goal is on the other side. This lead me to believe these parameters need to be updated, especially increasing the occdist_scale, but my understanding is fuzzy. Thanks!

edit retag flag offensive close merge delete