Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Why does the DWA Local Planner need an acceleration value of >= 1.0?

Sometimes, in cluttered environments, our (differential wheeled) robot seems to accelerate too fast and navigates itself into places it cannot escape from. Just to test if a lower acceleration would do any good I tried reconfiguring it but it seems that setting the parameter /move_base/DWAPlannerROS/acc_lim_x lower than 1.0 causes move_base to not do anything any more. Since the parameter is a float value, I expect that the reason is not just an int cast somewhere. Does anyone know why an acceleration lower than 1.0 m/s^2 might not be supported?

Why does the DWA Local Planner need an acceleration value of >= 1.0?

Sometimes, in cluttered environments, our (differential wheeled) robot seems to accelerate too fast and navigates itself into places it cannot escape from. Just to test if a lower acceleration would do any good I tried reconfiguring it but it seems that setting the parameter /move_base/DWAPlannerROS/acc_lim_x lower than 1.0 causes move_base to not do anything any more. Since the parameter is a float value, I expect that the reason is not just an int cast somewhere. Does anyone know why an acceleration lower than 1.0 m/s^2 might not be supported?

Edit: Just to give some more info, these are the other parameters we use:

DWAPlannerROS:
  acc_lim_x: 1.0

  acc_lim_y: 0.0

  acc_lim_th: 2.0

  min_vel_y: 0.0
  max_vel_y: 0.0
  max_rot_vel: 1.0
  min_rot_vel: 0.4

  yaw_goal_tolerance: 0.1

  xy_goal_tolerance: 0.3

  latch_xy_goal_tolerance: true
  sim_time: 1.7

  path_distance_bias: 5.0 #default:32
  goal_distance_bias: 9.0 #default:24
  occdist_scale: 0.01 #default:0.01


  oscillation_reset_dist: 0.05


  prune_plan: true

  holonomic_robot: false

Not listed parameters use the default values.

Why does the DWA Local Planner need an acceleration value of >= 1.0?

Sometimes, in cluttered environments, our (differential wheeled) robot seems to accelerate too fast and navigates itself into places it cannot escape from. Just to test if a lower acceleration would do any good I tried reconfiguring it but it seems that setting the parameter /move_base/DWAPlannerROS/acc_lim_x lower than 1.0 causes move_base to not do anything any more. Since the parameter is a float value, I expect that the reason is not just an int cast somewhere. Does anyone know why an acceleration lower than 1.0 m/s^2 might not be supported?

Edit: Edit: Just to give some more info, these are the other parameters we use:

DWAPlannerROS:
  acc_lim_x: 1.0

  acc_lim_y: 0.0

  acc_lim_th: 2.0

  min_vel_y: 0.0
  max_vel_y: 0.0
  max_rot_vel: 1.0
  min_rot_vel: 0.4

  yaw_goal_tolerance: 0.1

  xy_goal_tolerance: 0.3

  latch_xy_goal_tolerance: true
  sim_time: 1.7

  path_distance_bias: 5.0 #default:32
  goal_distance_bias: 9.0 #default:24
  occdist_scale: 0.01 #default:0.01


  oscillation_reset_dist: 0.05


  prune_plan: true

  holonomic_robot: false

Not listed parameters use the default values.

Edit2: To answere David's comment: These are the parameters we use for the local costmap:

local_costmap:
  update_frequency: 5.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 4.0
  height: 4.0
  resolution: 0.05
  plugins:  
    - {name: obstacle_layer, type: "costmap_2d::VoxelLayer"}
    - {name: inflation_layer, type: "costmap_2d::InflationLayer"}

So the resolution is 0.05 which is the default value if I'm not mistaken.