Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

min_obstacle_height for obstacle costmap

My robot has a vertical lidar mounted as shown below.

image description

This is my urdf xacrp for mounting and rotating the lidar

<!-- Vertical Lidar Left-->
<xacro:hokuyo_utm30lx name="vert_left_laser" parent="lidar_block1" ros_topic="left_scan"
                      update_rate="5" ray_count="100" min_angle="-90" max_angle="90" >
   <origin xyz="${0} ${0.090/2} ${lblength}" rpy="-1.5708 0 0" />
</xacro:hokuyo_utm30lx>

My common costmap params for the vertical layer.

vertical_obstacle_layer:
  enabled: true
  obstacle_range: 5.0
  raytrace_range: 30.0
  max_obstacle_height: 1.0
  min_obstacle_height: 0.1
  inflation_radius: 0.5
  observation_sources: laser_scan_sensor
  laser_scan_sensor: {sensor_frame: vert_right_laser_frame, data_type: LaserScan, topic: right_scan, marking: true, clearing: true, inf_is_valid: true}

My local costmap params.

local_costmap:
  global_frame: /odom
  robot_base_frame: base_footprint
  update_frequency: 3.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.05
  transform_tolerance: 5.0
  plugins:
    - {name: vertical_obstacle_layer,      type: "costmap_2d::VoxelLayer"}
    - {name: inflation_layer,     type: "costmap_2d::InflationLayer"}

As you can see in the picture, the floor that being scanned by the laser get inserted as obstacle to the costmap. I have already set the parameters of max_obstacle_height to 1.0 and min_obstacle_height to 0.1. I wanted to add the obstacle only when it is above ground level and is within 5m range. What could possibly goes wrong here?

min_obstacle_height for obstacle costmap

My robot has a vertical lidar mounted as shown below.

image descriptionimage description

This is my urdf xacrp for mounting and rotating the lidar

<!-- Vertical Lidar Left-->
<xacro:hokuyo_utm30lx name="vert_left_laser" parent="lidar_block1" ros_topic="left_scan"
                      update_rate="5" ray_count="100" min_angle="-90" max_angle="90" >
   <origin xyz="${0} ${0.090/2} ${lblength}" rpy="-1.5708 0 0" />
</xacro:hokuyo_utm30lx>

My common costmap params for the vertical layer.

vertical_obstacle_layer:
  enabled: true
  obstacle_range: 5.0
  raytrace_range: 30.0
  max_obstacle_height: 1.0
  min_obstacle_height: 0.1
  inflation_radius: 0.5
  observation_sources: laser_scan_sensor
  laser_scan_sensor: {sensor_frame: vert_right_laser_frame, data_type: LaserScan, topic: right_scan, marking: true, clearing: true, inf_is_valid: true}

My local costmap params.

local_costmap:
  global_frame: /odom
  robot_base_frame: base_footprint
  update_frequency: 3.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.05
  transform_tolerance: 5.0
  plugins:
    - {name: vertical_obstacle_layer,      type: "costmap_2d::VoxelLayer"}
    - {name: inflation_layer,     type: "costmap_2d::InflationLayer"}

As you can see in the picture, the floor that being scanned by the laser get inserted as obstacle to the costmap. I have already set the parameters of max_obstacle_height to 1.0 and min_obstacle_height to 0.1. I wanted to add the obstacle only when it is above ground level and is within 5m range. What could possibly goes wrong here?

min_obstacle_height for obstacle costmap

image description

This is my urdf xacrp for mounting and rotating the lidar

<!-- Vertical Lidar Left-->
<xacro:hokuyo_utm30lx name="vert_left_laser" parent="lidar_block1" ros_topic="left_scan"
                      update_rate="5" ray_count="100" min_angle="-90" max_angle="90" >
   <origin xyz="${0} ${0.090/2} ${lblength}" rpy="-1.5708 0 0" />
</xacro:hokuyo_utm30lx>

My common costmap params for the vertical layer.

vertical_obstacle_layer:
  enabled: true
  obstacle_range: 5.0
  raytrace_range: 30.0
  max_obstacle_height: 1.0
  min_obstacle_height: 0.1
  inflation_radius: 0.5
  observation_sources: laser_scan_sensor
  laser_scan_sensor: {sensor_frame: vert_right_laser_frame, vert_left_laser_frame, data_type: LaserScan, topic: right_scan, left_scan, marking: true, clearing: true, inf_is_valid: true}

My local costmap params.

local_costmap:
  global_frame: /odom
  robot_base_frame: base_footprint
  update_frequency: 3.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.05
  transform_tolerance: 5.0
  plugins:
    - {name: vertical_obstacle_layer,      type: "costmap_2d::VoxelLayer"}
    - {name: inflation_layer,     type: "costmap_2d::InflationLayer"}

As you can see in the picture, the floor that being scanned by the laser get inserted as obstacle to the costmap. I have already set the parameters of max_obstacle_height to 1.0 and min_obstacle_height to 0.1. I wanted to add the obstacle only when it is above ground level and is within 5m range. What could possibly goes wrong here?