rofunc.learning.RofuncRL.agents.mixline.amp_agent#

1.  Module Contents#

1.1.  Classes#

AMPAgent

Adversarial Motion Priors (AMP) agent

1.2.  API#

class rofunc.learning.RofuncRL.agents.mixline.amp_agent.AMPAgent(cfg: omegaconf.DictConfig, observation_space: Optional[Union[int, Tuple[int], gym.Space, gymnasium.Space, List]], action_space: Optional[Union[int, Tuple[int], gym.Space, gymnasium.Space]], memory: Optional[Union[rofunc.learning.RofuncRL.utils.memory.Memory, Tuple[rofunc.learning.RofuncRL.utils.memory.Memory]]] = None, device: Optional[Union[str, torch.device]] = None, experiment_dir: Optional[str] = None, rofunc_logger: Optional[rofunc.logger.BeautyLogger] = None, amp_observation_space: Optional[Union[int, Tuple[int], gym.Space, gymnasium.Space]] = None, motion_dataset: Optional[Union[rofunc.learning.RofuncRL.utils.memory.Memory, Tuple[rofunc.learning.RofuncRL.utils.memory.Memory]]] = None, replay_buffer: Optional[Union[rofunc.learning.RofuncRL.utils.memory.Memory, Tuple[rofunc.learning.RofuncRL.utils.memory.Memory]]] = None, collect_reference_motions: Optional[Callable[[int], torch.Tensor]] = None)#

Bases: rofunc.learning.RofuncRL.agents.base_agent.BaseAgent

Adversarial Motion Priors (AMP) agent

“AMP: Adversarial Motion Priors for Stylized Physics-Based Character Control”. Peng et al. 2021. https://arxiv.org/abs/2104.02180

Rofunc documentation: https://rofunc.readthedocs.io/en/latest/lfd/RofuncRL/AMP.html

Initialization

Parameters:
  • cfg – Configuration

  • observation_space – Observation space

  • action_space – Action space

  • memory – Memory for storing transitions

  • device – Device on which the torch tensor is allocated

  • experiment_dir – Directory where experiment outputs are saved

  • rofunc_logger – Rofunc logger

  • amp_observation_space – cfg[“env”][“numAMPObsSteps”] * NUM_AMP_OBS_PER_STEP

  • motion_dataset – Motion dataset

  • replay_buffer – Replay buffer

  • collect_reference_motions – Function for collecting reference motions

collect_reference_motions = None#

Define models for AMP

act(states: torch.Tensor, deterministic: bool = False)#
store_transition(states: torch.Tensor, actions: torch.Tensor, next_states: torch.Tensor, rewards: torch.Tensor, terminated: torch.Tensor, truncated: torch.Tensor, infos: torch.Tensor)#
update_net()#

Update the network