unilab.dr

Domain randomization package.

Invariant: this package must not depend on unilab.base.*

class unilab.dr.DomainRandomizationCapabilities[source]

Bases: object

DomainRandomizationCapabilities(supported_reset_terms: ‘frozenset[str]’ = <factory>, supports_interval_push: ‘bool’ = False, supports_interval_body_velocity_delta: ‘bool’ = False, supports_interval_body_force: ‘bool’ = False)

Parameters:
  • supported_reset_terms (frozenset[str])

  • supports_interval_push (bool)

  • supports_interval_body_velocity_delta (bool)

  • supports_interval_body_force (bool)

supported_reset_terms: frozenset[str]
supports_interval_push: bool = False
supports_interval_body_velocity_delta: bool = False
supports_interval_body_force: bool = False
supports_reset_term(term)[source]
Parameters:

term (str)

Return type:

bool

get_unsupported_reset_terms(requested_terms)[source]
Parameters:

requested_terms (frozenset[str])

Return type:

frozenset[str]

filter_reset_payload(payload)[source]
Parameters:

payload (ResetRandomizationPayload)

Return type:

tuple[ResetRandomizationPayload | None, frozenset[str]]

__init__(supported_reset_terms=<factory>, supports_interval_push=False, supports_interval_body_velocity_delta=False, supports_interval_body_force=False)
Parameters:
  • supported_reset_terms (frozenset[str])

  • supports_interval_push (bool)

  • supports_interval_body_velocity_delta (bool)

  • supports_interval_body_force (bool)

class unilab.dr.DomainRandomizationManager[source]

Bases: object

Parameters:
__init__(env, provider)[source]
Parameters:
apply_init_randomization()[source]
Return type:

bool

reset(env_ids)[source]
Parameters:

env_ids (ndarray)

Return type:

tuple[dict[str, ndarray], dict]

apply_interval_randomization_if_due(step_counter)[source]
Parameters:

step_counter (int)

Return type:

None

class unilab.dr.DomainRandomizationProvider[source]

Bases: ABC

abstract validate(env, capabilities)[source]
Parameters:
Return type:

None

build_init_randomization_plan(env)[source]
Parameters:

env (Any)

Return type:

InitRandomizationPlan | None

abstract build_reset_plan(env, env_ids)[source]
Parameters:
Return type:

ResetPlan

abstract build_reset_observation(env, env_ids, info_updates)[source]
Parameters:
Return type:

dict[str, ndarray]

build_interval_randomization_plan(env, step_counter)[source]
Parameters:
  • env (Any)

  • step_counter (int)

Return type:

IntervalRandomizationPlan | None

class unilab.dr.GeomSizeOverride[source]

Bases: object

GeomSizeOverride(geom_name: ‘str’, size: ‘tuple[float, …]’)

Parameters:
geom_name: str
size: tuple[float, ...]
__init__(geom_name, size)
Parameters:
class unilab.dr.InitRandomizationPlan[source]

Bases: object

InitRandomizationPlan(model_assignments: ‘np.ndarray’, model_variants: ‘tuple[ModelVariantSpec, …]’)

Parameters:
model_assignments: ndarray
model_variants: tuple[ModelVariantSpec, ...]
is_empty()[source]
Return type:

bool

__init__(model_assignments, model_variants)
Parameters:
class unilab.dr.IntervalRandomizationPlan[source]

Bases: object

IntervalRandomizationPlan(push_perturbation_limit: ‘Sequence[float] | np.ndarray | None’ = None, body_ids: ‘np.ndarray | None’ = None, body_linear_velocity_delta: ‘np.ndarray | None’ = None, body_force: ‘np.ndarray | None’ = None)

Parameters:
push_perturbation_limit: Sequence[float] | ndarray | None = None
body_ids: ndarray | None = None
body_linear_velocity_delta: ndarray | None = None
body_force: ndarray | None = None
is_empty()[source]
Return type:

bool

__init__(push_perturbation_limit=None, body_ids=None, body_linear_velocity_delta=None, body_force=None)
Parameters:
class unilab.dr.ModelVariantSpec[source]

Bases: object

ModelVariantSpec(geom_size_overrides: ‘tuple[GeomSizeOverride, …]’ = <factory>)

Parameters:

geom_size_overrides (tuple[GeomSizeOverride, ...])

geom_size_overrides: tuple[GeomSizeOverride, ...]
is_empty()[source]
Return type:

bool

__init__(geom_size_overrides=<factory>)
Parameters:

geom_size_overrides (tuple[GeomSizeOverride, ...])

class unilab.dr.ResetPlan[source]

Bases: object

ResetPlan(env_ids: ‘np.ndarray’, qpos: ‘np.ndarray’, qvel: ‘np.ndarray’, info_updates: ‘dict[str, Any]’, randomization: ‘ResetRandomizationPayload | None’ = None)

Parameters:
env_ids: ndarray
qpos: ndarray
qvel: ndarray
info_updates: dict[str, Any]
randomization: ResetRandomizationPayload | None = None
__init__(env_ids, qpos, qvel, info_updates, randomization=None)
Parameters:
class unilab.dr.ResetRandomizationPayload[source]

Bases: object

ResetRandomizationPayload(base_mass_delta: ‘np.ndarray | None’ = None, base_com_offset: ‘np.ndarray | None’ = None, gravity: ‘np.ndarray | None’ = None, body_iquat: ‘np.ndarray | None’ = None, body_inertia: ‘np.ndarray | None’ = None, body_ipos: ‘np.ndarray | None’ = None, body_mass: ‘np.ndarray | None’ = None, dof_armature: ‘np.ndarray | None’ = None, geom_friction: ‘np.ndarray | None’ = None, kp: ‘np.ndarray | None’ = None, kd: ‘np.ndarray | None’ = None)

Parameters:
base_mass_delta: ndarray | None = None
base_com_offset: ndarray | None = None
gravity: ndarray | None = None
body_iquat: ndarray | None = None
body_inertia: ndarray | None = None
body_ipos: ndarray | None = None
body_mass: ndarray | None = None
dof_armature: ndarray | None = None
geom_friction: ndarray | None = None
kp: ndarray | None = None
kd: ndarray | None = None
requested_terms()[source]
Return type:

frozenset[str]

is_empty()[source]
Return type:

bool

__init__(base_mass_delta=None, base_com_offset=None, gravity=None, body_iquat=None, body_inertia=None, body_ipos=None, body_mass=None, dof_armature=None, geom_friction=None, kp=None, kd=None)
Parameters:

Modules