ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
So, it seems I somehow fixed the problem (at least I wasn't able to observe the described behavior for a longer simulation run) with a combination of things.
At first I rewrote my global planner so that it remembers the current start and goal nodes and doesn't take the closest node to the robot as a starting point. This alone did not really fix my problem. The robot was still moving in circles sometimes.
Then I played around with the DWA local planner parameters and the below seems to work. Maybe setting "latch_xy_goal_tolerance" to true did the trick but I'm not quite sure. Also I adjusted the simulation parameters according to this guide. Now the robot doesn't stick as close to the path as I'd like it to but at least it reaches the goal.
controller_frequency: 5.0
recovery_behaviour_enabled: true
clearing_rotation_allowed: false
max_planning_retries: 1
planner_patience: 1.0
controller_patience: 5.0
planner_frequency: 0.0
base_global_planner: rrt_nbv_exploration::RneGlobalPlanner
base_local_planner: dwa_local_planner/DWAPlannerROS
DWAPlannerROS:
# Robot configuration parameters
acc_lim_x: 2.5
acc_lim_y: 0
acc_lim_th: 3.2
max_vel_x: 0.5
min_vel_x: 0.0
max_vel_y: 0
min_vel_y: 0
max_trans_vel: 0.5
min_trans_vel: 0.1
max_rot_vel: 1.0
min_rot_vel: 0.2
# Goal Tolerance Parameters
yaw_goal_tolerance: 0.2
xy_goal_tolerance: 0.2
latch_xy_goal_tolerance: true
prune_plan: true
# # Forward Simulation Parameters
sim_time: 4.0
# sim_granularity: 0.02
vx_samples: 20
# vy_samples: 0
vtheta_samples: 40
# penalize_negative_x: true
# # Trajectory scoring parameters
path_distance_bias: 20.0 # The weighting for how much the controller should stay close to the path it was given
goal_distance_bias: 1.0 # The weighting for how much the controller should attempt to reach its local goal, also controls speed
occdist_scale: 0.02 # The weighting for how much the controller should attempt to avoid obstacles
2 | No.2 Revision |
Edit: I recently stumbled upon this answer and tried it myself. Reducing the rolling window size to around twice the size of the robot footprint improved the robot movement massively. This was done in addition to the configuration shown below.
So, it seems I somehow fixed the problem (at least I wasn't able to observe the described behavior for a longer simulation run) with a combination of things.
At first I rewrote my global planner so that it remembers the current start and goal nodes and doesn't take the closest node to the robot as a starting point. This alone did not really fix my problem. The robot was still moving in circles sometimes.
Then I played around with the DWA local planner parameters and the below seems to work. Maybe setting "latch_xy_goal_tolerance" to true did the trick but I'm not quite sure. Also I adjusted the simulation parameters according to this guide. Now the robot doesn't stick as close to the path as I'd like it to but at least it reaches the goal.
controller_frequency: 5.0
recovery_behaviour_enabled: true
clearing_rotation_allowed: false
max_planning_retries: 1
planner_patience: 1.0
controller_patience: 5.0
planner_frequency: 0.0
base_global_planner: rrt_nbv_exploration::RneGlobalPlanner
base_local_planner: dwa_local_planner/DWAPlannerROS
DWAPlannerROS:
# Robot configuration parameters
acc_lim_x: 2.5
acc_lim_y: 0
acc_lim_th: 3.2
max_vel_x: 0.5
min_vel_x: 0.0
max_vel_y: 0
min_vel_y: 0
max_trans_vel: 0.5
min_trans_vel: 0.1
max_rot_vel: 1.0
min_rot_vel: 0.2
# Goal Tolerance Parameters
yaw_goal_tolerance: 0.2
xy_goal_tolerance: 0.2
latch_xy_goal_tolerance: true
prune_plan: true
# # Forward Simulation Parameters
sim_time: 4.0
# sim_granularity: 0.02
vx_samples: 20
# vy_samples: 0
vtheta_samples: 40
# penalize_negative_x: true
# # Trajectory scoring parameters
path_distance_bias: 20.0 # The weighting for how much the controller should stay close to the path it was given
goal_distance_bias: 1.0 # The weighting for how much the controller should attempt to reach its local goal, also controls speed
occdist_scale: 0.02 # The weighting for how much the controller should attempt to avoid obstacles
3 | No.3 Revision |
Edit: I recently stumbled upon this answer and tried it myself. Reducing the rolling window size to around twice twice/thrice the size of the robot footprint improved the robot movement massively. This was done in addition to the configuration shown below.
So, it seems I somehow fixed the problem (at least I wasn't able to observe the described behavior for a longer simulation run) with a combination of things.
At first I rewrote my global planner so that it remembers the current start and goal nodes and doesn't take the closest node to the robot as a starting point. This alone did not really fix my problem. The robot was still moving in circles sometimes.
Then I played around with the DWA local planner parameters and the below seems to work. Maybe setting "latch_xy_goal_tolerance" to true did the trick but I'm not quite sure. Also I adjusted the simulation parameters according to this guide. Now the robot doesn't stick as close to the path as I'd like it to but at least it reaches the goal.
controller_frequency: 5.0
recovery_behaviour_enabled: true
clearing_rotation_allowed: false
max_planning_retries: 1
planner_patience: 1.0
controller_patience: 5.0
planner_frequency: 0.0
base_global_planner: rrt_nbv_exploration::RneGlobalPlanner
base_local_planner: dwa_local_planner/DWAPlannerROS
DWAPlannerROS:
# Robot configuration parameters
acc_lim_x: 2.5
acc_lim_y: 0
acc_lim_th: 3.2
max_vel_x: 0.5
min_vel_x: 0.0
max_vel_y: 0
min_vel_y: 0
max_trans_vel: 0.5
min_trans_vel: 0.1
max_rot_vel: 1.0
min_rot_vel: 0.2
# Goal Tolerance Parameters
yaw_goal_tolerance: 0.2
xy_goal_tolerance: 0.2
latch_xy_goal_tolerance: true
prune_plan: true
# # Forward Simulation Parameters
sim_time: 4.0
# sim_granularity: 0.02
vx_samples: 20
# vy_samples: 0
vtheta_samples: 40
# penalize_negative_x: true
# # Trajectory scoring parameters
path_distance_bias: 20.0 # The weighting for how much the controller should stay close to the path it was given
goal_distance_bias: 1.0 # The weighting for how much the controller should attempt to reach its local goal, also controls speed
occdist_scale: 0.02 # The weighting for how much the controller should attempt to avoid obstacles