decimation: 2 scene: num_envs: 4096 env_spacing: 2.0 terrain: init_state: pos: !!python/tuple - 0.0 - 0.0 - 0.0 rot: !!python/tuple - 1.0 - 0.0 - 0.0 - 0.0 lin_vel: !!python/tuple - 0.0 - 0.0 - 0.0 ang_vel: !!python/tuple - 0.0 - 0.0 - 0.0 joint_pos: .*: 0.0 joint_vel: .*: 0.0 spec_fn: !!python/name:mjlab.entity.entity.%3Clambda%3E '' articulation: null sort_actuators: false lights: !!python/tuple - name: sun body: world mode: fixed target: null type: directional castshadow: true pos: !!python/tuple - 0.0 - 0.0 - 1.5 dir: !!python/tuple - 0.0 - 0.0 - -1.0 cutoff: 45.0 exponent: 10.0 cameras: !!python/tuple [] textures: !!python/tuple - name: groundplane type: 2d builtin: checker rgb1: !!python/tuple - 0.2 - 0.3 - 0.4 rgb2: !!python/tuple - 0.1 - 0.2 - 0.3 width: 300 height: 300 mark: edge markrgb: !!python/tuple - 0.8 - 0.8 - 0.8 materials: !!python/tuple - name: groundplane rgba: !!python/tuple - 1.0 - 1.0 - 1.0 - 1.0 texuniform: true texrepeat: !!python/tuple - 4.0 - 4.0 reflectance: 0.2 texture: groundplane geom_names_expr: !!python/tuple - terrain$ collisions: !!python/tuple [] terrain_type: plane terrain_generator: null env_spacing: 2.0 max_init_terrain_level: 5 num_envs: 4096 entities: robot: init_state: pos: !!python/tuple - 0 - 0 - 0.76 rot: !!python/tuple - 1.0 - 0.0 - 0.0 - 0.0 lin_vel: !!python/tuple - 0.0 - 0.0 - 0.0 ang_vel: !!python/tuple - 0.0 - 0.0 - 0.0 joint_pos: .*_hip_pitch_joint: -0.312 .*_knee_joint: 0.669 .*_ankle_pitch_joint: -0.363 .*_elbow_joint: 0.6 left_shoulder_roll_joint: 0.2 left_shoulder_pitch_joint: 0.2 right_shoulder_roll_joint: -0.2 right_shoulder_pitch_joint: 0.2 joint_vel: .*: 0.0 spec_fn: !!python/name:mjlab.asset_zoo.robots.unitree_g1.g1_constants.get_spec '' articulation: actuators: !!python/tuple - target_names_expr: !!python/tuple - .*_elbow_joint - .*_shoulder_pitch_joint - .*_shoulder_roll_joint - .*_shoulder_yaw_joint - .*_wrist_roll_joint transmission_type: !!python/object/apply:mjlab.actuator.actuator.TransmissionType - joint armature: 0.003609725 frictionloss: null viscous_damping: null delay_min_lag: 0 delay_max_lag: 0 delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true stiffness: 14.25062309787429 damping: 0.907222843292423 effort_limit: 25.0 - target_names_expr: !!python/tuple - .*_hip_pitch_joint - .*_hip_yaw_joint - waist_yaw_joint transmission_type: !!python/object/apply:mjlab.actuator.actuator.TransmissionType - joint armature: 0.01017752004132231 frictionloss: null viscous_damping: null delay_min_lag: 0 delay_max_lag: 0 delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true stiffness: 40.17923863450712 damping: 2.557889775413375 effort_limit: 88.0 - target_names_expr: !!python/tuple - .*_hip_roll_joint - .*_knee_joint transmission_type: !!python/object/apply:mjlab.actuator.actuator.TransmissionType - joint armature: 0.025101924999999997 frictionloss: null viscous_damping: null delay_min_lag: 0 delay_max_lag: 0 delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true stiffness: 99.09842777666111 damping: 6.308801853496639 effort_limit: 139.0 - target_names_expr: !!python/tuple - .*_wrist_pitch_joint - .*_wrist_yaw_joint transmission_type: !!python/object/apply:mjlab.actuator.actuator.TransmissionType - joint armature: 0.00425 frictionloss: null viscous_damping: null delay_min_lag: 0 delay_max_lag: 0 delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true stiffness: 16.77832748089279 damping: 1.06814150219 effort_limit: 5.0 - target_names_expr: !!python/tuple - waist_pitch_joint - waist_roll_joint transmission_type: !!python/object/apply:mjlab.actuator.actuator.TransmissionType - joint armature: 0.00721945 frictionloss: null viscous_damping: null delay_min_lag: 0 delay_max_lag: 0 delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true stiffness: 28.50124619574858 damping: 1.814445686584846 effort_limit: 50.0 - target_names_expr: !!python/tuple - .*_ankle_pitch_joint - .*_ankle_roll_joint transmission_type: !!python/object/apply:mjlab.actuator.actuator.TransmissionType - joint armature: 0.00721945 frictionloss: null viscous_damping: null delay_min_lag: 0 delay_max_lag: 0 delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true stiffness: 28.50124619574858 damping: 1.814445686584846 effort_limit: 50.0 soft_joint_pos_limit_factor: 0.9 sort_actuators: false lights: !!python/tuple [] cameras: !!python/tuple [] textures: !!python/tuple [] materials: !!python/tuple [] collisions: !!python/tuple - geom_names_expr: !!python/tuple - .*_collision contype: 1 conaffinity: 1 condim: ^(left|right)_foot[1-7]_collision$: 3 .*_collision: 1 priority: ^(left|right)_foot[1-7]_collision$: 1 friction: ^(left|right)_foot[1-7]_collision$: !!python/tuple - 0.6 solref: null solimp: null margin: null gap: null solmix: null disable_other_geoms: true sensors: !!python/tuple - name: foot_height_scan frame: !!python/tuple - type: site name: left_foot entity: robot - type: site name: right_foot entity: robot pattern: rings: !!python/tuple - radius: 0.03 num_samples: 6 include_center: true direction: !!python/tuple - 0.0 - 0.0 - -1.0 ray_alignment: yaw max_distance: 1.0 exclude_parent_body: true include_geom_groups: !!python/tuple - 0 debug_vis: true viz: hit_color: !!python/tuple - 1.0 - 0.0 - 1.0 - 0.8 miss_color: !!python/tuple - 1.0 - 0.0 - 0.0 - 0.4 hit_sphere_color: !!python/tuple - 1.0 - 0.0 - 1.0 - 1.0 hit_sphere_radius: 0.5 show_rays: true show_normals: false normal_color: !!python/tuple - 1.0 - 1.0 - 0.0 - 1.0 normal_length: 5.0 reduction: min - name: feet_ground_contact primary: mode: subtree pattern: ^(left_ankle_roll_link|right_ankle_roll_link)$ entity: robot exclude: !!python/tuple [] secondary: mode: body pattern: terrain entity: null exclude: !!python/tuple [] fields: !!python/tuple - found - force reduce: netforce num_slots: 1 secondary_policy: first track_air_time: true global_frame: false history_length: 0 debug: false - name: self_collision primary: mode: subtree pattern: pelvis entity: robot exclude: !!python/tuple [] secondary: mode: subtree pattern: pelvis entity: robot exclude: !!python/tuple [] fields: !!python/tuple - found - force reduce: none num_slots: 1 secondary_policy: first track_air_time: false global_frame: false history_length: 4 debug: false extent: 2.0 spec_fn: null observations: actor: terms: base_lin_vel: func: &id001 !!python/name:mjlab.envs.mdp.observations.builtin_sensor '' params: sensor_name: robot/imu_lin_vel noise: operation: add _tensor_cache: {} n_min: -0.5 n_max: 0.5 clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true base_ang_vel: func: *id001 params: sensor_name: robot/imu_ang_vel noise: operation: add _tensor_cache: {} n_min: -0.2 n_max: 0.2 clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true projected_gravity: func: &id002 !!python/name:mjlab.envs.mdp.observations.projected_gravity '' params: {} noise: operation: add _tensor_cache: {} n_min: -0.05 n_max: 0.05 clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true joint_pos: func: &id003 !!python/name:mjlab.envs.mdp.observations.joint_pos_rel '' params: {} noise: operation: add _tensor_cache: {} n_min: -0.01 n_max: 0.01 clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true joint_vel: func: &id004 !!python/name:mjlab.envs.mdp.observations.joint_vel_rel '' params: {} noise: operation: add _tensor_cache: {} n_min: -1.5 n_max: 1.5 clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true actions: func: &id005 !!python/name:mjlab.envs.mdp.observations.last_action '' params: {} noise: null clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true command: func: &id006 !!python/name:mjlab.envs.mdp.observations.generated_commands '' params: command_name: twist noise: null clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true concatenate_terms: true concatenate_dim: -1 enable_corruption: true history_length: null flatten_history_dim: true nan_policy: disabled nan_check_per_term: true critic: terms: base_lin_vel: func: *id001 params: sensor_name: robot/imu_lin_vel noise: operation: add _tensor_cache: {} n_min: -0.5 n_max: 0.5 clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true base_ang_vel: func: *id001 params: sensor_name: robot/imu_ang_vel noise: operation: add _tensor_cache: {} n_min: -0.2 n_max: 0.2 clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true projected_gravity: func: *id002 params: {} noise: operation: add _tensor_cache: {} n_min: -0.05 n_max: 0.05 clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true joint_pos: func: *id003 params: {} noise: operation: add _tensor_cache: {} n_min: -0.01 n_max: 0.01 clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true joint_vel: func: *id004 params: {} noise: operation: add _tensor_cache: {} n_min: -1.5 n_max: 1.5 clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true actions: func: *id005 params: {} noise: null clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true command: func: *id006 params: command_name: twist noise: null clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true foot_height: func: !!python/name:mjlab.tasks.velocity.mdp.observations.foot_height '' params: sensor_name: foot_height_scan noise: null clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true foot_air_time: func: !!python/name:mjlab.tasks.velocity.mdp.observations.foot_air_time '' params: sensor_name: feet_ground_contact noise: null clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true foot_contact: func: !!python/name:mjlab.tasks.velocity.mdp.observations.foot_contact '' params: sensor_name: feet_ground_contact noise: null clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true foot_contact_forces: func: !!python/name:mjlab.tasks.velocity.mdp.observations.foot_contact_forces '' params: sensor_name: feet_ground_contact noise: null clip: null scale: null delay_min_lag: 0 delay_max_lag: 0 delay_per_env: true delay_hold_prob: 0.0 delay_update_period: 0 delay_per_env_phase: true history_length: 0 flatten_history_dim: true concatenate_terms: true concatenate_dim: -1 enable_corruption: false history_length: null flatten_history_dim: true nan_policy: disabled nan_check_per_term: true actions: joint_pos: entity_name: robot clip: null transmission_type: !!python/object/apply:mjlab.actuator.actuator.TransmissionType - joint actuator_names: !!python/tuple - .* scale: .*_elbow_joint: 0.43857731392336724 .*_shoulder_pitch_joint: 0.43857731392336724 .*_shoulder_roll_joint: 0.43857731392336724 .*_shoulder_yaw_joint: 0.43857731392336724 .*_wrist_roll_joint: 0.43857731392336724 .*_hip_pitch_joint: 0.5475464629911068 .*_hip_yaw_joint: 0.5475464629911068 waist_yaw_joint: 0.5475464629911068 .*_hip_roll_joint: 0.35066146637882434 .*_knee_joint: 0.35066146637882434 .*_wrist_pitch_joint: 0.07450087032950714 .*_wrist_yaw_joint: 0.07450087032950714 waist_pitch_joint: 0.43857731392336724 waist_roll_joint: 0.43857731392336724 .*_ankle_pitch_joint: 0.43857731392336724 .*_ankle_roll_joint: 0.43857731392336724 offset: 0.0 preserve_order: false use_default_offset: true events: reset_base: func: !!python/name:mjlab.envs.mdp.events.reset_root_state_uniform '' params: pose_range: x: !!python/tuple - -0.5 - 0.5 y: !!python/tuple - -0.5 - 0.5 z: !!python/tuple - 0.01 - 0.05 yaw: !!python/tuple - -3.14 - 3.14 velocity_range: {} mode: reset interval_range_s: null is_global_time: false min_step_count_between_reset: 0 reset_robot_joints: func: !!python/name:mjlab.envs.mdp.events.reset_joints_by_offset '' params: position_range: !!python/tuple - 0.0 - 0.0 velocity_range: !!python/tuple - 0.0 - 0.0 asset_cfg: name: robot joint_names: !!python/tuple - .* joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: null body_ids: !!python/object/apply:builtins.slice - null - null - null geom_names: null geom_ids: !!python/object/apply:builtins.slice - null - null - null site_names: null site_ids: !!python/object/apply:builtins.slice - null - null - null actuator_names: null actuator_ids: !!python/object/apply:builtins.slice - null - null - null tendon_names: null tendon_ids: !!python/object/apply:builtins.slice - null - null - null camera_names: null camera_ids: !!python/object/apply:builtins.slice - null - null - null light_names: null light_ids: !!python/object/apply:builtins.slice - null - null - null material_names: null material_ids: !!python/object/apply:builtins.slice - null - null - null pair_names: null pair_ids: !!python/object/apply:builtins.slice - null - null - null preserve_order: false mode: reset interval_range_s: null is_global_time: false min_step_count_between_reset: 0 push_robot: func: !!python/name:mjlab.envs.mdp.events.push_by_setting_velocity '' params: velocity_range: x: !!python/tuple - -0.5 - 0.5 y: !!python/tuple - -0.5 - 0.5 z: !!python/tuple - -0.4 - 0.4 roll: !!python/tuple - -0.52 - 0.52 pitch: !!python/tuple - -0.52 - 0.52 yaw: !!python/tuple - -0.78 - 0.78 mode: interval interval_range_s: !!python/tuple - 1.0 - 3.0 is_global_time: false min_step_count_between_reset: 0 foot_friction: func: !!python/name:mjlab.envs.mdp.dr.geom.geom_friction '' params: asset_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: null body_ids: !!python/object/apply:builtins.slice - null - null - null geom_names: !!python/tuple - left_foot1_collision - left_foot2_collision - left_foot3_collision - left_foot4_collision - left_foot5_collision - left_foot6_collision - left_foot7_collision - right_foot1_collision - right_foot2_collision - right_foot3_collision - right_foot4_collision - right_foot5_collision - right_foot6_collision - right_foot7_collision geom_ids: !!python/object/apply:builtins.slice - null - null - null site_names: null site_ids: !!python/object/apply:builtins.slice - null - null - null actuator_names: null actuator_ids: !!python/object/apply:builtins.slice - null - null - null tendon_names: null tendon_ids: !!python/object/apply:builtins.slice - null - null - null camera_names: null camera_ids: !!python/object/apply:builtins.slice - null - null - null light_names: null light_ids: !!python/object/apply:builtins.slice - null - null - null material_names: null material_ids: !!python/object/apply:builtins.slice - null - null - null pair_names: null pair_ids: !!python/object/apply:builtins.slice - null - null - null preserve_order: false operation: abs ranges: !!python/tuple - 0.3 - 1.2 shared_random: true mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 encoder_bias: func: !!python/name:mjlab.envs.mdp.dr.joint.encoder_bias '' params: asset_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: null body_ids: !!python/object/apply:builtins.slice - null - null - null geom_names: null geom_ids: !!python/object/apply:builtins.slice - null - null - null site_names: null site_ids: !!python/object/apply:builtins.slice - null - null - null actuator_names: null actuator_ids: !!python/object/apply:builtins.slice - null - null - null tendon_names: null tendon_ids: !!python/object/apply:builtins.slice - null - null - null camera_names: null camera_ids: !!python/object/apply:builtins.slice - null - null - null light_names: null light_ids: !!python/object/apply:builtins.slice - null - null - null material_names: null material_ids: !!python/object/apply:builtins.slice - null - null - null pair_names: null pair_ids: !!python/object/apply:builtins.slice - null - null - null preserve_order: false bias_range: !!python/tuple - -0.015 - 0.015 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 base_com: func: !!python/name:mjlab.envs.mdp.dr.body.body_com_offset '' params: asset_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - torso_link body_ids: !!python/object/apply:builtins.slice - null - null - null geom_names: null geom_ids: !!python/object/apply:builtins.slice - null - null - null site_names: null site_ids: !!python/object/apply:builtins.slice - null - null - null actuator_names: null actuator_ids: !!python/object/apply:builtins.slice - null - null - null tendon_names: null tendon_ids: !!python/object/apply:builtins.slice - null - null - null camera_names: null camera_ids: !!python/object/apply:builtins.slice - null - null - null light_names: null light_ids: !!python/object/apply:builtins.slice - null - null - null material_names: null material_ids: !!python/object/apply:builtins.slice - null - null - null pair_names: null pair_ids: !!python/object/apply:builtins.slice - null - null - null preserve_order: false operation: add ranges: 0: !!python/tuple - -0.025 - 0.025 1: !!python/tuple - -0.025 - 0.025 2: !!python/tuple - -0.03 - 0.03 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 seed: 42 sim: nconmax: null njmax: 300 ls_parallel: true contact_sensor_maxmatch: 64 mujoco: timestep: 0.005 integrator: implicitfast impratio: 1.0 cone: pyramidal jacobian: auto solver: newton iterations: 10 tolerance: 1.0e-08 ls_iterations: 20 ls_tolerance: 0.01 ccd_iterations: 50 gravity: !!python/tuple - 0.0 - 0.0 - -9.81 disableflags: !!python/tuple [] enableflags: !!python/tuple [] nan_guard: enabled: false buffer_size: 100 output_dir: /tmp/mjlab/nan_dumps max_envs_to_dump: 5 viewer: lookat: !!python/tuple - 0.0 - 0.0 - 0.0 distance: 3.0 fovy: null elevation: -5.0 azimuth: 90.0 origin_type: !!python/object/apply:mjlab.viewer.viewer_config.OriginType - 4 entity_name: robot body_name: torso_link env_idx: 0 max_extra_envs: 2 enable_reflections: true enable_shadows: true height: 240 width: 320 episode_length_s: 20.0 rewards: track_linear_velocity: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.track_linear_velocity '' params: command_name: twist std: 0.5 weight: 2.0 track_angular_velocity: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.track_angular_velocity '' params: command_name: twist std: 0.7071067811865476 weight: 2.0 upright: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.upright '' params: std: 0.4472135954999579 asset_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - torso_link body_ids: !!python/object/apply:builtins.slice - null - null - null geom_names: null geom_ids: !!python/object/apply:builtins.slice - null - null - null site_names: null site_ids: !!python/object/apply:builtins.slice - null - null - null actuator_names: null actuator_ids: !!python/object/apply:builtins.slice - null - null - null tendon_names: null tendon_ids: !!python/object/apply:builtins.slice - null - null - null camera_names: null camera_ids: !!python/object/apply:builtins.slice - null - null - null light_names: null light_ids: !!python/object/apply:builtins.slice - null - null - null material_names: null material_ids: !!python/object/apply:builtins.slice - null - null - null pair_names: null pair_ids: !!python/object/apply:builtins.slice - null - null - null preserve_order: false weight: 1.0 pose: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.variable_posture '' params: asset_cfg: name: robot joint_names: !!python/tuple - .* joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: null body_ids: !!python/object/apply:builtins.slice - null - null - null geom_names: null geom_ids: !!python/object/apply:builtins.slice - null - null - null site_names: null site_ids: !!python/object/apply:builtins.slice - null - null - null actuator_names: null actuator_ids: !!python/object/apply:builtins.slice - null - null - null tendon_names: null tendon_ids: !!python/object/apply:builtins.slice - null - null - null camera_names: null camera_ids: !!python/object/apply:builtins.slice - null - null - null light_names: null light_ids: !!python/object/apply:builtins.slice - null - null - null material_names: null material_ids: !!python/object/apply:builtins.slice - null - null - null pair_names: null pair_ids: !!python/object/apply:builtins.slice - null - null - null preserve_order: false command_name: twist std_standing: .*: 0.05 std_walking: .*hip_pitch.*: 0.3 .*hip_roll.*: 0.15 .*hip_yaw.*: 0.15 .*knee.*: 0.35 .*ankle_pitch.*: 0.25 .*ankle_roll.*: 0.1 .*waist_yaw.*: 0.2 .*waist_roll.*: 0.08 .*waist_pitch.*: 0.1 .*shoulder_pitch.*: 0.15 .*shoulder_roll.*: 0.15 .*shoulder_yaw.*: 0.1 .*elbow.*: 0.15 .*wrist.*: 0.3 std_running: .*hip_pitch.*: 0.5 .*hip_roll.*: 0.2 .*hip_yaw.*: 0.2 .*knee.*: 0.6 .*ankle_pitch.*: 0.35 .*ankle_roll.*: 0.15 .*waist_yaw.*: 0.3 .*waist_roll.*: 0.08 .*waist_pitch.*: 0.2 .*shoulder_pitch.*: 0.5 .*shoulder_roll.*: 0.2 .*shoulder_yaw.*: 0.15 .*elbow.*: 0.35 .*wrist.*: 0.3 walking_threshold: 0.05 running_threshold: 1.5 weight: 1.0 body_ang_vel: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.body_angular_velocity_penalty '' params: asset_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - torso_link body_ids: !!python/object/apply:builtins.slice - null - null - null geom_names: null geom_ids: !!python/object/apply:builtins.slice - null - null - null site_names: null site_ids: !!python/object/apply:builtins.slice - null - null - null actuator_names: null actuator_ids: !!python/object/apply:builtins.slice - null - null - null tendon_names: null tendon_ids: !!python/object/apply:builtins.slice - null - null - null camera_names: null camera_ids: !!python/object/apply:builtins.slice - null - null - null light_names: null light_ids: !!python/object/apply:builtins.slice - null - null - null material_names: null material_ids: !!python/object/apply:builtins.slice - null - null - null pair_names: null pair_ids: !!python/object/apply:builtins.slice - null - null - null preserve_order: false weight: -0.05 angular_momentum: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.angular_momentum_penalty '' params: sensor_name: robot/root_angmom weight: -0.02 dof_pos_limits: func: !!python/name:mjlab.envs.mdp.rewards.joint_pos_limits '' params: {} weight: -1.0 action_rate_l2: func: !!python/name:mjlab.envs.mdp.rewards.action_rate_l2 '' params: {} weight: -0.1 air_time: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.feet_air_time '' params: sensor_name: feet_ground_contact threshold_min: 0.05 threshold_max: 0.5 command_name: twist command_threshold: 0.5 weight: 0.0 foot_clearance: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.feet_clearance '' params: target_height: 0.1 height_sensor_name: foot_height_scan command_name: twist command_threshold: 0.05 asset_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: null body_ids: !!python/object/apply:builtins.slice - null - null - null geom_names: null geom_ids: !!python/object/apply:builtins.slice - null - null - null site_names: !!python/tuple - left_foot - right_foot site_ids: !!python/object/apply:builtins.slice - null - null - null actuator_names: null actuator_ids: !!python/object/apply:builtins.slice - null - null - null tendon_names: null tendon_ids: !!python/object/apply:builtins.slice - null - null - null camera_names: null camera_ids: !!python/object/apply:builtins.slice - null - null - null light_names: null light_ids: !!python/object/apply:builtins.slice - null - null - null material_names: null material_ids: !!python/object/apply:builtins.slice - null - null - null pair_names: null pair_ids: !!python/object/apply:builtins.slice - null - null - null preserve_order: false weight: -2.0 foot_swing_height: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.feet_swing_height '' params: sensor_name: feet_ground_contact height_sensor_name: foot_height_scan target_height: 0.1 command_name: twist command_threshold: 0.05 weight: -0.25 foot_slip: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.feet_slip '' params: sensor_name: feet_ground_contact command_name: twist command_threshold: 0.05 asset_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: null body_ids: !!python/object/apply:builtins.slice - null - null - null geom_names: null geom_ids: !!python/object/apply:builtins.slice - null - null - null site_names: !!python/tuple - left_foot - right_foot site_ids: !!python/object/apply:builtins.slice - null - null - null actuator_names: null actuator_ids: !!python/object/apply:builtins.slice - null - null - null tendon_names: null tendon_ids: !!python/object/apply:builtins.slice - null - null - null camera_names: null camera_ids: !!python/object/apply:builtins.slice - null - null - null light_names: null light_ids: !!python/object/apply:builtins.slice - null - null - null material_names: null material_ids: !!python/object/apply:builtins.slice - null - null - null pair_names: null pair_ids: !!python/object/apply:builtins.slice - null - null - null preserve_order: false weight: -0.1 soft_landing: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.soft_landing '' params: sensor_name: feet_ground_contact command_name: twist command_threshold: 0.05 weight: -1.0e-05 self_collisions: func: !!python/name:mjlab.tasks.velocity.mdp.rewards.self_collision_cost '' params: sensor_name: self_collision force_threshold: 10.0 weight: -1.0 terminations: time_out: func: !!python/name:mjlab.envs.mdp.terminations.time_out '' params: {} time_out: true fell_over: func: !!python/name:mjlab.envs.mdp.terminations.bad_orientation '' params: limit_angle: 1.2217304763960306 time_out: false commands: twist: resampling_time_range: !!python/tuple - 3.0 - 8.0 debug_vis: true entity_name: robot heading_command: true heading_control_stiffness: 0.5 rel_standing_envs: 0.1 rel_heading_envs: 0.3 rel_world_envs: 0.0 rel_forward_envs: 0.2 init_velocity_prob: 0.0 ranges: lin_vel_x: !!python/tuple - -1.0 - 1.0 lin_vel_y: !!python/tuple - -1.0 - 1.0 ang_vel_z: !!python/tuple - -0.5 - 0.5 heading: !!python/tuple - -3.141592653589793 - 3.141592653589793 viz: z_offset: 1.15 scale: 0.5 curriculum: command_vel: func: !!python/name:mjlab.tasks.velocity.mdp.curriculums.commands_vel '' params: command_name: twist velocity_stages: - step: 0 lin_vel_x: !!python/tuple - -1.0 - 1.0 ang_vel_z: !!python/tuple - -0.5 - 0.5 - step: 120000 lin_vel_x: !!python/tuple - -1.5 - 2.0 ang_vel_z: !!python/tuple - -0.7 - 0.7 - step: 240000 lin_vel_x: !!python/tuple - -2.0 - 3.0 metrics: mean_action_acc: func: !!python/name:mjlab.envs.mdp.metrics.mean_action_acc '' params: {} per_substep: false reduce: mean recorders: {} is_finite_horizon: false auto_reset: true scale_rewards_by_dt: true