Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Facebookresearch Habitat lab Config dataclass pattern

From Leeroopedia
Knowledge Sources
Domains Configuration_Management, Software_Architecture
Last Updated 2026-02-15 02:00 GMT

Overview

Concrete base config dataclasses for sensors, measures, and actions that users extend to define typed configuration for custom Habitat components.

Description

Habitat provides three base config dataclasses:

  • LabSensorConfig (for sensors): Base with type: str = MISSING
  • MeasurementConfig (for measures): Base with type: str = MISSING
  • ActionConfig (for actions): Base with type: str = MISSING

Users create @dataclass subclasses adding custom fields. The type field must match the component's registration name in the Habitat registry.

Usage

Define a dataclass inheriting from the appropriate base config after creating and registering your custom component. Then inject the config instance into the Habitat config hierarchy.

Code Reference

Source Location

  • Repository: habitat-lab
  • File: habitat-lab/habitat/config/default_structured_configs.py
  • Lines: L132-135 (ActionConfig), L397-400 (LabSensorConfig), L759-762 (MeasurementConfig)

Signature

from dataclasses import dataclass, field
from omegaconf import MISSING

@dataclass
class LabSensorConfig:
    type: str = MISSING

@dataclass
class MeasurementConfig:
    type: str = MISSING

@dataclass
class ActionConfig:
    type: str = MISSING

Import

from habitat.config.default_structured_configs import (
    LabSensorConfig,
    MeasurementConfig,
    ActionConfig,
)

I/O Contract

Inputs

Name Type Required Description
type str Yes Must match the registry registration name
Custom fields Various Varies Component-specific parameters with defaults

Outputs

Name Type Description
Config instance dataclass Typed config object injectable into Habitat config hierarchy

Usage Examples

Custom Sensor Config

from dataclasses import dataclass
from habitat.config.default_structured_configs import LabSensorConfig

@dataclass
class MyProximitySensorConfig(LabSensorConfig):
    type: str = "MyProximitySensor"
    max_distance: float = 10.0
    normalize: bool = True

Custom Measure Config

from dataclasses import dataclass
from habitat.config.default_structured_configs import MeasurementConfig

@dataclass
class MySuccessMeasureConfig(MeasurementConfig):
    type: str = "MySuccessMeasure"
    success_distance: float = 0.2

Custom Action Config

from dataclasses import dataclass
from habitat.config.default_structured_configs import ActionConfig

@dataclass
class MyStrafeActionConfig(ActionConfig):
    type: str = "MyStrafeAction"
    strafe_distance: float = 0.25

Related Pages

Implements Principle

Requires Environment

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment