Instructions to use HorizonRobotics/HoloMotion_models with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- HoloMotion
How to use HorizonRobotics/HoloMotion_models with HoloMotion:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
| project_name: HoloMotionMotrackV1.2 | |
| experiment_name: training/motion_tracking/V1.3.0-RC4_8x8GPUs | |
| num_envs: 8192 | |
| headless: true | |
| motion_h5_path: ??? | |
| checkpoint: null | |
| num_processes: 64 | |
| main_process: true | |
| process_id: 0 | |
| timestamp: ${now:%Y%m%d_%H%M%S} | |
| base_dir: /horizon-bucket/robot_lab/users/bo07.zhang-labs/expr_output/HoloMotionMotionTracking | |
| experiment_dir: ${base_dir}/${project_name}/${timestamp}-${experiment_name} | |
| save_dir: ${experiment_dir}/.hydra | |
| output_dir: ${experiment_dir}/output | |
| experiment_save_dir: /horizon-bucket/robot_lab/users/bo07.zhang-labs/expr_output/HoloMotionMotionTracking/HoloMotionMotrackV1.2/20260512_023208-training/motion_tracking/V1.3.0-RC4_8x8GPUs | |
| _group_: | |
| enabled: false | |
| model_type: holomotion | |
| headless: false | |
| record_video: false | |
| video_width: 1280 | |
| video_height: 720 | |
| video_fps: 30 | |
| camera_tracking: true | |
| camera_height_offset: 0.3 | |
| camera_distance: 4.0 | |
| camera_azimuth: 150.0 | |
| camera_elevation: -20.0 | |
| robot_xml_path: null | |
| motion_npz_dir: null | |
| motion_npz_path: null | |
| ckpt_onnx_path: null | |
| ckpt_onnx_root_dir: null | |
| ckpt_onnx_names: null | |
| dump_npzs: true | |
| calc_per_clip_metrics: false | |
| generate_report: false | |
| metric_calculation: per_clip | |
| dof_mode: '23' | |
| failure_pos_err_thresh_m: 0.25 | |
| ray_actors_per_gpu: 16 | |
| ray_auto_reduce_actors_per_gpu: true | |
| ray_actor_startup_probe_timeout_s: 300 | |
| ray_multi_ckpt_mode: split | |
| use_gpu: true | |
| algo: | |
| _target_: holomotion.src.algo.ppo_tf.PPOTF | |
| _recursive_: false | |
| config: | |
| enable_online_eval: false | |
| num_learning_iterations: 10001 | |
| log_interval: 5 | |
| save_interval: 1000 | |
| export_policy: true | |
| onnx_name_suffix: null | |
| use_kv_cache: true | |
| eval_interval: null | |
| load_optimizer: true | |
| headless: ${headless} | |
| mixed_precision: null | |
| dynamo_backend: inductor | |
| init_at_random_ep_len: true | |
| num_steps_per_env: 32 | |
| num_learning_epochs: 3 | |
| num_mini_batches: 24 | |
| clip_param: 0.2 | |
| gamma: 0.99 | |
| lam: 0.95 | |
| value_loss_coef: 1.0 | |
| entropy_coef: 0.005 | |
| anneal_entropy: false | |
| zero_entropy_point: 1.0 | |
| max_grad_norm: 1.0 | |
| use_clipped_value_loss: true | |
| desired_kl: 0.01 | |
| init_noise_std: 1.0 | |
| optimizer_type: AdamW | |
| schedule: adaptive | |
| actor_learning_rate: 3.0e-05 | |
| critic_learning_rate: 5.0e-05 | |
| adaptive_lr: | |
| adapt_critic: false | |
| lr_scaler: 1.2 | |
| kl_high_factor: 2.0 | |
| kl_low_factor: 0.5 | |
| min_learning_rate: 1.0e-06 | |
| max_learning_rate: 1.0 | |
| distributed_update: | |
| mode: scalable | |
| lr_scale: | |
| mode: sqrt_world_size | |
| reference_world_size: 1 | |
| max_scale: null | |
| kl_early_stop: | |
| enabled: true | |
| signal: window_mean | |
| window_size: 3 | |
| factor: 1.8 | |
| min_updates: 1 | |
| normalize_advantage_per_mini_batch: false | |
| global_advantage_norm: true | |
| sampling_strategy: weighted_bin | |
| curriculum: | |
| p_a_ratio: 0.5 | |
| ema_alpha_signal: 0.2 | |
| ema_alpha_rel_improve: 0.2 | |
| relative_eps: 1.0e-06 | |
| dump_whole_window_scores_json: false | |
| dump_whole_window_scores_every_swaps: 10 | |
| weighted_bin: | |
| bin_regex_patterns: | |
| - regex: .*AMASS.* | |
| ratio: 0.1 | |
| - regex: .*pico.* | |
| ratio: 0.1 | |
| - regex: .*sonic.* | |
| ratio: 0.1 | |
| - regex: .*nyt.* | |
| ratio: 0.1 | |
| - regex: .*LAFAN1.* | |
| ratio: 0.02 | |
| - regex: .*MotionMillion.* | |
| ratio: 0.02 | |
| dump_sampled_keys: false | |
| dump_sampled_keys_interval: 1000 | |
| module_dict: | |
| actor: ${modules.actor} | |
| critic: ${modules.critic} | |
| symmetry_loss: | |
| enabled: false | |
| coef: 0.1 | |
| dof_sign_by_name: ${robot.dof_sign_by_name} | |
| kl_coef: 0.0 | |
| noise_std_type: log | |
| fix_sigma: false | |
| min_sigma: 0.01 | |
| max_sigma: 1.2 | |
| aux_state_pred: | |
| enabled: true | |
| w_keybody_contact: 0.01 | |
| w_base_lin_vel: 0.01 | |
| w_ref_keybody_rel_pos: 0.1 | |
| w_robot_keybody_rel_pos: 0.1 | |
| min_std: 0.01 | |
| max_std: 2.0 | |
| keybody_contact_names: | |
| - left_hip_pitch_link | |
| - right_hip_pitch_link | |
| - left_knee_link | |
| - right_knee_link | |
| - left_ankle_roll_link | |
| - right_ankle_roll_link | |
| - left_elbow_link | |
| - right_elbow_link | |
| - left_wrist_yaw_link | |
| - right_wrist_yaw_link | |
| keybody_rel_pos_names: | |
| - left_knee_link | |
| - right_knee_link | |
| - left_ankle_roll_link | |
| - right_ankle_roll_link | |
| - left_elbow_link | |
| - right_elbow_link | |
| - left_wrist_yaw_link | |
| - right_wrist_yaw_link | |
| dead_expert_margin_to_topk: | |
| enabled: true | |
| weight: 0.1 | |
| aux_router_command_recon: | |
| enabled: false | |
| weight: 0.0 | |
| hidden_dim: 0 | |
| term_prefix: actor_ref_ | |
| aux_router_switch_penalty: | |
| enabled: false | |
| weight: 0.0 | |
| router_expert_orthogonal: | |
| enabled: false | |
| weight: 0.0 | |
| min_active_usage: 0.001 | |
| eps: 1.0e-08 | |
| selected_expert_margin_to_unselected: | |
| enabled: false | |
| weight: 0.0 | |
| target: 0.0 | |
| moe_router: | |
| routing_score_fn: softmax | |
| routing_scale: 1.0 | |
| use_dynamic_bias: false | |
| bias_update_rate: 0.001 | |
| expert_bias_clip: 0.0 | |
| robot: | |
| humanoid_type: unitree/G1/29dof | |
| dof_obs_size: 29 | |
| actions_dim: 29 | |
| num_bodies: 30 | |
| num_extend_bodies: 0 | |
| undesired_contacts_regrex: ^(?!left_ankle_roll_link$)(?!right_ankle_roll_link$)(?!left_wrist_yaw_link$)(?!right_wrist_yaw_link$).+$ | |
| torso_name: torso_link | |
| anchor_body: torso_link | |
| key_bodies: | |
| - pelvis | |
| - left_hip_roll_link | |
| - left_knee_link | |
| - left_ankle_pitch_link | |
| - right_hip_roll_link | |
| - right_knee_link | |
| - right_ankle_pitch_link | |
| - torso_link | |
| - left_shoulder_roll_link | |
| - left_elbow_link | |
| - left_wrist_yaw_link | |
| - right_shoulder_roll_link | |
| - right_elbow_link | |
| - right_wrist_yaw_link | |
| key_dofs: | |
| - left_knee_joint | |
| - right_knee_joint | |
| - left_elbow_joint | |
| - right_elbow_joint | |
| dof_names: | |
| - left_hip_pitch_joint | |
| - left_hip_roll_joint | |
| - left_hip_yaw_joint | |
| - left_knee_joint | |
| - left_ankle_pitch_joint | |
| - left_ankle_roll_joint | |
| - right_hip_pitch_joint | |
| - right_hip_roll_joint | |
| - right_hip_yaw_joint | |
| - right_knee_joint | |
| - right_ankle_pitch_joint | |
| - right_ankle_roll_joint | |
| - waist_yaw_joint | |
| - waist_roll_joint | |
| - waist_pitch_joint | |
| - left_shoulder_pitch_joint | |
| - left_shoulder_roll_joint | |
| - left_shoulder_yaw_joint | |
| - left_elbow_joint | |
| - left_wrist_roll_joint | |
| - left_wrist_pitch_joint | |
| - left_wrist_yaw_joint | |
| - right_shoulder_pitch_joint | |
| - right_shoulder_roll_joint | |
| - right_shoulder_yaw_joint | |
| - right_elbow_joint | |
| - right_wrist_roll_joint | |
| - right_wrist_pitch_joint | |
| - right_wrist_yaw_joint | |
| arm_dof_names: | |
| - left_shoulder_pitch_joint | |
| - left_shoulder_roll_joint | |
| - left_shoulder_yaw_joint | |
| - left_elbow_joint | |
| - left_wrist_roll_joint | |
| - left_wrist_pitch_joint | |
| - left_wrist_yaw_joint | |
| - right_shoulder_pitch_joint | |
| - right_shoulder_roll_joint | |
| - right_shoulder_yaw_joint | |
| - right_elbow_joint | |
| - right_wrist_roll_joint | |
| - right_wrist_pitch_joint | |
| - right_wrist_yaw_joint | |
| waist_dof_names: | |
| - waist_yaw_joint | |
| - waist_roll_joint | |
| - waist_pitch_joint | |
| leg_dof_names: | |
| - left_hip_pitch_joint | |
| - left_hip_roll_joint | |
| - left_hip_yaw_joint | |
| - left_knee_joint | |
| - left_ankle_pitch_joint | |
| - left_ankle_roll_joint | |
| - right_hip_pitch_joint | |
| - right_hip_roll_joint | |
| - right_hip_yaw_joint | |
| - right_knee_joint | |
| - right_ankle_pitch_joint | |
| - right_ankle_roll_joint | |
| left_arm_dof_names: | |
| - left_shoulder_pitch_joint | |
| - left_shoulder_roll_joint | |
| - left_shoulder_yaw_joint | |
| - left_elbow_joint | |
| - left_wrist_roll_joint | |
| - left_wrist_pitch_joint | |
| - left_wrist_yaw_joint | |
| right_arm_dof_names: | |
| - right_shoulder_pitch_joint | |
| - right_shoulder_roll_joint | |
| - right_shoulder_yaw_joint | |
| - right_elbow_joint | |
| - right_wrist_roll_joint | |
| - right_wrist_pitch_joint | |
| - right_wrist_yaw_joint | |
| left_leg_dof_names: | |
| - left_hip_pitch_joint | |
| - left_hip_roll_joint | |
| - left_hip_yaw_joint | |
| - left_knee_joint | |
| - left_ankle_pitch_joint | |
| - left_ankle_roll_joint | |
| right_leg_dof_names: | |
| - right_hip_pitch_joint | |
| - right_hip_roll_joint | |
| - right_hip_yaw_joint | |
| - right_knee_joint | |
| - right_ankle_pitch_joint | |
| - right_ankle_roll_joint | |
| upper_body_dof_names: ${robot.arm_dof_names} | |
| lower_body_dof_names: | |
| - left_hip_pitch_joint | |
| - left_hip_roll_joint | |
| - left_hip_yaw_joint | |
| - left_knee_joint | |
| - left_ankle_pitch_joint | |
| - left_ankle_roll_joint | |
| - right_hip_pitch_joint | |
| - right_hip_roll_joint | |
| - right_hip_yaw_joint | |
| - right_knee_joint | |
| - right_ankle_pitch_joint | |
| - right_ankle_roll_joint | |
| - waist_yaw_joint | |
| - waist_roll_joint | |
| - waist_pitch_joint | |
| arm_body_names: | |
| - left_shoulder_pitch_link | |
| - left_shoulder_roll_link | |
| - left_shoulder_yaw_link | |
| - left_elbow_link | |
| - left_wrist_roll_link | |
| - left_wrist_pitch_link | |
| - left_wrist_yaw_link | |
| - right_shoulder_pitch_link | |
| - right_shoulder_roll_link | |
| - right_shoulder_yaw_link | |
| - right_elbow_link | |
| - right_wrist_roll_link | |
| - right_wrist_pitch_link | |
| - right_wrist_yaw_link | |
| head_hand_bodies: | |
| - torso_link | |
| - left_wrist_yaw_link | |
| - right_wrist_yaw_link | |
| torso_body_names: | |
| - waist_yaw_link | |
| - waist_roll_link | |
| - torso_link | |
| leg_body_names: | |
| - left_hip_pitch_link | |
| - left_hip_roll_link | |
| - left_hip_yaw_link | |
| - left_knee_link | |
| - left_ankle_pitch_link | |
| - left_ankle_roll_link | |
| - right_hip_pitch_link | |
| - right_hip_roll_link | |
| - right_hip_yaw_link | |
| - right_knee_link | |
| - right_ankle_pitch_link | |
| - right_ankle_roll_link | |
| left_arm_body_names: | |
| - left_shoulder_pitch_link | |
| - left_shoulder_roll_link | |
| - left_shoulder_yaw_link | |
| - left_elbow_link | |
| - left_wrist_roll_link | |
| - left_wrist_pitch_link | |
| - left_wrist_yaw_link | |
| right_arm_body_names: | |
| - right_shoulder_pitch_link | |
| - right_shoulder_roll_link | |
| - right_shoulder_yaw_link | |
| - right_elbow_link | |
| - right_wrist_roll_link | |
| - right_wrist_pitch_link | |
| - right_wrist_yaw_link | |
| left_leg_body_names: | |
| - left_hip_pitch_link | |
| - left_hip_roll_link | |
| - left_hip_yaw_link | |
| - left_knee_link | |
| - left_ankle_pitch_link | |
| - left_ankle_roll_link | |
| right_leg_body_names: | |
| - right_hip_pitch_link | |
| - right_hip_roll_link | |
| - right_hip_yaw_link | |
| - right_knee_link | |
| - right_ankle_pitch_link | |
| - right_ankle_roll_link | |
| body_names: | |
| - pelvis | |
| - left_hip_pitch_link | |
| - left_hip_roll_link | |
| - left_hip_yaw_link | |
| - left_knee_link | |
| - left_ankle_pitch_link | |
| - left_ankle_roll_link | |
| - right_hip_pitch_link | |
| - right_hip_roll_link | |
| - right_hip_yaw_link | |
| - right_knee_link | |
| - right_ankle_pitch_link | |
| - right_ankle_roll_link | |
| - waist_yaw_link | |
| - waist_roll_link | |
| - torso_link | |
| - left_shoulder_pitch_link | |
| - left_shoulder_roll_link | |
| - left_shoulder_yaw_link | |
| - left_elbow_link | |
| - left_wrist_roll_link | |
| - left_wrist_pitch_link | |
| - left_wrist_yaw_link | |
| - right_shoulder_pitch_link | |
| - right_shoulder_roll_link | |
| - right_shoulder_yaw_link | |
| - right_elbow_link | |
| - right_wrist_roll_link | |
| - right_wrist_pitch_link | |
| - right_wrist_yaw_link | |
| init_state: | |
| pos: | |
| - 0.0 | |
| - 0.0 | |
| - 0.8 | |
| rot: | |
| - 0.0 | |
| - 0.929 | |
| - 0.341 | |
| - 0.298 | |
| lin_vel: | |
| - 0.0 | |
| - 0.0 | |
| - 0.0 | |
| ang_vel: | |
| - 0.0 | |
| - 0.0 | |
| - 0.0 | |
| default_joint_angles: | |
| left_hip_pitch_joint: -0.312 | |
| left_hip_roll_joint: 0.0 | |
| left_hip_yaw_joint: 0.0 | |
| left_knee_joint: 0.669 | |
| left_ankle_pitch_joint: -0.363 | |
| left_ankle_roll_joint: 0.0 | |
| right_hip_pitch_joint: -0.312 | |
| right_hip_roll_joint: 0.0 | |
| right_hip_yaw_joint: 0.0 | |
| right_knee_joint: 0.669 | |
| right_ankle_pitch_joint: -0.363 | |
| right_ankle_roll_joint: 0.0 | |
| waist_yaw_joint: 0.0 | |
| waist_roll_joint: 0.0 | |
| waist_pitch_joint: 0.1 | |
| left_shoulder_pitch_joint: 0.2 | |
| left_shoulder_roll_joint: 0.2 | |
| left_shoulder_yaw_joint: 0.0 | |
| left_elbow_joint: 0.6 | |
| left_wrist_roll_joint: 0.0 | |
| left_wrist_pitch_joint: 0.0 | |
| left_wrist_yaw_joint: 0.0 | |
| right_shoulder_pitch_joint: 0.2 | |
| right_shoulder_roll_joint: -0.2 | |
| right_shoulder_yaw_joint: 0.0 | |
| right_elbow_joint: 0.6 | |
| right_wrist_roll_joint: 0.0 | |
| right_wrist_pitch_joint: 0.0 | |
| right_wrist_yaw_joint: 0.0 | |
| actuators: | |
| actuator_type: unitree_erfi | |
| ema_filter_enabled: false | |
| ema_filter_alpha: 1.0 | |
| all_joints: | |
| joint_names_expr: | |
| - .*_hip_yaw_joint | |
| - .*_hip_roll_joint | |
| - .*_hip_pitch_joint | |
| - .*_knee_joint | |
| - .*_ankle_pitch_joint | |
| - .*_ankle_roll_joint | |
| - waist_yaw_joint | |
| - waist_roll_joint | |
| - waist_pitch_joint | |
| - .*_shoulder_pitch_joint | |
| - .*_shoulder_roll_joint | |
| - .*_shoulder_yaw_joint | |
| - .*_elbow_joint | |
| - .*_wrist_roll_joint | |
| - .*_wrist_pitch_joint | |
| - .*_wrist_yaw_joint | |
| effort_limit_sim: | |
| .*_hip_yaw_joint: 88.0 | |
| .*_hip_roll_joint: 139.0 | |
| .*_hip_pitch_joint: 88.0 | |
| .*_knee_joint: 139.0 | |
| .*_ankle_pitch_joint: 50.0 | |
| .*_ankle_roll_joint: 50.0 | |
| waist_yaw_joint: 88.0 | |
| waist_roll_joint: 50.0 | |
| waist_pitch_joint: 50.0 | |
| .*_shoulder_pitch_joint: 25.0 | |
| .*_shoulder_roll_joint: 25.0 | |
| .*_shoulder_yaw_joint: 25.0 | |
| .*_elbow_joint: 25.0 | |
| .*_wrist_roll_joint: 25.0 | |
| .*_wrist_pitch_joint: 5.0 | |
| .*_wrist_yaw_joint: 5.0 | |
| velocity_limit_sim: | |
| .*_hip_yaw_joint: 32.0 | |
| .*_hip_roll_joint: 20.0 | |
| .*_hip_pitch_joint: 32.0 | |
| .*_knee_joint: 20.0 | |
| .*_ankle_pitch_joint: 37.0 | |
| .*_ankle_roll_joint: 37.0 | |
| waist_yaw_joint: 32.0 | |
| waist_roll_joint: 37.0 | |
| waist_pitch_joint: 37.0 | |
| .*_shoulder_pitch_joint: 37.0 | |
| .*_shoulder_roll_joint: 37.0 | |
| .*_shoulder_yaw_joint: 37.0 | |
| .*_elbow_joint: 37.0 | |
| .*_wrist_roll_joint: 37.0 | |
| .*_wrist_pitch_joint: 22.0 | |
| .*_wrist_yaw_joint: 22.0 | |
| stiffness: | |
| .*_hip_pitch_joint: 40.17923847 | |
| .*_hip_roll_joint: 99.09842778 | |
| .*_hip_yaw_joint: 40.17923847 | |
| .*_knee_joint: 99.09842778 | |
| .*_ankle_pitch_joint: 28.5012462 | |
| .*_ankle_roll_joint: 28.5012462 | |
| waist_yaw_joint: 40.17923847 | |
| waist_roll_joint: 28.5012462 | |
| waist_pitch_joint: 28.5012462 | |
| .*_shoulder_pitch_joint: 14.2506231 | |
| .*_shoulder_roll_joint: 14.2506231 | |
| .*_shoulder_yaw_joint: 14.2506231 | |
| .*_elbow_joint: 14.2506231 | |
| .*_wrist_roll_joint: 14.25062309787429 | |
| .*_wrist_pitch_joint: 16.77832748089279 | |
| .*_wrist_yaw_joint: 16.77832748089279 | |
| damping: | |
| .*_hip_pitch_joint: 2.55788977 | |
| .*_hip_roll_joint: 6.30880185 | |
| .*_hip_yaw_joint: 2.55788977 | |
| .*_knee_joint: 6.30880185 | |
| .*_ankle_pitch_joint: 1.81444569 | |
| .*_ankle_roll_joint: 1.81444569 | |
| waist_yaw_joint: 2.55788977 | |
| waist_roll_joint: 1.81444569 | |
| waist_pitch_joint: 1.81444569 | |
| .*_shoulder_pitch_joint: 0.90722284 | |
| .*_shoulder_roll_joint: 0.90722284 | |
| .*_shoulder_yaw_joint: 0.90722284 | |
| .*_elbow_joint: 0.90722284 | |
| .*_wrist_roll_joint: 0.907222843292423 | |
| .*_wrist_pitch_joint: 1.06814150219 | |
| .*_wrist_yaw_joint: 1.06814150219 | |
| armature: | |
| .*_hip_pitch_joint: 0.01017752 | |
| .*_hip_roll_joint: 0.025101925 | |
| .*_hip_yaw_joint: 0.01017752 | |
| .*_knee_joint: 0.025101925 | |
| .*_ankle_pitch_joint: 0.00721945 | |
| .*_ankle_roll_joint: 0.00721945 | |
| waist_yaw_joint: 0.01017752 | |
| waist_roll_joint: 0.00721945 | |
| waist_pitch_joint: 0.00721945 | |
| .*_shoulder_pitch_joint: 0.003609725 | |
| .*_shoulder_roll_joint: 0.003609725 | |
| .*_shoulder_yaw_joint: 0.003609725 | |
| .*_elbow_joint: 0.003609725 | |
| .*_wrist_roll_joint: 0.003609725 | |
| .*_wrist_pitch_joint: 0.00425 | |
| .*_wrist_yaw_joint: 0.00425 | |
| action_scale: | |
| .*_hip_pitch_joint: 0.548 | |
| .*_hip_roll_joint: 0.351 | |
| .*_hip_yaw_joint: 0.548 | |
| .*_knee_joint: 0.351 | |
| .*_ankle_pitch_joint: 0.439 | |
| .*_ankle_roll_joint: 0.439 | |
| waist_yaw_joint: 0.548 | |
| waist_roll_joint: 0.439 | |
| waist_pitch_joint: 0.439 | |
| .*_shoulder_pitch_joint: 0.439 | |
| .*_shoulder_roll_joint: 0.439 | |
| .*_shoulder_yaw_joint: 0.439 | |
| .*_elbow_joint: 0.439 | |
| .*_wrist_roll_joint: 0.439 | |
| .*_wrist_pitch_joint: 0.075 | |
| .*_wrist_yaw_joint: 0.075 | |
| dof_sign_by_name: | |
| left_hip_pitch_joint: 1.0 | |
| left_hip_roll_joint: -1.0 | |
| left_hip_yaw_joint: -1.0 | |
| left_knee_joint: 1.0 | |
| left_ankle_pitch_joint: 1.0 | |
| left_ankle_roll_joint: -1.0 | |
| right_hip_pitch_joint: 1.0 | |
| right_hip_roll_joint: -1.0 | |
| right_hip_yaw_joint: -1.0 | |
| right_knee_joint: 1.0 | |
| right_ankle_pitch_joint: 1.0 | |
| right_ankle_roll_joint: -1.0 | |
| waist_yaw_joint: -1.0 | |
| waist_roll_joint: -1.0 | |
| waist_pitch_joint: 1.0 | |
| left_shoulder_pitch_joint: 1.0 | |
| left_shoulder_roll_joint: -1.0 | |
| left_shoulder_yaw_joint: -1.0 | |
| left_elbow_joint: 1.0 | |
| left_wrist_roll_joint: -1.0 | |
| left_wrist_pitch_joint: 1.0 | |
| left_wrist_yaw_joint: -1.0 | |
| right_shoulder_pitch_joint: 1.0 | |
| right_shoulder_roll_joint: -1.0 | |
| right_shoulder_yaw_joint: -1.0 | |
| right_elbow_joint: 1.0 | |
| right_wrist_roll_joint: -1.0 | |
| right_wrist_pitch_joint: 1.0 | |
| right_wrist_yaw_joint: -1.0 | |
| asset: | |
| collapse_fixed_joints: true | |
| replace_cylinder_with_capsule: true | |
| flip_visual_attachments: false | |
| max_angular_velocity: 1000.0 | |
| max_linear_velocity: 1000.0 | |
| density: 0.001 | |
| angular_damping: 0.0 | |
| linear_damping: 0.0 | |
| asset_root: ./ | |
| urdf_file: assets/robots/${robot.humanoid_type}/g1_29dof_rev_1_0.urdf | |
| assetFileName: assets/robots/${robot.humanoid_type}/g1_29dof_rev_1_0.xml | |
| fix_base_link: false | |
| force_usd_conversion: true | |
| extend_config: [] | |
| motion: | |
| asset: | |
| assetRoot: ./ | |
| assetFileName: assets/robots/${robot.humanoid_type}/g1_29dof_rev_1_0.xml | |
| sampling_strategy: ${algo.config.sampling_strategy} | |
| weighted_bin: ${algo.config.weighted_bin} | |
| curriculum: ${algo.config.curriculum} | |
| dump_sampled_motion_keys: false | |
| dump_sampled_motion_keys_interval: 1 | |
| dump_sampled_motion_keys_dir: sampled_motion_cache_keys | |
| max_frame_length: 300 | |
| min_frame_length: 50 | |
| handpicked_motion_names: null | |
| excluded_motion_names: null | |
| world_frame_normalization: true | |
| backend: hdf5_v2 | |
| train_hdf5_roots: ${train_hdf5_roots} | |
| val_hdf5_roots: ${train_hdf5_roots} | |
| dof_names: ${robot.dof_names} | |
| body_names: ${robot.body_names} | |
| key_bodies: ${robot.key_bodies} | |
| extend_config: ${robot.extend_config} | |
| dataloader: | |
| num_workers: 2 | |
| prefetch_factor: 1 | |
| pin_memory: true | |
| persistent_workers: false | |
| timeout: 600 | |
| fk_robot_file_path: ${robot.asset.urdf_file} | |
| fk_vel_smoothing_sigma: 2.0 | |
| online_filter: | |
| enabled: false | |
| butter_order: 4 | |
| butter_cutoff_hz_pool: [] | |
| cache: | |
| batch_progress_bar: false | |
| max_num_clips: ${num_envs} | |
| device: cuda | |
| swap_interval_steps: ${robot.motion.max_frame_length} | |
| allowed_prefixes: | |
| - ref_ | |
| - ft_ref_ | |
| env: | |
| _target_: holomotion.src.env.motion_tracking.MotionTrackingEnv | |
| _recursive_: false | |
| config: | |
| experiment_name: ${experiment_name} | |
| num_envs: ${num_envs} | |
| env_spacing: 2.5 | |
| replicate_physics: true | |
| headless: ${headless} | |
| num_processes: ${num_processes} | |
| main_process: ${main_process} | |
| process_id: ${process_id} | |
| ckpt_dir: null | |
| disable_ref_viz: false | |
| eval_log_dir: null | |
| save_rendering_dir: /horizon-bucket/robot_lab/users/bo07.zhang-labs/expr_output/HoloMotionMotionTracking/HoloMotionMotrackV1.2/20260512_023208-training/motion_tracking/V1.3.0-RC4_8x8GPUs/renderings_training | |
| robot: ${robot} | |
| domain_rand: ${domain_rand} | |
| rewards: ${rewards} | |
| terrain: ${terrain} | |
| obs: ${obs} | |
| terminations: ${terminations} | |
| simulation: | |
| episode_length_s: 10 | |
| sim_freq: 200 | |
| control_decimation: 4 | |
| physx: | |
| bounce_threshold_velocity: 0.5 | |
| gpu_max_rigid_patch_count: 327680 | |
| scene: | |
| terrain: ${terrain} | |
| lighting: | |
| distant_light_intensity: 3000.0 | |
| dome_light_intensity: 1000.0 | |
| contact_sensor: | |
| history_length: 3 | |
| force_threshold: 10.0 | |
| track_air_time: true | |
| debug_vis: false | |
| actions: | |
| dof_pos: | |
| type: joint_position | |
| params: | |
| asset_name: robot | |
| joint_names: | |
| - .* | |
| use_default_offset: true | |
| scale: ${robot.actuators.action_scale} | |
| commands: | |
| ref_motion: | |
| type: MotionCommandCfg | |
| params: | |
| command_obs_name: bydmmc_ref_motion | |
| motion_lib_cfg: ${robot.motion} | |
| urdf_dof_names: ${robot.dof_names} | |
| urdf_body_names: ${robot.body_names} | |
| arm_dof_names: ${robot.arm_dof_names} | |
| waist_dof_names: ${robot.waist_dof_names} | |
| leg_dof_names: ${robot.leg_dof_names} | |
| arm_body_names: ${robot.arm_body_names} | |
| torso_body_names: ${robot.torso_body_names} | |
| leg_body_names: ${robot.leg_body_names} | |
| anchor_bodylink_name: ${robot.anchor_body} | |
| asset_name: robot | |
| debug_vis: true | |
| root_pose_perturb_range: ${domain_rand.motion_init_perturb.root_pose_perturb_range} | |
| root_vel_perturb_range: ${domain_rand.motion_init_perturb.root_vel_perturb_range} | |
| dof_pos_perturb_range: ${domain_rand.motion_init_perturb.dof_pos_perturb_range} | |
| dof_vel_perturb_range: ${domain_rand.motion_init_perturb.dof_vel_perturb_range} | |
| resample_time_interval_s: 100 | |
| n_fut_frames: ${obs.n_fut_frames} | |
| target_fps: 50 | |
| normalization: | |
| clip_actions: 100.0 | |
| clip_observations: 100.0 | |
| resample_motion_when_training: true | |
| curriculum: | |
| enabled: false | |
| robot_friction_completion_rate: | |
| enabled: true | |
| func: robot_friction_range_by_completion_rate | |
| params: | |
| num_updates: 5 | |
| cr_thresholds: | |
| - 0.1 | |
| - 0.2 | |
| - 0.28 | |
| - 0.34 | |
| - 0.4 | |
| static_friction_target: | |
| - 0.3 | |
| - 1.6 | |
| dynamic_friction_target: | |
| - 0.3 | |
| - 1.2 | |
| body_names: .* | |
| restitution_range: | |
| - 0.0 | |
| - 0.5 | |
| num_buckets: 64 | |
| rigid_body_com_completion_rate: | |
| enabled: true | |
| func: rigid_body_com_by_completion_rate | |
| params: | |
| num_updates: 5 | |
| cr_thresholds: | |
| - 0.1 | |
| - 0.2 | |
| - 0.28 | |
| - 0.34 | |
| - 0.4 | |
| state_prefix: _cr_curr | |
| asset_name: robot | |
| body_names: torso_link | |
| com_range_target: | |
| x: | |
| - -0.025 | |
| - 0.025 | |
| 'y': | |
| - -0.05 | |
| - 0.05 | |
| z: | |
| - -0.05 | |
| - 0.05 | |
| default_dof_pos_bias_completion_rate: | |
| enabled: true | |
| func: default_dof_pos_bias_by_completion_rate | |
| params: | |
| num_updates: 5 | |
| cr_thresholds: | |
| - 0.1 | |
| - 0.2 | |
| - 0.28 | |
| - 0.34 | |
| - 0.4 | |
| state_prefix: _cr_curr | |
| joint_names: | |
| - .* | |
| pos_distribution_params_target: | |
| - -0.01 | |
| - 0.01 | |
| operation: add | |
| distribution: uniform | |
| push_by_setting_velocity_completion_rate: | |
| enabled: true | |
| func: isaaclab_mdp.modify_term_cfg | |
| params: | |
| address: events.push_by_setting_velocity.params | |
| modify_fn: push_by_setting_velocity_range_by_completion_rate | |
| modify_params: | |
| num_updates: 3 | |
| cr_thresholds: | |
| - 0.2 | |
| - 0.3 | |
| - 0.4 | |
| velocity_range_target: | |
| x: | |
| - -0.5 | |
| - 0.5 | |
| 'y': | |
| - -0.5 | |
| - 0.5 | |
| z: | |
| - -0.2 | |
| - 0.2 | |
| roll: | |
| - -0.52 | |
| - 0.52 | |
| pitch: | |
| - -0.52 | |
| - 0.52 | |
| yaw: | |
| - -0.78 | |
| - 0.78 | |
| randomize_actuator_gains_completion_rate: | |
| enabled: true | |
| func: randomize_actuator_gains_by_completion_rate | |
| params: | |
| num_updates: 3 | |
| cr_thresholds: | |
| - 0.2 | |
| - 0.3 | |
| - 0.4 | |
| asset_name: robot | |
| body_names: .* | |
| stiffness_distribution_params_target: | |
| - 0.9 | |
| - 1.1 | |
| damping_distribution_params_target: | |
| - 0.9 | |
| - 1.1 | |
| operation: scale | |
| distribution: uniform | |
| action_rate_l2_completion_rate: | |
| enabled: true | |
| func: reward_term_weight_by_completion_rate | |
| params: | |
| reward_term_name: action_rate_l2 | |
| final_weight: -0.1 | |
| start_scale: 0.1 | |
| num_updates: 5 | |
| cr_thresholds: | |
| - 0.1 | |
| - 0.2 | |
| - 0.28 | |
| - 0.34 | |
| - 0.4 | |
| joint_pos_limits_completion_rate: | |
| enabled: true | |
| func: reward_term_weight_by_completion_rate | |
| params: | |
| reward_term_name: joint_pos_limits | |
| final_weight: -10.0 | |
| start_scale: 0.1 | |
| num_updates: 5 | |
| cr_thresholds: | |
| - 0.1 | |
| - 0.2 | |
| - 0.28 | |
| - 0.34 | |
| - 0.4 | |
| undesired_contacts_completion_rate: | |
| enabled: true | |
| func: reward_term_weight_by_completion_rate | |
| params: | |
| reward_term_name: undesired_contacts | |
| final_weight: -0.1 | |
| start_scale: 0.1 | |
| num_updates: 5 | |
| cr_thresholds: | |
| - 0.1 | |
| - 0.2 | |
| - 0.28 | |
| - 0.34 | |
| - 0.4 | |
| terminations: | |
| time_out: | |
| time_out: true | |
| ref_gravity_projection_far: | |
| params: | |
| threshold: 0.8 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| keybody_ref_z_far: | |
| params: | |
| threshold: 0.25 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| keybody_names: | |
| - pelvis | |
| - left_ankle_roll_link | |
| - right_ankle_roll_link | |
| - left_wrist_yaw_link | |
| - right_wrist_yaw_link | |
| keybody_ref_pos_far: | |
| params: | |
| threshold: 0.25 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| keybody_names: | |
| - pelvis | |
| obs: | |
| context_length: 1 | |
| n_fut_frames: 10 | |
| target_fps: 50 | |
| actor_obs_prefix: ref_ | |
| critic_obs_prefix: ref_ | |
| obs_groups: | |
| unified: | |
| atomic_obs_list: | |
| - actor_ref_gravity_projection_cur: | |
| func: ref_gravity_projection_cur | |
| history_length: ${obs.context_length} | |
| flatten_history_dim: false | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_gravity_projection_cur.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_gravity_projection_cur.n_max} | |
| - actor_ref_gravity_projection_fut: | |
| func: ref_gravity_projection_fut | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_gravity_projection_fut.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_gravity_projection_fut.n_max} | |
| - actor_ref_base_linvel_cur: | |
| func: ref_base_linvel_cur | |
| history_length: ${obs.context_length} | |
| flatten_history_dim: false | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_base_linvel_cur.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_base_linvel_cur.n_max} | |
| n_min_z: ${domain_rand.obs_noise.actor_ref_base_linvel_cur.n_min_z} | |
| n_max_z: ${domain_rand.obs_noise.actor_ref_base_linvel_cur.n_max_z} | |
| - actor_ref_base_linvel_fut: | |
| func: ref_base_linvel_fut | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_base_linvel_fut.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_base_linvel_fut.n_max} | |
| n_min_z: ${domain_rand.obs_noise.actor_ref_base_linvel_fut.n_min_z} | |
| n_max_z: ${domain_rand.obs_noise.actor_ref_base_linvel_fut.n_max_z} | |
| - actor_ref_base_angvel_cur: | |
| func: ref_base_angvel_cur | |
| history_length: ${obs.context_length} | |
| flatten_history_dim: false | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_base_angvel_cur.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_base_angvel_cur.n_max} | |
| n_min_z: ${domain_rand.obs_noise.actor_ref_base_angvel_cur.n_min_z} | |
| n_max_z: ${domain_rand.obs_noise.actor_ref_base_angvel_cur.n_max_z} | |
| - actor_ref_base_angvel_fut: | |
| func: ref_base_angvel_fut | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_base_angvel_fut.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_base_angvel_fut.n_max} | |
| n_min_z: ${domain_rand.obs_noise.actor_ref_base_angvel_fut.n_min_z} | |
| n_max_z: ${domain_rand.obs_noise.actor_ref_base_angvel_fut.n_max_z} | |
| - actor_ref_dof_pos_cur: | |
| func: ref_dof_pos_cur | |
| history_length: ${obs.context_length} | |
| flatten_history_dim: false | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_dof_pos_cur.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_dof_pos_cur.n_max} | |
| - actor_ref_dof_pos_fut: | |
| func: ref_dof_pos_fut | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_dof_pos_fut.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_dof_pos_fut.n_max} | |
| - actor_ref_motion_filter_cutoff_hz: | |
| func: ref_motion_filter_cutoff_hz | |
| - actor_ref_root_height_cur: | |
| func: ref_root_height_cur | |
| history_length: ${obs.context_length} | |
| flatten_history_dim: false | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_root_height_cur.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_root_height_cur.n_max} | |
| - actor_ref_root_height_fut: | |
| func: ref_root_height_fut | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_root_height_fut.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_root_height_fut.n_max} | |
| - actor_ref_keybody_rel_pos_cur: | |
| func: ref_keybody_rel_pos_cur | |
| history_length: ${obs.context_length} | |
| flatten_history_dim: false | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| keybody_names: | |
| - left_knee_link | |
| - right_knee_link | |
| - left_ankle_roll_link | |
| - right_ankle_roll_link | |
| - left_elbow_link | |
| - right_elbow_link | |
| - left_wrist_yaw_link | |
| - right_wrist_yaw_link | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_keybody_rel_pos_cur.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_keybody_rel_pos_cur.n_max} | |
| - actor_ref_keybody_rel_pos_fut: | |
| func: ref_keybody_rel_pos_fut | |
| params: | |
| ref_prefix: ${obs.actor_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| keybody_names: | |
| - left_knee_link | |
| - right_knee_link | |
| - left_ankle_roll_link | |
| - right_ankle_roll_link | |
| - left_elbow_link | |
| - right_elbow_link | |
| - left_wrist_yaw_link | |
| - right_wrist_yaw_link | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_ref_keybody_rel_pos_fut.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_ref_keybody_rel_pos_fut.n_max} | |
| - actor_projected_gravity: | |
| func: projected_gravity | |
| history_length: ${obs.context_length} | |
| flatten_history_dim: false | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_projected_gravity.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_projected_gravity.n_max} | |
| - actor_rel_robot_root_ang_vel: | |
| func: rel_robot_root_ang_vel | |
| history_length: ${obs.context_length} | |
| flatten_history_dim: false | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_rel_robot_root_ang_vel.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_rel_robot_root_ang_vel.n_max} | |
| - actor_dof_pos: | |
| func: dof_pos | |
| history_length: ${obs.context_length} | |
| flatten_history_dim: false | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_dof_pos.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_dof_pos.n_max} | |
| - actor_dof_vel: | |
| func: dof_vel | |
| history_length: ${obs.context_length} | |
| flatten_history_dim: false | |
| noise: | |
| type: AdditiveUniformNoiseCfg | |
| params: | |
| n_min: ${domain_rand.obs_noise.actor_dof_vel.n_min} | |
| n_max: ${domain_rand.obs_noise.actor_dof_vel.n_max} | |
| - actor_last_action: | |
| func: last_action | |
| history_length: ${obs.context_length} | |
| flatten_history_dim: false | |
| - critic_ref_dof_pos_cur: | |
| func: ref_dof_pos_cur | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| - critic_ref_dof_pos_fut: | |
| func: ref_dof_pos_fut | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| - critic_ref_root_height_fut: | |
| func: ref_root_height_fut | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| - critic_ref_root_height_cur: | |
| func: ref_root_height_cur | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| - critic_global_anchor_diff: | |
| func: global_anchor_diff | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| - critic_ref_motion_cur_heading_aligned_root_pos: | |
| func: ref_motion_cur_heading_aligned_root_pos | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| - critic_ref_motion_fut_heading_aligned_root_pos: | |
| func: ref_motion_fut_heading_aligned_root_pos | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| - critic_ref_motion_cur_heading_aligned_root_rot6d: | |
| func: ref_motion_cur_heading_aligned_root_rot6d | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| - critic_ref_motion_fut_heading_aligned_root_rot6d: | |
| func: ref_motion_fut_heading_aligned_root_rot6d | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| - critic_ref_motion_cur_heading_aligned_root_lin_vel: | |
| func: ref_motion_cur_heading_aligned_root_lin_vel | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| - critic_ref_motion_fut_heading_aligned_root_lin_vel: | |
| func: ref_motion_fut_heading_aligned_root_lin_vel | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| - critic_ref_motion_cur_heading_aligned_root_ang_vel: | |
| func: ref_motion_cur_heading_aligned_root_ang_vel | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| - critic_ref_motion_fut_heading_aligned_root_ang_vel: | |
| func: ref_motion_fut_heading_aligned_root_ang_vel | |
| params: | |
| ref_prefix: ${obs.critic_obs_prefix} | |
| num_frames: ${obs.n_fut_frames} | |
| - critic_rel_robot_root_lin_vel: | |
| func: rel_robot_root_lin_vel | |
| - critic_rel_robot_root_ang_vel: | |
| func: rel_robot_root_ang_vel | |
| - critic_global_robot_bodylink_lin_vel_flat: | |
| func: global_robot_bodylink_lin_vel_flat | |
| - critic_global_robot_bodylink_ang_vel_flat: | |
| func: global_robot_bodylink_ang_vel_flat | |
| - critic_root_rel_robot_bodylink_pos_flat: | |
| func: root_rel_robot_bodylink_pos_flat | |
| - critic_root_rel_robot_bodylink_rot_mat_flat: | |
| func: root_rel_robot_bodylink_rot_mat_flat | |
| - critic_dof_pos: | |
| func: dof_pos | |
| - critic_dof_vel: | |
| func: dof_vel | |
| - critic_last_action: | |
| func: last_action | |
| enable_corruption: true | |
| concatenate_terms: false | |
| rewards: | |
| _config: | |
| reward_prefix: ref_ | |
| is_alive: | |
| weight: 0.1 | |
| params: {} | |
| root_pos_xy_tracking_exp: | |
| weight: 0.0 | |
| params: | |
| std: 0.2 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| root_rot_tracking_exp: | |
| weight: 0.0 | |
| params: | |
| std: 0.4 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| root_rel_keybodylink_pos_tracking_l2_exp: | |
| weight: 1.0 | |
| params: | |
| keybody_names: ${robot.key_bodies} | |
| std: 0.3 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| root_rel_keybodylink_rot_tracking_l2_exp: | |
| weight: 1.0 | |
| params: | |
| keybody_names: ${robot.key_bodies} | |
| std: 0.4 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| global_keybodylink_lin_vel_tracking_l2_exp: | |
| weight: 1.0 | |
| params: | |
| keybody_names: ${robot.key_bodies} | |
| std: 1.0 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| global_keybodylink_ang_vel_tracking_l2_exp: | |
| weight: 1.0 | |
| params: | |
| keybody_names: ${robot.key_bodies} | |
| std: 3.14 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| action_rate_l2: | |
| weight: -0.2 | |
| params: {} | |
| joint_acc_l2: | |
| weight: -1.0e-06 | |
| params: {} | |
| joint_pos_limits: | |
| weight: -10.0 | |
| params: | |
| asset_cfg: | |
| _target_: isaaclab.managers.scene_entity_cfg.SceneEntityCfg | |
| name: robot | |
| joint_names: | |
| - .* | |
| undesired_contacts: | |
| weight: -0.1 | |
| params: | |
| threshold: 1.0 | |
| sensor_cfg: | |
| _target_: isaaclab.managers.scene_entity_cfg.SceneEntityCfg | |
| name: contact_forces | |
| body_names: | |
| - ${robot.undesired_contacts_regrex} | |
| root_lin_vel_tracking_rel_ratio_exp: | |
| weight: 1.0 | |
| params: | |
| std: 1.0 | |
| eps: 0.1 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| root_ang_vel_tracking_rel_ratio_exp: | |
| weight: 1.0 | |
| params: | |
| std: 1.0 | |
| eps: 0.1 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| local_reward_point_body_pos_tracking_exp: | |
| weight: 2.0 | |
| params: | |
| std: 0.1 | |
| ref_prefix: ${rewards._config.reward_prefix} | |
| reward_point_body: | |
| - torso_link | |
| - left_wrist_yaw_link | |
| - right_wrist_yaw_link | |
| - left_ankle_roll_link | |
| - right_ankle_roll_link | |
| reward_point_body_offset: | |
| - - 0.0 | |
| - 0.0 | |
| - 0.5 | |
| - - 0.0 | |
| - 0.0 | |
| - 0.0 | |
| - - 0.0 | |
| - 0.0 | |
| - 0.0 | |
| - - 0.0 | |
| - 0.0 | |
| - 0.0 | |
| - - 0.0 | |
| - 0.0 | |
| - 0.0 | |
| point_weights: | |
| - 1.0 | |
| - 1.0 | |
| - 1.0 | |
| - 1.0 | |
| - 1.0 | |
| domain_rand: | |
| action_delay: | |
| enabled: true | |
| min_delay: 0 | |
| max_delay: 2 | |
| erfi: | |
| enabled: false | |
| rfi_probability: 0.5 | |
| rfi_lim: 0.1 | |
| randomize_rfi_lim: true | |
| rfi_lim_range: | |
| - 0.5 | |
| - 1.5 | |
| rao_lim: 0.1 | |
| obs_noise: | |
| actor_ref_gravity_projection_cur: | |
| n_min: -0.1 | |
| n_max: 0.1 | |
| actor_ref_gravity_projection_fut: | |
| n_min: -0.1 | |
| n_max: 0.1 | |
| actor_ref_base_linvel_cur: | |
| n_min: -0.1 | |
| n_max: 0.1 | |
| n_min_z: -0.05 | |
| n_max_z: 0.05 | |
| actor_ref_base_linvel_fut: | |
| n_min: -0.1 | |
| n_max: 0.1 | |
| n_min_z: -0.05 | |
| n_max_z: 0.05 | |
| actor_ref_base_angvel_cur: | |
| n_min: -0.1 | |
| n_max: 0.1 | |
| n_min_z: -0.1 | |
| n_max_z: 0.1 | |
| actor_ref_base_angvel_fut: | |
| n_min: -0.1 | |
| n_max: 0.1 | |
| n_min_z: -0.1 | |
| n_max_z: 0.1 | |
| actor_ref_dof_pos_cur: | |
| n_min: -0.05 | |
| n_max: 0.05 | |
| actor_ref_dof_pos_fut: | |
| n_min: -0.05 | |
| n_max: 0.05 | |
| actor_ref_root_height_cur: | |
| n_min: -0.1 | |
| n_max: 0.1 | |
| actor_ref_root_height_fut: | |
| n_min: -0.1 | |
| n_max: 0.1 | |
| actor_ref_keybody_rel_pos_cur: | |
| n_min: -0.1 | |
| n_max: 0.1 | |
| actor_ref_keybody_rel_pos_fut: | |
| n_min: -0.1 | |
| n_max: 0.1 | |
| actor_projected_gravity: | |
| n_min: -0.1 | |
| n_max: 0.1 | |
| actor_rel_robot_root_ang_vel: | |
| n_min: -0.2 | |
| n_max: 0.2 | |
| actor_dof_pos: | |
| n_min: -0.01 | |
| n_max: 0.01 | |
| actor_dof_vel: | |
| n_min: -0.5 | |
| n_max: 0.5 | |
| motion_init_perturb: | |
| root_pose_perturb_range: | |
| x: | |
| - -0.05 | |
| - 0.05 | |
| 'y': | |
| - -0.05 | |
| - 0.05 | |
| z: | |
| - -0.01 | |
| - 0.01 | |
| roll: | |
| - -0.1 | |
| - 0.1 | |
| pitch: | |
| - -0.1 | |
| - 0.1 | |
| yaw: | |
| - -0.2 | |
| - 0.2 | |
| root_vel_perturb_range: | |
| x: | |
| - -0.5 | |
| - 0.5 | |
| 'y': | |
| - -0.5 | |
| - 0.5 | |
| z: | |
| - -0.2 | |
| - 0.2 | |
| roll: | |
| - -0.5 | |
| - 0.5 | |
| pitch: | |
| - -0.5 | |
| - 0.5 | |
| yaw: | |
| - -0.2 | |
| - 0.2 | |
| dof_pos_perturb_range: | |
| - -0.1 | |
| - 0.1 | |
| dof_vel_perturb_range: | |
| - 0.0 | |
| - 0.0 | |
| default_dof_pos_bias: | |
| mode: startup | |
| params: | |
| joint_names: | |
| - .* | |
| pos_distribution_params: | |
| - -0.01 | |
| - 0.01 | |
| operation: add | |
| distribution: uniform | |
| rigid_body_com: | |
| mode: startup | |
| params: | |
| body_names: torso_link | |
| com_range: | |
| x: | |
| - -0.075 | |
| - 0.075 | |
| 'y': | |
| - -0.1 | |
| - 0.1 | |
| z: | |
| - -0.1 | |
| - 0.1 | |
| randomize_mass: | |
| mode: startup | |
| params: | |
| body_names: | |
| - pelvis | |
| - torso_link | |
| mass_range: | |
| - -1.0 | |
| - 2.0 | |
| rigid_body_material: | |
| mode: startup | |
| params: | |
| body_names: .* | |
| static_friction_range: | |
| - 0.3 | |
| - 1.6 | |
| dynamic_friction_range: | |
| - 0.3 | |
| - 1.2 | |
| restitution_range: | |
| - 0.0 | |
| - 0.5 | |
| num_buckets: 64 | |
| push_by_setting_velocity: | |
| mode: interval | |
| interval_range_s: | |
| - 1.0 | |
| - 3.0 | |
| params: | |
| velocity_range: | |
| x: | |
| - -0.5 | |
| - 0.5 | |
| 'y': | |
| - -0.5 | |
| - 0.5 | |
| z: | |
| - -0.2 | |
| - 0.2 | |
| roll: | |
| - -0.52 | |
| - 0.52 | |
| pitch: | |
| - -0.52 | |
| - 0.52 | |
| yaw: | |
| - -0.78 | |
| - 0.78 | |
| randomize_actuator_gains: | |
| mode: startup | |
| params: | |
| asset_name: robot | |
| body_names: .* | |
| stiffness_distribution_params: | |
| - 0.9 | |
| - 1.1 | |
| damping_distribution_params: | |
| - 0.9 | |
| - 1.1 | |
| operation: scale | |
| distribution: uniform | |
| terrain: | |
| terrain_type: generator | |
| prim_path: /World/ground | |
| static_friction: 1.0 | |
| dynamic_friction: 1.0 | |
| restitution: 0.0 | |
| friction_combine_mode: multiply | |
| restitution_combine_mode: multiply | |
| debug_vis: false | |
| max_init_terrain_level: 4 | |
| random_spawn: true | |
| random_spawn_margin: 4.0 | |
| generator: | |
| num_rows: 4 | |
| num_cols: 4 | |
| size: | |
| - 20.0 | |
| - 20.0 | |
| border_width: 1000.0 | |
| horizontal_scale: 0.1 | |
| vertical_scale: 0.005 | |
| slope_threshold: null | |
| difficulty_range: | |
| - 0.0 | |
| - 1.0 | |
| color_scheme: height | |
| sub_terrains: | |
| rough: | |
| type: random_uniform | |
| proportion: 1.0 | |
| noise_range: | |
| - 0.0 | |
| - 0.04 | |
| noise_step: 0.05 | |
| downsampled_scale: 1.0 | |
| visual_material: | |
| type: color | |
| diffuse_color: | |
| - 0.25 | |
| - 0.25 | |
| - 0.25 | |
| metallic: 0.0 | |
| roughness: 0.5 | |
| modules: | |
| actor: | |
| type: ReferenceRoutedGroupedMoETransformerPolicy | |
| use_checkpointing: false | |
| num_fine_experts: 1024 | |
| num_shared_experts: 1 | |
| top_k: 2 | |
| moe_loss_coef: 0.0 | |
| routing_score_fn: ${algo.config.moe_router.routing_score_fn} | |
| routing_scale: ${algo.config.moe_router.routing_scale} | |
| use_dynamic_bias: ${algo.config.moe_router.use_dynamic_bias} | |
| bias_update_rate: ${algo.config.moe_router.bias_update_rate} | |
| expert_bias_clip: ${algo.config.moe_router.expert_bias_clip} | |
| obs_embed_mlp_hidden: 2048 | |
| router_embed_mlp_hidden: 2048 | |
| d_model: 512 | |
| n_heads: 8 | |
| n_kv_heads: 4 | |
| use_gated_attn: true | |
| n_layers: 1 | |
| ff_mult: 0.5 | |
| ff_mult_dense: 4 | |
| attn_dropout: 0.0 | |
| mlp_dropout: 0.0 | |
| max_ctx_len: 32 | |
| aux_sys_id_weight: 0.0 | |
| aux_dynamics_weight: 0.0 | |
| obs_norm: | |
| enabled: true | |
| epsilon: 1.0e-08 | |
| update_method: ema | |
| ema_momentum: 0.0001 | |
| update_at_train: true | |
| update_at_eval: false | |
| enable_clipping: true | |
| clip_range: 10.0 | |
| sync_interval_steps: 4 | |
| obs_schema: | |
| flattened_obs: | |
| seq_len: ${obs.context_length} | |
| terms: | |
| - unified/actor_ref_gravity_projection_cur | |
| - unified/actor_ref_base_linvel_cur | |
| - unified/actor_ref_base_angvel_cur | |
| - unified/actor_ref_dof_pos_cur | |
| - unified/actor_ref_root_height_cur | |
| - unified/actor_projected_gravity | |
| - unified/actor_rel_robot_root_ang_vel | |
| - unified/actor_dof_pos | |
| - unified/actor_dof_vel | |
| - unified/actor_last_action | |
| flattened_obs_fut: | |
| seq_len: ${obs.n_fut_frames} | |
| terms: | |
| - unified/actor_ref_dof_pos_fut | |
| - unified/actor_ref_root_height_fut | |
| - unified/actor_ref_gravity_projection_fut | |
| - unified/actor_ref_base_linvel_fut | |
| - unified/actor_ref_base_angvel_fut | |
| output_dim: robot_action_dim | |
| dense_layer_at_first: false | |
| critic: | |
| type: MLP | |
| obs_norm: | |
| enabled: true | |
| epsilon: 1.0e-08 | |
| update_method: ema | |
| ema_momentum: 0.0001 | |
| update_at_train: true | |
| update_at_eval: false | |
| enable_clipping: true | |
| clip_range: 10.0 | |
| sync_interval_steps: 4 | |
| hidden_norm: rmsnorm | |
| layer_config: | |
| hidden_dims: | |
| - 2048 | |
| - 2048 | |
| - 2048 | |
| - 2048 | |
| activation: SiLU | |
| obs_schema: | |
| flattened_obs: | |
| seq_len: 1 | |
| terms: | |
| - unified/critic_ref_dof_pos_cur | |
| - unified/critic_global_anchor_diff | |
| - unified/critic_ref_motion_cur_heading_aligned_root_pos | |
| - unified/critic_ref_motion_cur_heading_aligned_root_rot6d | |
| - unified/critic_ref_motion_cur_heading_aligned_root_lin_vel | |
| - unified/critic_ref_motion_cur_heading_aligned_root_ang_vel | |
| - unified/critic_rel_robot_root_lin_vel | |
| - unified/critic_rel_robot_root_ang_vel | |
| - unified/critic_global_robot_bodylink_lin_vel_flat | |
| - unified/critic_global_robot_bodylink_ang_vel_flat | |
| - unified/critic_root_rel_robot_bodylink_pos_flat | |
| - unified/critic_root_rel_robot_bodylink_rot_mat_flat | |
| - unified/critic_dof_pos | |
| - unified/critic_dof_vel | |
| - unified/critic_last_action | |
| flattened_obs_fut: | |
| seq_len: ${obs.n_fut_frames} | |
| terms: | |
| - unified/critic_ref_dof_pos_fut | |
| - unified/critic_ref_root_height_fut | |
| - unified/critic_ref_motion_fut_heading_aligned_root_pos | |
| - unified/critic_ref_motion_fut_heading_aligned_root_rot6d | |
| - unified/critic_ref_motion_fut_heading_aligned_root_lin_vel | |
| - unified/critic_ref_motion_fut_heading_aligned_root_ang_vel | |
| output_dim: 1 | |
| train_hdf5_roots: | |
| - /horizon-bucket/robot_lab/users/bo07.zhang-labs/Data/h5v2_datasets/h5v2_AMASS_GMR | |
| - /horizon-bucket/robot_lab/users/bo07.zhang-labs/Data/h5v2_datasets/h5v2_LAFAN1_g1_official | |
| - /horizon-bucket/robot_lab/users/bo07.zhang-labs/Data/h5v2_datasets/h5v2_pico_record_260402 | |
| - /horizon-bucket/robot_lab/users/bo07.zhang-labs/Data/h5v2_datasets/h5v2_MotionMillion_GMR_260402 | |
| - /horizon-bucket/robot_lab/users/bo07.zhang-labs/Data/h5v2_datasets/h5v2_nyt_260410 | |
| - /horizon-bucket/robot_lab/users/bo07.zhang-labs/Data/h5v2_datasets/h5v2_sonic_260430 | |
| mujoco_eval: | |
| enabled: true | |
| robot_xml_path: assets/robots/unitree/G1/29dof/scene_29dof.xml | |
| motion_npz_dir: /horizon-bucket/robot_lab/users/maiyue01.chen/expr_output/HoloMotionMotionTracking/HoloMotionMotrackV1.2/20260216_234025-training/motion_tracking/train_g1_test_h5v2_tf_aidi_8-64_2500h_more_info_beta2_2x8GPUs/isaaclab_eval_output_model_15000_v1.1_eval | |
| dump_npzs: true | |
| calc_per_clip_metrics: true | |
| generate_report: true | |
| ray_actors_per_gpu: 16 | |
| ray_multi_ckpt_mode: split | |
| ckpt_onnx_names: | |
| - model_2000.onnx | |
| - model_4000.onnx | |
| - model_6000.onnx | |
| - model_8000.onnx | |
| - model_10000.onnx | |