Robotics StackExchange | Archived questions

robot turning in place towards the obstacle using dwa_local_planner

Hi all,

I have a mobile robot with lidar, Kinect, wheelenoders and IMU which is able to navigate properly using move_base. I am using `SBPLLattice_Planner` as the global planner which works perfectly. I am using dwalocalplanner as the local planner and sometimes, it generates in place velocities towards the obstacle although the global plan is good. I have attached two images below which shows this clearly :

Before Planning:

image description

After Planning:
image description

As you can see in the second image, the robot turned clockwise towards the obstacle. It is really weird because the robot had enough space to turn anti-clockwise and go towards the goal instead of going in the wrong direction.

dwalocalplanner_params.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.3
  min_trans_vel: 0.1
  max_vel_x: 0.3
  min_vel_x: 0.0
  max_vel_y: 0
  min_vel_y: 0
  max_rot_vel: 0.6
  min_rot_vel: 0.4

  yaw_goal_tolerance: 0.20
  xy_goal_tolerance: 0.20
  latch_xy_goal_tolerance: false

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

  path_distance_bias: 1.0
  goal_distance_bias: 0.8
  occdist_scale: 0.05
  forward_point_distance: 0.0
  stop_time_buffer: 0.2
  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

Does anyone have any idea why is this happening? Any suggestions will be appreciated.

Naman

Asked by Naman on 2016-01-20 17:33:25 UTC

Comments

Have you tried to set the min_rot_vel value to a negative one ?

Asked by F.Brosseau on 2016-01-21 02:58:11 UTC

If that works, it would contradict documentation...

~<name>/min_rot_vel (double, default: 0.4)
The absolute value of the minimum rotational velocity for the robot in rad/s

Asked by jorge on 2016-01-21 11:44:54 UTC

I was using this for a project. I have installed the source of BaseLocalPlanner package and modiied them. And I have in a config file the following code :

gen.add("min_vel_theta", double_t, 0, "The absolute value of the minimum rotational velocity for the robot in rad/s", -1.0, -20.0, 0.0)

Asked by F.Brosseau on 2016-01-22 03:00:17 UTC

I don't know if it was the latest version used in the projet and I don't have access to this code anymore.

Asked by F.Brosseau on 2016-01-22 03:01:20 UTC

Interesting contradiction... @Naman, you should definitely give @F.Brosseau a try!

Asked by jorge on 2016-01-22 05:42:49 UTC

Answers