Bird
Raised Fist0
ROSframework~5 mins

Costmap configuration (static, obstacle, inflation) in ROS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the static layer in a ROS costmap?
The static layer represents the fixed environment map, usually loaded from a map server. It shows known obstacles that do not change, like walls or furniture.
Click to reveal answer
beginner
How does the obstacle layer in a ROS costmap work?
The obstacle layer detects and updates obstacles dynamically using sensor data like laser scans or depth cameras. It helps the robot avoid moving or new obstacles.
Click to reveal answer
beginner
What is the inflation layer in a ROS costmap and why is it important?
The inflation layer adds a safety buffer around obstacles by increasing their size in the costmap. This helps the robot keep a safe distance and avoid collisions.
Click to reveal answer
intermediate
Which parameter controls how far the inflation layer extends around obstacles?
The 'inflation_radius' parameter sets the distance around obstacles where the cost is increased to create a safety buffer.
Click to reveal answer
intermediate
Why is it important to configure the obstacle layer's sensor sources correctly?
Correct sensor configuration ensures the obstacle layer accurately detects obstacles in real time, preventing collisions and enabling safe navigation.
Click to reveal answer
What does the static layer in a ROS costmap represent?
AFixed obstacles from a map
BDynamic obstacles detected by sensors
CSafety buffer around obstacles
DRobot's current position
Which layer updates in real-time using sensor data?
AStatic layer
BGlobal planner
CInflation layer
DObstacle layer
What is the main role of the inflation layer?
ALoad static maps
BAdd safety distance around obstacles
CDetect obstacles
DPlan robot path
Which parameter sets how far the inflation extends?
Ainflation_radius
Bobstacle_range
Cmap_resolution
Drobot_radius
Why must sensor sources be configured correctly for the obstacle layer?
ATo load static maps
BTo increase inflation radius
CTo detect obstacles accurately
DTo control robot speed
Explain the roles of the static, obstacle, and inflation layers in a ROS costmap.
Think about how each layer helps the robot understand and avoid obstacles.
You got /3 concepts.
    Describe how you would configure the inflation layer to keep the robot safe.
    Focus on parameters that control the size and effect of the inflation.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which costmap layer in ROS is responsible for marking fixed obstacles from a pre-existing map?
      easy
      A. Obstacle layer
      B. Inflation layer
      C. Static layer
      D. Sensor layer

      Solution

      1. Step 1: Understand the role of the static layer

        The static layer uses a pre-built map to mark fixed obstacles that do not change over time.
      2. Step 2: Compare with other layers

        The obstacle layer updates obstacles dynamically from sensors, and the inflation layer adds safety buffers, so they do not mark fixed obstacles directly.
      3. Final Answer:

        Static layer -> Option C
      4. Quick Check:

        Fixed obstacles = Static layer [OK]
      Hint: Static layer = fixed map obstacles [OK]
      Common Mistakes:
      • Confusing obstacle layer with static layer
      • Thinking inflation layer marks obstacles
      • Assuming sensor data is static
      2. Which of the following YAML snippets correctly enables the inflation layer in a ROS costmap configuration?
      easy
      A. inflation: enable: true radius: 0.5
      B. inflation_layer: active: yes radius: 1.0
      C. inflation_layer: enabled: false inflation_radius: 0.5
      D. inflation_layer: enabled: true inflation_radius: 0.5

      Solution

      1. Step 1: Check correct keys for inflation layer

        The correct keys are 'inflation_layer' with 'enabled' and 'inflation_radius' as parameters.
      2. Step 2: Validate values and syntax

        inflation_layer: enabled: true inflation_radius: 0.5 uses 'enabled: true' and 'inflation_radius: 0.5', which is correct YAML syntax and valid keys.
      3. Final Answer:

        inflation_layer: enabled: true inflation_radius: 0.5 -> Option D
      4. Quick Check:

        Correct keys and true enabled = inflation_layer: enabled: true inflation_radius: 0.5 [OK]
      Hint: Look for 'enabled: true' and 'inflation_radius' keys [OK]
      Common Mistakes:
      • Using wrong key names like 'enable' or 'active'
      • Setting enabled to false when enabling
      • Incorrect indentation or YAML syntax
      3. Given this costmap configuration snippet:
      obstacle_layer:
        observation_sources: laser_scan_sensor
        laser_scan_sensor:
          data_type: LaserScan
          topic: /scan
          marking: true
          clearing: true
      inflation_layer:
        inflation_radius: 0.7
        cost_scaling_factor: 10.0

      What effect does setting marking: true and clearing: true have on the obstacle layer?
      medium
      A. It marks obstacles detected by the laser and clears free space around them
      B. It disables obstacle detection and only inflates existing obstacles
      C. It marks obstacles but does not clear any free space
      D. It clears obstacles but does not mark new ones

      Solution

      1. Step 1: Understand marking and clearing flags

        Setting 'marking: true' means detected obstacles are added to the costmap. 'clearing: true' means free space detected is cleared from the costmap.
      2. Step 2: Apply to laser_scan_sensor

        The laser scan sensor will mark obstacles and clear free space dynamically based on sensor data.
      3. Final Answer:

        It marks obstacles detected by the laser and clears free space around them -> Option A
      4. Quick Check:

        marking + clearing true = mark and clear obstacles [OK]
      Hint: marking=true adds obstacles, clearing=true removes free space [OK]
      Common Mistakes:
      • Assuming clearing disables marking
      • Thinking marking disables clearing
      • Confusing cost_scaling_factor with marking
      4. You have this partial costmap config:
      inflation_layer:
        inflation_radius: 0.6
        cost_scaling_factor: -5.0

      What is the problem with this configuration?
      medium
      A. inflation_radius must be an integer, not a float
      B. Negative cost_scaling_factor is invalid and causes inflation errors
      C. Missing 'enabled: true' disables inflation layer
      D. cost_scaling_factor should be zero to disable inflation

      Solution

      1. Step 1: Check cost_scaling_factor value

        The cost_scaling_factor controls how quickly costs drop off from obstacles. It must be positive; negative values are invalid.
      2. Step 2: Understand impact of negative value

        A negative cost_scaling_factor causes errors or unexpected inflation behavior in the costmap.
      3. Final Answer:

        Negative cost_scaling_factor is invalid and causes inflation errors -> Option B
      4. Quick Check:

        cost_scaling_factor < 0 = error [OK]
      Hint: cost_scaling_factor must be positive [OK]
      Common Mistakes:
      • Thinking inflation_radius must be integer
      • Assuming missing enabled disables inflation
      • Believing zero cost_scaling_factor disables inflation
      5. You want to configure a ROS costmap that uses a static map, detects obstacles with a laser scanner, and inflates obstacles with a radius of 0.8 meters. Which of the following combined configurations is correct?
      hard
      A. static_layer: map_topic: /map obstacle_layer: observation_sources: laser_scan laser_scan: data_type: LaserScan topic: /scan marking: true clearing: true inflation_layer: enabled: true inflation_radius: 0.8 cost_scaling_factor: 5.0
      B. static_layer: enabled: false obstacle_layer: observation_sources: laser laser: data_type: PointCloud topic: /scan marking: false clearing: true inflation_layer: inflation_radius: 0.8 cost_scaling_factor: -1.0
      C. static_layer: map_topic: /map obstacle_layer: observation_sources: laser_scan laser_scan: data_type: LaserScan topic: /scan marking: false clearing: false inflation_layer: enabled: true inflation_radius: 1.0 cost_scaling_factor: 10.0
      D. static_layer: map_topic: /map obstacle_layer: observation_sources: laser_scan laser_scan: data_type: LaserScan topic: /scan marking: true clearing: false inflation_layer: enabled: true inflation_radius: 0.5 cost_scaling_factor: 5.0

      Solution

      1. Step 1: Verify static layer configuration

        static_layer: map_topic: /map obstacle_layer: observation_sources: laser_scan laser_scan: data_type: LaserScan topic: /scan marking: true clearing: true inflation_layer: enabled: true inflation_radius: 0.8 cost_scaling_factor: 5.0 correctly sets 'static_layer' with 'map_topic: /map' to use the static map.
      2. Step 2: Check obstacle layer settings

        static_layer: map_topic: /map obstacle_layer: observation_sources: laser_scan laser_scan: data_type: LaserScan topic: /scan marking: true clearing: true inflation_layer: enabled: true inflation_radius: 0.8 cost_scaling_factor: 5.0 uses 'laser_scan' with correct data_type, topic, and both marking and clearing enabled for proper obstacle detection.
      3. Step 3: Confirm inflation layer parameters

        static_layer: map_topic: /map obstacle_layer: observation_sources: laser_scan laser_scan: data_type: LaserScan topic: /scan marking: true clearing: true inflation_layer: enabled: true inflation_radius: 0.8 cost_scaling_factor: 5.0 enables inflation with radius 0.8 and a positive cost_scaling_factor, matching requirements.
      4. Final Answer:

        static_layer: map_topic: /map obstacle_layer: observation_sources: laser_scan laser_scan: data_type: LaserScan topic: /scan marking: true clearing: true inflation_layer: enabled: true inflation_radius: 0.8 cost_scaling_factor: 5.0 -> Option A
      5. Quick Check:

        All layers correct and enabled = static_layer: map_topic: /map obstacle_layer: observation_sources: laser_scan laser_scan: data_type: LaserScan topic: /scan marking: true clearing: true inflation_layer: enabled: true inflation_radius: 0.8 cost_scaling_factor: 5.0 [OK]
      Hint: Check all layers enabled with correct parameters [OK]
      Common Mistakes:
      • Disabling static layer or obstacle marking
      • Using negative cost_scaling_factor
      • Setting inflation_radius different from 0.8
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard