| decimation: 4 |
| 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: generator |
| terrain_generator: |
| seed: null |
| curriculum: true |
| size: !!python/tuple |
| - 8.0 |
| - 8.0 |
| border_width: 20.0 |
| border_height: 1.0 |
| num_rows: 10 |
| num_cols: 20 |
| color_scheme: height |
| sub_terrains: |
| flat: |
| proportion: 0.2 |
| size: !!python/tuple |
| - 8.0 |
| - 8.0 |
| flat_patch_sampling: null |
| pyramid_stairs: |
| proportion: 0.2 |
| size: !!python/tuple |
| - 8.0 |
| - 8.0 |
| flat_patch_sampling: null |
| border_width: 1.0 |
| step_height_range: !!python/tuple |
| - 0.0 |
| - 0.1 |
| step_width: 0.3 |
| platform_width: 3.0 |
| holes: false |
| pyramid_stairs_inv: |
| proportion: 0.2 |
| size: !!python/tuple |
| - 8.0 |
| - 8.0 |
| flat_patch_sampling: null |
| border_width: 1.0 |
| step_height_range: !!python/tuple |
| - 0.0 |
| - 0.1 |
| step_width: 0.3 |
| platform_width: 3.0 |
| holes: false |
| hf_pyramid_slope: |
| proportion: 0.1 |
| size: !!python/tuple |
| - 8.0 |
| - 8.0 |
| flat_patch_sampling: null |
| slope_range: !!python/tuple |
| - 0.0 |
| - 1.0 |
| platform_width: 2.0 |
| inverted: false |
| border_width: 0.25 |
| horizontal_scale: 0.1 |
| vertical_scale: 0.005 |
| base_thickness_ratio: 1.0 |
| hf_pyramid_slope_inv: |
| proportion: 0.1 |
| size: !!python/tuple |
| - 8.0 |
| - 8.0 |
| flat_patch_sampling: null |
| slope_range: !!python/tuple |
| - 0.0 |
| - 1.0 |
| platform_width: 2.0 |
| inverted: true |
| border_width: 0.25 |
| horizontal_scale: 0.1 |
| vertical_scale: 0.005 |
| base_thickness_ratio: 1.0 |
| random_rough: |
| proportion: 0.1 |
| size: !!python/tuple |
| - 8.0 |
| - 8.0 |
| flat_patch_sampling: null |
| noise_range: !!python/tuple |
| - 0.02 |
| - 0.1 |
| noise_step: 0.02 |
| downsampled_scale: null |
| horizontal_scale: 0.1 |
| vertical_scale: 0.005 |
| base_thickness_ratio: 1.0 |
| border_width: 0.25 |
| wave_terrain: |
| proportion: 0.1 |
| size: !!python/tuple |
| - 8.0 |
| - 8.0 |
| flat_patch_sampling: null |
| amplitude_range: !!python/tuple |
| - 0.0 |
| - 0.2 |
| num_waves: 4 |
| horizontal_scale: 0.1 |
| vertical_scale: 0.005 |
| base_thickness_ratio: 0.25 |
| border_width: 0.25 |
| difficulty_range: !!python/tuple |
| - 0.0 |
| - 1.0 |
| add_lights: true |
| env_spacing: 2.0 |
| max_init_terrain_level: 5 |
| num_envs: 4096 |
| entities: |
| robot: |
| init_state: |
| pos: !!python/tuple |
| - 0.0 |
| - 0.0 |
| - 0.278 |
| 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: |
| .*thigh_joint: 0.9 |
| .*calf_joint: -1.8 |
| .*R_hip_joint: 0.1 |
| .*L_hip_joint: -0.1 |
| joint_vel: |
| .*: 0.0 |
| spec_fn: !!python/name:mjlab.asset_zoo.robots.unitree_go1.go1_constants.get_spec '' |
| articulation: |
| actuators: !!python/tuple |
| - target_names_expr: !!python/tuple |
| - .*_hip_joint |
| - .*_thigh_joint |
| transmission_type: !!python/object/apply:mjlab.actuator.actuator.TransmissionType |
| - joint |
| armature: 0.004026312 |
| 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: 15.89524265323492 |
| damping: 1.0119225759919113 |
| effort_limit: 23.7 |
| - target_names_expr: !!python/tuple |
| - .*_calf_joint |
| transmission_type: !!python/object/apply:mjlab.actuator.actuator.TransmissionType |
| - joint |
| armature: 0.009059202 |
| 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: 35.76429596977857 |
| damping: 2.2768257959818006 |
| effort_limit: 35.55 |
| 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: |
| ^[FR][LR]_foot_collision$: 6 |
| .*_collision: 1 |
| priority: |
| ^[FR][LR]_foot_collision$: 1 |
| friction: |
| ^[FR][LR]_foot_collision$: !!python/tuple |
| - 1 |
| - 0.005 |
| - 0.0005 |
| solref: !!python/tuple |
| - 0.01 |
| - 1 |
| solimp: null |
| margin: null |
| gap: null |
| solmix: null |
| disable_other_geoms: true |
| sensors: !!python/tuple |
| - name: terrain_scan |
| frame: |
| type: body |
| name: trunk |
| entity: robot |
| pattern: |
| size: !!python/tuple |
| - 1.6 |
| - 1.0 |
| resolution: 0.1 |
| direction: !!python/tuple |
| - 0.0 |
| - 0.0 |
| - -1.0 |
| ray_alignment: yaw |
| max_distance: 5.0 |
| exclude_parent_body: true |
| include_geom_groups: !!python/tuple |
| - 0 |
| debug_vis: true |
| viz: |
| hit_color: !!python/tuple |
| - 0.0 |
| - 1.0 |
| - 0.0 |
| - 0.8 |
| miss_color: !!python/tuple |
| - 1.0 |
| - 0.0 |
| - 0.0 |
| - 0.4 |
| hit_sphere_color: !!python/tuple |
| - 0.0 |
| - 1.0 |
| - 1.0 |
| - 1.0 |
| hit_sphere_radius: 0.5 |
| show_rays: false |
| show_normals: false |
| normal_color: !!python/tuple |
| - 1.0 |
| - 1.0 |
| - 0.0 |
| - 1.0 |
| normal_length: 5.0 |
| - name: foot_height_scan |
| frame: !!python/tuple |
| - type: site |
| name: FR |
| entity: robot |
| - type: site |
| name: FL |
| entity: robot |
| - type: site |
| name: RR |
| entity: robot |
| - type: site |
| name: RL |
| entity: robot |
| pattern: |
| rings: !!python/tuple |
| - radius: 0.04 |
| num_samples: 4 |
| 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: geom |
| pattern: !!python/tuple |
| - FR_foot_collision |
| - FL_foot_collision |
| - RR_foot_collision |
| - RL_foot_collision |
| 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: trunk |
| entity: robot |
| exclude: !!python/tuple [] |
| secondary: |
| mode: subtree |
| pattern: trunk |
| 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 |
| - name: thigh_ground_touch |
| primary: |
| mode: geom |
| pattern: !!python/tuple |
| - FR_thigh_collision1 |
| - FR_thigh_collision2 |
| - FR_thigh_collision3 |
| - FL_thigh_collision1 |
| - FL_thigh_collision2 |
| - FL_thigh_collision3 |
| - RR_thigh_collision1 |
| - RR_thigh_collision2 |
| - RR_thigh_collision3 |
| - RL_thigh_collision1 |
| - RL_thigh_collision2 |
| - RL_thigh_collision3 |
| entity: robot |
| exclude: !!python/tuple [] |
| secondary: |
| mode: body |
| pattern: terrain |
| entity: null |
| 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 |
| - name: shank_ground_touch |
| primary: |
| mode: geom |
| pattern: !!python/tuple |
| - FR_calf_collision1 |
| - FR_calf_collision2 |
| - FL_calf_collision1 |
| - FL_calf_collision2 |
| - RR_calf_collision1 |
| - RR_calf_collision2 |
| - RL_calf_collision1 |
| - RL_calf_collision2 |
| entity: robot |
| exclude: !!python/tuple [] |
| secondary: |
| mode: body |
| pattern: terrain |
| entity: null |
| 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 |
| - name: trunk_ground_touch |
| primary: |
| mode: geom |
| pattern: !!python/tuple |
| - trunk_collision |
| - head_collision |
| entity: robot |
| exclude: !!python/tuple [] |
| secondary: |
| mode: body |
| pattern: terrain |
| entity: null |
| 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 |
| height_scan: |
| func: &id007 !!python/name:mjlab.envs.mdp.observations.height_scan '' |
| params: |
| sensor_name: terrain_scan |
| noise: |
| operation: add |
| _tensor_cache: {} |
| n_min: -0.1 |
| n_max: 0.1 |
| clip: null |
| scale: 0.2 |
| 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 |
| height_scan: |
| func: *id007 |
| params: |
| sensor_name: terrain_scan |
| noise: null |
| clip: null |
| scale: 0.2 |
| 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: |
| .*_hip_joint: 0.3727530387083568 |
| .*_thigh_joint: 0.3727530387083568 |
| .*_calf_joint: 0.24850202580557115 |
| 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 |
| 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 |
| - trunk |
| 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 |
| foot_friction_slide: |
| func: &id008 !!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 |
| - FR_foot_collision |
| - FL_foot_collision |
| - RR_foot_collision |
| - RL_foot_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 |
| axes: |
| - 0 |
| ranges: !!python/tuple |
| - 0.3 |
| - 1.5 |
| shared_random: true |
| mode: startup |
| interval_range_s: null |
| is_global_time: false |
| min_step_count_between_reset: 0 |
| foot_friction_spin: |
| func: *id008 |
| 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 |
| - FR_foot_collision |
| - FL_foot_collision |
| - RR_foot_collision |
| - RL_foot_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 |
| distribution: log_uniform |
| axes: |
| - 1 |
| ranges: !!python/tuple |
| - 0.0001 |
| - 0.02 |
| shared_random: true |
| mode: startup |
| interval_range_s: null |
| is_global_time: false |
| min_step_count_between_reset: 0 |
| foot_friction_roll: |
| func: *id008 |
| 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 |
| - FR_foot_collision |
| - FL_foot_collision |
| - RR_foot_collision |
| - RL_foot_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 |
| distribution: log_uniform |
| axes: |
| - 2 |
| ranges: !!python/tuple |
| - 1.0e-05 |
| - 0.005 |
| shared_random: true |
| mode: startup |
| interval_range_s: null |
| is_global_time: false |
| min_step_count_between_reset: 0 |
| seed: 42 |
| sim: |
| nconmax: 35 |
| njmax: 1500 |
| ls_parallel: true |
| contact_sensor_maxmatch: 500 |
| mujoco: |
| timestep: 0.005 |
| integrator: implicitfast |
| impratio: 10 |
| cone: elliptic |
| jacobian: auto |
| solver: newton |
| iterations: 10 |
| tolerance: 1.0e-08 |
| ls_iterations: 20 |
| ls_tolerance: 0.01 |
| ccd_iterations: 500 |
| 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: 1.5 |
| fovy: null |
| elevation: -10.0 |
| azimuth: 90.0 |
| origin_type: !!python/object/apply:mjlab.viewer.viewer_config.OriginType |
| - 4 |
| entity_name: robot |
| body_name: trunk |
| 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 |
| - trunk |
| 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 |
| terrain_sensor_names: !!python/tuple |
| - terrain_scan |
| 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: |
| .*(FR|FL|RR|RL)_(hip|thigh)_joint.*: 0.05 |
| .*(FR|FL|RR|RL)_calf_joint.*: 0.1 |
| std_walking: |
| .*(FR|FL|RR|RL)_(hip|thigh)_joint.*: 0.3 |
| .*(FR|FL|RR|RL)_calf_joint.*: 0.6 |
| std_running: |
| .*(FR|FL|RR|RL)_(hip|thigh)_joint.*: 0.3 |
| .*(FR|FL|RR|RL)_calf_joint.*: 0.6 |
| 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 |
| - trunk |
| 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.0 |
| angular_momentum: |
| func: !!python/name:mjlab.tasks.velocity.mdp.rewards.angular_momentum_penalty '' |
| params: |
| sensor_name: robot/root_angmom |
| weight: 0.0 |
| 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 |
| - FR |
| - FL |
| - RR |
| - RL |
| 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 |
| - FR |
| - FL |
| - RR |
| - RL |
| 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: &id009 !!python/name:mjlab.tasks.velocity.mdp.rewards.self_collision_cost '' |
| params: |
| sensor_name: self_collision |
| weight: -0.1 |
| shank_collision: |
| func: *id009 |
| params: |
| sensor_name: shank_ground_touch |
| weight: -0.1 |
| trunk_head_collision: |
| func: *id009 |
| params: |
| sensor_name: trunk_ground_touch |
| weight: -0.1 |
| terminations: |
| time_out: |
| func: !!python/name:mjlab.envs.mdp.terminations.time_out '' |
| params: {} |
| time_out: true |
| out_of_terrain_bounds: |
| func: !!python/name:mjlab.tasks.velocity.mdp.terminations.out_of_terrain_bounds '' |
| params: {} |
| time_out: true |
| illegal_contact: |
| func: !!python/name:mjlab.tasks.velocity.mdp.terminations.illegal_contact '' |
| params: |
| sensor_name: thigh_ground_touch |
| 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: 0.2 |
| scale: 0.5 |
| curriculum: |
| terrain_levels: |
| func: !!python/name:mjlab.tasks.velocity.mdp.curriculums.terrain_levels_vel '' |
| params: |
| command_name: twist |
| 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 |
|
|