/******************************************************************************* 3D, 23 D.O.F. gait model with virtual feet Created by D.G. Thelen, Univ. of Wisconsin-Madison Lower extremity joint defintions based on Delp et al. (1990) Low back joint and anthropometry based on Anderson and Pandy (1999) Planar knee model of Yamaguchi (1989) is implemented Knee kinematic functions of Delp extended to eliminate discontinuities near full extension that introduce sudden changes in muscle lengths **** Markers modified to be consistent with Gillette control subjects ASA, 10-05 References: Delp, S.L., Loan, J.P., Hoy, M.G., Zajac, F.E., Topp E.L., Rosen, J.M.: An interactive graphics-based model of the lower extremity to study orthopaedic surgical procedures, IEEE Transactions on Biomedical Engineering, vol. 37, pp. 757-767, 1990. Anderson FC and Pandy MG. A dynamic optimization solution for vertical jumping in three dimensions. Computer Methods in Biomechanics and Biomedical Engineering 2:201-231, 1999. Anderson FC and Pandy MG. Dynamic optimization of human walking. Journal of Biomechanical Engineering 123:381-390, 2001. *******************************************************************************/ name 3D Gait Model background_color 0 0 0 /* ***************************************** */ /* MATERIALS */ /* ***************************************** */ beginmaterial default_bone ambient 0.65 0.65 0.65 specular 0.7 0.55 0.4 diffuse 0.55 0.4 0.35 shininess 10 endmaterial beginmaterial floor_mat1 ambient 0.3000 0.3000 0.9000 diffuse 0.3000 0.3000 0.9000 specular 0.3000 0.3000 0.9000 endmaterial beginmaterial floor_mat2 ambient 0.000 0.000 0.000 diffuse 0.000 0.000 0.000 specular 0.000 0.000 0.000 endmaterial beginmaterial muscle_min ambient 0.0 0.0 1.0 specular 0.0 0.0 1.0 diffuse 0.0 0.0 1.0 shininess 10.0 endmaterial beginmaterial muscle_max ambient 1.0 0.0 0.00 specular 1.0 0.0 0.00 diffuse 1.0 0.0 0.00 shininess 10.0 endmaterial beginmaterial cyan ambient 0.1000 0.8000 1.0000 diffuse 0.1000 0.3000 0.5000 specular 0.1000 0.3000 0.5000 shininess 10.0000 endmaterial beginmaterial green ambient 0.0100 0.9000 0.0100 diffuse 0.1000 0.9000 0.1000 specular 0.5000 0.5000 0.5000 shininess 10.0000 endmaterial beginmaterial orange ambient 1.0000 0.3000 0.0100 diffuse 0.5000 0.1000 0.1000 specular 0.5000 0.5000 0.5000 shininess 10.0000 endmaterial beginmaterial yellow ambient 1.0000 0.8000 0.1000 diffuse 0.5000 0.4000 0.1000 specular 0.5000 0.4000 0.1000 shininess 10.0000 endmaterial beginmaterial purple ambient 0.5000 0.0100 0.5000 diffuse 0.5000 0.0100 0.5000 specular 0.5000 0.5000 0.5000 shininess 10.0000 endmaterial beginmaterial blue ambient 0.1000 0.1000 1.0000 diffuse 0.1000 0.1000 1.0000 specular 0.5000 0.5000 0.5000 shininess 10.0000 endmaterial beginmaterial floor_material ambient 0.5000 0.4000 0.3000 diffuse 0.5000 0.4000 0.3000 specular 0.5000 0.4000 0.3000 endmaterial /* ***************************************** */ /* WORLDOBJECTS */ /* ***************************************** */ beginworldobject floor filename floor_xz_plane.asc origin 0.0 0.0 0.0 material floor_material drawmode solid_fill endworldobject /* beginworldobject floor1 filename floor1.asc origin 0.0 0.0 0.0 material floor_mat1 endworldobject beginworldobject floor2 filename floor2.asc origin 0.0 0.0 0.0 material floor_mat2 endworldobject */ beginmotionobject ball scale 0.25 0.25 0.25 endmotionobject beginmotionobject force scale 0.5 0.0005 0.5 endmotionobject beginmotionobject torque scale 0.0000000001 0.0000000001 0.000000001 endmotionobject beginmotionobject arrow filename arrow.asc material floor_mat2 position 0.000000 0.00000 0.000000 scale 0.000001 0.000001 0.000001 /*vectoraxis x*/ endmotionobject beginmotionobject marker filename unit_sphere.asc material cyan position 0. 0. 0. scale 0.2 0.2 0.2 endmotionobject beginmotionobject bodycom filename unit_sphere.asc material orange position 0. 0. 0. scale 0.5 0.5 0.5 endmotionobject beginmotionobject com filename unit_sphere.asc material orange position 0. 0. 0. scale 0.3 0.3 0.3 endmotionobject /* ***************************************** */ /* MODEL VIEWS */ /* ***************************************** */ beginview view1 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 -0.5077 -0.6245 -3.2657 1.0000 endview beginview view2 0.4042 0.0578 0.9129 0.0000 0.0015 0.9980 -0.0639 0.0000 -0.9147 0.0272 0.4033 0.0000 -0.5077 -0.6245 -3.2657 1.0000 endview /* ***************************************** */ /* SEGMENTS */ /* ***************************************** */ beginsegment ground mass 0.000000 masscenter 0.000000 0.000000 0.000000 inertia 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 endsegment beginsegment pelvis beginfiles sacrum2.asc pelvis.asc l_pelvis.asc endfiles mass 11.777 masscenter -0.0707 0.000 0.00 inertia 0.1028000000 0.0000000000 0.0000000000 0.0000000000 0.0871000000 0.0000000000 0.0000000000 0.0000000000 0.05790000000 material default_bone marker asis_r 0.014000 0.000000 0.128000 1.000000 marker asis_l 0.014000 0.000000 -0.128000 1.000000 marker midasis 0.014000 0.000000 0.000000 1.00000 marker psis_r -0.158000 0.037853 0.055989 1.000000 marker psis_l -0.158000 0.037853 -0.055989 1.000000 marker sacralwand -0.200000 0.050000 0.000000 1.000000 marker hip_r -0.070700 -0.066100 0.083500 1.000000 marker hip_l -0.070700 -0.066100 -0.083500 1.000000 marker midhip -0.070700 -0.066100 0.000000 1.000000 endsegment /****** Right leg ******/ beginsegment femur_r beginfiles femur.asc endfiles mass 9.3014 masscenter 0.0 -0.17 0.000000 inertia 0.1339000000 0.0000000000 0.0000000000 0.0000000000 0.0351000000 0.0000000000 0.0000000000 0.0000000000 0.1412000000 material default_bone marker epicondLat_r -0.002000 -0.401000 0.045000 1.000000 marker epicondMed_r 0.007000 -0.403000 -0.040000 1.000000 marker thighwand_r 0.000000 -0.240000 0.150000 1.000000 marker upperleg1_r 0.000000 -0.140000 0.100000 1.000000 marker upperleg2_r 0.000000 -0.340000 0.075000 1.000000 endsegment beginsegment tibia_r beginfiles tibia.asc fibula.asc endfiles mass 3.7075 masscenter 0.0 -0.1867 0.0 inertia 0.0504000000 0.0000000000 0.0000000000 0.0000000000 0.0051000000 0.0000000000 0.0000000000 0.0000000000 0.0511000000 material default_bone marker malleolusLat_r -0.007000 -0.415000 0.050000 1.000000 marker malleolusMedv_r 0.009000 -0.401000 -0.035000 1.000000 marker shankwand_r 0.000000 -0.300000 0.125000 1.000000 marker lowerleg1_r 0.000000 -0.130000 0.060000 1.000000 marker knee_r 0.000000 0.000000 0.000000 1.000000 marker ankle_r 0.000000 -0.430000 0.000000 1.000000 endsegment beginsegment patella_r beginfiles pat.asc endfiles mass 0.1 masscenter 0.0 0.0 0.0 inertia 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 material default_bone endsegment beginsegment talus_r beginfiles talus.asc endfiles mass 0.1 masscenter 0.0 0.0 0.0 inertia 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 material default_bone endsegment beginsegment calcn_r beginfiles foot.asc endfiles mass 1.25 masscenter 0.10 0.03 0.0 inertia 0.0014000000 0.0000000000 0.0000000000 0.0000000000 0.0039000000 0.0000000000 0.0000000000 0.0000000000 0.0041000000 /* force_matte right_foot r_shoe.asc */ material default_bone marker toe_r 0.170000 0.02500 0.000000 1.000000 marker heel_r -0.011000 0.02500 0.000000 1.000000 endsegment /* Create virtual calcn that will be tracked */ beginsegment calcn_rp beginfiles foot.asc endfiles mass 0.001 masscenter 0.10 0.03 0.0 inertia 0.0000001000 0.0000000000 0.0000000000 0.0000000000 0.0000001000 0.0000000000 0.0000000000 0.0000000000 0.0000001000 material default_bone endsegment beginsegment toes_r beginfiles bofoot.asc endfiles mass 0.2166 masscenter 0.0346 0.006 -0.0175 inertia 0.0001000000 0.0000000000 0.0000000000 0.0000000000 0.0002000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 material default_bone endsegment /****** Left leg ******/ beginsegment femur_l beginfiles l_femur.asc endfiles mass 9.3014 masscenter 0.0 -0.17 0.000000 inertia 0.1339000000 0.0000000000 0.0000000000 0.0000000000 0.0351000000 0.0000000000 0.0000000000 0.0000000000 0.1412000000 material default_bone marker epicondLat_l -0.002000 -0.401000 -0.045000 1.000000 marker epicondMed_l 0.007000 -0.403000 0.040000 1.000000 marker thighwand_l 0.000000 -0.240000 -0.150000 1.000000 marker upperleg1_l 0.000000 -0.140000 -0.100000 1.000000 marker upperleg2_l 0.000000 -0.340000 -0.075000 1.000000 endsegment beginsegment tibia_l beginfiles l_tibia.asc l_fibula.asc endfiles mass 3.7075 masscenter 0.0 -0.1867 0.0 inertia 0.0504000000 0.0000000000 0.0000000000 0.0000000000 0.0051000000 0.0000000000 0.0000000000 0.0000000000 0.0511000000 material default_bone marker malleolusLat_l -0.007000 -0.415000 -0.050000 1.000000 marker malleolusMedv_l 0.009000 -0.401000 0.035000 1.000000 marker shankwand_l 0.000000 -0.300000 -0.125000 1.000000 marker lowerleg1_l 0.000000 -0.130000 -0.060000 1.000000 marker knee_l 0.000000 0.000000 0.000000 1.000000 marker ankle_l 0.000000 -0.430000 0.000000 1.000000 endsegment beginsegment patella_l beginfiles l_patella.asc endfiles mass 0.1 masscenter 0.0 0.0 0.0 inertia 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 material default_bone endsegment beginsegment talus_l beginfiles l_talus.asc endfiles mass 0.1 masscenter 0.0 0.0 0.0 inertia 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 material default_bone endsegment beginsegment calcn_l beginfiles l_foot.asc endfiles mass 1.25 masscenter 0.10 0.03 0.0 inertia 0.0014000000 0.0000000000 0.0000000000 0.0000000000 0.0039000000 0.0000000000 0.0000000000 0.0000000000 0.0041000000 /* force_matte left_foot l_shoe.asc */ material default_bone marker toe_l 0.170000 0.025000 0.000000 1.000000 marker heel_l -0.011000 0.025000 0.000000 1.000000 endsegment /* Create a virtual calcn that will be tracked */ beginsegment calcn_lp beginfiles l_foot.asc endfiles mass 0.001 masscenter 0.10 0.03 0.0 inertia 0.0000001000 0.0000000000 0.0000000000 0.0000000000 0.0000001000 0.0000000000 0.0000000000 0.0000000000 0.0000001000 material default_bone endsegment beginsegment toes_l beginfiles l_bofoot.asc endfiles mass 0.2166 masscenter 0.0346 0.006 0.0175 inertia 0.0001000000 0.0000000000 0.0000000000 0.0000000000 0.0002000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 material default_bone endsegment beginsegment torso beginfiles /* Spine, jaw, skull and rib bones had their x and y coordinates translated to place segment origin near to L5/S1 norm jaw.asc hat_jaw.asc -tx 0.0207 -ty 0.091 norm skull.asc hat_skull.asc -tx 0.0207 -ty 0.091 norm spine.asc hat_spine.asc -tx 0.0207 -ty 0.091 norm ribs.asc hat_ribs.asc -tx .0207 -ty .3785 */ hat_spine.asc hat_jaw.asc hat_skull.asc hat_ribs.asc endfiles mass 34.2366 masscenter -0.03 0.32 0.000 inertia 1.4745000000 0.0000000000 0.0000000000 0.0000000000 0.7555000000 0.0000000000 0.0000000000 0.0000000000 1.4314000000 material default_bone marker subclavicle_r 0.030000 0.380000 0.0675000 1.000000 marker subclavicle_l 0.030000 0.380000 -0.0675000 1.000000 marker neck -0.075000 0.422500 0.000000 1.000000 marker sternalnotch 0.030000 0.380000 0.000000 1.000000 marker xyphoidprocess 0.097500 0.230000 0.000000 1.000000 endsegment /* ***************************************** */ /* JOINTS */ /* ***************************************** */ /*************** Add joints connecting virtual calcn to ground ***************/ beginjoint ground_calcn_rp segments ground calcn_rp order t r1 r2 r3 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx function f1(calcn_r_tx) ty function f1(calcn_r_ty) tz function f1(calcn_r_tz) r1 function f1(calcn_r_r1) r2 function f1(calcn_r_r2) r3 function f1(calcn_r_r3) endjoint beginjoint ground_calcn_lp segments ground calcn_lp order t r1 r2 r3 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx function f1(calcn_l_tx) ty function f1(calcn_l_ty) tz function f1(calcn_l_tz) r1 function f1(calcn_l_r1) r2 function f1(calcn_l_r2) r3 function f1(calcn_l_r3) endjoint beginjoint ground_pelvis segments ground pelvis order t r3 r1 r2 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx function f1(pelvis_tx) ty function f1(pelvis_ty) tz function f1(pelvis_tz) r1 function f1(pelvis_list) r2 function f1(pelvis_rotation) r3 function f1(pelvis_tilt) endjoint /****** Right leg ******/ beginjoint hip_r segments pelvis femur_r order t r3 r1 r2 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx constant -0.070700 ty constant -0.066100 tz constant 0.083500 r3 function f1(hip_flexion_r) r1 function f1(hip_adduction_r) r2 function f1(hip_rotation_r) endjoint beginjoint knee_r segments femur_r tibia_r order t r3 r1 r2 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx function f2(knee_angle_r) ty function f3(knee_angle_r) tz constant 0.000000 r1 constant 0.000000 r2 constant 0.000000 r3 function f1(knee_angle_r) endjoint beginjoint tib_pat_r segments tibia_r patella_r order t r3 r1 r2 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx function f4(knee_angle_r) ty function f5(knee_angle_r) tz constant 0.002400 r1 constant 0.000000 r2 constant 0.000000 r3 function f6(knee_angle_r) endjoint beginjoint ankle_r segments tibia_r talus_r order t r3 r1 r2 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 -0.105 -0.174 0.979 /* ankle axis derived from Isman and Inman */ tx constant 0.000000 ty constant -0.430000 tz constant 0.000000 r3 function f1(ankle_angle_r) r1 constant 0.000000 r2 constant 0.000000 endjoint beginjoint subtalar_r /* defines joint between talus and calcanus frames */ segments talus_r calcn_r order t r1 r2 r3 axis1 0.781 0.600 -0.120 /* subtalar axis derived from Inman (1976) */ axis2 0.0 1.0 0.0 axis3 0.0 0.0 1.0 tx constant -0.048770 ty constant -0.041950 tz constant 0.007920 r1 function f1(subtalar_angle_r) r2 constant 0.000000 r3 constant 0.000000 endjoint beginjoint mtp_r segments calcn_r toes_r order t r3 r1 r2 axis3 -0.581 0.000 0.814 /* Inman (1976) values: 0.4695 0.0 -0.8829 */ axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 tx constant 0.178800 ty constant -0.002000 tz constant 0.001080 r3 function f1(mtp_angle_r) r1 constant 0.000000 r2 constant 0.000000 endjoint /****** Left leg ******/ beginjoint hip_l segments pelvis femur_l order t r3 r1 r2 axis1 -1.000000 0.000000 0.000000 axis2 0.000000 -1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx constant -0.070700 ty constant -0.066100 tz constant -0.083500 r3 function f1(hip_flexion_l) r1 function f1(hip_adduction_l) r2 function f1(hip_rotation_l) endjoint beginjoint knee_l segments femur_l tibia_l order t r3 r1 r2 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx function f2(knee_angle_l) ty function f3(knee_angle_l) tz constant 0.000000 r1 constant 0.000000 r2 constant 0.000000 r3 function f1(knee_angle_l) endjoint beginjoint tib_pat_l segments tibia_l patella_l order t r3 r1 r2 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx function f4(knee_angle_l) ty function f5(knee_angle_l) tz constant -0.002400 r1 constant 0.000000 r2 constant 0.000000 r3 function f6(knee_angle_l) endjoint beginjoint ankle_l segments tibia_l talus_l order t r3 r1 r2 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.105 -0.174 0.979 /* ankle axis derived from Isman and Inman */ tx constant 0.000000 ty constant -0.430000 tz constant 0.000000 r3 function f1(ankle_angle_l) r1 constant 0.000000 r2 constant 0.000000 endjoint beginjoint subtalar_l /* defines joint between talus and calcanus frames */ segments talus_l calcn_l order t r1 r2 r3 axis1 -0.781 -0.600 -0.120 /* subtalar axis derived from Inman (1976) */ axis2 0.0 1.0 0.0 axis3 0.0 0.0 1.0 tx constant -0.048770 ty constant -0.041950 tz constant -0.007920 r1 function f1(subtalar_angle_l) r2 constant 0.000000 r3 constant 0.000000 endjoint beginjoint mtp_l segments calcn_l toes_l order t r3 r1 r2 axis3 0.581 0.000 0.814 /* Inman (1976) values: 0.4695 0.0 -0.8829 */ axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 tx constant 0.178800 ty constant -0.002000 tz constant -0.001080 r3 function f1(mtp_angle_l) r1 constant 0.000000 r2 constant 0.000000 endjoint /*************** Add joints connecting pelvis to hat ***************/ beginjoint back segments pelvis torso order t r3 r1 r2 axis1 1.0 0.0 0.0 axis2 0.0 1.0 0.0 axis3 0.0 0.0 1.0 tx constant -0.1007 ty constant 0.0815 tz constant 0.0 r3 function f1(lumbar_extension) r1 function f1(lumbar_bending) r2 function f1(lumbar_rotation) endjoint /* ***************************************** */ /* GENCOORDS */ /* ***************************************** */ /****** Virtual feet ******/ begingencoord calcn_r_tx range -5.000000 5.000000 keys p_key default_value 0.000000 endgencoord begingencoord calcn_r_ty range -1.000000 2.000000 keys q_key default_value 0.01000 endgencoord begingencoord calcn_r_tz range -3.000000 3.000000 keys q_key default_value 0.09142 endgencoord begingencoord calcn_r_r1 range -360.000000 360.000000 keys q_key default_value 0.000000 endgencoord begingencoord calcn_r_r2 range -360.000000 360.000000 keys q_key default_value 0.000000 endgencoord begingencoord calcn_r_r3 range -360.000000 360.000000 keys q_key default_value 0.000000 endgencoord begingencoord calcn_l_tx range -5.000000 5.000000 keys p_key default_value 0.000000 endgencoord begingencoord calcn_l_ty range -1.000000 2.000000 keys q_key default_value 0.01000 endgencoord begingencoord calcn_l_tz range -3.000000 3.000000 keys q_key default_value -0.09142 endgencoord begingencoord calcn_l_r1 range -360.000000 360.000000 keys q_key default_value 0.000000 endgencoord begingencoord calcn_l_r2 range -360.000000 360.000000 keys q_key default_value 0.000000 endgencoord begingencoord calcn_l_r3 range -360.000000 360.000000 keys q_key default_value 0.000000 endgencoord /****** Pelvis ******/ begingencoord pelvis_tx range -5.000000 5.000000 keys p_key default_value 0.120000 endgencoord begingencoord pelvis_ty range -1.000000 2.000000 keys q_key default_value 0.93000 endgencoord begingencoord pelvis_tz range -3.000000 3.000000 keys q_key default_value 0.0 endgencoord begingencoord pelvis_list range -90.000000 90.000000 keys q_key default_value 0.000000 endgencoord begingencoord pelvis_rotation range -90.000000 90.000000 keys q_key default_value 0.000000 endgencoord begingencoord pelvis_tilt range -90.000000 90.000000 keys q_key default_value 0.000000 endgencoord /****** Lower Back ******/ begingencoord lumbar_extension range -90.000000 90.000000 keys q_key default_value 0.000000 endgencoord begingencoord lumbar_bending range -90.000000 90.000000 keys q_key default_value 0.000000 endgencoord begingencoord lumbar_rotation range -90.000000 90.000000 keys q_key default_value 0.000000 endgencoord /****** Right leg ******/ begingencoord hip_flexion_r range -120.000000 120.000000 keys h_key leftmouse_button default_value 0.000000 endgencoord begingencoord hip_adduction_r range -120.000000 120.000000 keys h_key leftmouse_button default_value 0.000000 endgencoord begingencoord hip_rotation_r range -120.000000 120.000000 keys h_key leftmouse_button default_value 0.000000 endgencoord begingencoord knee_angle_r range -120.000000 10.000000 keys k_key default_value 0.000000 endgencoord begingencoord ankle_angle_r range -90.000000 90.000000 keys a_key default_value 0.000000 endgencoord begingencoord subtalar_angle_r range -90.000000 90.000000 keys a_key default_value 0.000000 endgencoord begingencoord mtp_angle_r range -90.000000 90.000000 keys t_key default_value 0.000000 endgencoord /****** Left leg ******/ begingencoord hip_flexion_l range -120.000000 120.000000 keys h_key leftmouse_button default_value 0.000000 endgencoord begingencoord hip_adduction_l range -120.000000 120.000000 keys h_key leftmouse_button default_value 0.000000 endgencoord begingencoord hip_rotation_l range -120.000000 120.000000 keys h_key leftmouse_button default_value 0.000000 endgencoord begingencoord knee_angle_l range -120.000000 10.000000 keys k_key default_value 0.000000 endgencoord begingencoord ankle_angle_l range -60.000000 60.000000 keys a_key default_value 0.000000 endgencoord begingencoord subtalar_angle_l range -90.000000 90.000000 keys a_key default_value 0.000000 endgencoord begingencoord mtp_angle_l range -60.000000 60.000000 keys t_key default_value 0.000000 endgencoord /* ***************************************** */ /* FUNCTIONS */ /* ***************************************** */ beginfunction f1 (-360.000000,-360.000000) ( 360.000000, 360.000000) endfunction /* tx for femoral-tibial joint */ beginfunction f2 (-120.000000, -0.003200) (-100.000000, 0.001790) ( -80.000000, 0.004110) ( -60.000000, 0.004100) ( -40.000000, 0.002120) ( -20.000000, -0.001000) ( -10.000000, -0.003100) ( 11.306991, -0.005227) ( 19.331307, -0.005435) ( 28.085106, -0.005574) ( 87.173252, -0.005435) ( 120.000000, -0.005250) /* ( 0.000000, -0.005250) ( 0.0100000, -0.005250) ( 0.020000, -0.005250) ( 5.000000, -0.005250) ( 120.000000, -0.005250) */ endfunction /* ty for femoral-tibial joint */ beginfunction f3 (-120.000000, -0.422600) ( -70.000000, -0.408200) ( -30.000000, -0.399000) ( -20.000000, -0.397600) ( -10.000000, -0.396600) ( 9.118541, -0.395264) ( 120.000000, -0.396000) /* ( 0.000000, -0.396000) ( 0.010000, -0.396000) ( 0.020000, -0.396000) ( 5.000000, -0.396000) ( 120.000000, -0.396000) */ endfunction /* tx for tibial-patellar motion */ beginfunction f4 (-120.000000, 0.017300) ( -80.000000, 0.032400) ( -60.000000, 0.038100) ( -40.000000, 0.043000) ( -20.000000, 0.046900) ( -10.000000, 0.048400) ( 0.000000, 0.049600) ( 0.010000, 0.049600) ( 0.020000, 0.049600) ( 5.000000, 0.049600) ( 120.000000, 0.049600) endfunction /* ty for tibial-patellar motion */ beginfunction f5 /* knee angle (radians), y-translation from tibial to patellar frame (meters)*/ (-120.0, -0.0219) ( -90.0, -0.0202) ( -80.0, -0.0200) ( -60.0, -0.0204) ( -40.0, -0.0211) ( -20.0, -0.0219) ( -10.0, -0.0223) ( 0.0, -0.0227) ( 0.01, -0.0227) ( 0.02, -0.0227) ( 5.0, -0.0227) ( 120.0, -0.0227) endfunction /* rz for tibial-patellar motion */ beginfunction f6 /* range of motion: 120 deg flexion to 0 deg extension */ /* knee angle (radians), z-rotation from tibial to patellar frame (radians) */ (-120.00, 17.65) (-114.59, 17.65) ( -83.51, 17.55) ( -30.16, 15.48) ( 1.60, -2.12) ( 10.00, -16.04) endfunction