robot unable to rotate in place for dwa_local_planner especially for slow rotational velocities

asked 2016-07-28 11:00:18 -0500

Mr.N0body gravatar image

Hi all,

I am using the dwa_planner as local planner with very low velocities. The navigation is basically working very good. There is only one problem. In-place-rotations of the robot, most commonly at the beginning of navigation, are resulting in an oscillating behaviour. This leads to an endless loop of recovery behavior or, in case one disabled the recovery, it leads to the abortion of navigation. For example if one set the goal in the opposite direction of the roboters pose, the robot will instantly start to oscillate. If one sets the goal in 90 degrees or even a little bit less the robot will start rotating in goal direction but will abort before it could start to drive forward.

I could reconstruct this behaviour with the turtlebot_stage simulation when adjusting min_rot_vel to 0.05 and max_rot_vel to 0.1.

I am using ros indigo. These are my current parameters:

DWAPlannerROS: {
   acc_lim_theta: 2.0, acc_lim_x: 0.5, acc_lim_y: 0.0, acc_limit_trans: 0.1,
   angular_sim_granularity: 0.1, forward_point_distance: 0.325, global_frame_id: odom,
   goal_distance_bias: 24.0, holonomic_robot: false, max_rot_vel: 0.1, max_scaling_factor: 0.2,
   max_trans_vel: 0.5, max_vel_x: 0.1, max_vel_y: 0.0, min_rot_vel: 0.05, min_trans_vel: 0.1,
   min_vel_x: 0.0, min_vel_y: 0.0, occdist_scale: 0.5, oscillation_reset_angle: 0.2,
   oscillation_reset_dist: 0.05, path_distance_bias: 64.0, prune_plan: false,
   publish_cost_grid_pc: true, publish_traj_pc: true, restore_defaults: false, rot_stopped_vel: 0.4,
   scaling_speed: 0.25, sim_granularity: 0.1, sim_time: 2.0, stop_time_buffer: 0.2,
   trans_stopped_vel: 0.1, use_dwa: true, vth_samples: 20, vtheta_samples: 20, vx_samples: 6,
   vy_samples: 1, xy_goal_tolerance: 0.15, yaw_goal_tolerance: 0.1

I know there is a similar question: robot unable to rotate in place for dwa_local_planner There it is mentioned that dwa_planner cannot perform a rotate in spot motion. It will always trying to perform an arc motion. One just need to tune

path_distance_bias: 1.0
goal_distance_bias: 0.8
occdist_scale: 0.01

This won't stop the oscillation and the abortion of navigation. Still it helps to shorten time the robot needs to rotate before driving forward, but comes with the disadvantage of driving detours.

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

Thanks in advance.

Clemens Wei├čenberg

edit retag flag offensive close merge delete


H Clemens, did you find any solution for this issue ?

AmirSaman gravatar image AmirSaman  ( 2021-05-17 02:27:39 -0500 )edit