File size: 7,062 Bytes
710e818
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
general {


    base_exp_dir = exp/CASE_NAME/wmask
    
    tag = "train_retargeted_shadow_hand_seq_102_mano_pointset_acts_optstates_optacts_"

    recording = [
        ./,
        ./models
    ]
}

dataset {
    data_dir = public_data/CASE_NAME/
    render_cameras_name = cameras_sphere.npz
    object_cameras_name = cameras_sphere.npz
    obj_idx = 102
}

train {
    learning_rate = 5e-4
    learning_rate_alpha = 0.05
    end_iter = 300000

    batch_size = 1024 #  64
    validate_resolution_level = 4
    warm_up_end = 5000
    anneal_end = 0
    use_white_bkgd = False

    # save_freq = 10000
    save_freq = 10000
    val_freq = 20 #  2500
    val_mesh_freq = 20 #  5000
    report_freq = 10
    ### igr weight ###
    igr_weight = 0.1
    mask_weight = 0.1
}
 
model {

    optimize_dyn_actions = True


    optimize_robot = True

    use_penalty_based_friction = True

    use_split_params = False

    use_sqr_spring_stiffness = True

    use_pre_proj_frictions = True



    use_sqrt_dist = True
    contact_maintaining_dist_thres = 0.2

    robot_actions_diff_coef = 0.001


    use_sdf_as_contact_dist = True


    # 
    use_contact_dist_as_sdf = False

    use_glb_proj_delta = True



# penetration_proj_k_to_robot = 30
    penetrating_depth_penalty = 1.0
    train_states = True



    minn_dist_threshold = 0.000
    obj_mass = 30.0


    use_LBFGS = True
    use_LBFGS = False

    use_mano_hand_for_test = False # use the dynamic mano model here #

    extract_delta_mesh = False
    freeze_weights = True
    gt_act_xs_def = False
    use_bending_network =  True
    ### for ts = 3 ###
    # use_delta_bending = False
    ### for ts = 3 ###
   



    sim_model_path = "rsc/shadow_hand_description/shadowhand_new.urdf"
    mano_sim_model_path = "rsc/mano/mano_mean_wcollision_scaled_scaled_0_9507_nroot.urdf"

    obj_sdf_fn = "data/grab/102/102_obj.npy" 
    kinematic_mano_gt_sv_fn = "data/grab/102/102_sv_dict.npy"
    scaled_obj_mesh_fn = "data/grab/102/102_obj.obj"

    bending_net_type = "active_force_field_v18"    
    sim_num_steps = 1000000
    n_timesteps = 60
    optim_sim_model_params_from_mano = False
    penetration_determining = "sdf_of_canon"
    train_with_forces_to_active = False
    loss_scale_coef = 1000.0
    use_same_contact_spring_k = False
    use_optimizable_params = True # 
    train_residual_friction = True
    mano_mult_const_after_cent = 1.0
    optimize_glb_transformations = True
    no_friction_constraint = False
    optimize_active_object = True
    loss_tangential_diff_coef = 0
    optimize_with_intermediates = True
    using_delta_glb_trans = False
    train_multi_seqs = False
    use_split_network = True
    use_delta_bending = True









    ###### threshold, ks settings 1, optimize acts ######
    # drive_pointset = "actions"
    # fix_obj = True
    # optimize_rules = False
    # train_pointset_acts_via_deltas = True
    # load_optimized_init_actions = "/data/xueyi/NeuS/exp/hand_test_routine_2_light_color_wtime_active_passive/wmask_reverse_value_totviews_tag_train_dyn_mano_hand_seq_102_mouse_optdynactions_points_optrobo_offsetdriven_optrules_multk100_wfixobj_optdelta_radius0d4_/checkpoints/ckpt_002000.pth"
    # load_optimized_init_actions = "/data/xueyi/NeuS/exp/hand_test_routine_2_light_color_wtime_active_passive/wmask_reverse_value_totviews_tag_train_dyn_mano_hand_seq_102_mouse_optdynactions_points_optrobo_offsetdriven_optrules_multk100_wfixobj_optdelta_radius0d2_/checkpoints/ckpt_008000.pth"
    ###### threshold, ks settings 1, optimize acts ######


    ##### contact spring model settings ####
    minn_dist_threshold_robot_to_obj = 0.1
    penetration_proj_k_to_robot_friction = 10000000.0
    penetration_proj_k_to_robot = 4000000.0
    ##### contact spring model settings ####
 

    ###### Stage 1: threshold, ks settings 1, optimize offsets ######
    drive_pointset = "states"
    fix_obj = True
    optimize_rules = False
    train_pointset_acts_via_deltas = False
    load_optimized_init_actions = "ckpts/grab/102/dyn_mano_arti.pth"
    ###### Stage 1: threshold, ks settings 1, optimize offsets ######


    ###### Stage 2: threshold, ks settings 1, optimize acts ######
    drive_pointset = "actions"
    fix_obj = True
    optimize_rules = False
    train_pointset_acts_via_deltas = True
    load_optimized_init_actions = "ckpts/grab/102/dyn_mano_pointset_states.pt" ## pre-optimized ckpts
    load_optimized_init_actions = "exp/hand_test_routine_2_light_color_wtime_active_passive/wmask_reverse_value_totviews_tag_train_retargeted_shadow_hand_seq_102_mano_pointset_acts_optstates_/checkpoints/ckpt_004000.pth"
    ###### Stage 2: threshold, ks settings 1, optimize acts ######


    # ###### Stage 3: threshold, ks settings 1, optimize params from acts ######
    # drive_pointset = "actions"
    # fix_obj = False
    # optimize_rules = True
    # train_pointset_acts_via_deltas = True
    # load_optimized_init_actions = "ckpts/grab/102/dyn_mano_pointset_acts.pt"
    # ##### model parameters optimized from the MANO hand trajectory #####
    # ckpt_fn = "ckpts/grab/102/dyn_mano_opts.pt"
    # ###### Stage 3: threshold, ks settings 1, optimize params from acts ######


    # ###### Stage 4: threshold, ks settings 1, optimize acts from optimized params ######
    # drive_pointset = "actions"
    # fix_obj = False
    # optimize_rules = False
    # train_pointset_acts_via_deltas = True ## pointset acts via deltas ###
    # ##### model parameters optimized from the MANO hand expanded set trajectory #####
    # ckpt_fn = "ckpts/grab/102/dyn_mano_pointset_optimized_acts_optimized_ps.pth"
    # load_optimized_init_actions = "ckpts/grab/102/dyn_mano_pointset_optimized_acts.pth"
    # ###### Stage 4: threshold, ks settings 1, optimize acts from optimized params ######


    use_opt_rigid_translations=True

    train_def = True
    optimizable_rigid_translations=True
    
    nerf {
        D = 8,
        d_in = 4,
        d_in_view = 3,
        W = 256,
        multires = 10,
        multires_view = 4,
        output_ch = 4,
        skips=[4],
        use_viewdirs=True
    }

    sdf_network {
        d_out = 257,
        d_in = 3,
        d_hidden = 256,
        n_layers = 8,
        skip_in = [4],
        multires = 6,
        bias = 0.5,
        scale = 1.0,
        geometric_init = True,
        weight_norm = True,
    } 

    variance_network {
        init_val = 0.3
    }

    rendering_network {
        d_feature = 256,
        mode = idr,
        d_in = 9,
        d_out = 3,
        d_hidden = 256,
        n_layers = 4,
        weight_norm = True,
        multires_view = 4,
        squeeze_out = True,
    }

    neus_renderer {
        n_samples = 64,
        n_importance = 64,
        n_outside = 0,
        up_sample_steps = 4 ,
        perturb = 1.0,
    }

    bending_network {
        multires = 6,
        bending_latent_size = 32,
        d_in = 3,
        rigidity_hidden_dimensions = 64,
        rigidity_network_depth = 5,
        use_rigidity_network = False,
        bending_n_timesteps = 10,
    }
}