decimation: 25 scene: num_envs: 8192 env_spacing: 0.75 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: 0.75 max_init_terrain_level: null num_envs: 8192 entities: robot: init_state: pos: !!python/tuple - 0.0 - 0.0 - 0.5 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: null joint_vel: .*: 0.0 spec_fn: !!python/object/apply:functools.partial args: - &id001 !!python/name:wuji_mjlab.assets.robots.cyclops_finger.cyclops_finger_cfg._get_spec '' state: !!python/tuple - *id001 - !!python/tuple - !!python/object/apply:pathlib.PosixPath - / - scratch3 - lio011 - cyclops - mjlab_sim_cyclops_dexterous - src - wuji_mjlab - assets - robots - cyclops_finger - mjcf - cyclops_finger.xml - {} - null articulation: actuators: !!python/tuple - target_names_expr: !!python/tuple - prismatic_joint_d[1-3]_(center|left|right) transmission_type: !!python/object/apply:mjlab.actuator.actuator.TransmissionType - joint armature: null 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 command_field: null 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 [] object: init_state: pos: !!python/tuple - 0.0 - 0.002 - 0.77 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/object/apply:functools.partial args: - &id002 !!python/name:wuji_mjlab.assets.objects.inhand_object.object_cfg._get_spec '' state: !!python/tuple - *id002 - !!python/tuple - null - {} - null articulation: null sort_actuators: false lights: !!python/tuple [] cameras: !!python/tuple [] textures: !!python/tuple [] materials: !!python/tuple [] collisions: !!python/tuple [] sensors: !!python/tuple - name: tip_object_contact primary: mode: geom pattern: !!python/tuple - fingertip_sensor_(center|left|right)_col entity: robot exclude: !!python/tuple [] secondary: mode: geom pattern: cube entity: object exclude: !!python/tuple [] fields: !!python/tuple - found - force reduce: mindist num_slots: 1 secondary_policy: first track_air_time: false global_frame: false history_length: 0 debug: false - name: palm_object_contact primary: mode: body pattern: base_gripper entity: robot exclude: !!python/tuple [] secondary: mode: body pattern: cube entity: object exclude: !!python/tuple [] fields: !!python/tuple - force reduce: netforce num_slots: 1 secondary_policy: first track_air_time: false global_frame: false history_length: 0 debug: false - name: palm_object_found primary: mode: body pattern: !!python/tuple - base_gripper - proximal_link_(center|left|right) entity: robot exclude: !!python/tuple [] secondary: mode: body pattern: cube entity: object exclude: !!python/tuple [] fields: !!python/tuple - found reduce: mindist num_slots: 1 secondary_policy: first track_air_time: false global_frame: false history_length: 0 debug: false - name: distal_finger_object_found primary: mode: body pattern: !!python/tuple - distal_link_(center|left|right) entity: robot exclude: !!python/tuple [] secondary: mode: body pattern: cube entity: object exclude: !!python/tuple [] fields: !!python/tuple - found reduce: mindist num_slots: 1 secondary_policy: first track_air_time: false global_frame: false history_length: 0 debug: false - name: undesired_object_contact primary: mode: body pattern: !!python/tuple - base_link_(center|left|right) entity: robot exclude: !!python/tuple [] secondary: mode: body pattern: cube entity: object exclude: !!python/tuple [] fields: !!python/tuple - force reduce: netforce num_slots: 1 secondary_policy: first track_air_time: false global_frame: false history_length: 0 debug: false - name: robot_contact primary: mode: body pattern: !!python/tuple - distal_link_(center|left|right) entity: robot exclude: !!python/tuple [] secondary: null fields: !!python/tuple - force reduce: netforce num_slots: 1 secondary_policy: first track_air_time: false global_frame: false history_length: 0 debug: false - name: finger_collision primary: mode: geom pattern: !!python/tuple - fingerpad_sensor_(center|left|right)_col - fingertip_sensor_(center|left|right)_col - proximal_link_(center|left|right)_col - distal_link_(center|left|right)_col entity: robot exclude: !!python/tuple [] secondary: mode: subtree pattern: base_gripper 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: 5 debug: false extent: 0.8 spec_fn: null observations: policy: terms: noisy_joint_angles: func: &id003 !!python/name:wuji_mjlab.tasks.reorient.config.cyclops_finger.cyclops_finger_terms.actuator_pos_normalized '' params: {} noise: operation: add _tensor_cache: {} n_min: -0.06 n_max: 0.06 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: 3 flatten_history_dim: true qpos_error: func: &id004 !!python/name:wuji_mjlab.tasks.reorient.config.cyclops_finger.cyclops_finger_terms.actuator_pos_target_error '' 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: 3 flatten_history_dim: true cube_pos_in_tag: func: &id005 !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.cube_pos_in_tag '' params: injection_prob: 0.02 robot_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - base_gripper 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 noise: operation: add _tensor_cache: {} n_min: -0.008 n_max: 0.008 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: 3 flatten_history_dim: true cube_ori_error: func: &id006 !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.goal_rot_err_6d '' params: command_name: reorient_command object_cfg: name: object 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 robot_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - base_gripper 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 injection_prob: 0.02 noise: operation: add _tensor_cache: {} mean: 0.0 std: 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: 3 flatten_history_dim: true action_history: func: &id007 !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.previous_raw_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: 3 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: joint_angles: func: *id003 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: 3 flatten_history_dim: true qpos_error: func: *id004 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: 3 flatten_history_dim: true cube_pos_in_tag: func: *id005 params: robot_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - base_gripper 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 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: 3 flatten_history_dim: true cube_ori_error: func: *id006 params: command_name: reorient_command object_cfg: name: object 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 robot_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - base_gripper 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 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: 3 flatten_history_dim: true action_history: func: *id007 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: 3 flatten_history_dim: true true_joint_pos: func: *id003 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: 3 flatten_history_dim: true true_joint_vel: func: !!python/name:wuji_mjlab.tasks.reorient.config.cyclops_finger.cyclops_finger_terms.actuator_vel '' 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: 3 flatten_history_dim: true fingertip_positions: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.body_pos_rel '' params: asset_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - distal_link_(center|left|right) 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 offset: !!python/tuple - 0.0 - 0.0 - 0.5 noise: null clip: null scale: 5.0 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: 3 flatten_history_dim: true cube_pos_in_tag_clean: func: *id005 params: robot_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - base_gripper 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 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 cube_ori_error_clean: func: *id006 params: command_name: reorient_command object_cfg: name: object 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 robot_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - base_gripper 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 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 cube_linvel: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.root_lin_vel_w '' params: asset_cfg: name: object 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 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 cube_angvel: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.root_ang_vel_w '' params: asset_cfg: name: object 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 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 pert_dir: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.perturbation_direction '' 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 pert_velocity: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.perturbation_velocity '' 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 state_progress: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.command_state_progress '' params: command_name: reorient_command 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 cage_counter: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.cage_counter_progress '' params: max_outside_steps: 10 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 dr_params: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.dr_params_privileged '' params: robot_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: !!python/tuple - fingerpad_sensor_(center|left|right)_col - fingertip_sensor_(center|left|right)_col - proximal_link_(center|left|right)_col - distal_link_(center|left|right)_col 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: !!python/tuple - .* 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 object_cfg: name: object joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - cube body_ids: !!python/object/apply:builtins.slice - null - null - null geom_names: !!python/tuple - cube 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 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 palm_rot_6d: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.observations.palm_rot_6d_w '' 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 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: 1.0 offset: 0.0 preserve_order: false use_default_offset: true action_scale: 0.5 ema_alpha: 0.5 warmup_time_s: 0.4 events: reset_robot_pose: func: !!python/name:mjlab.envs.mdp.events.reset_root_state_uniform '' params: pose_range: roll: !!python/tuple - -0.1745 - 0.1745 pitch: !!python/tuple - -0.1745 - 0.1745 yaw: !!python/tuple - -0.1745 - 0.1745 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 mode: reset interval_range_s: null is_global_time: false min_step_count_between_reset: 0 reset_robot_joints: func: !!python/name:wuji_mjlab.tasks.reorient.config.cyclops_finger.cyclops_finger_terms.reset_actuated_joints_uniform '' 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 position_range: prismatic_joint_d1_.*: !!python/tuple - 0.01 - 0.022 prismatic_joint_d2_.*: !!python/tuple - 0.01 - 0.022 prismatic_joint_d3_.*: !!python/tuple - 0.006 - 0.0135 velocity_range: {} use_default_offset: true operation: abs mode: reset interval_range_s: null is_global_time: false min_step_count_between_reset: 0 reset_object_pose: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.event_impl.episode.reset_object_orientation '' params: pos_noise: 0.01 asset_cfg: name: object 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 mode: reset interval_range_s: null is_global_time: false min_step_count_between_reset: 0 object_disturbance_force: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.event_impl.episode.apply_velocity_disturbance '' params: min_speed: 0.05 max_speed: 0.15 warmup_time_s: 3.0 warmup_frac: 0.05 rampup_frac: 0.8 adaptive_curriculum_term: adaptive_episode mode: interval interval_range_s: !!python/tuple - 0.6 - 1.8 is_global_time: false min_step_count_between_reset: 0 reset_object_disturbance_force: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.event_impl.episode.reset_disturbance_caches '' params: {} mode: reset interval_range_s: null is_global_time: false min_step_count_between_reset: 0 reset_joint_acc_cache: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.event_impl.episode.reset_joint_acc_cache '' params: {} mode: reset interval_range_s: null is_global_time: false min_step_count_between_reset: 0 object_com: func: !!python/name:mjlab.envs.mdp.dr.body.body_com_offset '' params: asset_cfg: name: object joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - cube 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: !!python/tuple - -0.003 - 0.003 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 robot_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 - fingerpad_sensor_(center|left|right)_col - fingertip_sensor_(center|left|right)_col - proximal_link_(center|left|right)_col - distal_link_(center|left|right)_col 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: scale ranges: !!python/tuple - 0.7 - 1.3 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 contact_params_palm_thumb: func: &id008 !!python/name:wuji_mjlab.tasks.reorient.mdp.event_impl.randomization.randomize_contact_params '' params: robot_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 - fingerpad_sensor_(center|left|right)_col - fingertip_sensor_(center|left|right)_col - proximal_link_(center|left|right)_col - distal_link_(center|left|right)_col 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 solref_timeconst_range: !!python/tuple - 1.0 - 2.0 solref_dampratio_range: !!python/tuple - 0.8 - 1.2 solimp_width_range: !!python/tuple - 2.0 - 5.0 solimp_dmin_range: !!python/tuple - 0.5 - 1.0 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 contact_params_fingers: func: *id008 params: robot_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 - (proximal|distal)_link_(center|left|right)_col 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 solref_timeconst_range: !!python/tuple - 1.0 - 2.0 solref_dampratio_range: !!python/tuple - 0.8 - 1.2 solimp_width_range: !!python/tuple - 1.0 - 2.0 solimp_dmin_range: !!python/tuple - 0.5 - 1.0 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 object_size: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.event_impl.randomization.randomize_geom_size_uniform '' params: asset_cfg: name: object 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 - cube 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 scale_range: !!python/tuple - 0.85 - 1.15 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 object_mass: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.event_impl.randomization.randomize_body_mass_and_inertia '' params: asset_cfg: name: object joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - cube 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 scale_range: !!python/tuple - 0.4 - 1.6 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 pd_gains: func: !!python/name:mjlab.envs.mdp.dr.actuator.pd_gains '' 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 kp_range: !!python/tuple - 0.75 - 1.5 kd_range: !!python/tuple - 0.5 - 2.0 distribution: log_uniform operation: scale mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 robot_dof_damping: func: !!python/name:mjlab.envs.mdp.dr.joint.joint_damping '' params: asset_cfg: name: robot joint_names: .* 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 operation: scale distribution: log_uniform ranges: !!python/tuple - 0.3 - 3.0 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 robot_dof_armature: func: !!python/name:mjlab.envs.mdp.dr.joint.joint_armature '' params: asset_cfg: name: robot joint_names: .* 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 operation: scale ranges: !!python/tuple - 0.75 - 1.3 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 robot_dof_frictionloss: func: !!python/name:mjlab.envs.mdp.dr.joint.joint_friction '' params: asset_cfg: name: robot joint_names: .* 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 operation: scale ranges: !!python/tuple - 0.5 - 2.0 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 encoder_bias: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.event_impl.randomization.randomize_encoder_bias '' params: asset_cfg: name: robot joint_names: .* 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.01 - 0.01 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 robot_link_inertia: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.event_impl.randomization.randomize_body_inertia '' params: asset_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: .* 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 scale_range: !!python/tuple - 0.4 - 1.5 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 robot_link_mass: func: !!python/name:mjlab.envs.mdp.dr.body.body_mass '' params: asset_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: .* 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: scale ranges: !!python/tuple - 0.4 - 1.5 mode: startup interval_range_s: null is_global_time: false min_step_count_between_reset: 0 seed: 42 sim: nconmax: 32 njmax: 256 ls_parallel: true contact_sensor_maxmatch: 64 mujoco: timestep: 0.001 integrator: implicitfast impratio: 1.0 cone: pyramidal jacobian: auto solver: newton iterations: 30 tolerance: 1.0e-10 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: 0.5 fovy: null elevation: -18.0 azimuth: 90.0 origin_type: !!python/object/apply:mjlab.viewer.viewer_config.OriginType - 4 entity_name: robot body_name: base_gripper env_idx: 0 max_extra_envs: 2 enable_reflections: true enable_shadows: true height: 240 width: 320 episode_length_s: 50.0 rewards: orientation_alignment: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.rewards.orientation_alignment '' params: command_name: reorient_command margin: 3.141592653589793 bound: 0.2 weight: 30.0 hand_pose: func: !!python/name:wuji_mjlab.tasks.reorient.config.cyclops_finger.cyclops_finger_terms.actuator_pose_penalty '' params: {} weight: 0.2 action_rate: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.rewards.action_rate_combined '' params: {} weight: -0.5 torque: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.rewards.torque_penalty '' params: {} weight: 0 tip_slide: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.rewards.tip_slide_penalty '' params: robot_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 - touch_site_fingertip_(center|left|right) 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 sensor_cfg: name: tip_object_contact 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 contact_threshold: 0.0 weight: -0.3 cage_escape: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.cage.CageEscapePenalty '' params: robot_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - base_gripper - base_link_(center|left|right) - c_link_(center|left|right) - proximal_link_(center|left|right) - distal_link_(center|left|right) 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 margin: 0.02 weight: -100.0 finger_collision: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.rewards.finger_self_collision_penalty '' params: sensor_cfg: name: finger_collision 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 weight: -1.0 hold_escalation: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.rewards.hold_escalation '' params: command_name: reorient_command weight: 11.4 palm_detach: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.rewards.palm_detach_reward '' params: {} weight: 0.5 terminations: time_out: func: !!python/name:mjlab.envs.mdp.terminations.time_out '' params: {} time_out: true cage_drop: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.cage.cage_drop '' params: max_outside_steps: 10 time_out: false commands: reorient_command: resampling_time_range: !!python/tuple - 1000000.0 - 1000000.0 debug_vis: false entity_name: object success_threshold: 0.2 success_hold_steps: 5 goal_switch_delay: 20 min_goal_interval: 0.0 robot_entity_name: robot palm_body_pattern: base_gripper curriculum: success_curriculum: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.curriculums.reorient_success_curriculum '' params: command_name: reorient_command count_threshold: 3 delta_per_loop: 0.08 adaptive_episode: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.curriculums.adaptive_episode_curriculum '' params: target_steps: 800 inc_rate: 0.1 dec_rate: 0.2 min_scale: 0.05 drop_gamma: 1.0 metrics: action_delta_rms: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.action_delta_rms '' params: {} per_substep: false reduce: mean action_jerk_rms: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.action_jerk_rms '' params: {} per_substep: false reduce: mean cage_escape_frequency: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.cage_escape_frequency '' params: {} per_substep: false reduce: mean fingertip_contact_count: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.fingertip_contact_count '' params: sensor_cfg: name: tip_object_contact 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 per_substep: false reduce: mean torque_saturation_ratio: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.torque_saturation_ratio '' 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: !!python/tuple - .* 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 per_substep: false reduce: mean joint_acceleration_rms: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.joint_acceleration_rms '' 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 per_substep: false reduce: mean joint_vel_rms: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.joint_vel_rms '' 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 per_substep: false reduce: mean cube_height_above_palm: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.cube_height_above_palm '' params: robot_cfg: name: robot joint_names: null joint_ids: !!python/object/apply:builtins.slice - null - null - null body_names: !!python/tuple - base_gripper 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 per_substep: false reduce: mean finger_collision_frequency: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.finger_collision_frequency '' params: sensor_cfg: name: finger_collision 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 per_substep: false reduce: mean cube_survival_steps: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.cube_survival_steps '' params: {} per_substep: false reduce: mean success_interval: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.success_interval '' params: command_name: reorient_command per_substep: false reduce: mean goal_reach_count: func: !!python/name:wuji_mjlab.tasks.reorient.mdp.metrics.curriculum_progress '' params: command_name: reorient_command per_substep: false reduce: mean recorders: {} is_finite_horizon: false auto_reset: true scale_rewards_by_dt: true