Zhengyiluo commited on
Commit
183ed69
·
verified ·
1 Parent(s): cc80d50

Add low-latency SONIC checkpoint

Browse files

Adds the low-latency SONIC variant from sonic_release_3pt_ultralatency_not_usd model_step_100000. The final PyTorch checkpoint is exposed as low_latency/last.pt.

low_latency/config.yaml ADDED
@@ -0,0 +1,935 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ num_gpus: 1
2
+ max_retries: 1
3
+ seed: 0
4
+ codebase_version: 1.0
5
+ headless: true
6
+ num_envs: 4096
7
+ auto_load_latest: false
8
+ checkpoint: logs_rl/TRL_G1_Track/manager/universal_token/all_modes/sonic_release_3pt_ultralatency_not_usd-20260323_141755/last.pt
9
+ project_name: TRL_G1_Track
10
+ experiment_name: ${exp_base}_${exp_var}
11
+ base_dir: logs_rl
12
+ timestamp: ${now:%Y%m%d_%H%M%S}
13
+ experiment_dir: logs_rl/TRL_G1_Track/manager/universal_token/all_modes/sonic_release_3pt_ultralatency_not_usd-20260323_141755
14
+ save_dir: ${experiment_dir}/.hydra
15
+ force_flat_terrain: false
16
+ use_wandb: true
17
+ log_task_name: TEST
18
+ multi_gpu: true
19
+ global_rank: 0
20
+ sim_type: isaacsim
21
+ env_spacing: 20
22
+ output_dir: ${experiment_dir}/output
23
+ eval_overrides:
24
+ headless: false
25
+ num_envs: 1
26
+ auto_load_latest: false
27
+ use_wandb: false
28
+ algo:
29
+ trl:
30
+ dataset_name: dummy
31
+ output_dir: logs_rl/TRL_G1_Track/manager/universal_token/all_modes/sonic_release_3pt_ultralatency_not_usd-20260323_141755
32
+ learning_rate: ${algo.config.actor_learning_rate}
33
+ num_total_batches: ${algo.config.num_learning_iterations}
34
+ total_episodes: null
35
+ num_ppo_epochs: ${algo.config.num_learning_epochs}
36
+ num_mini_batches: ${algo.config.num_mini_batches}
37
+ per_device_train_batch_size: null
38
+ gradient_accumulation_steps: 1
39
+ report_to: none
40
+ gamma: ${algo.config.gamma}
41
+ lam: ${algo.config.lam}
42
+ vf_coef: ${algo.config.value_loss_coef}
43
+ max_grad_norm: ${algo.config.max_grad_norm}
44
+ lr_scheduler_type: constant
45
+ save_strategy: 'no'
46
+ disable_tqdm: true
47
+ config:
48
+ critic:
49
+ _target_: groot.rl.trl.modules.actor_critic_modules.Critic
50
+ running_mean_std: true
51
+ backbone:
52
+ _target_: groot.rl.trl.modules.base_module.BaseModule
53
+ process_output_dim: true
54
+ module_config_dict:
55
+ type: MLP
56
+ input_dim:
57
+ - critic_obs
58
+ output_dim:
59
+ - 1
60
+ layer_config:
61
+ type: MLP
62
+ hidden_dims:
63
+ - 4096
64
+ - 4096
65
+ - 2048
66
+ - 2048
67
+ - 1024
68
+ - 1024
69
+ - 512
70
+ - 512
71
+ activation: SiLU
72
+ actor:
73
+ backbone:
74
+ quantizer:
75
+ _target_: vector_quantize_pytorch.FSQ
76
+ encoders:
77
+ g1:
78
+ inputs:
79
+ - command_multi_future_nonflat
80
+ - motion_anchor_ori_b_mf_nonflat
81
+ params:
82
+ _target_: groot.rl.trl.modules.base_module.BaseModule
83
+ input_dim: null
84
+ output_dim: null
85
+ num_input_temporal_dims: ${manager_env.commands.motion.num_future_frames}
86
+ num_output_temporal_dims: ${algo.config.actor.backbone.max_num_tokens}
87
+ module_config_dict:
88
+ layer_config:
89
+ type: MLP
90
+ hidden_dims:
91
+ - 2048
92
+ - 1024
93
+ - 512
94
+ - 512
95
+ activation: SiLU
96
+ teleop:
97
+ inputs:
98
+ - command_multi_future_lower_body
99
+ - vr_3point_local_target
100
+ - vr_3point_local_orn_target
101
+ - motion_anchor_ori_b
102
+ params:
103
+ _target_: groot.rl.trl.modules.base_module.BaseModule
104
+ input_dim: null
105
+ output_dim: null
106
+ num_input_temporal_dims: null
107
+ num_output_temporal_dims: ${algo.config.actor.backbone.max_num_tokens}
108
+ module_config_dict:
109
+ layer_config:
110
+ type: MLP
111
+ hidden_dims:
112
+ - 2048
113
+ - 1024
114
+ - 512
115
+ - 512
116
+ activation: SiLU
117
+ smpl:
118
+ inputs:
119
+ - smpl_joints_multi_future_local_nonflat
120
+ - smpl_root_ori_b_multi_future
121
+ - joint_pos_multi_future_wrist_for_smpl
122
+ params:
123
+ _target_: groot.rl.trl.modules.base_module.BaseModule
124
+ input_dim: null
125
+ output_dim: null
126
+ num_input_temporal_dims: ${manager_env.commands.motion.smpl_num_future_frames}
127
+ num_output_temporal_dims: ${algo.config.actor.backbone.max_num_tokens}
128
+ module_config_dict:
129
+ layer_config:
130
+ type: MLP
131
+ hidden_dims:
132
+ - 2048
133
+ - 1024
134
+ - 512
135
+ - 512
136
+ activation: SiLU
137
+ decoders:
138
+ g1_dyn:
139
+ inputs:
140
+ - token_flattened
141
+ - proprioception
142
+ outputs:
143
+ - action
144
+ has_temporal_dim: false
145
+ params:
146
+ _target_: groot.rl.trl.modules.base_module.BaseModule
147
+ input_dim: null
148
+ output_dim: null
149
+ num_input_temporal_dims: null
150
+ num_output_temporal_dims: null
151
+ module_config_dict:
152
+ layer_config:
153
+ type: MLP
154
+ hidden_dims:
155
+ - 4096
156
+ - 4096
157
+ - 2048
158
+ - 2048
159
+ - 1024
160
+ - 1024
161
+ - 512
162
+ - 512
163
+ activation: SiLU
164
+ g1_kin:
165
+ inputs:
166
+ - token
167
+ outputs:
168
+ - command_multi_future_nonflat
169
+ - motion_anchor_ori_b_mf_nonflat
170
+ has_temporal_dim: true
171
+ params:
172
+ _target_: groot.rl.trl.modules.base_module.BaseModule
173
+ input_dim: null
174
+ output_dim: null
175
+ num_input_temporal_dims: ${algo.config.actor.backbone.max_num_tokens}
176
+ num_output_temporal_dims: ${manager_env.commands.motion.num_future_frames}
177
+ module_config_dict:
178
+ layer_config:
179
+ type: MLP
180
+ hidden_dims:
181
+ - 2048
182
+ - 1024
183
+ - 512
184
+ - 512
185
+ activation: SiLU
186
+ _target_: groot.rl.trl.modules.universal_token_modules.UniversalTokenModule
187
+ num_future_frames: ${manager_env.commands.motion.num_future_frames}
188
+ proprioception_features:
189
+ - actor_obs
190
+ encoder_sample_probs: ${manager_env.commands.motion.encoder_sample_probs}
191
+ num_fsq_levels: 32
192
+ fsq_level_list: 32
193
+ max_num_tokens: 2
194
+ aux_loss_func:
195
+ g1_recon:
196
+ _target_: groot.rl.trl.losses.token_losses.G1ReconLoss
197
+ loss_type: mse
198
+ g1_smpl_latent:
199
+ _target_: groot.rl.trl.losses.token_losses.G1SmplLatentLoss
200
+ loss_type: mse
201
+ g1_teleop_latent:
202
+ _target_: groot.rl.trl.losses.token_losses.G1TeleopLatentLoss
203
+ loss_type: mse
204
+ teleop_smpl_latent:
205
+ _target_: groot.rl.trl.losses.token_losses.TeleopSmplLatentLoss
206
+ loss_type: mse
207
+ detach_teleop_target: true
208
+ reencoded_smpl_g1_latent:
209
+ _target_: groot.rl.trl.losses.token_losses.ReencodedSmplG1LatentLoss
210
+ loss_type: mse
211
+ aux_loss_coef:
212
+ g1_recon: 0.01
213
+ g1_smpl_latent: 1.0
214
+ g1_teleop_latent: 1.0
215
+ teleop_smpl_latent: 1.0
216
+ reencoded_smpl_g1_latent: 1.0
217
+ reencode_smpl_g1_recon: true
218
+ _target_: groot.rl.trl.modules.actor_critic_modules.Actor
219
+ running_mean_std: false
220
+ input_obs_dict: true
221
+ has_aux_loss: true
222
+ num_learning_epochs: 5
223
+ num_mini_batches: 4
224
+ clip_param: 0.2
225
+ gamma: 0.99
226
+ lam: 0.95
227
+ value_loss_coef: 1.0
228
+ entropy_coef: 0.01
229
+ actor_learning_rate: 2.0e-05
230
+ critic_learning_rate: 0.001
231
+ max_grad_norm: 0.1
232
+ use_clipped_value_loss: true
233
+ schedule: adaptive
234
+ desired_kl: 0.01
235
+ adaptive_lr_min: 1.0e-05
236
+ adaptive_lr_max: 0.0002
237
+ use_new_actor_critic: true
238
+ use_padding_mask: false
239
+ ppo_shuffle_every_epoch: true
240
+ sync_advantage_normalization: true
241
+ empty_cache_every_n_ppo_epoch: -1
242
+ num_steps_per_env: 24
243
+ save_interval: 500
244
+ eval_frequency: 500
245
+ load_optimizer: true
246
+ init_noise_std: 0.05
247
+ num_learning_iterations: 100000
248
+ init_at_random_ep_len: true
249
+ eval_callbacks:
250
+ analysis_plot_cb:
251
+ _target_: groot.rl.agents.callbacks.analysis_plot_motion_tracking.AnalysisPlotMotionTracking
252
+ config:
253
+ sim_dt: 0.02
254
+ log_single_robot: false
255
+ plot_update_interval: 100
256
+ compute_metrics: true
257
+ use_weblogger: false
258
+ global_rank: 0
259
+ world_size: 128
260
+ use_clampped_std: true
261
+ std_clamp_min: 0.001
262
+ std_clamp_max: 0.5
263
+ _target_: groot.rl.agents.ppo.ppo_im.PPOIM
264
+ _recursive_: false
265
+ env: ???
266
+ terrain: ???
267
+ callbacks:
268
+ model_save:
269
+ _target_: groot.rl.trl.callbacks.model_save_callback.ModelSaveCallback
270
+ save_dir: ${experiment_dir}
271
+ save_frequency: 2000
272
+ max_disk_usage: 14.8
273
+ wandb:
274
+ _target_: groot.rl.trl.callbacks.wandb_callback.WandbCallback
275
+ read_eval:
276
+ _target_: groot.rl.trl.callbacks.read_eval_callback.ReadEvalCallback
277
+ eval_dir: ${experiment_dir}/eval
278
+ check_interval: 1
279
+ im_resample:
280
+ _target_: groot.rl.trl.callbacks.im_resample_callback.ImResampleCallback
281
+ motion_resample_frequency: 250
282
+ trainer:
283
+ _target_: groot.rl.trl.trainer.ppo_trainer_aux_loss.TRLAuxLossPPOTrainer
284
+ wandb:
285
+ wandb_project: null
286
+ wandb_tags: online
287
+ wandb_group: zen_0306
288
+ wandb_id: 7wypxf8x
289
+ wandb_entity: null
290
+ wandb_dir: /tmp
291
+ manager_env:
292
+ commands:
293
+ motion:
294
+ encoder_sample_probs:
295
+ g1: 1.0
296
+ teleop: 1.0
297
+ smpl: 1.0
298
+ _target_: groot.rl.envs.manager_env.mdp.commands.TrackingCommandCfg
299
+ asset_name: robot
300
+ motion_lib_cfg:
301
+ motion_file: /mnt/amlfs-01/shared/wbc_data/training_mixes/train_pyroki_0213_26/
302
+ smpl_motion_file: /mnt/amlfs-01/shared/wbc_data/smpl_retarget/1215/
303
+ asset:
304
+ assetRoot: groot/rl/data/assets/bm/unitree_description/mjcf/
305
+ assetFileName: g1_29dof_rev_1_0.xml
306
+ urdfFileName: ''
307
+ extend_config: []
308
+ target_fps: 50
309
+ multi_thread: true
310
+ filter_motion_keys: null
311
+ adaptive_sampling:
312
+ enable: true
313
+ bin_size: 50
314
+ sequence_length_agnostic: true
315
+ init_num_failures: 1
316
+ uniform_sampling_rate: 0.1
317
+ pre_failure_sample_window: 200
318
+ use_failure_rate_decay: false
319
+ decay_gamma: 0.8
320
+ adp_samp_failure_rate_max_over_mean: 200
321
+ upper_body_augment_prefixes:
322
+ - '2025'
323
+ - sonic_mixed_walking_running
324
+ - sonic_squating_different_height_switching
325
+ - sonic_running
326
+ - sonic_walking
327
+ - sonic_squating_different_height_hold
328
+ - sonic_walking_other_style
329
+ - balance
330
+ smpl_y_up: true
331
+ resampling_time_range:
332
+ - 1000000000.0
333
+ - 1000000000.0
334
+ debug_vis: true
335
+ dt_future_ref_frames: 0.02
336
+ num_future_frames: 10
337
+ pose_range:
338
+ x:
339
+ - -0.05
340
+ - 0.05
341
+ 'y':
342
+ - -0.05
343
+ - 0.05
344
+ z:
345
+ - -0.01
346
+ - 0.01
347
+ roll:
348
+ - -0.1
349
+ - 0.1
350
+ pitch:
351
+ - -0.1
352
+ - 0.1
353
+ yaw:
354
+ - -0.2
355
+ - 0.2
356
+ velocity_range:
357
+ x:
358
+ - -0.5
359
+ - 0.5
360
+ 'y':
361
+ - -0.5
362
+ - 0.5
363
+ z:
364
+ - -0.2
365
+ - 0.2
366
+ roll:
367
+ - -0.52
368
+ - 0.52
369
+ pitch:
370
+ - -0.52
371
+ - 0.52
372
+ yaw:
373
+ - -0.78
374
+ - 0.78
375
+ joint_position_range:
376
+ - -0.1
377
+ - 0.1
378
+ joint_velocity_range:
379
+ - 0
380
+ - 0
381
+ anchor_body: pelvis
382
+ vr_3point_body:
383
+ - left_wrist_yaw_link
384
+ - right_wrist_yaw_link
385
+ - torso_link
386
+ vr_3point_body_offset:
387
+ - - 0.18
388
+ - -0.025
389
+ - 0.0
390
+ - - 0.18
391
+ - 0.025
392
+ - 0.0
393
+ - - 0.0
394
+ - 0.0
395
+ - 0.35
396
+ reward_point_body:
397
+ - torso_link
398
+ - left_wrist_yaw_link
399
+ - right_wrist_yaw_link
400
+ reward_point_body_offset:
401
+ - - 0.0
402
+ - 0.0
403
+ - 0.5
404
+ - - 0.0
405
+ - -0.0
406
+ - 0.0
407
+ - - 0.0
408
+ - -0.0
409
+ - 0.0
410
+ body_names:
411
+ - pelvis
412
+ - left_hip_roll_link
413
+ - left_knee_link
414
+ - left_ankle_roll_link
415
+ - right_hip_roll_link
416
+ - right_knee_link
417
+ - right_ankle_roll_link
418
+ - torso_link
419
+ - left_shoulder_roll_link
420
+ - left_elbow_link
421
+ - left_wrist_yaw_link
422
+ - right_shoulder_roll_link
423
+ - right_elbow_link
424
+ - right_wrist_yaw_link
425
+ smpl_num_future_frames: 4
426
+ smpl_dt_future_ref_frames: 0.02
427
+ cat_upper_body_poses: true
428
+ cat_upper_body_poses_prob: 0.5
429
+ freeze_frame_aug: true
430
+ teleop_sample_prob_when_smpl: 0.5
431
+ _target_: groot.rl.envs.manager_env.mdp.commands.CommandsCfg
432
+ actions:
433
+ joint_pos:
434
+ _target_: isaaclab.envs.mdp.actions.JointPositionActionCfg
435
+ asset_name: robot
436
+ joint_names:
437
+ - .*
438
+ use_default_offset: true
439
+ _target_: groot.rl.envs.manager_env.mdp.actions.ActionsCfg
440
+ observations:
441
+ policy:
442
+ gravity_dir:
443
+ _target_: isaaclab.managers.ObservationTermCfg
444
+ func: groot.rl.envs.manager_env.mdp:gravity_dir
445
+ params:
446
+ command_name: motion
447
+ history_length: ${actor_prop_history_length}
448
+ noise:
449
+ _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
450
+ n_min: -0.05
451
+ n_max: 0.05
452
+ base_ang_vel:
453
+ _target_: isaaclab.managers.ObservationTermCfg
454
+ func: groot.rl.envs.manager_env.mdp:base_ang_vel
455
+ history_length: ${actor_prop_history_length}
456
+ noise:
457
+ _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
458
+ n_min: -0.2
459
+ n_max: 0.2
460
+ joint_pos:
461
+ _target_: isaaclab.managers.ObservationTermCfg
462
+ func: groot.rl.envs.manager_env.mdp:joint_pos_rel
463
+ history_length: ${actor_prop_history_length}
464
+ noise:
465
+ _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
466
+ n_min: -0.01
467
+ n_max: 0.01
468
+ joint_vel:
469
+ _target_: isaaclab.managers.ObservationTermCfg
470
+ func: groot.rl.envs.manager_env.mdp:joint_vel_rel
471
+ history_length: ${actor_prop_history_length}
472
+ noise:
473
+ _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
474
+ n_min: -0.5
475
+ n_max: 0.5
476
+ actions:
477
+ _target_: isaaclab.managers.ObservationTermCfg
478
+ func: groot.rl.envs.manager_env.mdp:last_action
479
+ history_length: ${actor_actions_history_length}
480
+ _target_: groot.rl.envs.manager_env.mdp.observations.PolicyCfg
481
+ enable_corruption: true
482
+ concatenate_terms: true
483
+ critic:
484
+ command_multi_future:
485
+ _target_: isaaclab.managers.ObservationTermCfg
486
+ func: groot.rl.envs.manager_env.mdp:command_multi_future
487
+ params:
488
+ command_name: motion
489
+ motion_anchor_pos_b:
490
+ _target_: isaaclab.managers.ObservationTermCfg
491
+ func: groot.rl.envs.manager_env.mdp:motion_anchor_pos_b
492
+ params:
493
+ command_name: motion
494
+ motion_anchor_ori_b:
495
+ _target_: isaaclab.managers.ObservationTermCfg
496
+ func: groot.rl.envs.manager_env.mdp:motion_anchor_ori_b
497
+ params:
498
+ command_name: motion
499
+ body_pos:
500
+ _target_: isaaclab.managers.ObservationTermCfg
501
+ func: groot.rl.envs.manager_env.mdp:robot_body_pos_b
502
+ params:
503
+ command_name: motion
504
+ body_ori:
505
+ _target_: isaaclab.managers.ObservationTermCfg
506
+ func: groot.rl.envs.manager_env.mdp:robot_body_ori_b
507
+ params:
508
+ command_name: motion
509
+ base_lin_vel:
510
+ _target_: isaaclab.managers.ObservationTermCfg
511
+ func: groot.rl.envs.manager_env.mdp:base_lin_vel
512
+ history_length: ${critic_prop_history_length}
513
+ base_ang_vel:
514
+ _target_: isaaclab.managers.ObservationTermCfg
515
+ func: groot.rl.envs.manager_env.mdp:base_ang_vel
516
+ history_length: ${critic_prop_history_length}
517
+ joint_pos:
518
+ _target_: isaaclab.managers.ObservationTermCfg
519
+ func: groot.rl.envs.manager_env.mdp:joint_pos_rel
520
+ history_length: ${critic_prop_history_length}
521
+ joint_vel:
522
+ _target_: isaaclab.managers.ObservationTermCfg
523
+ func: groot.rl.envs.manager_env.mdp:joint_vel_rel
524
+ history_length: ${critic_prop_history_length}
525
+ actions:
526
+ _target_: isaaclab.managers.ObservationTermCfg
527
+ func: groot.rl.envs.manager_env.mdp:last_action
528
+ history_length: ${critic_actions_history_length}
529
+ _target_: groot.rl.envs.manager_env.mdp.observations.PrivilegedCfg
530
+ tokenizer:
531
+ encoder_index:
532
+ _target_: isaaclab.managers.ObservationTermCfg
533
+ func: groot.rl.envs.manager_env.mdp:get_command_obs
534
+ params:
535
+ command_name: motion
536
+ obs_name: episode_encoder_index
537
+ command_multi_future_nonflat:
538
+ _target_: isaaclab.managers.ObservationTermCfg
539
+ func: groot.rl.envs.manager_env.mdp:command_multi_future
540
+ params:
541
+ command_name: motion
542
+ non_flatten: true
543
+ command_z_multi_future_nonflat:
544
+ _target_: isaaclab.managers.ObservationTermCfg
545
+ func: groot.rl.envs.manager_env.mdp:command_z_multi_future
546
+ params:
547
+ command_name: motion
548
+ non_flatten: true
549
+ motion_anchor_ori_b_mf_nonflat:
550
+ _target_: isaaclab.managers.ObservationTermCfg
551
+ func: groot.rl.envs.manager_env.mdp:motion_anchor_ori_b_mf
552
+ params:
553
+ command_name: motion
554
+ non_flatten: true
555
+ noise:
556
+ _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
557
+ n_min: -0.05
558
+ n_max: 0.05
559
+ command_multi_future_lower_body:
560
+ _target_: isaaclab.managers.ObservationTermCfg
561
+ func: groot.rl.envs.manager_env.mdp:command_multi_future_lower_body
562
+ params:
563
+ command_name: motion
564
+ vr_3point_local_target:
565
+ _target_: isaaclab.managers.ObservationTermCfg
566
+ func: groot.rl.envs.manager_env.mdp:vr_3point_local_target
567
+ params:
568
+ command_name: motion
569
+ vr_3point_local_orn_target:
570
+ _target_: isaaclab.managers.ObservationTermCfg
571
+ func: groot.rl.envs.manager_env.mdp:vr_3point_local_orn_target
572
+ params:
573
+ command_name: motion
574
+ motion_anchor_ori_b:
575
+ _target_: isaaclab.managers.ObservationTermCfg
576
+ func: groot.rl.envs.manager_env.mdp:motion_anchor_ori_b
577
+ params:
578
+ command_name: motion
579
+ noise:
580
+ _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
581
+ n_min: -0.05
582
+ n_max: 0.05
583
+ command_z:
584
+ _target_: isaaclab.managers.ObservationTermCfg
585
+ func: groot.rl.envs.manager_env.mdp:command_z
586
+ params:
587
+ command_name: motion
588
+ smpl_joints_multi_future_local_nonflat:
589
+ _target_: isaaclab.managers.ObservationTermCfg
590
+ func: groot.rl.envs.manager_env.mdp:smpl_joints_multi_future_local
591
+ params:
592
+ command_name: motion
593
+ non_flatten: true
594
+ noise:
595
+ _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
596
+ n_min: -0.05
597
+ n_max: 0.05
598
+ smpl_root_ori_b_multi_future:
599
+ _target_: isaaclab.managers.ObservationTermCfg
600
+ func: groot.rl.envs.manager_env.mdp:smpl_root_ori_b_mf
601
+ params:
602
+ command_name: motion
603
+ non_flatten: true
604
+ noise:
605
+ _target_: isaaclab.utils.noise.AdditiveUniformNoiseCfg
606
+ n_min: -0.05
607
+ n_max: 0.05
608
+ joint_pos_multi_future_wrist_for_smpl:
609
+ _target_: isaaclab.managers.ObservationTermCfg
610
+ func: groot.rl.envs.manager_env.mdp:joint_pos_multi_future_select_joints_for_smpl
611
+ params:
612
+ command_name: motion
613
+ joints_idx:
614
+ - 23
615
+ - 24
616
+ - 25
617
+ - 26
618
+ - 27
619
+ - 28
620
+ _target_: groot.rl.envs.manager_env.mdp.observations.TokenizerCfg
621
+ enable_corruption: true
622
+ concatenate_terms: false
623
+ _target_: groot.rl.envs.manager_env.mdp.observations.ObservationsCfg
624
+ rewards:
625
+ tracking_anchor_pos:
626
+ _target_: isaaclab.managers.RewardTermCfg
627
+ func: groot.rl.envs.manager_env.mdp:tracking_anchor_pos_error
628
+ weight: 0.5
629
+ params:
630
+ command_name: motion
631
+ std: 0.3
632
+ tracking_anchor_ori:
633
+ _target_: isaaclab.managers.RewardTermCfg
634
+ func: groot.rl.envs.manager_env.mdp:tracking_anchor_ori_error
635
+ weight: 0.5
636
+ params:
637
+ command_name: motion
638
+ std: 0.4
639
+ tracking_relative_body_pos:
640
+ _target_: isaaclab.managers.RewardTermCfg
641
+ func: groot.rl.envs.manager_env.mdp:tracking_relative_body_pos_error
642
+ weight: 1.0
643
+ params:
644
+ command_name: motion
645
+ std: 0.3
646
+ tracking_relative_body_ori:
647
+ _target_: isaaclab.managers.RewardTermCfg
648
+ func: groot.rl.envs.manager_env.mdp:tracking_relative_body_ori_error
649
+ weight: 1.0
650
+ params:
651
+ command_name: motion
652
+ std: 0.4
653
+ tracking_body_linvel:
654
+ _target_: isaaclab.managers.RewardTermCfg
655
+ func: groot.rl.envs.manager_env.mdp:tracking_body_linvel_error
656
+ weight: 1.0
657
+ params:
658
+ command_name: motion
659
+ std: 1.0
660
+ tracking_body_angvel:
661
+ _target_: isaaclab.managers.RewardTermCfg
662
+ func: groot.rl.envs.manager_env.mdp:tracking_body_angvel_error
663
+ weight: 1.0
664
+ params:
665
+ command_name: motion
666
+ std: 3.14
667
+ action_rate_l2:
668
+ _target_: isaaclab.managers.RewardTermCfg
669
+ func: groot.rl.envs.manager_env.mdp:action_rate_l2
670
+ weight: -0.1
671
+ joint_limit:
672
+ _target_: isaaclab.managers.RewardTermCfg
673
+ func: groot.rl.envs.manager_env.mdp:joint_pos_limits
674
+ weight: -10.0
675
+ params:
676
+ asset_cfg:
677
+ _target_: isaaclab.managers.SceneEntityCfg
678
+ name: robot
679
+ joint_names:
680
+ - .*
681
+ undesired_contacts:
682
+ _target_: isaaclab.managers.RewardTermCfg
683
+ func: groot.rl.envs.manager_env.mdp:undesired_contacts
684
+ weight: -0.1
685
+ params:
686
+ sensor_cfg:
687
+ _target_: isaaclab.managers.SceneEntityCfg
688
+ name: contact_forces
689
+ body_names:
690
+ - ^(?!left_ankle_roll_link$)(?!right_ankle_roll_link$)(?!left_wrist_yaw_link$)(?!right_wrist_yaw_link$)(?!left_elbow_link$)(?!right_elbow_link$).+$
691
+ threshold: 1.0
692
+ anti_shake_ang_vel:
693
+ _target_: isaaclab.managers.RewardTermCfg
694
+ func: groot.rl.envs.manager_env.mdp:anti_shake_ang_vel_l2
695
+ weight: -0.005
696
+ params:
697
+ command_name: motion
698
+ threshold: 1.5
699
+ body_names:
700
+ - left_wrist_yaw_link
701
+ - right_wrist_yaw_link
702
+ - head_link
703
+ tracking_vr_5point_local:
704
+ _target_: isaaclab.managers.RewardTermCfg
705
+ func: groot.rl.envs.manager_env.mdp:tracking_local_vr_5point_error
706
+ weight: 2.0
707
+ params:
708
+ command_name: motion
709
+ std: 0.1
710
+ tracking_vr_2wrists_local_ori:
711
+ _target_: isaaclab.managers.RewardTermCfg
712
+ func: groot.rl.envs.manager_env.mdp:tracking_local_vr_2wrists_ori_error
713
+ weight: 0.4
714
+ params:
715
+ command_name: motion
716
+ std: 0.1
717
+ body_names:
718
+ - left_wrist_yaw_link
719
+ - right_wrist_yaw_link
720
+ feet_acc:
721
+ _target_: isaaclab.managers.RewardTermCfg
722
+ func: groot.rl.envs.manager_env.mdp:joint_acc_l2
723
+ weight: -2.5e-06
724
+ params:
725
+ asset_cfg:
726
+ _target_: isaaclab.managers.SceneEntityCfg
727
+ name: robot
728
+ joint_names:
729
+ - .*ankle.*
730
+ energy_consumption:
731
+ _target_: isaaclab.managers.RewardTermCfg
732
+ func: groot.rl.envs.manager_env.mdp:energy_consumption
733
+ weight: -0.0001
734
+ params:
735
+ asset_cfg:
736
+ name: robot
737
+ _target_: groot.rl.envs.manager_env.mdp.rewards.RewardsCfg
738
+ terminations:
739
+ anchor_pos:
740
+ _target_: isaaclab.managers.TerminationTermCfg
741
+ func: groot.rl.envs.manager_env.mdp:exceeded_anchor_height
742
+ params:
743
+ command_name: motion
744
+ threshold: 0.15
745
+ threshold_adaptive: true
746
+ down_threshold: 0.75
747
+ root_height_threshold: 0.5
748
+ anchor_ori_full:
749
+ _target_: isaaclab.managers.TerminationTermCfg
750
+ func: groot.rl.envs.manager_env.mdp:exceeded_anchor_ori
751
+ params:
752
+ asset_cfg:
753
+ _target_: isaaclab.managers.SceneEntityCfg
754
+ name: robot
755
+ command_name: motion
756
+ threshold: 0.2
757
+ ee_body_pos:
758
+ _target_: isaaclab.managers.TerminationTermCfg
759
+ func: groot.rl.envs.manager_env.mdp:exceeded_body_height
760
+ params:
761
+ command_name: motion
762
+ threshold: 0.15
763
+ threshold_adaptive: true
764
+ down_threshold: 0.75
765
+ root_height_threshold: 0.5
766
+ body_names:
767
+ - left_ankle_roll_link
768
+ - right_ankle_roll_link
769
+ - left_wrist_yaw_link
770
+ - right_wrist_yaw_link
771
+ time_out:
772
+ _target_: isaaclab.managers.TerminationTermCfg
773
+ func: groot.rl.envs.manager_env.mdp:tracking_time_out
774
+ time_out: true
775
+ params:
776
+ command_name: motion
777
+ foot_pos_xyz:
778
+ _target_: isaaclab.managers.TerminationTermCfg
779
+ func: groot.rl.envs.manager_env.mdp:exceeded_body_pos
780
+ params:
781
+ command_name: motion
782
+ threshold: 0.2
783
+ body_names:
784
+ - left_ankle_roll_link
785
+ - right_ankle_roll_link
786
+ _target_: groot.rl.envs.manager_env.mdp.terminations.TerminationsCfg
787
+ events:
788
+ physics_material:
789
+ _target_: isaaclab.managers.EventTermCfg
790
+ func: groot.rl.envs.manager_env.mdp:randomize_rigid_body_material
791
+ mode: startup
792
+ params:
793
+ asset_cfg:
794
+ _target_: isaaclab.managers.SceneEntityCfg
795
+ name: robot
796
+ body_names: .*
797
+ static_friction_range:
798
+ - 0.3
799
+ - 1.6
800
+ dynamic_friction_range:
801
+ - 0.3
802
+ - 1.2
803
+ restitution_range:
804
+ - 0.0
805
+ - 0.5
806
+ num_buckets: 64
807
+ add_joint_default_pos:
808
+ _target_: isaaclab.managers.EventTermCfg
809
+ func: groot.rl.envs.manager_env.mdp:randomize_joint_default_pos
810
+ mode: startup
811
+ params:
812
+ asset_cfg:
813
+ _target_: isaaclab.managers.SceneEntityCfg
814
+ name: robot
815
+ joint_names:
816
+ - .*
817
+ pos_distribution_params:
818
+ - -0.01
819
+ - 0.01
820
+ operation: add
821
+ base_com:
822
+ _target_: isaaclab.managers.EventTermCfg
823
+ func: groot.rl.envs.manager_env.mdp:randomize_rigid_body_com
824
+ mode: startup
825
+ params:
826
+ asset_cfg:
827
+ _target_: isaaclab.managers.SceneEntityCfg
828
+ name: robot
829
+ body_names: torso_link
830
+ com_range:
831
+ x:
832
+ - -0.025
833
+ - 0.025
834
+ 'y':
835
+ - -0.05
836
+ - 0.05
837
+ z:
838
+ - -0.05
839
+ - 0.05
840
+ push_robot:
841
+ _target_: isaaclab.managers.EventTermCfg
842
+ func: groot.rl.envs.manager_env.mdp:push_by_setting_velocity
843
+ mode: interval
844
+ interval_range_s:
845
+ - 4.0
846
+ - 6.0
847
+ params:
848
+ velocity_range:
849
+ x:
850
+ - -0.5
851
+ - 0.5
852
+ 'y':
853
+ - -0.5
854
+ - 0.5
855
+ z:
856
+ - -0.2
857
+ - 0.2
858
+ roll:
859
+ - -0.52
860
+ - 0.52
861
+ pitch:
862
+ - -0.52
863
+ - 0.52
864
+ yaw:
865
+ - -0.78
866
+ - 0.78
867
+ randomize_rigid_body_mass:
868
+ _target_: isaaclab.managers.EventTermCfg
869
+ func: groot.rl.envs.manager_env.mdp:randomize_rigid_body_mass
870
+ mode: startup
871
+ params:
872
+ asset_cfg:
873
+ _target_: isaaclab.managers.SceneEntityCfg
874
+ name: robot
875
+ body_names: .*wrist_yaw.*|torso_link
876
+ mass_distribution_params:
877
+ - 0.8
878
+ - 2.5
879
+ operation: scale
880
+ _target_: groot.rl.envs.manager_env.mdp.events.EventCfg
881
+ curriculum:
882
+ _target_: groot.rl.envs.manager_env.mdp.curriculum.CurriculumCfg
883
+ recorders:
884
+ _target_: groot.rl.envs.manager_env.mdp.recorders.RecordersCfg
885
+ _target_: groot.rl.envs.manager_env.modular_tracking_env_cfg.ModularTrackingEnvCfg
886
+ config:
887
+ num_envs: ${num_envs}
888
+ env_spacing: 2.0
889
+ decimation: 4
890
+ episode_length_s: 10.0
891
+ sim_dt: 0.005
892
+ viewer_eye:
893
+ - 4.5
894
+ - 0.0
895
+ - 6.0
896
+ viewer_lookat:
897
+ - 0.0
898
+ - 0.0
899
+ - 2.0
900
+ render_results: false
901
+ save_rendering_dir: ${experiment_dir}/renderings_training
902
+ experiment_dir: ${experiment_dir}
903
+ terrain_type: trimesh
904
+ object_mass: null
905
+ table_offset: null
906
+ eval_camera_offset:
907
+ - 2
908
+ - 2
909
+ - 1
910
+ action_transform_module_cfg: null
911
+ action_transform_module_checkpoint: null
912
+ meta_action_dim: null
913
+ needs_policy_atm: true
914
+ obs:
915
+ obs_dict: {}
916
+ obs_dims: {}
917
+ group_obs_dims: {}
918
+ group_obs_names: {}
919
+ action_clip_value: 20.0
920
+ robot:
921
+ type: g1_model_12_dex
922
+ algo_obs_dim_dict: {}
923
+ rewards:
924
+ num_critics: 1
925
+ train_only_events:
926
+ - push_robot
927
+ - compliance_force_push
928
+ use_manager_env: true
929
+ exp_base: ${hydra:runtime.choices.exp}
930
+ exp_var: not_usd
931
+ actor_prop_history_length: 10
932
+ actor_actions_history_length: 10
933
+ critic_prop_history_length: 10
934
+ critic_actions_history_length: 10
935
+ resume: true
low_latency/last.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0031ae7db24747445d6eb7c27697640973a837546f0b8763e775143c47d4507c
3
+ size 1125409931
low_latency/model_config.yaml ADDED
@@ -0,0 +1,328 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ algo_config:
2
+ actor:
3
+ _target_: groot.rl.trl.modules.actor_critic_modules.Actor
4
+ backbone:
5
+ _target_: groot.rl.trl.modules.universal_token_modules.UniversalTokenModule
6
+ aux_loss_coef:
7
+ g1_recon: 0.01
8
+ g1_smpl_latent: 1.0
9
+ g1_teleop_latent: 1.0
10
+ reencoded_smpl_g1_latent: 1.0
11
+ teleop_smpl_latent: 1.0
12
+ aux_loss_func:
13
+ g1_recon:
14
+ _target_: groot.rl.trl.losses.token_losses.G1ReconLoss
15
+ loss_type: mse
16
+ g1_smpl_latent:
17
+ _target_: groot.rl.trl.losses.token_losses.G1SmplLatentLoss
18
+ loss_type: mse
19
+ g1_teleop_latent:
20
+ _target_: groot.rl.trl.losses.token_losses.G1TeleopLatentLoss
21
+ loss_type: mse
22
+ reencoded_smpl_g1_latent:
23
+ _target_: groot.rl.trl.losses.token_losses.ReencodedSmplG1LatentLoss
24
+ loss_type: mse
25
+ teleop_smpl_latent:
26
+ _target_: groot.rl.trl.losses.token_losses.TeleopSmplLatentLoss
27
+ detach_teleop_target: true
28
+ loss_type: mse
29
+ decoders:
30
+ g1_dyn:
31
+ has_temporal_dim: false
32
+ inputs:
33
+ - token_flattened
34
+ - proprioception
35
+ outputs:
36
+ - action
37
+ params:
38
+ _target_: groot.rl.trl.modules.base_module.BaseModule
39
+ input_dim: null
40
+ module_config_dict:
41
+ layer_config:
42
+ activation: SiLU
43
+ hidden_dims:
44
+ - 4096
45
+ - 4096
46
+ - 2048
47
+ - 2048
48
+ - 1024
49
+ - 1024
50
+ - 512
51
+ - 512
52
+ type: MLP
53
+ num_input_temporal_dims: null
54
+ num_output_temporal_dims: null
55
+ output_dim: null
56
+ g1_kin:
57
+ has_temporal_dim: true
58
+ inputs:
59
+ - token
60
+ outputs:
61
+ - command_multi_future_nonflat
62
+ - motion_anchor_ori_b_mf_nonflat
63
+ params:
64
+ _target_: groot.rl.trl.modules.base_module.BaseModule
65
+ input_dim: null
66
+ module_config_dict:
67
+ layer_config:
68
+ activation: SiLU
69
+ hidden_dims:
70
+ - 2048
71
+ - 1024
72
+ - 512
73
+ - 512
74
+ type: MLP
75
+ num_input_temporal_dims: 2
76
+ num_output_temporal_dims: 10
77
+ output_dim: null
78
+ encoder_sample_probs:
79
+ g1: 1.0
80
+ smpl: 1.0
81
+ teleop: 1.0
82
+ encoders:
83
+ g1:
84
+ inputs:
85
+ - command_multi_future_nonflat
86
+ - motion_anchor_ori_b_mf_nonflat
87
+ params:
88
+ _target_: groot.rl.trl.modules.base_module.BaseModule
89
+ input_dim: null
90
+ module_config_dict:
91
+ layer_config:
92
+ activation: SiLU
93
+ hidden_dims:
94
+ - 2048
95
+ - 1024
96
+ - 512
97
+ - 512
98
+ type: MLP
99
+ num_input_temporal_dims: 10
100
+ num_output_temporal_dims: 2
101
+ output_dim: null
102
+ smpl:
103
+ inputs:
104
+ - smpl_joints_multi_future_local_nonflat
105
+ - smpl_root_ori_b_multi_future
106
+ - joint_pos_multi_future_wrist_for_smpl
107
+ params:
108
+ _target_: groot.rl.trl.modules.base_module.BaseModule
109
+ input_dim: null
110
+ module_config_dict:
111
+ layer_config:
112
+ activation: SiLU
113
+ hidden_dims:
114
+ - 2048
115
+ - 1024
116
+ - 512
117
+ - 512
118
+ type: MLP
119
+ num_input_temporal_dims: 4
120
+ num_output_temporal_dims: 2
121
+ output_dim: null
122
+ teleop:
123
+ inputs:
124
+ - command_multi_future_lower_body
125
+ - vr_3point_local_target
126
+ - vr_3point_local_orn_target
127
+ - motion_anchor_ori_b
128
+ params:
129
+ _target_: groot.rl.trl.modules.base_module.BaseModule
130
+ input_dim: null
131
+ module_config_dict:
132
+ layer_config:
133
+ activation: SiLU
134
+ hidden_dims:
135
+ - 2048
136
+ - 1024
137
+ - 512
138
+ - 512
139
+ type: MLP
140
+ num_input_temporal_dims: null
141
+ num_output_temporal_dims: 2
142
+ output_dim: null
143
+ fsq_level_list: 32
144
+ max_num_tokens: 2
145
+ num_fsq_levels: 32
146
+ num_future_frames: 10
147
+ proprioception_features:
148
+ - actor_obs
149
+ quantizer:
150
+ _target_: vector_quantize_pytorch.FSQ
151
+ reencode_smpl_g1_recon: true
152
+ has_aux_loss: true
153
+ input_obs_dict: true
154
+ running_mean_std: false
155
+ actor_learning_rate: 2.0e-05
156
+ adaptive_lr_max: 0.0002
157
+ adaptive_lr_min: 1.0e-05
158
+ clip_param: 0.2
159
+ critic:
160
+ _target_: groot.rl.trl.modules.actor_critic_modules.Critic
161
+ backbone:
162
+ _target_: groot.rl.trl.modules.base_module.BaseModule
163
+ module_config_dict:
164
+ input_dim:
165
+ - critic_obs
166
+ layer_config:
167
+ activation: SiLU
168
+ hidden_dims:
169
+ - 4096
170
+ - 4096
171
+ - 2048
172
+ - 2048
173
+ - 1024
174
+ - 1024
175
+ - 512
176
+ - 512
177
+ type: MLP
178
+ output_dim:
179
+ - 1
180
+ type: MLP
181
+ process_output_dim: true
182
+ running_mean_std: true
183
+ critic_learning_rate: 0.001
184
+ desired_kl: 0.01
185
+ empty_cache_every_n_ppo_epoch: -1
186
+ entropy_coef: 0.01
187
+ eval:
188
+ num_eval_episodes: 150
189
+ num_save_episodes: 200
190
+ save_goal_reached_only: true
191
+ save_trajectories: false
192
+ save_videos: false
193
+ video_save_prob: 1.0
194
+ eval_callbacks:
195
+ analysis_plot_cb:
196
+ _target_: groot.rl.agents.callbacks.analysis_plot_motion_tracking.AnalysisPlotMotionTracking
197
+ config:
198
+ compute_metrics: true
199
+ log_single_robot: false
200
+ plot_update_interval: 100
201
+ sim_dt: 0.02
202
+ use_weblogger: false
203
+ eval_frequency: 500
204
+ gamma: 0.99
205
+ global_rank: 0
206
+ init_at_random_ep_len: true
207
+ init_noise_std: 0.05
208
+ lam: 0.95
209
+ load_optimizer: true
210
+ max_grad_norm: 0.1
211
+ num_learning_epochs: 5
212
+ num_learning_iterations: 100000
213
+ num_mini_batches: 4
214
+ num_steps_per_env: 24
215
+ ppo_shuffle_every_epoch: true
216
+ save_interval: 500
217
+ schedule: adaptive
218
+ std_clamp_max: 0.5
219
+ std_clamp_min: 0.001
220
+ sync_advantage_normalization: true
221
+ use_clampped_std: true
222
+ use_clipped_value_loss: true
223
+ use_new_actor_critic: true
224
+ use_padding_mask: false
225
+ value_loss_coef: 1.0
226
+ world_size: 128
227
+ env_config:
228
+ action_clip_value: 20.0
229
+ action_transform_module_cfg: null
230
+ action_transform_module_checkpoint: null
231
+ decimation: 4
232
+ env_spacing: 2.0
233
+ episode_length_s: 10.0
234
+ eval_camera_offset:
235
+ - 2
236
+ - 2
237
+ - 1
238
+ experiment_dir: !!python/object/apply:pathlib.PosixPath
239
+ - models
240
+ - '0527'
241
+ - logs_rl
242
+ - TRL_G1_Track
243
+ - manager
244
+ - universal_token
245
+ - all_modes
246
+ - sonic_release_3pt_ultralatency_not_usd-20260323_141755
247
+ headless: true
248
+ meta_action_dim: null
249
+ needs_policy_atm: true
250
+ num_envs: 1
251
+ object_mass: null
252
+ obs:
253
+ group_obs_dims:
254
+ tokenizer:
255
+ command_multi_future_lower_body:
256
+ - 240
257
+ command_multi_future_nonflat:
258
+ - 10
259
+ - 58
260
+ command_z:
261
+ - 1
262
+ command_z_multi_future_nonflat:
263
+ - 10
264
+ - 1
265
+ encoder_index:
266
+ - 3
267
+ joint_pos_multi_future_wrist_for_smpl:
268
+ - 4
269
+ - 6
270
+ motion_anchor_ori_b:
271
+ - 6
272
+ motion_anchor_ori_b_mf_nonflat:
273
+ - 10
274
+ - 6
275
+ smpl_joints_multi_future_local_nonflat:
276
+ - 4
277
+ - 72
278
+ smpl_root_ori_b_multi_future:
279
+ - 4
280
+ - 6
281
+ vr_3point_local_orn_target:
282
+ - 12
283
+ vr_3point_local_target:
284
+ - 9
285
+ group_obs_names:
286
+ tokenizer:
287
+ - encoder_index
288
+ - command_multi_future_nonflat
289
+ - command_z_multi_future_nonflat
290
+ - command_z
291
+ - motion_anchor_ori_b
292
+ - motion_anchor_ori_b_mf_nonflat
293
+ - command_multi_future_lower_body
294
+ - vr_3point_local_target
295
+ - vr_3point_local_orn_target
296
+ - smpl_joints_multi_future_local_nonflat
297
+ - smpl_root_ori_b_multi_future
298
+ - joint_pos_multi_future_wrist_for_smpl
299
+ obs_dict: {}
300
+ obs_dims:
301
+ actor_obs: 930
302
+ critic_obs: 1645
303
+ tokenizer: 1257
304
+ render_results: false
305
+ rewards:
306
+ num_critics: 1
307
+ robot:
308
+ actions_dim: 29
309
+ algo_obs_dim_dict:
310
+ actor_obs: 930
311
+ critic_obs: 1645
312
+ tokenizer: 1257
313
+ type: g1_model_12_dex
314
+ save_rendering_dir: models/0527/logs_rl/TRL_G1_Track/manager/universal_token/all_modes/sonic_release_3pt_ultralatency_not_usd-20260323_141755/renderings_training
315
+ sim_dt: 0.005
316
+ table_offset: null
317
+ terrain_type: trimesh
318
+ train_only_events:
319
+ - push_robot
320
+ - compliance_force_push
321
+ viewer_eye:
322
+ - 4.5
323
+ - 0.0
324
+ - 6.0
325
+ viewer_lookat:
326
+ - 0.0
327
+ - 0.0
328
+ - 2.0
low_latency/model_decoder.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c4ac2e74045e7cbfb568f15e6bf47ea7ce023df7a94322af50be223e0a628bab
3
+ size 149763762
low_latency/model_encoder.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:60be43157f57d812f38bdbb740a5de5d5d070e8840d9edc16f02a91a6d06255b
3
+ size 45933505
low_latency/observation_config.yaml ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # SONIC Release (Low-Latency) - Observation Configuration
2
+ # =======================================================
3
+ # For ONNX models exported from the low-latency sonic_release checkpoint
4
+ # (smpl 4-frame lookahead; g1/teleop lookahead at step1, body-frame orientation).
5
+ #
6
+ # Encoder input dimension: 1247 Decoder/policy dimension: 994 token: 64
7
+ # Uses the unitoken_all_noz tokenizer config (3 encoders: g1, teleop, smpl)
8
+ #
9
+ # Requires the smpl_*_4frame_step1 entries in GetObservationRegistry()
10
+ # (src/g1/g1_deploy_onnx_ref/src/g1_deploy_onnx_ref.cpp) + a rebuild to load.
11
+
12
+ observations:
13
+
14
+ - name: "token_state"
15
+ enabled: true
16
+
17
+ - name: "his_base_angular_velocity_10frame_step1"
18
+ enabled: true
19
+
20
+ - name: "his_body_joint_positions_10frame_step1"
21
+ enabled: true
22
+
23
+ - name: "his_body_joint_velocities_10frame_step1"
24
+ enabled: true
25
+
26
+ - name: "his_last_actions_10frame_step1"
27
+ enabled: true
28
+
29
+ - name: "his_gravity_dir_10frame_step1"
30
+ enabled: true
31
+
32
+ encoder:
33
+ dimension: 64
34
+ use_fp16: false
35
+ encoder_observations:
36
+ # Shared
37
+ - name: "encoder_mode_4"
38
+ enabled: true
39
+ # g1 encoder: command_multi_future_nonflat (positions + velocities), step1
40
+ - name: "motion_joint_positions_10frame_step1"
41
+ enabled: true
42
+ - name: "motion_joint_velocities_10frame_step1"
43
+ enabled: true
44
+ # g1 encoder: motion_anchor_ori_b_mf_nonflat (body, multi-frame FIRST), step1
45
+ - name: "motion_anchor_orientation_10frame_step1"
46
+ enabled: true
47
+ # teleop encoder: motion_anchor_ori_b (body, single-frame SECOND)
48
+ - name: "motion_anchor_orientation"
49
+ enabled: true
50
+ # teleop encoder: command_multi_future_lower_body, step1
51
+ - name: "motion_joint_positions_lowerbody_10frame_step1"
52
+ enabled: true
53
+ - name: "motion_joint_velocities_lowerbody_10frame_step1"
54
+ enabled: true
55
+ # teleop encoder: vr_3point
56
+ - name: "vr_3point_local_target"
57
+ enabled: true
58
+ - name: "vr_3point_local_orn_target"
59
+ enabled: true
60
+ # smpl encoder: smpl_joints_multi_future_local_nonflat (4 frames, step1) <-- LOW-LATENCY
61
+ - name: "smpl_joints_4frame_step1"
62
+ enabled: true
63
+ # smpl encoder: smpl_root_ori_b_multi_future (body, 4 frames, step1) <-- LOW-LATENCY
64
+ - name: "smpl_anchor_orientation_4frame_step1"
65
+ enabled: true
66
+ # smpl encoder: joint_pos_multi_future_wrist_for_smpl (4 frames, step1) <-- LOW-LATENCY
67
+ - name: "motion_joint_positions_wrists_4frame_step1"
68
+ enabled: true
69
+ encoder_modes:
70
+ - name: "g1"
71
+ mode_id: 0
72
+ required_observations:
73
+ - encoder_mode_4
74
+ - motion_joint_positions_10frame_step1
75
+ - motion_joint_velocities_10frame_step1
76
+ - motion_anchor_orientation_10frame_step1
77
+ - name: "teleop"
78
+ mode_id: 1
79
+ required_observations:
80
+ - encoder_mode_4
81
+ - motion_joint_positions_lowerbody_10frame_step1
82
+ - motion_joint_velocities_lowerbody_10frame_step1
83
+ - vr_3point_local_target
84
+ - vr_3point_local_orn_target
85
+ - motion_anchor_orientation
86
+ - name: "smpl"
87
+ mode_id: 2
88
+ required_observations:
89
+ - encoder_mode_4
90
+ - smpl_joints_4frame_step1
91
+ - smpl_anchor_orientation_4frame_step1
92
+ - motion_joint_positions_wrists_4frame_step1