Entity#

Sends regular commands, such as a velocity direction, to your robot

class genesis_forge.managers.EntityManager(env: GenesisEnv, entity_attr: str, on_reset: dict[str, EntityResetConfig])[source]#

Bases: BaseManager

Provides options for resetting an entity and adding noise and randomization to its state.

Parameters:
  • env – The environment instance.

  • entity_attr – The attribute name of the environment that the entity is stored in.

  • on_reset – The reset configuration for the entity.

Example:

class MyEnv(ManagedEnvironment):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    def config(self):
        self.entity_manager = EntityManager(
            self,
            entity_attr="robot",
            on_reset={
                "position": {
                    "fn": reset.randomize_terrain_position,
                    "params": {
                        "terrain_manager": self.terrain_manager,
                        "subterrain": self._target_terrain,
                        "height_offset": 0.15,
                    },
                },
            },
        )
build()[source]#

Build the entity manager.

get_angular_velocity() torch.Tensor[source]#

The angular velocity of the entity’s base link, in the entity’s local frame.

get_linear_velocity() torch.Tensor[source]#

The linear velocity of the entity’s base link, in the entity’s local frame.

get_projected_gravity() torch.Tensor[source]#

The projected gravity of the entity’s base link, in the entity’s local frame.

reset(envs_idx: list[int] | None = None)[source]#

Call all reset functions

step()[source]#

Run some common shared calculations at each step.

property base_pos: torch.Tensor#

The position of the entities base link.

property base_quat: torch.Tensor#

The quaternion of the entity’s base link.

property inv_base_quat: torch.Tensor#

The inverse of the entity’s base link quaternion.