runner: class_name: OnPolicyRunner # General num_steps_per_env: 24 # Number of steps per environment per iteration max_iterations: 1500 # Number of policy updates seed: 1 # Observations obs_groups: { "actor": ["policy"], "critic": ["policy", "privileged"] } # Maps from observation sets to groups. See `vec_env.py` for more information # Logging parameters save_interval: 50 # Check for potential saves every `save_interval` iterations experiment_name: walking_experiment run_name: "" # Logging writer logger: tensorboard # tensorboard, neptune, wandb neptune_project: rsl_rl wandb_project: rsl_rl # Actor actor: class_name: MLPModel hidden_dims: [256, 256, 256] activation: elu obs_normalization: false stochastic: true init_noise_std: 1.0 noise_std_type: "scalar" # 'scalar' or 'log' state_dependent_std: false # Critic critic: class_name: MLPModel hidden_dims: [256, 256, 256] activation: elu obs_normalization: false stochastic: false # Algorithm algorithm: class_name: PPO # Training optimizer: adam # adam, adamw, sgd, rmsprop learning_rate: 0.001 num_learning_epochs: 5 num_mini_batches: 4 # mini batch size = num_envs * num_steps / num_mini_batches schedule: adaptive # adaptive, fixed # Value function value_loss_coef: 1.0 clip_param: 0.2 use_clipped_value_loss: true # Surrogate loss desired_kl: 0.01 entropy_coef: 0.01 gamma: 0.99 lam: 0.95 max_grad_norm: 1.0 # Miscellaneous normalize_advantage_per_mini_batch: false # Random network distillation rnd_cfg: weight: 0.0 # Initial weight of the RND reward weight_schedule: null # This is a dictionary with a required key called "mode". Please check the RND module for more information reward_normalization: false # Whether to normalize RND reward # Learning parameters learning_rate: 0.001 # Learning rate for RND # Network parameters num_outputs: 1 # Number of outputs of RND network. Note: if -1, then the network will use dimensions of the observation predictor_hidden_dims: [-1] # Hidden dimensions of predictor network target_hidden_dims: [-1] # Hidden dimensions of target network # Symmetry augmentation symmetry_cfg: use_data_augmentation: true # This adds symmetric trajectories to the batch use_mirror_loss: false # This adds symmetry loss term to the loss function data_augmentation_func: null # String containing the module and function name to import # Example: "legged_gym.envs.locomotion.anymal_c.symmetry:get_symmetric_states" # # .. code-block:: python # # @torch.no_grad() # def get_symmetric_states( # env: VecEnv, obs: Optional[torch.Tensor] = None, actions: Optional[torch.Tensor] = None, # ) -> Tuple[torch.Tensor, torch.Tensor]: # mirror_loss_coeff: 0.0 # Coefficient for symmetry loss term. If 0, no symmetry loss is used