Uploading model files
Browse files- config.yaml +785 -0
- last.ckpt +3 -0
config.yaml
ADDED
@@ -0,0 +1,785 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
fabric:
|
2 |
+
_target_: lightning.fabric.Fabric
|
3 |
+
_convert_: all
|
4 |
+
accelerator: gpu
|
5 |
+
devices: ${ngpu}
|
6 |
+
num_nodes: ${nodes}
|
7 |
+
strategy:
|
8 |
+
_target_: lightning.fabric.strategies.DDPStrategy
|
9 |
+
precision: ${amp_precision}
|
10 |
+
loggers:
|
11 |
+
- _target_: lightning.fabric.loggers.TensorBoardLogger
|
12 |
+
root_dir: ${save_dir}
|
13 |
+
- _target_: lightning.pytorch.loggers.WandbLogger
|
14 |
+
name: ${experiment_name}
|
15 |
+
save_dir: ${save_dir}
|
16 |
+
project: ${wandb.wandb_project}
|
17 |
+
tags: ${wandb.wandb_tags}
|
18 |
+
group: ${wandb.wandb_group}
|
19 |
+
id: ${wandb.wandb_id}
|
20 |
+
entity: ${wandb.wandb_entity}
|
21 |
+
resume: ${wandb.wandb_resume}
|
22 |
+
ngpu: 1
|
23 |
+
nodes: 1
|
24 |
+
torch_deterministic: false
|
25 |
+
amp_precision: 32-true
|
26 |
+
eval_overrides:
|
27 |
+
ngpu: 1
|
28 |
+
nodes: 1
|
29 |
+
fabric:
|
30 |
+
loggers: null
|
31 |
+
headless: false
|
32 |
+
num_envs: 1
|
33 |
+
agent:
|
34 |
+
config:
|
35 |
+
expert_model_path: null
|
36 |
+
vae:
|
37 |
+
noise_type: zeros
|
38 |
+
motion_manager:
|
39 |
+
motion_sampling:
|
40 |
+
init_start_prob: 1.0
|
41 |
+
reset_track:
|
42 |
+
steps_min: 1000000
|
43 |
+
steps_max: 1000001
|
44 |
+
env:
|
45 |
+
config:
|
46 |
+
max_episode_length: 10000
|
47 |
+
enable_height_termination: false
|
48 |
+
mimic_early_termination: null
|
49 |
+
agent:
|
50 |
+
_target_: protomotions.agents.masked_mimic.agent.MaskedMimic
|
51 |
+
_recursive_: false
|
52 |
+
config:
|
53 |
+
model:
|
54 |
+
_target_: protomotions.agents.masked_mimic.model.VaeDeterministicOutputModel
|
55 |
+
_recursive_: false
|
56 |
+
config:
|
57 |
+
vae_latent_dim: ${agent.config.vae.latent_dim}
|
58 |
+
vae_noise_type: ${agent.config.vae.noise_type}
|
59 |
+
trunk:
|
60 |
+
_target_: protomotions.agents.common.mlp.MultiHeadedMLP
|
61 |
+
_recursive_: false
|
62 |
+
num_out: ${robot.number_of_actions}
|
63 |
+
config:
|
64 |
+
input_models:
|
65 |
+
self_obs:
|
66 |
+
_target_: protomotions.agents.common.common.Flatten
|
67 |
+
_recursive_: false
|
68 |
+
num_in: ${env.config.humanoid_obs.obs_size}
|
69 |
+
num_out: ${.num_in}
|
70 |
+
config:
|
71 |
+
obs_key: self_obs
|
72 |
+
normalize_obs: true
|
73 |
+
norm_clamp_value: 5
|
74 |
+
vae_latent:
|
75 |
+
_target_: protomotions.agents.common.common.Flatten
|
76 |
+
_recursive_: false
|
77 |
+
num_in: ${agent.config.vae.latent_dim}
|
78 |
+
num_out: ${.num_in}
|
79 |
+
config:
|
80 |
+
obs_key: vae_latent
|
81 |
+
normalize_obs: false
|
82 |
+
norm_clamp_value: null
|
83 |
+
terrain: ${agent.config.modules.mlp_terrain}
|
84 |
+
trunk:
|
85 |
+
_target_: protomotions.agents.common.mlp.MLP
|
86 |
+
_recursive_: false
|
87 |
+
num_out: ${robot.number_of_actions}
|
88 |
+
config:
|
89 |
+
layers:
|
90 |
+
- units: 1024
|
91 |
+
activation: relu
|
92 |
+
use_layer_norm: false
|
93 |
+
- units: 1024
|
94 |
+
activation: relu
|
95 |
+
use_layer_norm: false
|
96 |
+
- units: 512
|
97 |
+
activation: relu
|
98 |
+
use_layer_norm: false
|
99 |
+
optimizer:
|
100 |
+
_target_: torch.optim.Adam
|
101 |
+
lr: 2.0e-05
|
102 |
+
encoder:
|
103 |
+
_target_: protomotions.agents.masked_mimic.model.VaeModule
|
104 |
+
_recursive_: false
|
105 |
+
config:
|
106 |
+
trunk:
|
107 |
+
_target_: protomotions.agents.common.mlp.MultiHeadedMLP
|
108 |
+
_recursive_: false
|
109 |
+
num_out: 512
|
110 |
+
config:
|
111 |
+
input_models:
|
112 |
+
self_obs:
|
113 |
+
_target_: protomotions.agents.common.common.Flatten
|
114 |
+
_recursive_: false
|
115 |
+
num_in: ${env.config.humanoid_obs.obs_size}
|
116 |
+
num_out: ${.num_in}
|
117 |
+
config:
|
118 |
+
obs_key: self_obs
|
119 |
+
normalize_obs: true
|
120 |
+
norm_clamp_value: 5
|
121 |
+
mimic_target_poses:
|
122 |
+
_target_: protomotions.agents.common.common.Flatten
|
123 |
+
_recursive_: false
|
124 |
+
num_in: ${eval:${env.config.mimic_target_pose.num_future_steps}*${env.config.mimic_target_pose.num_obs_per_target_pose}}
|
125 |
+
num_out: ${.num_in}
|
126 |
+
config:
|
127 |
+
normalize_obs: true
|
128 |
+
norm_clamp_value: 5
|
129 |
+
obs_key: mimic_target_poses
|
130 |
+
masked_mimic_target_bodies_masks:
|
131 |
+
_target_: protomotions.agents.common.common.Flatten
|
132 |
+
config:
|
133 |
+
normalize_obs: false
|
134 |
+
obs_clamp_value: null
|
135 |
+
obs_key: masked_mimic_target_bodies_masks
|
136 |
+
num_in: ${eval:${eval:${len:${robot.trackable_bodies_subset}}+1}*2*${env.config.masked_mimic.masked_mimic_target_pose.num_future_steps}}
|
137 |
+
num_out: ${.num_in}
|
138 |
+
trunk:
|
139 |
+
_target_: protomotions.agents.common.mlp.MLP
|
140 |
+
_recursive_: false
|
141 |
+
num_out: 512
|
142 |
+
config:
|
143 |
+
layers:
|
144 |
+
- units: 1024
|
145 |
+
activation: relu
|
146 |
+
use_layer_norm: false
|
147 |
+
- units: 1024
|
148 |
+
activation: relu
|
149 |
+
use_layer_norm: false
|
150 |
+
- units: 1024
|
151 |
+
activation: relu
|
152 |
+
use_layer_norm: false
|
153 |
+
- units: 1024
|
154 |
+
activation: relu
|
155 |
+
use_layer_norm: false
|
156 |
+
- units: 1024
|
157 |
+
activation: relu
|
158 |
+
use_layer_norm: false
|
159 |
+
mu_head: ${agent.config.modules.mlp_vae_output_head}
|
160 |
+
logvar_head: ${agent.config.modules.mlp_vae_output_head}
|
161 |
+
prior:
|
162 |
+
_target_: protomotions.agents.masked_mimic.model.VaeModule
|
163 |
+
_recursive_: false
|
164 |
+
config:
|
165 |
+
trunk:
|
166 |
+
_target_: protomotions.agents.common.transformer.Transformer
|
167 |
+
_recursive_: false
|
168 |
+
num_out: ${robot.number_of_actions}
|
169 |
+
config:
|
170 |
+
transformer_token_size: ${.latent_dim}
|
171 |
+
latent_dim: ${agent.config.modules.transformer_latent_dim}
|
172 |
+
ff_size: 1024
|
173 |
+
num_layers: 4
|
174 |
+
num_heads: 4
|
175 |
+
dropout: 0
|
176 |
+
activation: relu
|
177 |
+
use_layer_norm: false
|
178 |
+
input_models:
|
179 |
+
obs_mlp:
|
180 |
+
_target_: protomotions.agents.common.mlp.MLP_WithNorm
|
181 |
+
_recursive_: false
|
182 |
+
num_in: ${env.config.humanoid_obs.obs_size}
|
183 |
+
num_out: ${...transformer_token_size}
|
184 |
+
config:
|
185 |
+
mask_key: null
|
186 |
+
obs_key: self_obs
|
187 |
+
normalize_obs: true
|
188 |
+
norm_clamp_value: 5
|
189 |
+
layers:
|
190 |
+
- units: ${agent.config.modules.transformer_encoder_widths}
|
191 |
+
activation: relu
|
192 |
+
use_layer_norm: false
|
193 |
+
- units: ${agent.config.modules.transformer_encoder_widths}
|
194 |
+
activation: relu
|
195 |
+
use_layer_norm: false
|
196 |
+
masked_mimic_target_poses: ${agent.config.modules.masked_mimic_target_pose_model}
|
197 |
+
historical_pose_obs: ${agent.config.modules.historical_pose_obs_model}
|
198 |
+
motion_text_embeddings: ${agent.config.modules.motion_text_embeddings_for_transformer_model}
|
199 |
+
mu_head: ${agent.config.modules.transformer_vae_output_head}
|
200 |
+
logvar_head: ${agent.config.modules.transformer_vae_output_head}
|
201 |
+
gamma: 0.99
|
202 |
+
tau: 0.95
|
203 |
+
e_clip: 0.2
|
204 |
+
normalize_values: false
|
205 |
+
normalize_advantage: false
|
206 |
+
gradient_clip_val: 50.0
|
207 |
+
clip_critic_loss: true
|
208 |
+
eval_metric_keys:
|
209 |
+
- cartesian_err
|
210 |
+
- gt_err
|
211 |
+
- dv_rew
|
212 |
+
- kb_rew
|
213 |
+
- lr_rew
|
214 |
+
- rv_rew
|
215 |
+
- rav_rew
|
216 |
+
- gr_err
|
217 |
+
- gr_err_degrees
|
218 |
+
- masked_gt_err
|
219 |
+
- masked_gr_err
|
220 |
+
- masked_gr_err_degrees
|
221 |
+
eval_length: null
|
222 |
+
eval_num_episodes: 1
|
223 |
+
training_early_termination:
|
224 |
+
early_terminate_cart_err: null
|
225 |
+
early_terminate_success_rate: null
|
226 |
+
num_steps: 32
|
227 |
+
fail_on_bad_grads: false
|
228 |
+
check_grad_mag: true
|
229 |
+
batch_size: 8192
|
230 |
+
task_reward_w: 1.0
|
231 |
+
num_mini_epochs: 6
|
232 |
+
max_eval_steps: null
|
233 |
+
eval_metrics_every: 200
|
234 |
+
num_games: null
|
235 |
+
manual_save_every: 10
|
236 |
+
max_epochs: ${eval:${training_max_steps}//${ngpu}//${num_envs}//${.num_steps}}
|
237 |
+
expert_model_path: null
|
238 |
+
vae:
|
239 |
+
noise_type: normal
|
240 |
+
latent_dim: 64
|
241 |
+
kld_schedule:
|
242 |
+
init_kld_coeff: 0.0001
|
243 |
+
end_kld_coeff: 0.01
|
244 |
+
start_epoch: 3000
|
245 |
+
end_epoch: 6000
|
246 |
+
extra_inputs:
|
247 |
+
mimic_target_poses: true
|
248 |
+
masked_mimic_target_poses: true
|
249 |
+
masked_mimic_target_bodies_masks: true
|
250 |
+
masked_mimic_target_poses_masks: true
|
251 |
+
motion_text_embeddings: true
|
252 |
+
motion_text_embeddings_mask: true
|
253 |
+
historical_pose_obs: true
|
254 |
+
terrain: true
|
255 |
+
modules:
|
256 |
+
mlp_vae_output_head:
|
257 |
+
_target_: protomotions.agents.common.mlp.MLP
|
258 |
+
_recursive_: false
|
259 |
+
num_in: 512
|
260 |
+
num_out: ${agent.config.vae.latent_dim}
|
261 |
+
config:
|
262 |
+
layers:
|
263 |
+
- units: 256
|
264 |
+
activation: relu
|
265 |
+
use_layer_norm: false
|
266 |
+
- units: 128
|
267 |
+
activation: relu
|
268 |
+
use_layer_norm: false
|
269 |
+
transformer_latent_dim: 512
|
270 |
+
transformer_encoder_widths: 256
|
271 |
+
transformer_vae_output_head:
|
272 |
+
_target_: protomotions.agents.common.mlp.MLP
|
273 |
+
_recursive_: false
|
274 |
+
num_in: ${agent.config.model.config.prior.config.trunk.config.transformer_token_size}
|
275 |
+
num_out: ${agent.config.vae.latent_dim}
|
276 |
+
config:
|
277 |
+
layers:
|
278 |
+
- units: 256
|
279 |
+
activation: relu
|
280 |
+
use_layer_norm: false
|
281 |
+
- units: 128
|
282 |
+
activation: relu
|
283 |
+
use_layer_norm: false
|
284 |
+
masked_mimic_target_pose_model:
|
285 |
+
_target_: protomotions.agents.common.mlp.MLP_WithNorm
|
286 |
+
_recursive_: false
|
287 |
+
num_in: ${env.config.masked_mimic.masked_mimic_target_pose.num_obs_per_sparse_target_pose}
|
288 |
+
num_out: ${agent.config.model.config.prior.config.trunk.config.transformer_token_size}
|
289 |
+
config:
|
290 |
+
obs_key: masked_mimic_target_poses
|
291 |
+
mask_key: masked_mimic_target_poses_masks
|
292 |
+
normalize_obs: true
|
293 |
+
norm_clamp_value: 5
|
294 |
+
operations:
|
295 |
+
- type: reshape
|
296 |
+
new_shape:
|
297 |
+
- -1
|
298 |
+
- ${env.config.masked_mimic.masked_mimic_target_pose.num_obs_per_sparse_target_pose}
|
299 |
+
- type: encode
|
300 |
+
- type: reshape
|
301 |
+
new_shape:
|
302 |
+
- batch_size
|
303 |
+
- ${eval:${env.config.masked_mimic.masked_mimic_target_pose.num_future_steps}+1}
|
304 |
+
- ${agent.config.model.config.prior.config.trunk.config.transformer_token_size}
|
305 |
+
layers:
|
306 |
+
- units: ${agent.config.modules.transformer_encoder_widths}
|
307 |
+
activation: relu
|
308 |
+
use_layer_norm: false
|
309 |
+
- units: ${agent.config.modules.transformer_encoder_widths}
|
310 |
+
activation: relu
|
311 |
+
use_layer_norm: false
|
312 |
+
historical_pose_obs_model:
|
313 |
+
_target_: protomotions.agents.common.mlp.MLP_WithNorm
|
314 |
+
_recursive_: false
|
315 |
+
num_in: ${eval:${env.config.humanoid_obs.obs_size}+1}
|
316 |
+
num_out: ${agent.config.model.config.prior.config.trunk.config.transformer_token_size}
|
317 |
+
config:
|
318 |
+
obs_key: historical_pose_obs
|
319 |
+
mask_key: null
|
320 |
+
normalize_obs: true
|
321 |
+
norm_clamp_value: 5
|
322 |
+
operations:
|
323 |
+
- type: reshape
|
324 |
+
new_shape:
|
325 |
+
- -1
|
326 |
+
- ${eval:${env.config.humanoid_obs.obs_size}+1}
|
327 |
+
- type: encode
|
328 |
+
- type: reshape
|
329 |
+
new_shape:
|
330 |
+
- batch_size
|
331 |
+
- ${env.config.masked_mimic.historical_obs.num_historical_conditioned_steps}
|
332 |
+
- ${agent.config.model.config.prior.config.trunk.config.transformer_token_size}
|
333 |
+
layers:
|
334 |
+
- units: ${agent.config.modules.transformer_encoder_widths}
|
335 |
+
activation: relu
|
336 |
+
use_layer_norm: false
|
337 |
+
- units: ${agent.config.modules.transformer_encoder_widths}
|
338 |
+
activation: relu
|
339 |
+
use_layer_norm: false
|
340 |
+
motion_text_embeddings_for_transformer_model:
|
341 |
+
_target_: protomotions.agents.common.mlp.MLP_WithNorm
|
342 |
+
_recursive_: false
|
343 |
+
num_in: ${env.config.masked_mimic.motion_text_embeddings.embedding_dim}
|
344 |
+
num_out: ${agent.config.model.config.prior.config.trunk.config.transformer_token_size}
|
345 |
+
config:
|
346 |
+
obs_key: motion_text_embeddings
|
347 |
+
mask_key: motion_text_embeddings_mask
|
348 |
+
normalize_obs: true
|
349 |
+
norm_clamp_value: 5
|
350 |
+
operations:
|
351 |
+
- type: encode
|
352 |
+
- type: reshape
|
353 |
+
new_shape:
|
354 |
+
- batch_size
|
355 |
+
- 1
|
356 |
+
- ${agent.config.modules.motion_text_embeddings_for_transformer_model.num_out}
|
357 |
+
layers:
|
358 |
+
- units: ${agent.config.modules.transformer_encoder_widths}
|
359 |
+
activation: relu
|
360 |
+
use_layer_norm: false
|
361 |
+
- units: ${agent.config.modules.transformer_encoder_widths}
|
362 |
+
activation: relu
|
363 |
+
use_layer_norm: false
|
364 |
+
mlp_terrain:
|
365 |
+
_target_: protomotions.agents.common.common.Flatten
|
366 |
+
num_in: ${terrain.config.terrain_obs_num_samples}
|
367 |
+
num_out: ${.num_in}
|
368 |
+
config:
|
369 |
+
obs_key: terrain
|
370 |
+
normalize_obs: true
|
371 |
+
norm_clamp_value: 5
|
372 |
+
env:
|
373 |
+
_target_: protomotions.envs.mimic.env.Mimic
|
374 |
+
_recursive_: false
|
375 |
+
config:
|
376 |
+
experiment_name: ${experiment_name}
|
377 |
+
num_envs: ${num_envs}
|
378 |
+
headless: ${headless}
|
379 |
+
simulator: ${simulator}
|
380 |
+
max_episode_length: 1000
|
381 |
+
robot: ${robot}
|
382 |
+
humanoid_obs:
|
383 |
+
use_max_coords_obs: true
|
384 |
+
obs_size: ${robot.self_obs_size}
|
385 |
+
local_root_obs: true
|
386 |
+
root_height_obs: true
|
387 |
+
num_historical_steps: 120
|
388 |
+
termination_height: 0.15
|
389 |
+
head_termination_height: 0.3
|
390 |
+
enable_height_termination: false
|
391 |
+
motion_lib: ${motion_lib}
|
392 |
+
motion_manager: ${motion_manager}
|
393 |
+
hybrid_init_prob: 0.0
|
394 |
+
state_init: Data
|
395 |
+
ref_respawn_offset: ${ref_respawn_offset}
|
396 |
+
terrain: ${terrain}
|
397 |
+
sync_motion: ${sync_motion}
|
398 |
+
scenes: null
|
399 |
+
mimic_residual_control: false
|
400 |
+
mimic_early_termination:
|
401 |
+
- mimic_early_termination_key: max_joint_err
|
402 |
+
mimic_early_termination_thresh: 0.5
|
403 |
+
mimic_early_termination_thresh_on_flat: 0.25
|
404 |
+
less_than: false
|
405 |
+
mimic_reward_config:
|
406 |
+
positive_constant: 0
|
407 |
+
relative_kb_pos: false
|
408 |
+
add_rr_to_lr: true
|
409 |
+
rt_ignore_height: true
|
410 |
+
mean_before_exp: true
|
411 |
+
component_weights:
|
412 |
+
gr_rew_w: 0.3
|
413 |
+
lr_rew_w: 0
|
414 |
+
gt_rew_w: 0.5
|
415 |
+
rt_rew_w: 0
|
416 |
+
rv_rew_w: 0
|
417 |
+
rav_rew_w: 0
|
418 |
+
gv_rew_w: 0.1
|
419 |
+
gav_rew_w: 0.1
|
420 |
+
kb_rew_w: 0
|
421 |
+
dv_rew_w: 0.0
|
422 |
+
rh_rew_w: 0.2
|
423 |
+
pow_rew_w: 1.0e-05
|
424 |
+
component_coefficients:
|
425 |
+
gt_rew_c: -100
|
426 |
+
rt_rew_c: -120
|
427 |
+
rv_rew_c: -1
|
428 |
+
rav_rew_c: -0.3
|
429 |
+
gv_rew_c: -0.5
|
430 |
+
gav_rew_c: -0.1
|
431 |
+
kb_rew_c: -10
|
432 |
+
gr_rew_c: -10
|
433 |
+
lr_rew_c: -2
|
434 |
+
dv_rew_c: -0.005
|
435 |
+
rh_rew_c: -100
|
436 |
+
kbf_rew_c: -0.01
|
437 |
+
mimic_phase_obs:
|
438 |
+
enabled: false
|
439 |
+
mimic_target_pose:
|
440 |
+
enabled: true
|
441 |
+
type: max-coords-future-rel
|
442 |
+
with_time: true
|
443 |
+
with_contacts: false
|
444 |
+
num_future_steps: 15
|
445 |
+
num_obs_per_target_pose: ${.base_num_obs_per_target_pose}
|
446 |
+
base_num_obs_per_target_pose: ${eval:${.num_obs_per_joint}*${robot.num_bodies}+1*${.with_time}}
|
447 |
+
num_obs_per_joint: 18
|
448 |
+
masked_mimic:
|
449 |
+
enabled: true
|
450 |
+
masked_mimic_masking:
|
451 |
+
joint_masking:
|
452 |
+
masked_mimic_time_gap_probability: 0.1
|
453 |
+
time_gap_mask_min_steps: 1
|
454 |
+
time_gap_mask_max_steps: ${eval:${env.config.mimic_target_pose.num_future_steps}+1}
|
455 |
+
with_conditioning_time_gap_mask_max_steps: ${eval:${.time_gap_mask_max_steps}*4}
|
456 |
+
with_conditioning_max_gap_probability: 0.2
|
457 |
+
masked_mimic_repeat_mask_probability: 0.98
|
458 |
+
masked_mimic_fixed_conditioning: null
|
459 |
+
force_max_conditioned_bodies_prob: 0.1
|
460 |
+
force_small_num_conditioned_bodies_prob: 0.1
|
461 |
+
target_pose_visible_prob: 0.2
|
462 |
+
motion_text_embeddings_visible_prob: 0.5
|
463 |
+
masked_mimic_target_pose:
|
464 |
+
num_obs_per_sparse_target_pose: ${eval:${.num_obs_per_target_pose}*${eval:${len:${robot.trackable_bodies_subset}}+1}//${robot.num_bodies}+${eval:${len:${robot.trackable_bodies_subset}}+1}*2+2}
|
465 |
+
num_future_steps: 10
|
466 |
+
num_obs_per_joint: 24
|
467 |
+
num_obs_per_target_pose: ${eval:${.num_obs_per_joint}*${robot.num_bodies}}
|
468 |
+
motion_text_embeddings:
|
469 |
+
embedding_dim: 512
|
470 |
+
historical_obs:
|
471 |
+
num_historical_conditioned_steps: 15
|
472 |
+
robot:
|
473 |
+
dof_obs_size: 138
|
474 |
+
number_of_actions: 69
|
475 |
+
self_obs_size: ${.self_obs_max_coords_size}
|
476 |
+
self_obs_max_coords_size: 358
|
477 |
+
num_bodies: ${len:${.body_names}}
|
478 |
+
contact_bodies: ${.body_names}
|
479 |
+
body_names:
|
480 |
+
- Pelvis
|
481 |
+
- L_Hip
|
482 |
+
- L_Knee
|
483 |
+
- L_Ankle
|
484 |
+
- L_Toe
|
485 |
+
- R_Hip
|
486 |
+
- R_Knee
|
487 |
+
- R_Ankle
|
488 |
+
- R_Toe
|
489 |
+
- Torso
|
490 |
+
- Spine
|
491 |
+
- Chest
|
492 |
+
- Neck
|
493 |
+
- Head
|
494 |
+
- L_Thorax
|
495 |
+
- L_Shoulder
|
496 |
+
- L_Elbow
|
497 |
+
- L_Wrist
|
498 |
+
- L_Hand
|
499 |
+
- R_Thorax
|
500 |
+
- R_Shoulder
|
501 |
+
- R_Elbow
|
502 |
+
- R_Wrist
|
503 |
+
- R_Hand
|
504 |
+
dof_names:
|
505 |
+
- L_Hip_x
|
506 |
+
- L_Hip_y
|
507 |
+
- L_Hip_z
|
508 |
+
- L_Knee_x
|
509 |
+
- L_Knee_y
|
510 |
+
- L_Knee_z
|
511 |
+
- L_Ankle_x
|
512 |
+
- L_Ankle_y
|
513 |
+
- L_Ankle_z
|
514 |
+
- L_Toe_x
|
515 |
+
- L_Toe_y
|
516 |
+
- L_Toe_z
|
517 |
+
- R_Hip_x
|
518 |
+
- R_Hip_y
|
519 |
+
- R_Hip_z
|
520 |
+
- R_Knee_x
|
521 |
+
- R_Knee_y
|
522 |
+
- R_Knee_z
|
523 |
+
- R_Ankle_x
|
524 |
+
- R_Ankle_y
|
525 |
+
- R_Ankle_z
|
526 |
+
- R_Toe_x
|
527 |
+
- R_Toe_y
|
528 |
+
- R_Toe_z
|
529 |
+
- Torso_x
|
530 |
+
- Torso_y
|
531 |
+
- Torso_z
|
532 |
+
- Spine_x
|
533 |
+
- Spine_y
|
534 |
+
- Spine_z
|
535 |
+
- Chest_x
|
536 |
+
- Chest_y
|
537 |
+
- Chest_z
|
538 |
+
- Neck_x
|
539 |
+
- Neck_y
|
540 |
+
- Neck_z
|
541 |
+
- Head_x
|
542 |
+
- Head_y
|
543 |
+
- Head_z
|
544 |
+
- L_Thorax_x
|
545 |
+
- L_Thorax_y
|
546 |
+
- L_Thorax_z
|
547 |
+
- L_Shoulder_x
|
548 |
+
- L_Shoulder_y
|
549 |
+
- L_Shoulder_z
|
550 |
+
- L_Elbow_x
|
551 |
+
- L_Elbow_y
|
552 |
+
- L_Elbow_z
|
553 |
+
- L_Wrist_x
|
554 |
+
- L_Wrist_y
|
555 |
+
- L_Wrist_z
|
556 |
+
- L_Hand_x
|
557 |
+
- L_Hand_y
|
558 |
+
- L_Hand_z
|
559 |
+
- R_Thorax_x
|
560 |
+
- R_Thorax_y
|
561 |
+
- R_Thorax_z
|
562 |
+
- R_Shoulder_x
|
563 |
+
- R_Shoulder_y
|
564 |
+
- R_Shoulder_z
|
565 |
+
- R_Elbow_x
|
566 |
+
- R_Elbow_y
|
567 |
+
- R_Elbow_z
|
568 |
+
- R_Wrist_x
|
569 |
+
- R_Wrist_y
|
570 |
+
- R_Wrist_z
|
571 |
+
- R_Hand_x
|
572 |
+
- R_Hand_y
|
573 |
+
- R_Hand_z
|
574 |
+
trackable_bodies_subset:
|
575 |
+
- Pelvis
|
576 |
+
- L_Ankle
|
577 |
+
- R_Ankle
|
578 |
+
- L_Hand
|
579 |
+
- R_Hand
|
580 |
+
- Head
|
581 |
+
dof_body_ids:
|
582 |
+
- 1
|
583 |
+
- 2
|
584 |
+
- 3
|
585 |
+
- 4
|
586 |
+
- 5
|
587 |
+
- 6
|
588 |
+
- 7
|
589 |
+
- 8
|
590 |
+
- 9
|
591 |
+
- 10
|
592 |
+
- 11
|
593 |
+
- 12
|
594 |
+
- 13
|
595 |
+
- 14
|
596 |
+
- 15
|
597 |
+
- 16
|
598 |
+
- 17
|
599 |
+
- 18
|
600 |
+
- 19
|
601 |
+
- 20
|
602 |
+
- 21
|
603 |
+
- 22
|
604 |
+
- 23
|
605 |
+
dof_effort_limits: null
|
606 |
+
dof_vel_limits: null
|
607 |
+
dof_armatures: null
|
608 |
+
dof_joint_frictions: null
|
609 |
+
key_bodies:
|
610 |
+
- R_Ankle
|
611 |
+
- L_Ankle
|
612 |
+
- L_Hand
|
613 |
+
- R_Hand
|
614 |
+
non_termination_contact_bodies:
|
615 |
+
- R_Ankle
|
616 |
+
- L_Ankle
|
617 |
+
- R_Toe
|
618 |
+
- L_Toe
|
619 |
+
left_foot_name: L_Ankle
|
620 |
+
right_foot_name: R_Ankle
|
621 |
+
head_body_name: Head
|
622 |
+
init_state: null
|
623 |
+
contact_pairs_multiplier: 16
|
624 |
+
num_key_bodies: ${len:${robot.key_bodies}}
|
625 |
+
mimic_small_marker_bodies: null
|
626 |
+
control:
|
627 |
+
control_type: built_in_pd
|
628 |
+
use_biased_controller: false
|
629 |
+
map_actions_to_pd_range: true
|
630 |
+
stiffness: null
|
631 |
+
damping: null
|
632 |
+
action_scale: 1.0
|
633 |
+
clamp_actions: 1.0
|
634 |
+
asset:
|
635 |
+
collapse_fixed_joints: null
|
636 |
+
replace_cylinder_with_capsule: null
|
637 |
+
flip_visual_attachments: null
|
638 |
+
armature: null
|
639 |
+
thickness: null
|
640 |
+
max_angular_velocity: null
|
641 |
+
max_linear_velocity: null
|
642 |
+
density: null
|
643 |
+
angular_damping: null
|
644 |
+
linear_damping: null
|
645 |
+
disable_gravity: null
|
646 |
+
fix_base_link: null
|
647 |
+
default_dof_drive_mode: 1
|
648 |
+
robot_type: smpl_humanoid
|
649 |
+
asset_root: protomotions/data/assets
|
650 |
+
self_collisions: true
|
651 |
+
filter_ints:
|
652 |
+
- 0
|
653 |
+
- 0
|
654 |
+
- 7
|
655 |
+
- 16
|
656 |
+
- 12
|
657 |
+
- 0
|
658 |
+
- 56
|
659 |
+
- 2
|
660 |
+
- 33
|
661 |
+
- 128
|
662 |
+
- 0
|
663 |
+
- 192
|
664 |
+
- 0
|
665 |
+
- 64
|
666 |
+
- 0
|
667 |
+
- 0
|
668 |
+
- 0
|
669 |
+
- 0
|
670 |
+
- 0
|
671 |
+
- 0
|
672 |
+
- 0
|
673 |
+
- 0
|
674 |
+
- 0
|
675 |
+
- 0
|
676 |
+
asset_file_name: mjcf/smpl_humanoid.xml
|
677 |
+
usd_asset_file_name: usd/smpl_humanoid.usda
|
678 |
+
sim:
|
679 |
+
isaacgym:
|
680 |
+
fps: 60
|
681 |
+
decimation: 2
|
682 |
+
substeps: 2
|
683 |
+
isaaclab:
|
684 |
+
fps: 120
|
685 |
+
decimation: 4
|
686 |
+
genesis:
|
687 |
+
fps: 60
|
688 |
+
decimation: 2
|
689 |
+
substeps: 2
|
690 |
+
simulator:
|
691 |
+
_target_: protomotions.simulator.isaaclab.simulator.IsaacLabSimulator
|
692 |
+
_config_target_: protomotions.simulator.isaaclab.config.IsaacLabSimulatorConfig
|
693 |
+
_recursive_: false
|
694 |
+
config:
|
695 |
+
w_last: false
|
696 |
+
headless: ${headless}
|
697 |
+
robot: ${robot}
|
698 |
+
num_envs: ${num_envs}
|
699 |
+
plane:
|
700 |
+
static_friction: 1.0
|
701 |
+
dynamic_friction: 1.0
|
702 |
+
restitution: 0.0
|
703 |
+
sim:
|
704 |
+
fps: ${robot.sim.isaaclab.fps}
|
705 |
+
decimation: ${robot.sim.isaaclab.decimation}
|
706 |
+
physx:
|
707 |
+
num_threads: 4
|
708 |
+
solver_type: 1
|
709 |
+
num_position_iterations: 4
|
710 |
+
num_velocity_iterations: 0
|
711 |
+
contact_offset: 0.02
|
712 |
+
rest_offset: 0.0
|
713 |
+
bounce_threshold_velocity: 0.2
|
714 |
+
max_depenetration_velocity: 10.0
|
715 |
+
default_buffer_size_multiplier: 10.0
|
716 |
+
gpu_found_lost_pairs_capacity: ${eval:2**21}
|
717 |
+
gpu_max_rigid_contact_count: ${eval:2**23}
|
718 |
+
gpu_found_lost_aggregate_pairs_capacity: ${eval:2**25}
|
719 |
+
camera: null
|
720 |
+
record_viewer: false
|
721 |
+
viewer_record_dir: output/recordings/viewer
|
722 |
+
experiment_name: ${experiment_name}
|
723 |
+
motion_lib:
|
724 |
+
_target_: protomotions.utils.motion_lib.MotionLib
|
725 |
+
motion_file: ${motion_file}
|
726 |
+
ref_height_adjust: 0.0
|
727 |
+
fix_motion_heights: true
|
728 |
+
motion_file: ???
|
729 |
+
terrain:
|
730 |
+
_target_: protomotions.envs.base_env.env_utils.terrains.terrain.Terrain
|
731 |
+
config:
|
732 |
+
terrain_composition: curriculum
|
733 |
+
map_length: 20.0
|
734 |
+
map_width: 20.0
|
735 |
+
border_size: 40.0
|
736 |
+
num_levels: 7
|
737 |
+
num_terrains: 7
|
738 |
+
terrain_proportions:
|
739 |
+
- 0.2
|
740 |
+
- 0.1
|
741 |
+
- 0.1
|
742 |
+
- 0.1
|
743 |
+
- 0.05
|
744 |
+
- 0.0
|
745 |
+
- 0.0
|
746 |
+
- 0.45
|
747 |
+
slope_threshold: 0.9
|
748 |
+
num_samples_per_axis: 16
|
749 |
+
sample_width: 1
|
750 |
+
terrain_obs_num_samples: ${eval:${.num_samples_per_axis}**2}
|
751 |
+
horizontal_scale: 0.1
|
752 |
+
vertical_scale: 0.005
|
753 |
+
spacing_between_scenes: 10
|
754 |
+
minimal_humanoid_spacing: 0
|
755 |
+
terrain_path: null
|
756 |
+
load_terrain: false
|
757 |
+
save_terrain: false
|
758 |
+
seed: 0
|
759 |
+
training_max_steps: 100000000000
|
760 |
+
codebase_version: 1.0
|
761 |
+
headless: true
|
762 |
+
sync_motion: false
|
763 |
+
checkpoint: null
|
764 |
+
experiment_name: maskedmimic
|
765 |
+
base_dir: results
|
766 |
+
save_dir: ${base_dir}/${experiment_name}
|
767 |
+
num_envs: 2048
|
768 |
+
motion_manager:
|
769 |
+
fixed_motion_per_env: false
|
770 |
+
fixed_motion_id: null
|
771 |
+
motion_index_offset: null
|
772 |
+
motion_sampling:
|
773 |
+
init_start_prob: 0.2
|
774 |
+
reset_track:
|
775 |
+
steps_min: 10
|
776 |
+
steps_max: 600
|
777 |
+
grace_period: 5
|
778 |
+
ref_respawn_offset: 0.05
|
779 |
+
wandb:
|
780 |
+
wandb_project: physical_animation
|
781 |
+
wandb_tags: null
|
782 |
+
wandb_group: null
|
783 |
+
wandb_id: null
|
784 |
+
wandb_entity: null
|
785 |
+
wandb_resume: allow
|
last.ckpt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1e57a15d91585951c15917fdfa6c4149a14a411746585d2a4cfaab78561d5139
|
3 |
+
size 303850268
|