def add_to_study(study): subject = study.add_subject(1, 72.85) cond_args = dict() subject.cond_args = cond_args static = subject.add_condition('static') static_trial = static.add_trial(1, omit_trial_dir=True) # `os.path.basename(__file__)` should be `subject01.py`. scale_setup_task = subject.add_task( osp.TaskScaleSetup, init_time=0, final_time=0.5, mocap_trial=static_trial, edit_setup_function=scale_setup_fcn, addtl_file_dep=['dodo.py', os.path.basename(__file__)]) subject.add_task( osp.TaskScale, scale_setup_task=scale_setup_task, #scale_max_isometric_force=True, ) subject.add_task(tasks.TaskScaleMuscleMaxIsometricForce) marker_adjustments = dict() marker_adjustments['RTOE'] = (1, 0.0170717) marker_adjustments['RMT5'] = (1, 0.011679) marker_adjustments['LTOE'] = (1, 0.0170708) marker_adjustments['LMT5'] = (1, 0.0116779) subject.add_task(tasks.TaskAdjustScaledModelMarkers, marker_adjustments) subject.scaled_model_fpath = os.path.join(subject.results_exp_path, '%s_final.osim' % subject.name) ## walk1 condition walk1 = subject.add_condition('walk1', metadata={'walking_speed': 1.00}) # GRF gait landmarks # walk1_trial_temp = walk1.add_trial(99, omit_trial_dir=True) # walk1_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk1_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [0.487, 1.757, 3.020, 4.302] gait_events['left_toeooffs'] = [0.716, 1.980, 3.256] gait_events['left_strikes'] = [1.125, 2.393, 3.663] gait_events['right_toeoffs'] = [1.351, 2.624, 3.886] walk1_trial = walk1.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) # walk1: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk1_trial) helpers.generate_exotopology_tasks(walk1_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk1_trial, mrs_setup_tasks) ## walk2 condition walk2 = subject.add_condition('walk2', metadata={'walking_speed': 1.25}) # GRF gait landmarks # walk2_trial_temp = walk2.add_trial(99, omit_trial_dir=True) # walk2_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # Trial to use gait_events = dict() gait_events['right_strikes'] = [1.179, 2.282, 3.361, 4.488] #, 5.572] gait_events['left_toeooffs'] = [1.368, 2.471, 3.578] #, 4.680] gait_events['left_strikes'] = [1.728, 2.836, 3.943] #, 5.051] gait_events['right_toeoffs'] = [1.934, 3.033, 4.137] #, 5.252] walk2_trial = walk2.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) walk2_trial.add_task(tasks.TaskUpdateGroundReactionColumnLabels) # walk2: main study tasks helpers.generate_sensitivity_tasks(walk2_trial) mrs_setup_tasks = helpers.generate_main_tasks(walk2_trial) helpers.generate_exotopology_tasks(walk2_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk2_trial, mrs_setup_tasks) ## walk3 condition walk3 = subject.add_condition('walk3', metadata={'walking_speed': 1.50}) # GRF gait landmarks # walk3_trial_temp = walk3.add_trial(99, omit_trial_dir=True) # walk3_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk3_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [0.911, 1.934, 3.978, 5.008] gait_events['left_toeoffs'] = [1.081, 2.089, 4.146] gait_events['left_strikes'] = [1.428, 2.440, 4.495] gait_events['right_toeoffs'] = [1.598, 2.614, 4.661] gait_events['stride_times'] = [1.934 - 0.911, 3.978 - 2.934, 5.008 - 3.978] walk3_trial = walk3.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) # walk3: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk3_trial) helpers.generate_exotopology_tasks(walk3_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk3_trial, mrs_setup_tasks) ## walk4 condition walk4 = subject.add_condition('walk4', metadata={'walking_speed': 1.75}) # GRF gait landmarks # walk4_trial_temp = walk4.add_trial(99, omit_trial_dir=True) # walk4_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk4_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [1.156, 2.112, 3.069, 4.033] gait_events['left_toeooffs'] = [1.307, 2.257, 3.218] gait_events['left_strikes'] = [1.646, 2.594, 3.532] gait_events['right_toeoffs'] = [1.801, 2.754, 3.714] walk4_trial = walk4.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) # walk4: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk4_trial) helpers.generate_exotopology_tasks(walk4_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk4_trial, mrs_setup_tasks) # multi-phase parameter calibration (trial does not matter) calibrate_setup_task = walk3_trial.add_task( tasks.TaskCalibrateParametersMultiPhaseSetup, ['walk1', 'walk2', 'walk3', 'walk4'], ['cycle01'], study.param_dict, study.cost_dict, passive_precalibrate=True) walk3_trial.add_task(tasks.TaskCalibrateParametersMultiPhase, calibrate_setup_task) walk3_trial.add_task(tasks.TaskCalibrateParametersMultiPhasePost, calibrate_setup_task)
def add_to_study(study): subject = study.add_subject(19, 68.50) cond_args = dict() cond_args['walk100'] = (1, '_newCOP3') cond_args['walk125'] = (1, '_newCOP3') cond_args['walk150'] = (1, '_newCOP3') cond_args['walk175'] = (1, '_newCOP3') cond_args['run200'] = (1, '_newCOP3') cond_args['run300'] = (1, '_newCOP3') cond_args['run400'] = (1, '_newCOP3') cond_args['run500'] = (1, '_newCOP3') subject.cond_args = cond_args static = subject.add_condition('static') static_trial = static.add_trial(1, omit_trial_dir=True) # `os.path.basename(__file__)` should be `subject19.py`. scale_setup_task = subject.add_task(osp.TaskScaleSetup, init_time=0.41667, final_time=6.14167, mocap_trial=static_trial, edit_setup_function=scale_setup_fcn, addtl_file_dep=['dodo.py', os.path.basename(__file__)]) subject.add_task(osp.TaskScale, scale_setup_task=scale_setup_task, #scale_max_isometric_force=True, ) subject.add_task(tasks.TaskScaleMuscleMaxIsometricForce) marker_adjustments = dict() # marker_adjustments['RTOE'] = (1, 0.0170717) # marker_adjustments['RMT5'] = (1, 0.011679) # marker_adjustments['LTOE'] = (1, 0.0170708) # marker_adjustments['LMT5'] = (1, 0.0116779) subject.add_task(tasks.TaskAdjustScaledModelMarkers, marker_adjustments) subject.scaled_model_fpath = os.path.join(subject.results_exp_path, '%s_final.osim' % subject.name) ## walk1 condition walk1 = subject.add_condition('walk1', metadata={'walking_speed': 1.00}) # GRF gait landmarks # walk1_trial_temp = walk1.add_trial(99, omit_trial_dir=True) # walk1_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk1_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [0.503, 2.934, 4.134, 5.361] gait_events['left_toeoffs'] = [0.720, 3.148, 4.340] gait_events['left_strikes'] = [1.103, 3.516, 4.744] gait_events['right_toeoffs'] = [1.309, 3.746, 4.959] gait_events['stride_times'] = [1.738-0.503, 4.134-2.934, 5.361-4.134] walk1_trial = walk1.add_trial(1, gait_events=gait_events, omit_trial_dir=True, ) # walk1: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk1_trial) helpers.generate_exotopology_tasks(walk1_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk1_trial, mrs_setup_tasks) ## walk2 condition walk2 = subject.add_condition('walk2', metadata={'walking_speed': 1.25}) # walk2_trial = walk2.add_trial(1, omit_trial_dir=True) # walk2_trial.add_task(tasks.TaskUpdateGroundReactionColumnLabels) # walk2_trial.add_task(osp.TaskGRFGaitLandmarks, threshold=10) # Trial to use gait_events = dict() gait_events['right_strikes'] = [0.599, 1.653, 2.718, 3.790] #, 4.857] gait_events['left_toeoffs'] = [0.782, 1.839, 2.896] #, 3.962] gait_events['left_strikes'] = [1.124, 2.183, 3.256] #, 4.331] gait_events['right_toeoffs'] = [1.302, 2.368, 3.423] #, 4.504] walk2_trial = walk2.add_trial(1, gait_events=gait_events, omit_trial_dir=True, ) walk2_trial.add_task(tasks.TaskUpdateGroundReactionColumnLabels) # walk2: main study tasks helpers.generate_sensitivity_tasks(walk2_trial) mrs_setup_tasks = helpers.generate_main_tasks(walk2_trial) helpers.generate_exotopology_tasks(walk2_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk2_trial, mrs_setup_tasks) ## walk3 condition walk3 = subject.add_condition('walk3', metadata={'walking_speed': 1.50}) # GRF gait landmarks # walk3_trial_temp = walk3.add_trial(99, omit_trial_dir=True) # walk3_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk3_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [0.103, 1.081, 2.082, 3.068] gait_events['left_toeoffs'] = [0.264, 1.252, 2.243] gait_events['left_strikes'] = [0.597, 1.592, 2.568] gait_events['right_toeoffs'] = [0.774, 1.762, 2.740] walk3_trial = walk3.add_trial(1, gait_events=gait_events, omit_trial_dir=True, ) # walk3: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk3_trial) helpers.generate_exotopology_tasks(walk3_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk3_trial, mrs_setup_tasks) ## walk4 condition walk4 = subject.add_condition('walk4', metadata={'walking_speed': 1.75}) # GRF gait landmarks # walk4_trial_temp = walk4.add_trial(99, omit_trial_dir=True) # walk4_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk4_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [0.123, 1.026, 1.970, 2.886] gait_events['left_toeoffs'] = [0.271, 1.189, 2.120] gait_events['left_strikes'] = [0.589, 1.506, 2.439] gait_events['right_toeoffs'] = [0.738, 1.694, 2.591] walk4_trial = walk4.add_trial(1, gait_events=gait_events, omit_trial_dir=True, ) # walk4: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk4_trial) helpers.generate_exotopology_tasks(walk4_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk4_trial, mrs_setup_tasks) # multi-phase parameter calibration (trial does not matter) calibrate_setup_task = walk3_trial.add_task( tasks.TaskCalibrateParametersMultiPhaseSetup, ['walk1','walk2','walk3','walk4'], ['cycle01'], study.param_dict, study.cost_dict, passive_precalibrate=True) walk3_trial.add_task( tasks.TaskCalibrateParametersMultiPhase, calibrate_setup_task) walk3_trial.add_task( tasks.TaskCalibrateParametersMultiPhasePost, calibrate_setup_task)
def add_to_study(study): subject = study.add_subject(4, 80.30) cond_args = dict() cond_args['walk175'] = (3, '_newCOP3') cond_args['run500'] = (4, '_newCOP3') subject.cond_args = cond_args static = subject.add_condition('static') static_trial = static.add_trial(1, omit_trial_dir=True) # `os.path.basename(__file__)` should be `subject02.py`. scale_setup_task = subject.add_task(osp.TaskScaleSetup, init_time=0.73, final_time=3.89, mocap_trial=static_trial, edit_setup_function=scale_setup_fcn, addtl_file_dep=['dodo.py', os.path.basename(__file__)]) subject.add_task(osp.TaskScale, scale_setup_task=scale_setup_task, #scale_max_isometric_force=True, ) subject.add_task(tasks.TaskScaleMuscleMaxIsometricForce) marker_adjustments = dict() marker_adjustments['RTOE'] = (1, 0.0029271) marker_adjustments['RMT5'] = (1, -0.003) marker_adjustments['LTOE'] = (1, 0.0029261) marker_adjustments['LMT5'] = (1, -0.003) subject.add_task(tasks.TaskAdjustScaledModelMarkers, marker_adjustments) subject.scaled_model_fpath = os.path.join(subject.results_exp_path, '%s_final.osim' % subject.name) ## walk1 condition walk1 = subject.add_condition('walk1', metadata={'walking_speed': 1.00}) # GRF gait landmarks # walk1_trial_temp = walk1.add_trial(99, omit_trial_dir=True) # walk1_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk1_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [1.361, 2.516, 3.767, 4.985] gait_events['left_toeoffs'] = [1.555, 2.704, 3.983] gait_events['left_strikes'] = [1.946, 3.131, 4.332] gait_events['right_toeoffs'] = [2.165, 3.353, 4.546] walk1_trial = walk1.add_trial(1, gait_events=gait_events, omit_trial_dir=True, ) # walk1: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk1_trial) helpers.generate_exotopology_tasks(walk1_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk1_trial, mrs_setup_tasks) ## walk2 condition walk2 = subject.add_condition('walk2', metadata={'walking_speed': 1.25}) # GRF gait landmarks # walk2_trial = walk2.add_trial(1, omit_trial_dir=True) # walk2_trial.add_task(tasks.TaskUpdateGroundReactionColumnLabels) # walk2_trial.add_task(osp.TaskGRFGaitLandmarks, threshold=25) # Trial to use gait_events = dict() gait_events['right_strikes'] = [0.269, 1.408, 4.741, 5.902] gait_events['left_toeoffs'] = [0.419, 1.565, 4.882] gait_events['left_strikes'] = [0.813, 1.952, 5.317] gait_events['right_toeoffs'] = [0.966, 2.104, 5.479] gait_events['stride_times'] = [1.408-0.269, 2.519-1.408, 5.902-4.741] walk2_trial = walk2.add_trial(1, gait_events=gait_events, omit_trial_dir=True, ) walk2_trial.add_task(tasks.TaskUpdateGroundReactionColumnLabels) # walk2: main study tasks helpers.generate_sensitivity_tasks(walk2_trial) mrs_setup_tasks = helpers.generate_main_tasks(walk2_trial) helpers.generate_exotopology_tasks(walk2_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk2_trial, mrs_setup_tasks) ## walk3 condition walk3 = subject.add_condition('walk3', metadata={'walking_speed': 1.50}) # GRF gait landmarks # walk3_trial_temp = walk3.add_trial(99, omit_trial_dir=True) # walk3_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk3_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [2.351, 3.386, 4.422, 5.457] gait_events['left_toeoffs'] = [2.525, 3.534, 4.589] gait_events['left_strikes'] = [2.859, 3.894, 4.936] gait_events['right_toeoffs'] = [3.060, 4.045, 5.104] walk3_trial = walk3.add_trial(1, gait_events=gait_events, omit_trial_dir=True, ) # walk3: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk3_trial) helpers.generate_exotopology_tasks(walk3_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk3_trial, mrs_setup_tasks) ## walk4 condition walk4 = subject.add_condition('walk4', metadata={'walking_speed': 1.75}) # GRF gait landmarks # walk4_trial_temp = walk4.add_trial(99, omit_trial_dir=True) # walk4_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk4_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [1.028, 2.006, 2.990, 3.965] gait_events['left_toeoffs'] = [1.169, 2.156, 3.142] gait_events['left_strikes'] = [1.514, 2.503, 3.465] gait_events['right_toeoffs'] = [1.661, 2.634, 3.619] walk4_trial = walk4.add_trial(1, gait_events=gait_events, omit_trial_dir=True, ) # walk4: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk4_trial) helpers.generate_exotopology_tasks(walk4_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk4_trial, mrs_setup_tasks) # multi-phase parameter calibration (trial does not matter) calibrate_setup_task = walk3_trial.add_task( tasks.TaskCalibrateParametersMultiPhaseSetup, ['walk1','walk2','walk3','walk4'], ['cycle01'], study.param_dict, study.cost_dict, passive_precalibrate=True) walk3_trial.add_task( tasks.TaskCalibrateParametersMultiPhase, calibrate_setup_task) walk3_trial.add_task( tasks.TaskCalibrateParametersMultiPhasePost, calibrate_setup_task)
def add_to_study(study): subject = study.add_subject(2, 76.48) cond_args = dict() cond_args['walk100'] = (5, '_newCOP3') cond_args['walk125'] = (4, '_newCOP3') subject.cond_args = cond_args static = subject.add_condition('static') static_trial = static.add_trial(1, omit_trial_dir=True) # `os.path.basename(__file__)` should be `subject02.py`. scale_setup_task = subject.add_task( osp.TaskScaleSetup, init_time=0, final_time=0.4, mocap_trial=static_trial, edit_setup_function=scale_setup_fcn, addtl_file_dep=['dodo.py', os.path.basename(__file__)]) subject.add_task( osp.TaskScale, scale_setup_task=scale_setup_task, #scale_max_isometric_force=True, ) subject.add_task(tasks.TaskScaleMuscleMaxIsometricForce) marker_adjustments = dict() marker_adjustments['RTOE'] = (1, 0.0159575) marker_adjustments['RMT5'] = (1, 0.0109378) marker_adjustments['LTOE'] = (1, 0.0159567) marker_adjustments['LMT5'] = (1, 0.0109368) subject.add_task(tasks.TaskAdjustScaledModelMarkers, marker_adjustments) subject.scaled_model_fpath = os.path.join(subject.results_exp_path, '%s_final.osim' % subject.name) ## walk1 condition walk1 = subject.add_condition('walk1', metadata={'walking_speed': 1.00}) # GRF gait landmarks # walk1_trial_temp = walk1.add_trial(99, omit_trial_dir=True) # walk1_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk1_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [1.001, 2.268, 3.479, 4.766] gait_events['left_toeoffs'] = [1.219, 2.497, 3.750] gait_events['left_strikes'] = [1.625, 2.895, 4.116] gait_events['right_toeoffs'] = [1.864, 3.118, 4.364] walk1_trial = walk1.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) # walk1: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk1_trial) helpers.generate_exotopology_tasks(walk1_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk1_trial, mrs_setup_tasks) ## walk2 condition walk2 = subject.add_condition('walk2', metadata={'walking_speed': 1.25}) # GRF gait landmarks # walk2_trial= walk2.add_trial(1, omit_trial_dir=True) # walk2_trial.add_task(tasks.TaskUpdateGroundReactionColumnLabels) # walk2_trial.add_task(osp.TaskGRFGaitLandmarks, threshold=10) # Trial to use gait_events = dict() gait_events['right_strikes'] = [0.761, 1.921, 3.084, 4.257] #, 5.406] gait_events['left_toeoffs'] = [0.939, 2.101, 3.268] #, 4.446] gait_events['left_strikes'] = [1.349, 2.516, 3.667] #, 4.851] gait_events['right_toeoffs'] = [1.548, 2.709, 3.842] #, 5.031] walk2_trial = walk2.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) walk2_trial.add_task(tasks.TaskUpdateGroundReactionColumnLabels) # walk2: main study tasks helpers.generate_sensitivity_tasks(walk2_trial) mrs_setup_tasks = helpers.generate_main_tasks(walk2_trial) helpers.generate_exotopology_tasks(walk2_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk2_trial, mrs_setup_tasks) ## walk3 condition walk3 = subject.add_condition('walk3', metadata={'walking_speed': 1.50}) # GRF gait landmarks # walk3_trial_temp = walk3.add_trial(99, omit_trial_dir=True) # walk3_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk3_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [0.724, 1.789, 2.823, 3.906] gait_events['left_toeoffs'] = [0.915, 1.956, 3.000] gait_events['left_strikes'] = [1.245, 2.303, 3.375] gait_events['right_toeoffs'] = [1.431, 2.479, 3.552] walk3_trial = walk3.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) # walk3: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk3_trial) helpers.generate_exotopology_tasks(walk3_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk3_trial, mrs_setup_tasks) ## walk4 condition walk4 = subject.add_condition('walk4', metadata={'walking_speed': 1.75}) # GRF gait landmarks # walk4_trial_temp = walk4.add_trial(99, omit_trial_dir=True) # walk4_trial_temp.add_task(osp.TaskGRFGaitLandmarks, threshold=10) # walk4_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [0.829, 1.847, 2.857, 3.824] gait_events['left_toeoffs'] = [0.917, 1.983, 2.997] gait_events['left_strikes'] = [1.337, 2.340, 3.337] gait_events['right_toeoffs'] = [1.484, 2.480, 3.472] walk4_trial = walk4.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) # walk4: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk4_trial) helpers.generate_exotopology_tasks(walk4_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk4_trial, mrs_setup_tasks) # multi-phase parameter calibration (trial does not matter) calibrate_setup_task = walk3_trial.add_task( tasks.TaskCalibrateParametersMultiPhaseSetup, ['walk1', 'walk2', 'walk3', 'walk4'], ['cycle01'], study.param_dict, study.cost_dict, passive_precalibrate=True) walk3_trial.add_task(tasks.TaskCalibrateParametersMultiPhase, calibrate_setup_task) walk3_trial.add_task(tasks.TaskCalibrateParametersMultiPhasePost, calibrate_setup_task)
def add_to_study(study): subject = study.add_subject(18, 64.09) cond_args = dict() cond_args['walk100'] = (1, '_newCOP3') cond_args['walk125'] = (1, '_newCOP3') cond_args['walk150'] = (1, '_newCOP3') cond_args['walk175'] = (1, '_newCOP3') cond_args['run200'] = (1, '_newCOP3') cond_args['run300'] = (1, '_newCOP3') cond_args['run400'] = (1, '_newCOP3') cond_args['run500'] = (1, '_newCOP3') subject.cond_args = cond_args static = subject.add_condition('static') static_trial = static.add_trial(1, omit_trial_dir=True) # `os.path.basename(__file__)` should be `subject02.py`. scale_setup_task = subject.add_task( osp.TaskScaleSetup, init_time=0.042, final_time=3.908, mocap_trial=static_trial, edit_setup_function=scale_setup_fcn, addtl_file_dep=['dodo.py', os.path.basename(__file__)]) subject.add_task( osp.TaskScale, scale_setup_task=scale_setup_task, #scale_max_isometric_force=True, ) subject.add_task(tasks.TaskScaleMuscleMaxIsometricForce) marker_adjustments = dict() marker_adjustments['RTOE'] = (1, 0.0012659) marker_adjustments['RMT5'] = (1, -0.004) marker_adjustments['LTOE'] = (1, 0.0012651) marker_adjustments['LMT5'] = (1, -0.004) subject.add_task(tasks.TaskAdjustScaledModelMarkers, marker_adjustments) subject.scaled_model_fpath = os.path.join(subject.results_exp_path, '%s_final.osim' % subject.name) ## walk1 condition walk1 = subject.add_condition('walk1', metadata={'walking_speed': 1.00}) # GRF gait landmarks # walk1_trial_temp = walk1.add_trial(99, omit_trial_dir=True) # walk1_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk1_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [0.602, 1.777, 2.945, 4.118] gait_events['left_toeoffs'] = [0.792, 1.984, 3.160] gait_events['left_strikes'] = [1.183, 2.366, 3.519] gait_events['right_toeoffs'] = [1.391, 2.554, 3.733] walk1_trial = walk1.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) # walk1: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk1_trial) helpers.generate_exotopology_tasks(walk1_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk1_trial, mrs_setup_tasks) ## walk2 condition walk2 = subject.add_condition('walk2', metadata={'walking_speed': 1.25}) # walk2_trial = walk2.add_trial(1, omit_trial_dir=True) # walk2_trial.add_task(tasks.TaskUpdateGroundReactionColumnLabels) # walk2_trial.add_task(osp.TaskGRFGaitLandmarks, threshold=10) # Trial to use gait_events = dict() gait_events['right_strikes'] = [0.292, 1.376, 2.441, 3.508] gait_events['left_toeoffs'] = [0.458, 1.541, 2.605] gait_events['left_strikes'] = [0.832, 1.908, 2.968] gait_events['right_toeoffs'] = [1.005, 2.080, 3.142] walk2_trial = walk2.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) walk2_trial.add_task(tasks.TaskUpdateGroundReactionColumnLabels) # walk2: main study tasks helpers.generate_sensitivity_tasks(walk2_trial) mrs_setup_tasks = helpers.generate_main_tasks(walk2_trial) helpers.generate_exotopology_tasks(walk2_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk2_trial, mrs_setup_tasks) ## walk3 condition walk3 = subject.add_condition('walk3', metadata={'walking_speed': 1.50}) # GRF gait landmarks # walk3_trial_temp = walk3.add_trial(99, omit_trial_dir=True) # walk3_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk3_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [0.551, 1.558, 2.568, 3.573] gait_events['left_toeoffs'] = [0.699, 1.720, 2.728] gait_events['left_strikes'] = [1.041, 2.067, 3.068] gait_events['right_toeoffs'] = [1.204, 2.219, 3.224] walk3_trial = walk3.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) # walk3: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk3_trial) helpers.generate_exotopology_tasks(walk3_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk3_trial, mrs_setup_tasks) ## walk4 condition walk4 = subject.add_condition('walk4', metadata={'walking_speed': 1.75}) # GRF gait landmarks # walk4_trial_temp = walk4.add_trial(99, omit_trial_dir=True) # walk4_trial_temp.add_task(osp.TaskGRFGaitLandmarks) # walk4_trial_temp.add_task(tasks.TaskUpdateGroundReactionColumnLabels) gait_events = dict() gait_events['right_strikes'] = [0.301, 2.246, 3.209, 4.167] gait_events['left_toeoffs'] = [0.436, 2.377, 3.346] gait_events['left_strikes'] = [0.787, 2.729, 3.686] gait_events['right_toeoffs'] = [0.934, 2.870, 3.381] gait_events['stride_times'] = [1.270 - 0.301, 3.209 - 2.246, 4.167 - 3.209] walk4_trial = walk4.add_trial( 1, gait_events=gait_events, omit_trial_dir=True, ) # walk4: main study tasks mrs_setup_tasks = helpers.generate_main_tasks(walk4_trial) helpers.generate_exotopology_tasks(walk4_trial, mrs_setup_tasks) helpers.generate_coupled_controls_tasks(walk4_trial, mrs_setup_tasks) # multi-phase parameter calibration (trial does not matter) calibrate_setup_task = walk3_trial.add_task( tasks.TaskCalibrateParametersMultiPhaseSetup, ['walk1', 'walk2', 'walk3', 'walk4'], ['cycle01'], study.param_dict, study.cost_dict, passive_precalibrate=True) walk3_trial.add_task(tasks.TaskCalibrateParametersMultiPhase, calibrate_setup_task) walk3_trial.add_task(tasks.TaskCalibrateParametersMultiPhasePost, calibrate_setup_task)