-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Required Info:
Operating System: Ubuntu22.04
Computer: X86_64
ROS2 Version:ros-humble(**humble_main branch**)
Version or commit hash: humble_main:latest
Steps to reproduce issue
Simulation Environment: Turtlebot3 + gazebo + nav2_smac_planner (Hybrid a star)
Question
I am using humble_main branch, nav2_smac_planner, I believe this route is divided into two segments: one segment is the forward extension, and the second segment is generated by the analytic_expansion. My questions are:
1) The endpoint of the forward extension and the starting point of the analytic_expansion should be coincide, rather than overlap?
2) If question1) is right, I want to avoid any backward motion caused by 1). Can this be achieved through a smoothing plugin?
#### Tuning / Configuration Goal
<!-- Description in a few sentences what the aim is that you're trying to tune / configure -->
local_costmap:
local_costmap:
ros__parameters:
update_frequency: 4.0
publish_frequency: 2.0
global_frame: odom
robot_base_frame: base_link
rolling_window: true
width: 3
height: 3
resolution: 0.05
# footprint: "[[-0.27, -0.32], [-0.27, 0.32], [0.27, 0.32], [0.27, -0.32]]"
footprint: "[[-0.125, -0.125], [-0.125, 0.125], [0.125, 0.125], [0.125, -0.125]]"
#robot_radius: 0.22
plugins: ["voxel_layer", "inflation_layer"]
# filters: ["keepout_filter"]
# keepout_filter:
# plugin: "nav2_costmap_2d::KeepoutFilter"
# enabled: True
# filter_info_topic: "costmap_filter_info"
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 3.0
inflation_radius: 0.40
voxel_layer:
plugin: "nav2_costmap_2d::VoxelLayer"
enabled: True
publish_voxel_map: True
origin_z: 0.0
z_resolution: 0.05
z_voxels: 16
max_obstacle_height: 2.0
mark_threshold: 0
observation_sources: scan
scan:
# A relative topic will be appended to the parent of the local_costmap namespace.
# For example:
# * User chosen namespace is `tb4`.
# * User chosen topic is `scan`.
# * Topic will be remapped to `/tb4/scan` without `local_costmap`.
# * Use global topic `/scan` if you do not wish the node namespace to apply
topic: scan
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 3.0
raytrace_min_range: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
always_send_full_costmap: True
service_introspection_mode: "disabled"
global_costmap:
global_costmap:
ros__parameters:
update_frequency: 1.0
publish_frequency: 1.0
global_frame: map
robot_base_frame: base_link
#robot_radius: 0.22
# footprint: "[[-0.27, -0.32], [-0.27, 0.32], [0.27, 0.32], [0.27, -0.32]]"
footprint: "[[-0.125, -0.125], [-0.125, 0.125], [0.125, 0.125], [0.125, -0.125]]"
resolution: 0.05
track_unknown_space: true
plugins: ["static_layer", "obstacle_layer", "inflation_layer"]
# filters: ["keepout_filter"]
# keepout_filter:
# plugin: "nav2_costmap_2d::KeepoutFilter"
# enabled: True
# filter_info_topic: "costmap_filter_info"
obstacle_layer:
plugin: "nav2_costmap_2d::ObstacleLayer"
enabled: True
observation_sources: scan
scan:
# A relative topic will be appended to the parent of the global_costmap namespace.
# For example:
# * User chosen namespace is `tb4`.
# * User chosen topic is `scan`.
# * Topic will be remapped to `/tb4/scan` without `global_costmap`.
# * Use global topic `/scan` if you do not wish the node namespace to apply
topic: scan
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 3.0
raytrace_min_range: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 3.0
inflation_radius: 0.40
always_send_full_costmap: True
service_introspection_mode: "disabled"
map_server:
ros__parameters:
# yaml_filename: "map.yaml"
service_introspection_mode: "disabled"
map_saver:
ros__parameters:
save_map_timeout: 5.0
free_thresh_default: 0.25
occupied_thresh_default: 0.65
map_subscribe_transient_local: True
service_introspection_mode: "disabled"
planner_server:
ros__parameters:
expected_planner_frequency: 20.0
planner_plugins: ["GridBased"]
costmap_update_timeout: 1.0
service_introspection_mode: "disabled"
GridBased:
plugin: "nav2_smac_planner::SmacPlannerHybrid" # In Iron and older versions, "/" was used instead of "::"
downsample_costmap: False # whether or not to downsample the map
downsampling_factor: 2
tolerance: 0.10
allow_unknown: true # allow traveling in unknown space
max_iterations: 1000000
max_on_approach_iterations: 1000 # Maximum number of iterations after within tolerances to continue to try to find exact solution
max_planning_time: 5.0 # max time in s for planner to plan, smooth
motion_model_for_search: "REEDS_SHEPP" # Hybrid-A* Dubin, Redds-Shepp
angle_quantization_bins: 72 # Number of angle bins for search
analytic_expansion_ratio: 1.0 # The ratio to attempt analytic expansions during search for final approach.
analytic_expansion_max_length: 1.5
analytic_expansion_max_cost: 200.0 # The maximum single cost for any part of an analytic expansion to contain and be valid, except when necessary on approach to goal
analytic_expansion_max_cost_override: False # Whether or not to override the maximum cost setting if within critical distance to goal (ie probably required)
minimum_turning_radius: 0.40 # minimum turning radius in m of path / vehicle
reverse_penalty: 100.0 # Penalty to apply if motion is reversing, must be => 1
change_penalty: 0.3 # Penalty to apply if motion is changing directions (L to R), must be >= 0
non_straight_penalty: 1.5 # Penalty to apply if motion is non-straight, must be => 1
cost_penalty: 5.0
retrospective_penalty: 0.015
lookup_table_size: 5.0 # Size of the dubin/reeds-sheep distance window to cache, in meters.
cache_obstacle_heuristic: False
debug_visualizations: True
use_quadratic_cost_penalty: False
downsample_obstacle_heuristic: False
allow_primitive_interpolation: True
coarse_search_resolution: 2 # Number of bins to skip when doing a coarse search for the path. Only used for all_direction goal heading mode.
goal_heading_mode: "DEFAULT"
smooth_path: False
smoother:
max_iterations: 1000
w_smooth: 0.3
w_data: 0.2
tolerance: 1.0e-10
do_refinement: true
refinement_num: 2
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working

