Source code for isaaclab.envs.mdp.recorders.recorders

# Copyright (c) 2022-2026, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
from __future__ import annotations

from collections.abc import Sequence

import torch

from isaaclab.managers.recorder_manager import RecorderTerm


[docs] class InitialStateRecorder(RecorderTerm): """Recorder term that records the initial state of the environment after reset.""" def record_post_reset(self, env_ids: Sequence[int] | None): def extract_env_ids_values(value): nonlocal env_ids if isinstance(value, dict): return {k: extract_env_ids_values(v) for k, v in value.items()} return value[env_ids] return "initial_state", extract_env_ids_values(self._env.scene.get_state(is_relative=True))
[docs] class PostStepStatesRecorder(RecorderTerm): """Recorder term that records the state of the environment at the end of each step.""" def record_post_step(self): return "states", self._env.scene.get_state(is_relative=True)
[docs] class PreStepActionsRecorder(RecorderTerm): """Recorder term that records the actions in the beginning of each step.""" def record_pre_step(self): return "actions", self._env.action_manager.action
[docs] class PreStepFlatPolicyObservationsRecorder(RecorderTerm): """Recorder term that records the policy group observations in each step.""" def record_pre_step(self): return "obs", self._env.obs_buf["policy"]
[docs] class PostStepProcessedActionsRecorder(RecorderTerm): """Recorder term that records processed actions at the end of each step.""" def record_post_step(self): processed_actions = None # Loop through active terms and concatenate their processed actions for term_name in self._env.action_manager.active_terms: term_actions = self._env.action_manager.get_term(term_name).processed_actions.clone() if processed_actions is None: processed_actions = term_actions else: processed_actions = torch.cat([processed_actions, term_actions], dim=-1) return "processed_actions", processed_actions