File size: 4,517 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
general {


    base_exp_dir = exp/CASE_NAME/wmask


    tag = "train_retargeted_shadow_hand_seq_102_mano_sparse_retargeting_"

    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
    validate_resolution_level = 4
    warm_up_end = 5000
    anneal_end = 0
    use_white_bkgd = False

    # save_freq = 10000
    save_freq = 10000
    val_freq = 20
    val_mesh_freq = 20
    report_freq = 10
    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




    ##### 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 ####
 

    ######  ######
    drive_pointset = "states"
    fix_obj = True
    optimize_rules = False
    train_pointset_acts_via_deltas = False
    load_optimized_init_actions = ""
    load_optimized_init_transformations = ""
    ckpt_fn = ""
    retar_only_glb = True
    # use_multi_stages = True
    ###### Stage 1: threshold, ks settings 1, optimize offsets ######

    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,
    }
}