num_gpus: 1
max_retries: 1
seed: 26
codebase_version: 1.0
headless: true
num_envs: 4
auto_load_latest: false
checkpoint: STUDY/training/scheduled/phase-2/training/checkpoint.pt
project_name: sonic_dry_terrain
experiment_name: sand_mud_rocks
base_dir: logs_rl
timestamp: ${now:%Y%m%d_%H%M%S}
experiment_dir: STUDY/training/scheduled/phase-3/training
save_dir: STUDY/training/scheduled/phase-3/training/.hydra
force_flat_terrain: false
use_wandb: false
log_task_name: TEST
multi_gpu: false
global_rank: 0
sim_type: isaacsim
env_spacing: 20
output_dir: STUDY/training/scheduled/phase-3/training/output
eval_overrides: null
algo:
  trl:
    dataset_name: dummy
    output_dir: STUDY/training/scheduled/phase-3/training
    learning_rate: ${algo.config.actor_learning_rate}
    num_total_batches: ${algo.config.num_learning_iterations}
    total_episodes: null
    num_ppo_epochs: ${algo.config.num_learning_epochs}
    num_mini_batches: ${algo.config.num_mini_batches}
    per_device_train_batch_size: null
    gradient_accumulation_steps: 1
    report_to: none
    gamma: ${algo.config.gamma}
    lam: ${algo.config.lam}
    vf_coef: ${algo.config.value_loss_coef}
    max_grad_norm: ${algo.config.max_grad_norm}
    lr_scheduler_type: constant
    save_strategy: 'no'
    disable_tqdm: true
    bf16: false
    fp16: false
  config:
    critic:
      _target_: gear_sonic.trl.modules.actor_critic_modules.Critic
      running_mean_std: true
      backbone:
        _target_: gear_sonic.trl.modules.base_module.BaseModule
        process_output_dim: true
        module_config_dict:
          type: MLP
          input_dim:
          - critic_obs
          output_dim:
          - 1
          layer_config:
            type: MLP
            hidden_dims:
            - 2048
            - 2048
            - 1024
            - 1024
            - 512
            - 512
            activation: SiLU
    actor:
      backbone:
        quantizer:
          _target_: vector_quantize_pytorch.FSQ
        encoders:
          g1:
            inputs:
            - command_multi_future_nonflat
            - motion_anchor_ori_b_mf_nonflat
            params:
              _target_: gear_sonic.trl.modules.base_module.BaseModule
              input_dim: null
              output_dim: null
              num_input_temporal_dims: ${manager_env.commands.motion.num_future_frames}
              num_output_temporal_dims: ${algo.config.actor.backbone.max_num_tokens}
              module_config_dict:
                layer_config:
                  type: MLP
                  hidden_dims:
                  - 2048
                  - 1024
                  - 512
                  - 512
                  activation: SiLU
          teleop:
            inputs:
            - command_multi_future_lower_body
            - vr_3point_local_target
            - vr_3point_local_orn_target
            - motion_anchor_ori_b
            params:
              _target_: gear_sonic.trl.modules.base_module.BaseModule
              input_dim: null
              output_dim: null
              num_input_temporal_dims: null
              num_output_temporal_dims: ${algo.config.actor.backbone.max_num_tokens}
              module_config_dict:
                layer_config:
                  type: MLP
                  hidden_dims:
                  - 2048
                  - 1024
                  - 512
                  - 512
                  activation: SiLU
          smpl:
            inputs:
            - smpl_joints_multi_future_local_nonflat
            - smpl_root_ori_b_multi_future
            - joint_pos_multi_future_wrist_for_smpl
            params:
              _target_: gear_sonic.trl.modules.base_module.BaseModule
              input_dim: null
              output_dim: null
              num_input_temporal_dims: ${manager_env.commands.motion.smpl_num_future_frames}
              num_output_temporal_dims: ${algo.config.actor.backbone.max_num_tokens}
              module_config_dict:
                layer_config:
                  type: MLP
                  hidden_dims:
                  - 2048
                  - 1024
                  - 512
                  - 512
                  activation: SiLU
        decoders:
          g1_dyn:
            inputs:
            - token_flattened
            - proprioception
            outputs:
            - action
            has_temporal_dim: false
            params:
              _target_: gear_sonic.trl.modules.base_module.BaseModule
              input_dim: null
              output_dim: null
              num_input_temporal_dims: null
              num_output_temporal_dims: null
              module_config_dict:
                layer_config:
                  type: MLP
                  hidden_dims:
                  - 2048
                  - 2048
                  - 1024
                  - 1024
                  - 512
                  - 512
                  activation: SiLU
          g1_kin:
            inputs:
            - token
            outputs:
            - command_multi_future_nonflat
            - motion_anchor_ori_b_mf_nonflat
            has_temporal_dim: true
            params:
              _target_: gear_sonic.trl.modules.base_module.BaseModule
              input_dim: null
              output_dim: null
              num_input_temporal_dims: ${algo.config.actor.backbone.max_num_tokens}
              num_output_temporal_dims: ${manager_env.commands.motion.num_future_frames}
              module_config_dict:
                layer_config:
                  type: MLP
                  hidden_dims:
                  - 2048
                  - 1024
                  - 512
                  - 512
                  activation: SiLU
        _target_: gear_sonic.trl.modules.universal_token_modules.UniversalTokenModule
        num_future_frames: ${manager_env.commands.motion.num_future_frames}
        proprioception_features:
        - actor_obs
        encoder_sample_probs: ${manager_env.commands.motion.encoder_sample_probs}
        num_fsq_levels: 32
        fsq_level_list: 32
        max_num_tokens: 2
        aux_loss_func:
          g1_recon:
            _target_: gear_sonic.trl.losses.token_losses.G1ReconLoss
            loss_type: mse
          g1_smpl_latent:
            _target_: gear_sonic.trl.losses.token_losses.G1SmplLatentLoss
            loss_type: mse
          g1_teleop_latent:
            _target_: gear_sonic.trl.losses.token_losses.G1TeleopLatentLoss
            loss_type: mse
          teleop_smpl_latent:
            _target_: gear_sonic.trl.losses.token_losses.TeleopSmplLatentLoss
            loss_type: mse
            detach_teleop_target: true
          reencoded_smpl_g1_latent:
            _target_: gear_sonic.trl.losses.token_losses.ReencodedSmplG1LatentLoss
            loss_type: mse
        aux_loss_coef:
          g1_recon: 0.01
          g1_smpl_latent: 0
          g1_teleop_latent: 0
          teleop_smpl_latent: 0
          reencoded_smpl_g1_latent: 0
        reencode_smpl_g1_recon: true
      _target_: dry_leg_residual_actor.TerrainLegResidualActor
      running_mean_std: false
      input_obs_dict: true
      has_aux_loss: true
      leg_indices:
      - 0
      - 1
      - 3
      - 4
      - 6
      - 7
      - 9
      - 10
      - 13
      - 14
      - 17
      - 18
      extra_leg_bound: 0.75
    num_learning_epochs: 4
    num_mini_batches: 1
    clip_param: 0.2
    gamma: 0.99
    lam: 0.95
    value_loss_coef: 1.0
    entropy_coef: 0.01
    actor_learning_rate: 0.0001
    critic_learning_rate: 0.001
    max_grad_norm: 0.1
    use_clipped_value_loss: true
    schedule: fixed
    desired_kl: null
    adaptive_lr_min: 1.0e-05
    adaptive_lr_max: 0.0002
    use_new_actor_critic: true
    use_padding_mask: false
    ppo_shuffle_every_epoch: true
    sync_advantage_normalization: true
    empty_cache_every_n_ppo_epoch: -1
    num_steps_per_env: 24
    save_interval: 500
    eval_frequency: 500
    load_optimizer: true
    init_noise_std: 0.05
    num_learning_iterations: 64
    init_at_random_ep_len: true
    global_rank: 0
    world_size: 1
    use_clampped_std: true
    std_clamp_min: 0.001
    std_clamp_max: 0.5
    compute_aux_loss: false
    freeze_noise_std: true
  _recursive_: false
