move_base obstacle clearing in open field problem
Hi,
A project I am working on involves the use of a mobile robot in an open field using move_base to navigate autonomously and avoiding obstacles.
The obstacles in the costmaps only get cleared with raytracing when an obstacle further away is detected. This is a problem for me since most of the time there is no other obstacle that the sensor can see. For example, if someone were to walk in front of the robot, he would leave a trail in the costmap that never gets cleared because there is nothing behind it.
Does anyone know of a solution to this problem?
Thanks
Update
Here are my configuration files for the costmaps
Common parameters: obstacle_range: 3.0 raytrace_range: 3.5
robot_base_frame: base_footprint
update_frequency: 4.0
publish_frequency: 4.0
transform_tolerance: 0.5
footprint: [[-0.17, -0.18], [-0.17, 0.22], [0.17, 0.22], [0.17, -0.18]]
footprint_padding: 0.0
resolution: 0.05
static_layer:
map_topic: /map
obstacle_layer:
observation_sources: laser
laser: {data_type: LaserScan, topic: /scan, clearing: true, marking: true, inf_is_valid: false, track_unknown_space: true}
inflation_layer:
cost_scaling_factor: 2
inflation_radius: 1
Global parameters:
global_frame: map
rolling_window: true
plugins:
- {name: static_layer, type: "costmap_2d::StaticLayer"}
- {name: inflation_layer, type: "costmap_2d::InflationLayer"}
Local parameters:
global_frame: odom
rolling_window: true
width: 3
height: 3
plugins:
- {name: obstacle_layer, type: "costmap_2d::ObstacleLayer"}
- {name: inflation_layer, type: "costmap_2d::InflationLayer"}
Could you please post the config .yaml files. Is clearing even activated (In obstacle layer marking: true, clearing: true)? Otherwise maybe this
Hi, I have updated my question with my parameters. I will also check the link in your comment, thank you.
In your obstacle_layer "inf_is_valid: false" The docs say "Are infinite returns from laser scanners valid measurements to raycast." Would be worth a try to set it to true.
Yes that worked for me, thank you! Would you post it as an answer so I can mark it as the solution?