| 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 |
|
|