env: ???
terrain: ???
callbacks:
  model_save:
    _target_: gear_sonic.trl.callbacks.model_save_callback.ModelSaveCallback
    save_dir: ${experiment_dir}
    save_frequency: 500
    max_disk_usage: null
    save_last_frequency: 100
  wandb:
    _target_: gear_sonic.trl.callbacks.wandb_callback.WandbCallback
  read_eval:
    _target_: gear_sonic.trl.callbacks.read_eval_callback.ReadEvalCallback
    eval_dir: ${experiment_dir}/eval
    check_interval: 1
  im_resample:
    _target_: gear_sonic.trl.callbacks.im_resample_callback.ImResampleCallback
    motion_resample_frequency: 250
trainer:
  _target_: dry_trainer.DryPPOTrainer
wandb:
  wandb_project: null
  wandb_tags: online
  wandb_group: null
  wandb_id: null
  wandb_entity: null
  wandb_dir: /tmp
manager_env:
  commands:
    motion:
      encoder_sample_probs:
        g1: 1.0
        teleop: 0.0
        smpl: 0.0
      _target_: gear_sonic.envs.manager_env.mdp.commands.TrackingCommandCfg
      asset_name: robot
      atlas_probe_mode: false
      atlas_probe_assignments: null
      atlas_probe_schedule_sha256: null
      motion_lib_cfg:
        motion_file: EXTERNAL/motion_pool.pkl
        smpl_motion_file: dummy
        asset:
          assetRoot: gear_sonic/data/assets/robot_description/mjcf/
          assetFileName: g1_29dof_rev_1_0.xml
          urdfFileName: ''
        extend_config: []
        target_fps: 50
        multi_thread: false
        filter_motion_keys: null
        adaptive_sampling:
          enable: false
          bin_size: 50
          sequence_length_agnostic: true
          init_num_failures: 1
          uniform_sampling_rate: 0.1
          pre_failure_sample_window: 200
          use_failure_rate_decay: false
          decay_gamma: 0.8
          adp_samp_failure_rate_max_over_mean: 200
          signal: failure_rate
          evidence_half_life: null
          optimism_k: 0.0
          advmass_n: 16
          tripwire_max_prob_over_uniform: 20.0
          family_kernel: null
          lace:
            enable: false
            schema_version: 1
            atlas_manifest: null
        lace_fixed_distribution:
          enable: false
          plan_lock_path: null
          plan_lock_file_sha256: null
          distribution_id: null
        upper_body_augment_prefixes:
        - '2025'
        - sonic_mixed_walking_running
        - sonic_squating_different_height_switching
        - sonic_running
        - sonic_walking
        - sonic_squating_different_height_hold
        - sonic_walking_other_style
        - balance
        smpl_y_up: true
        override_num_motions_to_load: 84
        sort_motion_keys: true
        motion_fps_scale: 1.0
      resampling_time_range:
      - 1000000000.0
      - 1000000000.0
      debug_vis: false
      dt_future_ref_frames: 0.1
      num_future_frames: 10
      pose_range:
        x:
        - -0.05
        - 0.05
        y:
        - -0.05
        - 0.05
        z:
        - -0.01
        - 0.01
        roll:
        - -0.1
        - 0.1
        pitch:
        - -0.1
        - 0.1
        yaw:
        - -0.2
        - 0.2
      velocity_range:
        x:
        - -0.5
        - 0.5
        y:
        - -0.5
        - 0.5
        z:
        - -0.2
        - 0.2
        roll:
        - -0.52
        - 0.52
        pitch:
        - -0.52
        - 0.52
        yaw:
        - -0.78
        - 0.78
      joint_position_range:
      - -0.1
      - 0.1
      joint_velocity_range:
      - 0
      - 0
      anchor_body: pelvis
      vr_3point_body:
      - left_wrist_yaw_link
      - right_wrist_yaw_link
      - torso_link
      vr_3point_body_offset:
      - - 0.18
        - -0.025
        - 0.0
      - - 0.18
        - 0.025
        - 0.0
      - - 0.0
        - 0.0
        - 0.35
      reward_point_body:
      - torso_link
      - left_wrist_yaw_link
      - right_wrist_yaw_link
      reward_point_body_offset:
      - - 0.0
        - 0.0
        - 0.5
      - - 0.0
        - -0.0
        - 0.0
      - - 0.0
        - -0.0
        - 0.0
      body_names:
      - pelvis
      - left_hip_roll_link
      - left_knee_link
      - left_ankle_roll_link
      - right_hip_roll_link
      - right_knee_link
      - right_ankle_roll_link
      - torso_link
      - left_shoulder_roll_link
      - left_elbow_link
      - left_wrist_yaw_link
      - right_shoulder_roll_link
      - right_elbow_link
      - right_wrist_yaw_link
      smpl_num_future_frames: 10
      smpl_dt_future_ref_frames: 0.02
      cat_upper_body_poses: false
      cat_upper_body_poses_prob: 0.5
      freeze_frame_aug: false
      teleop_sample_prob_when_smpl: 0.5
    _target_: gear_sonic.envs.manager_env.mdp.commands.CommandsCfg
  actions:
    joint_pos:
      _target_: isaaclab.envs.mdp.actions.JointPositionActionCfg
      asset_name: robot
      joint_names:
      - .*
      use_default_offset: true
    _target_: gear_sonic.envs.manager_env.mdp.actions.ActionsCfg
  observations:
    policy:
      gravity_dir:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:gravity_dir
        params:
          command_name: motion
        history_length: ${actor_prop_history_length}
        noise:
          _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
          n_min: -0.05
          n_max: 0.05
      base_ang_vel:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:base_ang_vel
        history_length: ${actor_prop_history_length}
        noise:
          _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
          n_min: -0.2
          n_max: 0.2
      joint_pos:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:joint_pos_rel
        history_length: ${actor_prop_history_length}
        noise:
          _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
          n_min: -0.01
          n_max: 0.01
      joint_vel:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:joint_vel_rel
        history_length: ${actor_prop_history_length}
        noise:
          _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
          n_min: -0.5
          n_max: 0.5
      actions:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:last_action
        history_length: ${actor_actions_history_length}
      _target_: gear_sonic.envs.manager_env.mdp.observations.PolicyCfg
      enable_corruption: true
      concatenate_terms: true
    critic:
      command_multi_future:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:command_multi_future
        params:
          command_name: motion
      motion_anchor_pos_b:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:motion_anchor_pos_b
        params:
          command_name: motion
      motion_anchor_ori_b:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:motion_anchor_ori_b
        params:
          command_name: motion
      body_pos:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:robot_body_pos_b
        params:
          command_name: motion
      body_ori:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:robot_body_ori_b
        params:
          command_name: motion
      base_lin_vel:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:base_lin_vel
        history_length: ${critic_prop_history_length}
      base_ang_vel:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:base_ang_vel
        history_length: ${critic_prop_history_length}
      joint_pos:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:joint_pos_rel
        history_length: ${critic_prop_history_length}
      joint_vel:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:joint_vel_rel
        history_length: ${critic_prop_history_length}
      actions:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:last_action
        history_length: ${critic_actions_history_length}
      _target_: gear_sonic.envs.manager_env.mdp.observations.PrivilegedCfg
    tokenizer:
      encoder_index:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:get_command_obs
        params:
          command_name: motion
          obs_name: episode_encoder_index
      command_multi_future_nonflat:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:command_multi_future
        params:
          command_name: motion
          non_flatten: true
      command_z_multi_future_nonflat:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:command_z_multi_future
        params:
          command_name: motion
          non_flatten: true
      motion_anchor_ori_b_mf_nonflat:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:motion_anchor_ori_b_mf
        params:
          command_name: motion
          non_flatten: true
        noise:
          _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
          n_min: -0.05
          n_max: 0.05
      command_multi_future_lower_body:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:command_multi_future_lower_body
        params:
          command_name: motion
      vr_3point_local_target:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:vr_3point_local_target
        params:
          command_name: motion
      vr_3point_local_orn_target:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:vr_3point_local_orn_target
        params:
          command_name: motion
      motion_anchor_ori_b:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:motion_anchor_ori_b
        params:
          command_name: motion
        noise:
          _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
          n_min: -0.05
          n_max: 0.05
      command_z:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:command_z
        params:
          command_name: motion
      smpl_joints_multi_future_local_nonflat:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:smpl_joints_multi_future_local
        params:
          command_name: motion
          non_flatten: true
        noise:
          _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
          n_min: -0.05
          n_max: 0.05
      smpl_root_ori_b_multi_future:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:smpl_root_ori_b_mf
        params:
          command_name: motion
          non_flatten: true
        noise:
          _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
          n_min: -0.05
          n_max: 0.05
      joint_pos_multi_future_wrist_for_smpl:
        _target_: isaaclab.managers.ObservationTermCfg
        func: gear_sonic.envs.manager_env.mdp:joint_pos_multi_future_select_joints_for_smpl
        params:
          command_name: motion
          joints_idx:
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
      _target_: gear_sonic.envs.manager_env.mdp.observations.TokenizerCfg
      enable_corruption: true
      concatenate_terms: false
    _target_: gear_sonic.envs.manager_env.mdp.observations.ObservationsCfg
  rewards:
    tracking_anchor_pos:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:tracking_anchor_pos_error
      weight: 0.5
      params:
        command_name: motion
        std: 0.3
    tracking_anchor_ori:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:tracking_anchor_ori_error
      weight: 0.5
      params:
        command_name: motion
        std: 0.4
    tracking_relative_body_pos:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:tracking_relative_body_pos_error
      weight: 1.0
      params:
        command_name: motion
        std: 0.3
    tracking_relative_body_ori:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:tracking_relative_body_ori_error
      weight: 1.0
      params:
        command_name: motion
        std: 0.4
    tracking_body_linvel:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:tracking_body_linvel_error
      weight: 1.0
      params:
        command_name: motion
        std: 1.0
    tracking_body_angvel:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:tracking_body_angvel_error
      weight: 1.0
      params:
        command_name: motion
        std: 3.14
    action_rate_l2:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:action_rate_l2
      weight: -0.1
    joint_limit:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:joint_pos_limits
      weight: -10.0
      params:
        asset_cfg:
          _target_: isaaclab.managers.SceneEntityCfg
          name: robot
          joint_names:
          - .*
    undesired_contacts:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:undesired_contacts
      weight: -0.1
      params:
        sensor_cfg:
          _target_: isaaclab.managers.SceneEntityCfg
          name: contact_forces
          body_names:
          - ^(?!left_ankle_roll_link$)(?!right_ankle_roll_link$)(?!left_wrist_yaw_link$)(?!right_wrist_yaw_link$)(?!left_elbow_link$)(?!right_elbow_link$).+$
        threshold: 1.0
    anti_shake_ang_vel:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:anti_shake_ang_vel_l2
      weight: -0.005
      params:
        command_name: motion
        threshold: 1.5
        body_names:
        - left_wrist_yaw_link
        - right_wrist_yaw_link
        - head_link
    tracking_vr_5point_local:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:tracking_local_vr_5point_error
      weight: 2.0
      params:
        command_name: motion
        std: 0.1
    feet_acc:
      _target_: isaaclab.managers.RewardTermCfg
      func: gear_sonic.envs.manager_env.mdp:joint_acc_l2
      weight: -2.5e-06
      params:
        asset_cfg:
          _target_: isaaclab.managers.SceneEntityCfg
          name: robot
          joint_names:
          - .*ankle.*
    _target_: gear_sonic.envs.manager_env.mdp.rewards.RewardsCfg
  terminations:
    anchor_pos:
      _target_: isaaclab.managers.TerminationTermCfg
      func: gear_sonic.envs.manager_env.mdp:exceeded_anchor_height
      params:
        command_name: motion
        threshold: 0.15
        threshold_adaptive: true
        down_threshold: 0.75
        root_height_threshold: 0.5
    anchor_ori_full:
      _target_: isaaclab.managers.TerminationTermCfg
      func: gear_sonic.envs.manager_env.mdp:exceeded_anchor_ori
      params:
        asset_cfg:
          _target_: isaaclab.managers.SceneEntityCfg
          name: robot
        command_name: motion
        threshold: 0.2
    ee_body_pos:
      _target_: isaaclab.managers.TerminationTermCfg
      func: gear_sonic.envs.manager_env.mdp:exceeded_body_height
      params:
        command_name: motion
        threshold: 0.15
        threshold_adaptive: true
        down_threshold: 0.75
        root_height_threshold: 0.5
        body_names:
        - left_ankle_roll_link
        - right_ankle_roll_link
        - left_wrist_yaw_link
        - right_wrist_yaw_link
    time_out:
      _target_: isaaclab.managers.TerminationTermCfg
      func: gear_sonic.envs.manager_env.mdp:tracking_time_out
      time_out: true
      params:
        command_name: motion
    foot_pos_xyz:
      _target_: isaaclab.managers.TerminationTermCfg
      func: gear_sonic.envs.manager_env.mdp:exceeded_body_pos
      params:
        command_name: motion
        threshold: 0.2
        body_names:
        - left_ankle_roll_link
        - right_ankle_roll_link
    _target_: gear_sonic.envs.manager_env.mdp.terminations.TerminationsCfg
  events:
    physics_material:
      _target_: isaaclab.managers.EventTermCfg
      func: gear_sonic.envs.manager_env.mdp:randomize_rigid_body_material
      mode: startup
      params:
        asset_cfg:
          _target_: isaaclab.managers.SceneEntityCfg
          name: robot
          body_names: .*
        static_friction_range:
        - 0.3
        - 1.6
        dynamic_friction_range:
        - 0.3
        - 1.2
        restitution_range:
        - 0.0
        - 0.5
        num_buckets: 64
    add_joint_default_pos:
      _target_: isaaclab.managers.EventTermCfg
      func: gear_sonic.envs.manager_env.mdp:randomize_joint_default_pos
      mode: startup
      params:
        asset_cfg:
          _target_: isaaclab.managers.SceneEntityCfg
          name: robot
          joint_names:
          - .*
        pos_distribution_params:
        - -0.01
        - 0.01
        operation: add
    base_com:
      _target_: isaaclab.managers.EventTermCfg
      func: gear_sonic.envs.manager_env.mdp:randomize_rigid_body_com
      mode: startup
      params:
        asset_cfg:
          _target_: isaaclab.managers.SceneEntityCfg
          name: robot
          body_names: torso_link
        com_range:
          x:
          - -0.025
          - 0.025
          y:
          - -0.05
          - 0.05
          z:
          - -0.05
          - 0.05
    push_robot:
      _target_: isaaclab.managers.EventTermCfg
      func: gear_sonic.envs.manager_env.mdp:push_by_setting_velocity
      mode: interval
      interval_range_s:
      - 4.0
      - 6.0
      params:
        velocity_range:
          x:
          - -0.5
          - 0.5
          y:
          - -0.5
          - 0.5
          z:
          - -0.2
          - 0.2
          roll:
          - -0.52
          - 0.52
          pitch:
          - -0.52
          - 0.52
          yaw:
          - -0.78
          - 0.78
    randomize_rigid_body_mass:
      _target_: isaaclab.managers.EventTermCfg
      func: gear_sonic.envs.manager_env.mdp:randomize_rigid_body_mass
      mode: startup
      params:
        asset_cfg:
          _target_: isaaclab.managers.SceneEntityCfg
          name: robot
          body_names: .*wrist_yaw.*|torso_link
        mass_distribution_params:
        - 0.8
        - 2.5
        operation: scale
    _target_: gear_sonic.envs.manager_env.mdp.events.EventCfg
  curriculum:
    _target_: gear_sonic.envs.manager_env.mdp.curriculum.CurriculumCfg
  recorders:
    _target_: gear_sonic.envs.manager_env.mdp.recorders.RecordersCfg
  _target_: dry_native_config.DryTrackingEnvCfg
  config:
    num_envs: ${num_envs}
    env_spacing: 12.0
    decimation: 4
    episode_length_s: 10.0
    sim_dt: 0.005
    viewer_eye:
    - 4.5
    - 0.0
    - 6.0
    viewer_lookat:
    - 0.0
    - 0.0
    - 2.0
    render_results: false
    render_ego: false
    save_rendering_dir: ${experiment_dir}/renderings_training
    save_trajectory_dir: ${experiment_dir}/trajectories
    experiment_dir: ${experiment_dir}
    terrain_type: scene_usd
    scene_usd_path: STUDY/training/scheduled/phase-3/course.usda
    cameras:
      camera_attached_link: torso_link/head_link
      camera_pos_offset:
      - 0.09
      - 0.0
      - 0.43
      camera_rot_offset:
      - 1.0
      - 0.0
      - 0.0
      - 0.0
      camera_resolution:
      - 480
      - 640
      camera_focal_length: 1.88
      camera_focus_distance: 1.0
      camera_horizontal_aperture: 2.6035
      camera_vertical_aperture: 1.9526
      camera_clipping_range:
      - 0.05
      - 30.0
    object_mass: null
    table_offset: null
    eval_camera_offset:
    - 2
    - 2
    - 1
    action_transform_module_cfg: null
    action_transform_module_checkpoint: null
    meta_action_dim: null
    needs_policy_atm: true
    obs:
      obs_dict: {}
      obs_dims: {}
      group_obs_dims: {}
      group_obs_names: {}
    action_clip_value: 20.0
    robot:
      type: g1_model_12_dex
      algo_obs_dim_dict: {}
    rewards:
      num_critics: 1
    train_only_events:
    - push_robot
    - compliance_force_push
    terrain_training_profile: recovery
    terrain_orientation_hold_s: 0.0
    terrain_reward_variant: baseline
    terrain_residual_actor: true
use_manager_env: true
exp_base: ${hydra:runtime.choices.exp}
exp_var: test
actor_prop_history_length: 10
actor_actions_history_length: 10
critic_prop_history_length: 10
critic_actions_history_length: 10
resume: false
