Implementation:ARISE Initiative Robomimic ObsUtils initialize obs utils with config
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Perception, Data_Processing |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
Concrete tool for initializing the global observation modality registry and default encoder configuration provided by the robomimic observation utilities module.
Description
The initialize_obs_utils_with_config function parses a BaseConfig instance to extract observation modality specifications and encoder configurations, then populates global registries used throughout the framework. It handles special cases for hierarchical algorithms (HBC and IRIS) that have multiple observation groups (planner, actor, value).
Internally, it delegates to initialize_obs_utils_with_obs_specs() for the modality-to-key mappings and initialize_default_obs_encoder() for the encoder network defaults.
Usage
Call this function once after creating the config object and before any dataset loading, model creation, or rollout execution. It is required in both training and evaluation pipelines.
Code Reference
Source Location
- Repository: robomimic
- File: robomimic/utils/obs_utils.py
- Lines: L224-249
Signature
def initialize_obs_utils_with_config(config):
"""
Utility function to parse config and call @initialize_obs_utils_with_obs_specs and
@initialize_default_obs_encoder_kwargs with the correct arguments.
Args:
config (BaseConfig instance): config object
"""
Import
import robomimic.utils.obs_utils as ObsUtils
# Call as:
ObsUtils.initialize_obs_utils_with_config(config)
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| config | BaseConfig | Yes | Full config object; internally reads config.observation to extract modality specs and encoder kwargs. For HBC reads config.observation.planner.modalities and config.observation.actor. For IRIS reads config.observation.value_planner.planner, value_planner.value, and actor. |
Outputs
| Name | Type | Description |
|---|---|---|
| (side effect) | None | Mutates global registries: OBS_KEYS_TO_MODALITIES, OBS_MODALITIES_TO_KEYS, DEFAULT_ENCODER_KWARGS |
Usage Examples
Standard Algorithm
import robomimic.utils.obs_utils as ObsUtils
from robomimic.config import config_factory
# Create config
config = config_factory(algo_name="bc")
# Initialize observation utilities
ObsUtils.initialize_obs_utils_with_config(config)
# Now obs keys can be queried globally
is_image = ObsUtils.key_is_obs_modality(key="agentview_image", obs_modality="rgb")
Within Checkpoint Loading
from robomimic.utils.file_utils import policy_from_checkpoint
# policy_from_checkpoint internally calls ObsUtils.initialize_obs_utils_with_config
# so observation processing is set up automatically
policy, ckpt_dict = policy_from_checkpoint(ckpt_path="model.pth")