unilab.envs.mdp.curriculums

Generic stage-based curriculum terms for the NumPy manager runtime.

These terms let owner YAMLs ramp any reward/termination term’s weight and/or params by training step (env.common_step_counter) through a declarative stage table, so tasks no longer need private step-based curriculum terms. Stage scheduling is validated fail-closed at manager construction time.

Classes

CommandCurriculumStage

Stage for command_curriculum.

EventCurriculumStage

Stage for event_curriculum.

RewardCurriculumStage

TerminationCurriculumStage

command_curriculum

Update a command term's config fields and/or params based on training steps.

event_curriculum

Update an event term's params and/or config fields based on training steps.

reward_curriculum

Update a reward term's weight and/or params based on training steps.

termination_curriculum

Update a termination term's params and/or time_out based on training steps.

class unilab.envs.mdp.curriculums.RewardCurriculumStage[source]

Bases: dict

step: int
weight: float
params: dict[str, Any]
class unilab.envs.mdp.curriculums.TerminationCurriculumStage[source]

Bases: dict

step: int
params: dict[str, Any]
time_out: bool
class unilab.envs.mdp.curriculums.CommandCurriculumStage[source]

Bases: dict

Stage for command_curriculum.

Any key beyond step/params is applied as a top-level field on the live command term config (e.g. rel_standing_envs or ranges); the set of valid fields is the target term’s config schema.

step: int
params: dict[str, Any]
class unilab.envs.mdp.curriculums.EventCurriculumStage[source]

Bases: dict

Stage for event_curriculum.

Any key beyond step/params is applied as a top-level field on the live event term config; the set of valid fields is the target term’s config schema.

step: int
params: dict[str, Any]
class unilab.envs.mdp.curriculums.reward_curriculum[source]

Bases: object

Update a reward term’s weight and/or params based on training steps.

Each stage specifies a step threshold and optionally a weight and/or params dict. When env.common_step_counter reaches a stage’s step, the corresponding values are applied. Later stages take precedence when multiple thresholds are reached.

Example owner YAML:

curriculum:
  action_rate_ramp:
    func: unilab.envs.mdp.reward_curriculum
    params:
      reward_name: action_rate
      stages:
        - {step: 0, weight: -0.1}
        - {step: 12000, weight: -0.4}
        - {step: 24000, weight: -1.0, params: {max_vel: 1.0}}
Parameters:
  • cfg (CurriculumTermCfg)

  • env (ManagerBasedRlEnv)

__init__(cfg, env)[source]
Parameters:
  • cfg (CurriculumTermCfg)

  • env (ManagerBasedRlEnv)

class unilab.envs.mdp.curriculums.termination_curriculum[source]

Bases: object

Update a termination term’s params and/or time_out based on training steps.

Each stage specifies a step threshold and optionally a params dict and/or time_out flag. When env.common_step_counter reaches a stage’s step, the values are applied. Later stages take precedence.

Example owner YAML:

curriculum:
  tilt_threshold:
    func: unilab.envs.mdp.termination_curriculum
    params:
      termination_name: tilt
      stages:
        - {step: 12000, params: {max_tilt_deg: 80.0}}
        - {step: 24000, params: {max_tilt_deg: 65.0}}
Parameters:
  • cfg (CurriculumTermCfg)

  • env (ManagerBasedRlEnv)

__init__(cfg, env)[source]
Parameters:
  • cfg (CurriculumTermCfg)

  • env (ManagerBasedRlEnv)

class unilab.envs.mdp.curriculums.command_curriculum[source]

Bases: object

Update a command term’s config fields and/or params based on training steps.

Command terms read their live self.cfg at resample time, so mutating the resolved term config (e.g. rel_standing_envs or ranges) takes effect on the next command resample. Stage semantics match reward_curriculum: every stage whose step has been reached is applied in order, so later stages win.

Example owner YAML:

curriculum:
  standing_envs:
    func: unilab.envs.mdp.command_curriculum
    params:
      command_name: twist
      stages:
        - {step: 0, rel_standing_envs: 0.02}
        - {step: 12000, rel_standing_envs: 0.1}
Parameters:
  • cfg (CurriculumTermCfg)

  • env (ManagerBasedRlEnv)

__init__(cfg, env)[source]
Parameters:
  • cfg (CurriculumTermCfg)

  • env (ManagerBasedRlEnv)

class unilab.envs.mdp.curriculums.event_curriculum[source]

Bases: object

Update an event term’s params and/or config fields based on training steps.

Event terms are invoked with their live cfg.params on every apply, so staged params updates (e.g. a widened com_range) take effect on the next event application. Stage semantics match reward_curriculum.

Example owner YAML:

curriculum:
  com_range:
    func: unilab.envs.mdp.event_curriculum
    params:
      event_name: base_com
      stages:
        - {step: 0, params: {com_range: {x: [-0.003, 0.003]}}}
        - {step: 24000, params: {com_range: {x: [-0.01, 0.01]}}}
Parameters:
  • cfg (CurriculumTermCfg)

  • env (ManagerBasedRlEnv)

__init__(cfg, env)[source]
Parameters:
  • cfg (CurriculumTermCfg)

  • env (ManagerBasedRlEnv)