robot unable to turn in place using dwa_local_planner

asked 2015-12-02 17:20:15 -0500

Naman gravatar image

updated 2015-12-04 11:26:39 -0500

Hi,

I am using dwa_local_planner as a local planner and is having some issues while the robot is turning in place. When a goal is given to the robot, instead of turning in place, it prefers to take a long curve with both translational and angular velocity and there is no case where it turns in place (that is, has only angular velocities) and because of it, it gets stuck sometimes when its not possible to take a long curve because of obstacles, etc. . What should be done to make sure dwa_local_planner gives proper trajectories for the robot to turn in place? and Why does robot never turns in place when using dwa_local_planner (except when at the goal and latchedStopRotateController is being used) ?

Update:
If I set min_vel_x: 0.0, then the robot is unable to turn in place because the dwa_local_planner is not able to send enough angular velocity (angular.z: -0.252) although min_rot_vel : 0.9. Also, if use_dwa: true, angular.z: -0.319 and if use_dwa: false, angular.z: -0.252. I think it has do something with how the sampling is taking place. Any idea why is this happening and how can I make sure that dwa_local_planner sends enough angular velocity for the robot to turn in place?

dwa_local_planner.yaml

#For full documentation of the parameters in this file, and a list of all the
#parameters available for DWAPlannerROS, please see
#http://www.ros.org/wiki/dwa_local_planner

DWAPlannerROS:
  acc_lim_x: 2.5
  acc_lim_y: 0
  acc_lim_th: 3.0
  max_trans_vel: 0.4
  min_trans_vel: 0.2
  max_vel_x: 0.4
  min_vel_x: 0.2
  max_vel_y: 0
  min_vel_y: 0
  max_rot_vel: 1.2
  min_rot_vel: 0.9

  yaw_goal_tolerance: 0.20
  xy_goal_tolerance: 0.30
  latch_xy_goal_tolerance: false

   sim_time: 1.5
  sim_granularity: 0.025
  vx_samples: 3
  vy_samples: 0
  vtheta_samples: 30
  controller_frequency: 10
  penalize_negative_x: true

  path_distance_bias: 20.0
  goal_distance_bias: 24.0
  occdist_scale: 0.1
  forward_point_distance: 0
  stop_time_buffer: 0.5
  scaling_speed: 0.25
  max_scaling_factor: 0.2

  oscillation_reset_dist: 0.05

  prune_plan: false

  sim_period: 0.1
  rot_stopped_vel: 0.01
  trans_stopped_vel: 0.01

Some info. about the robot : The center of rotation of the robot is at the back of the robot and this is where its base_link is present.

Any help will be appreciated. Please let me know if you need more information from me.

Thanks in advance.
Naman Kumar

edit retag flag offensive close merge delete