/****************************************************/ /* Pedaling Model With Two Legs */ /* Generalized coordinates are: /* hip, knee and ankle joint angles on both sides /****************************************************/ #include name 2D Pedaling 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 crank ambient 0.0 1.0 0.0 specular 0.0 1.0 0.0 diffuse 0.0 1.0 0.0 shininess 10.0 endmaterial beginmaterial pedal ambient 0.0 0.0 1.0 specular 0.0 0.0 1.0 diffuse 0.0 0.0 1.0 shininess 10 endmaterial beginmaterial def_min_muscle 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 def_max_muscle 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 arrow ambient 0.0 1.0 0.00 specular 0.0 1.0 0.00 diffuse 0.0 1.0 0.00 shininess 10.0 endmaterial /*********************************************/ /* WORLDOBJECTS */ /*********************************************/ beginmotionobject arrow filename arrow.asc material arrow position 0.000000 0.00000 0.000000 scale 0.000001 0.000001 0.000001 /*vectoraxis x*/ 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 pelvis.asc l_pelvis.asc sacrum.asc endfiles mass 51.1 masscenter -0.0707 0.2639 0.00 inertia 1.3960000000 0.0000000000 0.0000000000 0.0000000000 0.7153000000 0.0000000000 0.0000000000 0.0000000000 2.5800000000 material default_bone endsegment /****** Right leg ******/ beginsegment femur_r beginfiles femur.asc endfiles mass 7.76 masscenter 0.0 -0.17 0.000000 inertia 0.1370000000 0.0000000000 0.0000000000 0.0000000000 0.0316000000 0.0000000000 0.0000000000 0.0000000000 0.1370000000 material default_bone endsegment beginsegment tibia_r beginfiles tibia.asc fibula.asc endfiles mass 3.03 masscenter 0.0 -0.1867 0.0 inertia 0.0444000000 0.0000000000 0.0000000000 0.0000000000 0.0038300000 0.0000000000 0.0000000000 0.0000000000 0.0445000000 material default_bone 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 0.8183 masscenter 0.05 0.03 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 toes_r beginfiles bofoot.asc endfiles mass 0.2058 masscenter 0.0346 0.006 -0.0175 inertia 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 material default_bone endsegment /****** Left leg ******/ beginsegment femur_l beginfiles l_femur.asc endfiles mass 7.76 masscenter 0.0 -0.17 0.000000 inertia 0.1370000000 0.0000000000 0.0000000000 0.0000000000 0.0316000000 0.0000000000 0.0000000000 0.0000000000 0.1370000000 material default_bone endsegment beginsegment tibia_l beginfiles l_tibia.asc l_fibula.asc endfiles mass 3.03 masscenter 0.0 -0.1867 0.0 inertia 0.0444000000 0.0000000000 0.0000000000 0.0000000000 0.0038300000 0.0000000000 0.0000000000 0.0000000000 0.0445000000 material default_bone 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 0.8183 masscenter 0.05 0.03 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 toes_l beginfiles l_bofoot.asc endfiles mass 0.2058 masscenter 0.0346 0.006 -0.0175 inertia 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 0.0000000000 0.0000000000 0.0000000000 0.0010000000 material default_bone endsegment beginsegment crank beginfiles crank.bin endfiles mass 269.717 masscenter 0.0 0.0 0.0 inertia 2.6 0.0 0.0 0.0 0.001 0.0 0.0 0.0 2.6 material crank endsegment beginsegment pedal_r beginfiles pedal.bin endfiles mass 1.1 masscenter 0.0 0.0 0.0 inertia 0.001 0.0 0.0 0.0 0.001 0.0 0.0 0.0 0.001 material pedal endsegment beginsegment pedal_l beginfiles pedal.bin endfiles mass 1.1 masscenter 0.0 0.0 0.0 inertia 0.001 0.0 0.0 0.0 0.001 0.0 0.0 0.0 0.001 material pedal endsegment /*********************************************/ /* JOINTS */ /*********************************************/ beginjoint ground_pelvis segments ground pelvis order t r3 r2 r1 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx constant 0.000000 ty constant 0.000000 tz constant 0.000000 r1 constant 0.000000 r2 constant 0.000000 r3 constant 0.000000 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 r1 constant 0.000000 r2 constant 0.000000 r3 function f1(hip_angle_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 f5(knee_angle_r) ty function f6(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 f8(knee_angle_r) ty function f9(knee_angle_r) tz constant 0.002400 r1 constant 0.000000 r2 constant 0.000000 r3 function f10(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.000000 0.000000 1.000000 tx constant 0.000000 ty constant -0.430000 tz constant 0.000000 r1 constant 0.000000 r2 constant 0.000000 r3 function f1(ankle_angle_r) endjoint beginjoint subtalar_r segments talus_r calcn_r 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 constant -0.048770 ty constant -0.041950 tz constant 0.007920 r1 constant 0.000000 r2 constant 0.000000 r3 constant 0.000000 endjoint beginjoint mtp_r segments calcn_r toes_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.178800 ty constant -0.002000 tz constant 0.001080 r1 constant 0.000000 r2 constant 0.000000 r3 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 r1 constant 0.000000 r2 constant 0.000000 r3 function f1(hip_angle_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 f5(knee_angle_l) ty function f6(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 f8(knee_angle_l) ty function f9(knee_angle_l) tz constant -0.002400 r1 constant 0.000000 r2 constant 0.000000 r3 function f10(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.000000 0.000000 1.000000 tx constant 0.000000 ty constant -0.430000 tz constant 0.000000 r1 constant 0.000000 r2 constant 0.000000 r3 function f1(ankle_angle_l) endjoint beginjoint subtalar_l segments talus_l calcn_l 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 constant -0.048770 ty constant -0.041950 tz constant -0.007920 r1 constant 0.000000 r2 constant 0.000000 r3 constant 0.000000 endjoint beginjoint mtp_l segments calcn_l toes_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.178800 ty constant -0.002000 tz constant -0.001080 r1 constant 0.000000 r2 constant 0.000000 r3 constant 0.000000 endjoint /****** Crank ******/ beginjoint ground_crank segments ground crank order t r3 r2 r1 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx constant 0.22 ty constant -0.75 tz constant 0.0 r1 constant 0.000000 r2 constant 0.000000 r3 function f1(crank_angle) endjoint /* CRANK-PEDAL JOINTS */ beginjoint crank_pedal_r /* crank-pedal */ segments crank pedal_r order t r1 r2 r3 tx constant 0.0 ty constant 0.175 tz constant 0.09142 axis1 1.0 0.0 0.0 axis2 0.0 1.0 0.0 axis3 0.0 0.0 -1.0 loopjoint r1 constant 0.0 r2 constant 0.0 r3 function f1(pedal_angle_r) endjoint beginjoint crank_pedal_l /* crank-pedal */ segments crank pedal_l order t r1 r2 r3 tx constant 0.0 ty constant -0.175 tz constant -0.09142 axis1 1.0 0.0 0.0 axis2 0.0 1.0 0.0 axis3 0.0 0.0 -1.0 loopjoint r1 constant 0.0 r2 constant 0.0 r3 function f1(pedal_angle_l) endjoint beginjoint pedal_calcn_r segments pedal_r calcn_r order t r3 r2 r1 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx constant -0.18177 ty constant 0.05205 tz constant 0.0 r1 constant 0.000000 r2 constant 0.000000 r3 constant 0.000000 endjoint beginjoint pedal_calcn_l segments pedal_l calcn_l order t r3 r2 r1 axis1 1.000000 0.000000 0.000000 axis2 0.000000 1.000000 0.000000 axis3 0.000000 0.000000 1.000000 tx constant -0.18177 ty constant 0.05205 tz constant 0.0 r1 constant 0.000000 r2 constant 0.000000 r3 constant 0.000000 endjoint /*********************************************/ /* GENCOORDS */ /*********************************************/ /****** Right leg ******/ begingencoord hip_angle_r range -180.000000 180.000000 default_value 0.000000 endgencoord begingencoord knee_angle_r range -360.000000 360.000000 default_value 0.000000 endgencoord begingencoord ankle_angle_r range -360.000000 360.000000 default_value 0.000000 endgencoord /****** Left leg ******/ begingencoord hip_angle_l range -180.000000 180.000000 default_value 0.000000 endgencoord begingencoord knee_angle_l range -360.000000 360.000000 default_value 0.000000 endgencoord begingencoord ankle_angle_l range -360.000000 360.000000 default_value 0.000000 endgencoord /****** Crank and Pedals ******/ begingencoord crank_angle range -2000.000000 2000.000000 default_value 0.000000 endgencoord begingencoord pedal_angle_r range -1440.000000 1440.000000 default_value 0.000000 endgencoord begingencoord pedal_angle_l range -1440.000000 1440.000000 default_value 0.000000 endgencoord /*********************************************/ /* FUNCTIONS */ /*********************************************/ beginfunction f1 (-10000.000000,-10000.000000) ( 10000.000000, 10000.000000) endfunction /* tx for femoral-tibial joint */ beginfunction f5 (-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) ( 0.000000, -0.005250) ( 5.000000, -0.005250) endfunction /* ty for femoral-tibial joint */ beginfunction f6 (-120.000000, -0.422600) ( -70.000000, -0.408200) ( -30.000000, -0.399000) ( -20.000000, -0.397600) ( -10.000000, -0.396600) ( 0.000000, -0.396000) ( 5.000000, -0.396000) endfunction /* tx for tibial-patellar motion */ beginfunction f8 (-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) ( 5.000000, 0.049600) endfunction /* ty for tibial-patellar motion */ beginfunction f9 /* 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) ( 5.0, -0.0227) endfunction /* rz for tibial-patellar motion */ beginfunction f10 /* 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