Smac Planner - Random Loops are getting generated during turns.
I am using Smac planner as Global planner and RPP as local planner. While trying to navigate my robot, it generate loops randomly. Its a non- holonomic robot with a radius 0.5 m. Can you please direct me to the correct parameter that can help remove these random loops.
controller_server:
ros__parameters:
use_sim_time: True
controller_frequency: 10.0
min_x_velocity_threshold: 0.001
min_y_velocity_threshold: 0.5
min_theta_velocity_threshold: 0.001
progress_checker_plugin: "progress_checker"
goal_checker_plugin: "goal_checker"
controller_plugins: ["FollowPath"]
progress_checker:
plugin: "nav2_controller::SimpleProgressChecker"
required_movement_radius: 0.5
movement_time_allowance: 10.0
goal_checker:
plugin: "nav2_controller::SimpleGoalChecker"
xy_goal_tolerance: 0.5 #0.25
yaw_goal_tolerance: 1.0 #0.25
stateful: True
FollowPath:
plugin: "nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController"
desired_linear_vel: 0.5
max_linear_accel: 1.0 #2.5
max_linear_decel: 1.0 #2.5
lookahead_dist: 0.6
min_lookahead_dist: 0.3
max_lookahead_dist: 0.9
lookahead_time: 1.5
rotate_to_heading_angular_vel: 1.0 #1.8
transform_tolerance: 0.1
use_velocity_scaled_lookahead_dist: false
min_approach_linear_velocity: 0.05
use_approach_linear_velocity_scaling: true
max_allowed_time_to_collision: 1.0
use_regulated_linear_velocity_scaling: true
use_cost_regulated_linear_velocity_scaling: false
regulated_linear_scaling_min_radius: 0.9
regulated_linear_scaling_min_speed: 0.25
use_rotate_to_heading: false
rotate_to_heading_min_angle: 0.785
max_angular_accel: 3.2
planner_server:
ros__parameters:
planner_plugins: ["GridBased"]
use_sim_time: True
GridBased:
plugin: "nav2_smac_planner/SmacPlanner"
tolerance: 1.0
downsample_costmap: false
downsampling_factor: 1
allow_unknown: false
max_iterations: -1
max_on_approach_iterations: 1000
max_planning_time: 2.0
smooth_path: true
motion_model_for_search: "DUBIN"
angle_quantization_bins: 72
minimum_turning_radius: 0.5
reverse_penalty: 2.1
change_penalty: 1.0
non_straight_penalty: 2.4
cost_penalty: 1.3
smoother:
smoother:
w_curve: 50.0
w_dist: 0.5
w_smooth: 30000.0
w_cost: 0.5 #0.025
cost_scaling_factor: 10.0
# I do not recommend users mess with this unless they're doing production tuning
optimizer:
max_time: 0.10 # maximum compute time for smoother
max_iterations: 500 # max iterations of smoother
debug_optimizer: false # print debug info
gradient_tol: 1.0e-10
fn_tol: 1.0e-20
param_tol: 1.0e-15
advanced:
min_line_search_step_size: 1.0e-20
max_num_line_search_step_size_iterations: 50
line_search_sufficient_function_decrease: 1.0e-20
max_num_line_search_direction_restarts: 10
max_line_search_step_expansion: 50
A couple of pictures here would be helpful