Small obstacles and holes detection
Hi I'm creating a map in Gazebo (turtlebot) and navigating through it, now I added some small obstacles (height < 0.3 m) and a hole but they didn't figure out in the new map. I think I have to change the costmap params but I have no idea how to do.
Asked by fturki on 2018-11-27 08:55:28 UTC
Answers
I'm beginner, I'm using the default navigation params of Turtlebot and wondering what parameters should be changed to obtain the desired map. the common costmap
max_obstacle_height: 0.60 # assume something like an arm is mounted on top of the robot
# Obstacle Cost Shaping (http://wiki.ros.org/costmap_2d/hydro/inflation)
robot_radius: 0.20 # distance a circular robot should be clear of the obstacle (kobuki: 0.18)
# footprint: [[x0, y0], [x1, y1], ... [xn, yn]] # if the robot is not circular
map_type: voxel
obstacle_layer:
enabled: true
max_obstacle_height: 0.6
origin_z: 0.0
z_resolution: 0.2
z_voxels: 2C
unknown_threshold: 15
mark_threshold: 0
combination_method: 1
track_unknown_space: false #true needed for disabling global path planning through unknown space
obstacle_range: 2.5
raytrace_range: 3.0
origin_z: 0.0
z_resolution: 0.2
z_voxels: 2
publish_voxel_map: false
#BEGIN VOXEL STUFF
observation_sources: scan bump
#observation_sources: base_scan_marking base_scan tilt_scan #ground_object_cloud
scan:
data_type: LaserScan
topic: scan
marking: true
clearing: true
min_obstacle_height: 0.0
max_obstacle_height: 3
bump:
data_type: PointCloud2
topic: mobile_base/sensors/bumper_pointcloud
marking: true
clearing: false
min_obstacle_height: 0.0
max_obstacle_height: 3
#base_scan_marking: {sensor_frame: base_laser_link, topic: /#base_scan_marking, data_type: PointCloud2, #expected_update_rate: 0.2,
#observation_persistence: 0.0, marking: true, clearing: false, #min_obstacle_height: 0.08, max_obstacle_height: 2.0}
#base_scan: {sensor_frame: base_laser_link, topic: /base_scan, #data_type: LaserScan, expected_update_rate: 0.2,
#observation_persistence: 0.0, marking: false, #clearing: true, min_obstacle_height: -0.10, #max_obstacle_height: 2.0}
#tilt_scan: {sensor_frame: laser_tilt_link, topic: /#tilt_scan_interpolated, data_type: LaserScan, #expected_update_rate: 0.2,
#observation_persistence: 0.2, marking: false, #clearing: true, min_obstacle_height: -20.00, #max_obstacle_height: 40.0}
#cost_scaling_factor and inflation_radius were now moved to the inflation_layer ns
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
here is the r200 costmap param yaml file
global_costmap:
robot_radius: 0.20 # distance a circular robot should be clear of the obstacle (kobuki: 0.18)
obstacle_layer:
scan:
data_type: LaserScan
topic: scan
marking: true
clearing: true
min_obstacle_height: 0.05 # previous: 0.25, too high for the R200 configuration!
max_obstacle_height: 0.35
local_costmap:
robot_radius: 0.18 # distance a circular robot should be clear of the obstacle (kobuki: 0.18)
obstacle_layer:
scan:
data_type: LaserScan
topic: scan
marking: true
clearing: true
min_obstacle_height: 0.05 # previous: 0.25, too high for the R200 configuration!
max_obstacle_height: 0.35
Asked by fturki on 2018-11-29 05:38:15 UTC
Comments
If you're using the r200, the data_type shouldn't be PointCloud2 instead of LaserScan ? May be one of the reason why it doesn't detect the obstacle. Concerning the holes the costmap layer must have a way to identify and mark point that have a negative z.
Asked by Kapcirt on 2018-11-29 08:48:47 UTC
Comments
You're going to have to tell us a lot more about how you're sensing and creating this map for us to give you any help. What type of sensor are you using? Can you show us the configuration in your yaml file.
Asked by PeteBlackerThe3rd on 2018-11-27 09:25:26 UTC