navigation_layers icon indicating copy to clipboard operation
navigation_layers copied to clipboard

Range sensor layer not getting cleared in costmap after removal of obstacle

Open kamalnath26 opened this issue 2 years ago • 0 comments

I am using Range sensor for detection of glass in the same robot. I have added range sensor layer in costmap but after obstacle detection, layer formed in costmap but even after removal obstacle the layer is not getting cleared.

the problem i am facing is i have attached as a video. in simulation it clears the costmap in front side where lidar in located. but in real time it does not clears costamp in front also. in back side of robot the costmap is not getting cleared in both simulation and real time. i have attached my params file also for your reference. please help me solve this issue , i have also done rosservice call to clear costmap it is getting cleared in simulation. so now i have wrote a client file to call rosservice to clear costmap it is working good in simulation but i dont have hope it will work real time . i think it may hit obstacles in real time and i need to check that and i dont know is it the proper way to do it. if there any proper way to do it please let me know or if i have made any mistakes while adding plugin also please let me know.

https://user-images.githubusercontent.com/95014093/151414149-d33f906f-5f93-480c-85c4-b59cbcedf8d4.mp4

costmap common params:

footprint: [[-0.420, -0.28], [-0.420, 0.28], [0.420, 0.28], [0.420, -0.28]]

footprint_padding: 0.00 inflation_radius: 0.55 cost_scaling_factor: 5.0

transform_tolerance: 0.2 map_type: costmap

always_send_full_costmap: true

obstacle_layer: enabled: true obstacle_range: 3.0 raytrace_range: 4.0 inflation_radius: 0.2 track_unknown_space: true combination_method: 1

observation_sources: laser_scan_sensor laser_scan_sensor: {data_type: LaserScan, topic: scan, marking: true, clearing: true}

inflation_layer: enabled: true cost_scaling_factor: 5.0 # exponential rate at which the obstacle cost drops off (default: 10) inflation_radius: 0.5 # max. distance from an obstacle at which costs are incurred for planning paths.

static_layer: enabled: true map_topic: "/map"

range_sensor_layer: topics: ["/sensor/ur_back_left_1", "/sensor/ur_back_left_1", "/sensor/ur_front_left_1", "/sensor/ur_front_right_1"] no_readings_timeout: 0.0 clear_threshold: .8
mark_threshold: 1.5 clear_on_max_reading: true

local costmap params:

local_costmap: global_frame: map robot_base_frame: base_link update_frequency: 10.0 publish_frequency: 10.0 static_map: false rolling_window: true width: 3.0 height: 3.0 resolution: 0.1 transform_tolerance: 0.5

plugins:

  • {name: static_layer, type: "costmap_2d::StaticLayer"}
  • {name: obstacle_layer, type: "costmap_2d::ObstacleLayer"}
  • {name: inflation_layer, type: "costmap_2d::InflationLayer"}
  • {name: range_sensor_layer, type: "range_sensor_layer::RangeSensorLayer"}

global costamap params:

global_costmap: global_frame: map robot_base_frame: base_link update_frequency: 10.0 publish_frequency: 10.0 static_map: true

transform_tolerance: 0.5 plugins: - {name: static_layer, type: "costmap_2d::StaticLayer"} - {name: obstacle_layer, type: "costmap_2d::VoxelLayer"} - {name: inflation_layer, type: "costmap_2d::InflationLayer"} - {name: range_sensor_layer, type: "range_sensor_layer::RangeSensorLayer"}

move base params:

base_global_planner: navfn/NavfnROS base_local_planner: base_local_planner/TrajectoryPlannerROS shutdown_costmaps: false controller_frequency: 10.0 planner_patience: 5.0 controller_patience: 15.0 conservative_reset_dist: 3.0 planner_frequency: 5.0 oscillation_timeout: 20.0 ##10 oscillation_distance: 0.2 recovery_behavior_enabled: true clearing_rotation_allowed: false recovery_behaviors: [{name: conservative_reset, type: clear_costmap_recovery/ClearCostmapRecovery}, { name: aggressive_reset, type: clear_costmap_recovery/ClearCostmapRecovery}] # max_planning_retries: -1 reset_distance: 3.0

kamalnath26 avatar Jan 27 '22 17:01 kamalnath26