Robotics StackExchange | Archived questions

How to set min and max angular values in DWAPlannerROS?

I want to set min and max values that DWAPlannerROS can send to cmd_vel as these values were empirically measured for my robot.

This is how I stated my yaml file:

recovery_behavior_enabled: true
clearing_rotation_allowed: true

DWAPlannerROS:
  acc_lim_x: 1
  acc_lim_y: 0 
  acc_lim_theta: 1.6
  max_vel_trans: 1.6
  min_vel_trans: 0.8
  max_vel_x: 1.6 
  min_vel_x: 0.8
  max_vel_y: 0.0  
  min_vel_y: 0.0
  min_vel_theta: 10
  max_vel_theta: 11

  holonomic_robot: false

  xy_goal_tolerance: 0.3 
  yaw_goal_tolerance: 0.20 
  latch_xy_goal_tolerance: true 

  sim_time: 4 
  sim_granularity: 0.05
  vx_samples: 5
  vy_samples: 0 
  vth_samples: 5
  controller_frequency: 15


  occdist_scale: 0.01
  oscillation_reset_dist: 0.2

  publish_cost_grid: false
  global_frame_id: odom
  simple_attractor: false

  reset_distance: 4

  prune_plan: true

However, I echoed the /cmdvel topic and I can see that movebase still sends the values below 10 for angular.z:

linear: 
  x: 0.0
  y: 0.0
  z: 0.0
angular: 
  x: 0.0
  y: 0.0
  z: 1.0

Why is it sending these values?

Asked by EdwardNur on 2019-01-16 07:21:08 UTC

Comments

Which distro are you using?

Asked by David Lu on 2019-01-16 10:14:58 UTC

@David Lu I am using Melodic

Asked by EdwardNur on 2019-01-17 02:56:00 UTC

Answers

I'm not sure this is desirable behavior, but the way that DWA works is that it assumes that you can rotate in either direction at a given max speed. Thus, it will explore trajectories from [-max_vel_theta, max_vel_theta]. For you, 1.0 falls in the range [-11, 11].

Okay, so what does min_vel_theta do? It makes sure your robot is moving in some direction.

However, the above command should fail the check given, so I'm unclear what the problem is.

Asked by David Lu on 2019-02-11 13:25:08 UTC

Comments