robot unable to rotate in place for dwa_local_planner
Hi all,
*UPDATED*
I am using dwa_local_planner as a local planner and is having some issues while the robot is turning (that is, rotating in place). The robot is able to go forward without any issues and is able to reach the goal within xy_tolerance
and is able to rotate in place to correct its orientation so that it is within yaw_goal_tolerance
. I have specified following parameters:
max_rot_vel: 1.0
min_rot_vel: 0.8
But I am having a problem when the robot has to go to the second goal once robot reaches the first goal and has to turn in place to move towards the second goal. The dwa_local_planner sends linear.x = 0.0
and angular.z = 0.31
in this case and hence the robot is unable to turn in place. This happens when min_trans_vel = 0.0
. If I specify min_trans_vel
as 0.1 or 0.2, then the robot is able to turn but in some cases, when the robot has to turn to go to the second goal, it is not able to turn and keeps on going straight at min_trans_vel
till it reaches the wall and stops. It does not seem to have enough rotational velocity component.
I have specified min_rot_vel: 0.8
but it looks like the dwa_local_planner is not considering that. Is there any parameter similar to min_in_place_rotational_vel
(which is there for TrajectoryPlannerROS
) in case of dwa_local_planner which can be modified for in place rotation in case of dwa_local_planner
? Or, does anyone have any idea why is this happening and how can it be solved?
dwa_local_planner_params.yaml
DWAPlannerROS:
acc_lim_x: 2.0
acc_lim_y: 0
acc_lim_th: 3.0
max_trans_vel: 0.5
min_trans_vel: 0.0
max_vel_x: 0.5
min_vel_x: 0.0
max_vel_y: 0
min_vel_y: 0
max_rot_vel: 1.0
min_rot_vel: 0.8
yaw_goal_tolerance: 0.17
xy_goal_tolerance: 0.15
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.01
forward_point_distance: 0.325
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
Please let me know if you need more information from me. Any help will be appreciated.
Thanks in advance.
Naman Kumar
So the robot always has to be rotating? What kind of physical setup is that?
Sorry if the question is not clear. I meant that robot is able to go straight without any issues but when it reaches the goal and has to correct its orientation, dwa_local_planner does not send enough angular velocity and the robot does not turn, I have improved/updated the original question. TIA
So your driver won't rotate if you send a velocity less than 0.8?
@David Lu yeah..if the velocity (angular.z) is less than 0.8 or 0.7, the robot does not rotate. So therefore I set minimum velocity as 0.8.
I also have the same problem,my robot does not like slow velocities,isnt it just a problem with the controller ?