Hi,
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:
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:
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:
DWAPlannerROS:
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 ?