Implementation:Facebookresearch Habitat lab Config dataclass pattern
Appearance
| 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