ros-navigation / navigation2

ROS 2 Navigation Framework and System
https://nav2.org/
Other
2.6k stars 1.3k forks source link

Dashing : No obstacle Avoidance => Only take inflation layer (obstacles from occupancy grid | map) #2105

Closed M4Z3dev closed 3 years ago

M4Z3dev commented 3 years ago

Bug report

Required Info:

amcl: ros__parameters: use_sim_time: False alpha1: 0.25 alpha2: 0.25 alpha3: 0.25 alpha4: 0.25 alpha5: 0.2 base_frame_id: "base_link" beam_skip_distance: 0.4 beam_skip_error_threshold: 0.9 beam_skip_threshold: 0.3 do_beamskip: False global_frame_id: "map" lambda_short: 0.1 laser_likelihood_max_dist: 4.0 laser_max_range: 15.0 laser_min_range: 0.3 laser_model_type: "likelihood_field" max_beams: 60 max_particles: 2500 min_particles: 1000 odom_frame_id: "odom" pf_err: 0.25 pf_z: 0.5 recovery_alpha_fast: 0.0 recovery_alpha_slow: 0.0 resample_interval: 1 robot_model_type: "differential" save_pose_rate: 2.0 sigma_hit: 0.05 tf_broadcast: True transform_tolerance: 1.5 update_min_a: 0.05 update_min_d: 0.05 z_hit: 0.9 z_max: 0.05 z_rand: 0.5 z_short: 0.05

amcl_map_client: ros__parameters: use_sim_time: False

amcl_rclcpp_node: ros__parameters: use_sim_time: False

bt_navigator: ros__parameters: use_sim_time: False bt_xml_filename: "navigate_w_replanning_and_recovery.xml"

dwb_controller: ros__parameters: controller_frequency: 12.0 use_sim_time: False debug_trajectory_details: True min_vel_x: 0.0 max_vel_x: 0.15 min_vel_y: 0.0 max_vel_y: 0.0 min_speed_xy: 0.0 max_speed_xy: 0.15 min_speed_theta: -0.15 max_vel_theta: 0.15 min_x_velocity_threshold: 0.001 min_y_velocity_threshold: 0.001 min_theta_velocity_threshold: 0.001 acc_lim_x: 0.5 acc_lim_y: 0.0 acc_lim_theta: 0.5 decel_lim_x: -0.5 decel_lim_y: 0.0 decel_lim_theta: -0.5 vx_samples: 25 vy_samples: 1 vtheta_samples: 40 sim_time: 2.5 discretize_by_time: False linear_granularity: 0.05 angular_granularity: 0.025 xy_goal_tolerance: 0.35 yaw_goal_tolerance: 0.5 latch_xy_goal_tolerance: False transform_tolerance: 1.5 critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist" ] # , "ObstacleFootprint"] BaseObstacle.scale: 0.02 BaseObstacle.sum_scores: False PathAlign.scale: 32.0 PathDist.scale: 24.0 PathAlign.forward_point_distance: 0.1 GoalAlign.scale: 24.0 GoalDist.scale: 32.0 GoalAlign.forward_point_distance: 0.1 RotateToGoal.scale: 35.0 RotateToGoal.slowing_factor: 5.0 RotateToGoal.lookahead_time: -1.0 trans_stopped_velocity: 0.00001 rot_stopped_velocity: 0.00001 required_movement_radius: 0.05 movement_time_allowance: 15.0 stateful: False sim_granularity: 0.05

local_costmap: local_costmap: ros__parameters: use_sim_time: False update_frequency: 15.0 publish_frequency: 15.0 global_frame: odom robot_base_frame: "base_link" rolling_window: True width: 6 height: 6 resolution: 0.025 robot_radius: 0.35 transform_tolerance: 1.5 obstacle_layer.plugin: "nav2_costmap_2d::ObstacleLayer"
obstacle_layer.enabled: True obstacle_layer.observation_sources: merge_scan safety_scan obstacle_layer.footprint_clearing_enabled: false inflation_layer.plugin: "nav2_costmap_2d::InflationLayer" inflation_layer.enabled: True inflation_layer.inflation_radius: 0.9 inflation_layer.cost_scaling_factor: 25.0 static_layer: map_subscribe_transient_local: True observation_sources: merge_scan safety_scan # scan_top scan_top: topic: /scan max_obstacle_height: 3.0 clearing: True marking: True data_type: "LaserScan" obstacle_range: 8.0 raytrace_range: 10.0 observation_persistence: 0.0 safety_scan: topic: /safety_laser_topic max_obstacle_height: 3.0 clearing: True marking: True data_type: "LaserScan" obstacle_range: 5.0 raytrace_range: 10.0 inf_is_valid: false observation_persistence: 0.0 merge_scan: topic: /NavigationMergeData max_obstacle_height: 3.0 clearing: True marking: False data_type: "LaserScan" obstacle_range: 1.8 raytrace_range: 2.5 inf_is_valid: False observation_persistence: 0.0 always_send_full_costmap: True

local_costmap_client: ros__parameters: use_sim_time: False

local_costmap_rclcpp_node: ros__parameters: use_sim_time: False

global_costmap: global_costmap: ros__parameters: use_sim_time: False update_frequency: 5.0 publish_frequency: 5.0
robot_radius: 0.35 obstacle_layer.enabled: True static_layer: map_subscribe_transient_local: True always_send_full_costmap: True observation_sources: safety_scan scan_top: topic: /scan max_obstacle_height: 3.0 clearing: True marking: True data_type: "LaserScan" obstacle_range: 8.0 raytrace_range: 8.0 safety_scan: topic: /safety_laser_topic max_obstacle_height: 3.0 clearing: True marking: True data_type: "LaserScan" obstacle_range: 20.0 raytrace_range: 25.0

global_costmap_client: ros__parameters: use_sim_time: False global_costmap_rclcpp_node: ros__parameters: use_sim_time: False

map_server: ros__parameters: use_sim_time: False yaml_filename: "map.yaml"

lifecycle_manager: ros__parameters: use_sim_time: False autostart: True node_names: ['map_server', 'amcl', 'world_model', 'dwb_controller', 'navfn_planner', 'bt_navigator']

lifecycle_manager_service_client: ros__parameters: use_sim_time: False

lifecycle_manager_client_service_client: ros__parameters: use_sim_time: False

navfn_planner: ros__parameters: use_sim_time: False tolerance: 1.0 use_astar: False allow_unknown: False

navfn_planner_GetCostmap_client: ros__parameters: use_sim_time: False

robot_state_publisher: ros__parameters: use_sim_time: False

world_model: ros__parameters: use_sim_time: False

Expected behavior

Avoid obstacle see by safety_scan and merge_scan

Actual behavior

The robot have nice motion and planning when there is only static obstacles likes walls but the planning don't consider obstacles from sensors .

The obstacles appear on the local map on rviz2.

I'm now implementing foxy distrib in parallele but I'have a lot of work to do before implemente all my personnal node architecture and for now , i would like to implement obstacle avoidance quickly .

I would like to use this issue to thank's all the community for the work they do ! Best regards

SteveMacenski commented 3 years ago

Please review navigation parameter info guide on navigation.ros.org and Search for/ask questions on ROS Answers.