Rosanswers logo


I'm using dwa_local_planner/DWAPlannerROS as local planner and, global_planner/GlobalPlanner as global planner.

When the goal point is in near to obstacles(1), Robot tries going directly to goal, it doesn't thinks about rotating at goal point. So, It stucks(2) at the end:

[ WARN] [1455116051.009469819, 8907.527000000]: DWA planner failed to produce path.
[ WARN] [1455116051.230953083, 8907.627000000]: Rotate recovery behavior started.
[ERROR] [1455116051.231075332, 8907.627000000]: Rotate recovery can't rotate in place because there is a potential collision. Cost: -1.00

Here is screenshot:

Rviz Screenshot

EDIT: I've set forward_point_distance to 0.0 and vy_samples to 0 by this answer, now robot tries better ways but struggling at goal point's near too (its not about goal tolerance, struggling at far than the 0.06). I've just updated navigation from ubuntu's repo's. I'll add screenshots after looking how the new packages works.

EDIT2: After updating navigation packages, It is trying to escape infinitely with struggling with little movements at near to end of the path, changing path_distance_bias and goal_distance_bias parameters doesn't make sense:

[ INFO] [1455190327.742058584, 6646.566000000]: Got new plan
[ INFO] [1455190327.908304049, 6646.664000000]: Got new plan
[ INFO] [1455190328.263322957, 6646.864000000]: Got new plan
[ INFO] [1455190328.617373718, 6647.064000000]: Got new plan
[ INFO] [1455190328.925895750, 6647.264000000]: Got new plan
[ INFO] [1455190329.222412376, 6647.465000000]: Got new plan

And screenshot: Struggling

Here is video. How can I configure dwa_local_planner to create 3rd screenshot's like plan? (Or Can I configure?) (Or Are there any global planner to operate this?)

Here is all parameters:


  use_dwa: true
  # Robot Configuration Parameters
  acc_lim_x: 20.0
  acc_lim_y: 0.0
  acc_lim_theta: 10.0
  acc_limit_trans: 0.1

  max_trans_vel: 0.55
  min_trans_vel: 0.01 
  trans_stopped_vel: 0.01
  rot_stopped_vel: 0.01

  max_vel_x: 0.55
  min_vel_x: -0.55

  max_vel_y: 0.0
  min_vel_y: 0.0

  max_rot_vel: 1.5
  min_rot_vel: 0.02

  # Goal Tolerance Parameters
  yaw_goal_tolerance: 0.03
  xy_goal_tolerance: 0.06
  latch_xy_goal_tolerance: false

  # Forward Simulation Parameters
  sim_time: 1.0
  sim_granularity: 0.1
  vx_samples: 15
  vy_samples: 10
  vtheta_samples: 20
  controller_frequency: 10.0

  # Trajectory Scoring Parameters
  path_distance_bias: 0.0  #32.0
  goal_distance_bias: 24.0 
  occdist_scale: 0.01 
  forward_point_distance: 0.0 # 2.0 # 0.325 
  stop_time_buffer: 0.2 
  scaling_speed: 0.25 
  max_scaling_factor: 0.2 

  #Oscillation Prevention Parameters
  oscillation_reset_dist: 0.05 
  oscillation_reset_angle: 0.2
  prune_plan: false

TrajectoryPlannerROS: # For RotateRecovery
  yaw_goal_tolerance: 0.03
  acc_lim_th: 10.0
  max_rotational_vel: 1.0
  min_in_place_rotational_vel: -1.0

EDIT3: Added video and updated some parameters.

Originally posted by Orhan on ROS Answers with karma: 856 on 2016-02-10

Post score: 1

Original comments

Comment by mgruhler on 2016-02-12:
What kind of kinematic do you have? AFAIK, DWA is only suitable for differential and omnidirectional robots. Thus, if you have an ackermann kinematic, e.g. (i.e. you cannot rotate on the spot), this planner is not suitable for you. It cannot produce plans as in 3.

Comment by Orhan on 2016-02-12:
I'm using diff_drive_controller and my robot's rotation center isn't in the center of robot. It's in the back. I'm adding video of my desktop, and other planners are worst in this operation too.

Comment by Orhan on 2016-02-12:
Before an update, dwa_local_planner was working well. And here is why I'm using dwa_local_planner.

Comment by murdock on 2016-04-24:
Is it possible if you could share your code @Orhangazi44 ?


2 Answers 2


Rosanswers logo

Short answer (if this is wrong, I'd be happy to get corrected ;-) ):

You cannot achieve a plan as shown in your 3rd picture using DWA.

DWA (at least not the ROS implementation) is just not set up for this. It works best for round or square robots with the center in the middle. With your robot, you would need something which is similar to a planner for a car-like robot.

Originally posted by mgruhler with karma: 12390 on 2016-02-12

This answer was NOT ACCEPTED on the original site

Post score: 1

Original comments

Comment by Orhan on 2016-02-12:
Is there a planners like this did you know? I updated Question, My problem isn't following path now. Now it is strugling (in video).

Comment by Orhan on 2016-02-12:
Thank you. I know this, but maybe local planner can follow a global plan like this, Are there any global planner for this operation?


Rosanswers logo

Ok, I found solution myself again, but I'm writing for comunity. teb_local_planner/TebLocalPlannerROS is drawing 3rd screenshot like plan. But my robot isn't car like, it is not compatible with this planner and it isn't reaching the goal. This Question is answered. But I'll ask new Question for my robot, for teb_local_planner like global planner. Here is its path(blue one) :

EDIT: tebl_local_planner is updated. Please look at comments of this answer.

image description

Originally posted by Orhan with karma: 856 on 2016-02-16

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by croesmann on 2016-04-20:
just for the record: teb_local_planner supports now improved global path following (recent version 0.4). A new tutorial has been added. Maybe this could be interesting for someone ;-)

Comment by Orhan on 2016-04-20:
Thanks for an update! I'm editing :)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.