Skip to content

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

Open
@kamalnath26

Description

@kamalnath26

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.

range_sensor_check.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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions