Human Performance Application - Bicycle Rider
One of the most powerful features of the LifeMOD™ Biomechanics Modeler is the capability to create sophisticated human models which may interact with the environment or other mechanical systems. In this example a detailed model of a mountain bicycle is merged with a human model.
The human model is attached to the bicycle and inverse dynamics simulation is performed with the bicycle pedaling itself at a set velocity. During this simulation, the muscle contractile histories are recorded in the legs. The histories are then used in the muscle force models to produce a forward dynamics simulation in which the human model then pedals the bicycle. Three simulations are then performed: 1) baseline, 2) a simulation with a series of 3 inch bumps, and 3) a simulation with a series of 6 inch bumps.
Muscle forces are then compared for the three trials to examine the effect of the bump on the strength requirements of the muscles in order to maintain a constant speed.
Key skills exercised in this tutorial include:
- Development of a body model driven by muscle forces (legs) and joint torques (upper body)
- Importing a mountain bicycle model (full vehicle dynamics).
- Developing human/bike interface forces
- Combining a passive strength model (upper body) and active model (lower body)
- Development of trainable point-to-point muscle forces
- Inverse-dynamics, forward-dynamics simulations
- Terrain forces
- Parameter variation study
- Strip chart data reporting
Sections
Generating the Body Segments
The process begins by creating the segments of the base human model. For this example, segment dimensions, scale parameters and pass properties are secured from the GeBod anthropometric database.
Step 1: Bring up segments panel and set fields
Select SEGMENTS on the main-menu and CREATE BASE SEGMENT SET on the sub-menu. Set units to "Inch Lbm Lbf" and hands to grip. Select the GeBod anthropometric database. Name the body Joe. Select APPLY to create the body measurement table.
Step 2: Create the body
Select APPLY again to create the body with the specified parameters.
Generating the Joints
In this phase, the human segments created in the first phase are connected together with kinematic joints. At the same time torque functions are created at each joint degree of freedom. This model will have a combination of Hybrid III strength joints and passive stiffness joints. The passive joints are on the legs to stabilize the model during the inverse-dynamics simulation and the HIII joints are positioned at the spine and arms for a passive response to the bicycle forces during the forward-dynamics simulation. For information on selecting specific model parameters for this section see Choosing Model Parameters.
Step 3: Bring up joint create panel
Select JOINTS on the main-menu and CREATE BASE JOINT SET on the sub-menu.
Step 4: Create passive spring damper joints (with joint limits) for the model
Select "Prepare Model with Recordable Joints (To be trained in an inverse-dynamics simulation)"
Step 5: Set the parameterized stiffness and damping values
Set the nominal joint stiffness to 100 and the damping to 10.
Step 6: Create the parameterized joints
Select "Modify" to bring up the individual joint set matrices.
Step 7: Create H3 joints for the spine
Set the Hybrid III scale functions as in Figure 3 then select APPLY.
Step 8: Create Passive joints at the left leg
Set the parameters as in Figure 4 then select APPLY.
Step 9: Create H3 joints for the left arm
Set the Hybrid III scale functions as in Figure 5 then select APPLY.
Step 10: Create passive joints at the right leg
Set the parameters as in Figure 4 then select APPLY.
Step 11: Create H3 joints for the right arm
Set the Hybrid III scale functions as in Figure 5 then select APPLY.
Creating Soft Tissues
The next step in the process is to create soft tissues (muscles) on the model. LifeMOD™ automatically creates a set of basic muscle groups for the body. Muscles consist of recording elements or trained elements. The recording elements are simple data collectors which record the contraction history of the muscle during an activity when the model is moved using external drivers such as motion agents. Trained elements can be either PID closed-loop force actuators or actuation curve open-loop force actuators acting to drive the skeleton's motion. Muscle parameters such as physiological cross sectional area (pCSA) and maximum tissue stress are used to calculate the maximum force potential of the particular muscle. LifeMOD™ contains a database of pCSA values for each muscle and is scaled accordingly based on the input body parameters (ht, wt, gender and age). Further, the force output of the muscle may be scaled from 0% to 200% to change the contributions of each particular muscle.
Step 12: Bring up the soft tissue panel
Select SOFT TISSUES on the main-menu and CREATE BASE TISSUE SET on the sub-menu.
Step 13: Set the fields for the muscle generation
Select "Prepare Model with Recording Muscle Elements (To be trained in an inverse-dynamics simulation)" Set the passive stiffness and damping to 0.1, the muscle resting load to .5 and the muscle tone multiplier to be 200%, the tissue stress to be 259 lbs/in2 and the muscle resting load to be .5 lbs.
Step 14: Create the soft tissues on the legs
Specify only right and left legs avd select APPLY to create the muscle sets on the legs.
Merging Bicycle Model
A previously created model of a mountain bicycle exists in the environment library. The model consists of parts, constraints and forces. It also has simple terrain model which simulates the bicycle riding over a series of bumps. The height of the bumps is parameterized and may be adjusted to observe how the human model responds to the disturbance.
Step 15: Bring up the Import Mechanical Environment panel
Select XCHANGE from the main-menu and IMPORT MECHANICAL ENVIRONMENT from the sub-menu. Select Mechanical Environment Library and Bicycle for the Model Library SLF File.
Step 16: Import the bicycle mechanical model
Select APPLY to import the bicycle model into the human model database.
Posing the Human Model
After the joints are created on the model the posture of the model may be adjusted, and the model moved into place. The posture may be adjusted by recalling one of several postures in the posture library then further modify the joint angles if necessary. The body is moved into place by selecting the Lower_Torso segment and changing the location.
Step 17: Bring up the posture panel
Select POSTURE from the main-menu and CONFIGURE BASE MODEL from the sub-menu.
Step 18: Put model in bicycle riding posture
Select LOAD LIBRARY POSTURE and import the BicycleRiding.slf file to import the joint angles for the model.
Attaching the Human Model to the Bicycle
With the human model in position relative to the bicycle, the human model is now attached to the bicycle at the hands, feet and pelvis using bushing force elements.
Step 19: Create bushing elements between the hands and the grips
Select the bushing icon from the forces section in the Main Toolbox. Select .World.Joe_Left_Hand as the first body and .World.Frame as the second body. Right-click on the ground to bring up the Location panel under the main toolbox. Enter (7.5, 26, 19.5) and select APPLY. Modify and set values to figure 13.
Create a second bushing selecting .World.Joe_Right_Hand and .World.Frame respectively. Set the location to be (-7.5, 26, 19.5) and select APPLY. Modify and set values to figure 13.
OR
Use the following ADAMS/View commands to create the bushing forces between the hands and the grips:
Markers for Left Hand:
marker create marker=.World.Joe_Left_Hand.b1 loc=7.5,26,19.5 ori=0,0,0 rel=.World
marker create marker=.World.Frame.b1 loc=7.5,26,19.5 ori=0,0,0 rel=.World
Bushing Forces for Left Hand:
force cre ele bush bush=.World.Bush1 i_mark=.World.Joe_Left_Hand.b1 j_mark=.World.Frame.b1 stiff=1000.0,1000.0,1000.0 damp=100,100,100 force_preload=0.0,0.0,0.0 tstiffness=1.0E+003,1.0E+003,1.0E+003 tdamping=1.0E+002,1.0E+002,1.0E+002 torque_preload=0.0,0.0,0.0
Markers for Right Hand:
marker create marker=.World.Joe_Right_Hand.b2 loc=-7.5,26,19.5 ori=0,0,0 rel=.World
marker create marker=.World.Frame.b2 loc=-7.5,26,19.5 ori=0,0,0 rel=.World
Bushing Forces for Right Hand:
force cre ele bush bush=.World.Bush2 i_mark=.World.Joe_Right_Hand.b2 j_mark=.World.Frame.b2 stiff=1000.0,1000.0,1000.0 damp=100,100,100 force_preload=0.0,0.0,0.0 tstiffness=1.0E+003,1.0E+003,1.0E+003 tdamping=1.0E+002,1.0E+002,1.0E+002 torque_preload=0.0,0.0,0.0
Step 20: Create bushing elements between the feet and the pedals
Create a bushing using .World.Joe_Left_Foot and .World.Lpedal at (5.7, 0, 7) Modify values to figure 14.
Create a second bushing using .World.Joe_Right_Foot and .World.Rpedal at (-5.7, 0, -7) Modify values to figure 14.
OR
Use the following ADAMS/View commands to create the bushing forces between the feet and the pedals:
Markers for Left Foot:
marker create marker=.World.Joe_Left_Foot.b3 loc=5.7,0,7 ori=0,0,0 rel=.World
marker create marker=.World.Lpedal.b3 loc=5.7,0,7 ori=0,0,0 rel=.World
Bushing Forces for Left Foot:
force cre ele bush bush=.World.Bush3 i_mark=.World.Joe_Left_Foot.b3 j_mark=.World.Lpedal.b3 stiff=1000.0,1000.0,1000.0 damp=100,100,100 force_preload=0.0,0.0,0.0 tstiffness=1.0E+001,1.0E+001,1.0E+001 tdamping=1.0E+001,1.0E+001,1.0E+001 torque_preload=0.0,0.0,0.0
Markers for Right Foot:
marker create marker=.World.Joe_Right_Foot.b4 loc=-5.7,0,-7 ori=0,0,0 rel=.World
marker create marker=.World.Rpedal.b4 loc=-5.7,0,-7 ori=0,0,0 rel=.World
Bushing Forces for Right Foot:
force cre ele bush bush=.World.Bush4 i_mark=.World.Joe_Right_Foot.b4 j_mark=.World.Rpedal.b4 stiff=1000.0,1000.0,1000.0 damp=100,100,100 force_preload=0.0,0.0,0.0 tstiffness=1.0E+001,1.0E+001,1.0E+001 tdamping=1.0E+001,1.0E+001,1.0E+001 torque_preload=0.0,0.0,0.0
Step 21: Create bushing elements between the pelvis and the seat
Create a bushing using .World.Joe_Lower_Torso and .World.Frame at (0, 25, -9) Modify to figure 15.
OR
Use the following ADAMS/View commands to create the bushing forces between the pelvis and the seat:
Markers:
marker create marker=.World.Joe_Lower_Torso.b5 loc=0,25,-9 ori=0,0,0 rel=.World
marker create marker=.World.Frame.b5 loc=0,25,-9 ori=0,0,0 rel=.World
Bushing Forces:
force cre ele bush bush=.World.Bush5 i_mark=.World.Joe_Lower_Torso.b5 j_mark=.World.Frame.b5 stiff=1000.0,1000.0,1000.0 damp=100,100,100 force_preload=0.0,0.0,0.0 tstiffness=1.0E+003,1.0E+003,1.0E+003 tdamping=1.0E+002,1.0E+002,1.0E+002 torque_preload=0.0,0.0,0.0
Running the Inverse Dynamics Simulation
The bicycle model is equipped with a motion driver at the crank arm, which results in the bicycle pedaling itself. With the feet attached to the bicycle, the legs will be driven through the pedal cycle. During this phase, the muscle contraction histories will be recorded and used in the contractile elements in the subsequent forward-dynamics simulation.
Step 22: Bring up analyze panel
Select ANALYZE from the main-menu, select DYNAMICS from the sub-menu.
Step 23: Run the simulation
Run the simulation for 5 seconds and 500 time steps using the default integrator settings. (The graphics can be turned off, making the simulation faster, by unchecking "Update graphics display")
Step 24: Display animation
When the simulation is complete, use the ADAMS/View toolbox to animate the simulation.
Step 25: Display animation with skin/skeletal model
In the LifeMOD Display Toolbox, select Skin for the External graphical representation and Skeleton for the internal to display a skeletal model with transparent skin.
Running the Forward Dynamics Simulation
With the muscle contraction history recorded from the inverse-dynamics simulation, it is now used in linear PID-Servo formulation to produce a force to recreate the motion history. The process entails deactivating the motion agents, in this case the motion of the crank, and updating the muscles. For information on selecting specific model parameters for this section see Choosing Model Parameters.
The motion drive will be removed from crank and the bicycle will be pedaled by the human model.

Step 26: Bring up soft tissues training panel
Select SOFT TISSUES on the main-menu and TRAINING on the sub-menu.
Step 27: Install ACTIVE contractile element
Select "Install Trained Closed-loop Contractile Elements on Muscles" to bring up the panel in Figure 16.
Step 28: Set fields and update joints
Specify 1e8 as the proportional gain, 1e5 as the integral gain, and 1e6 as the derivative gain. These values control how well the PID-servo actuators will track the desired contraction at each time step in the analysis. Note that the individual muscle will not produce a force greater than the physiological cross section area (pCSA) times the maximum tissue stress. Select APPLY to update the muscles.
Step 29: Deactivate crank motion on the bicycle
Right-click on crank, highlighting Motion: MOTION_1, and select (DE)ACTIVATE. Uncheck the “Object Active” and the “Object’s Dependents Active” Select OK.
OR
Use the ADAMS/View command to deactivate the crank motion driver:
entity attr entity_name=.World.MOTION_1 active=off dependents_active=off
Step 30: Bring up analyze panel
Select ANALYZE from the main-menu and DYNAMICS from the sub-menu.
Step 31: Run BASELINE simulation
Set the gravity vector at -386 in the negative Y direction. Run the simulation for 5.0 seconds and 500 time steps using the default integrator settings.
Step 32: Save the baseline analysis
Select SAVE ANALYSIS and enter the name "Baseline". Select OK.
Step 33: Bring up the results panel.
Select RESULTS on the main-menu and DATA DISPLAY on the sub-menu.
Step 34: Display muscle strip charts
Select Joe_VasMed_Rtiss_1 as the Soft Tissue, Tension as the Characteristic and select CREATE STRIP CHART MEASURE. Select Joe_GlutMax1_Rtiss_1 as the Soft Tissue, Tension as the Characteristic and select CREATE STRIP CHART MEASURE.
Step 35: Turn muscle graphics scaling on
Select ANIMATION in the sub-menu. Turn on the global scaling of the muscle graphics by selecting Scale Joint/Tissue Graphics, Tissues, and Scale Globally. Select the light bulb, to turn on the muscle scaling.
Step 36: Display animation
Use the ADAMS/View toolset to animate the simulation results.
Step 37: Save the muscle strip chart curves
On each strip chart, right click on the curve and select "SAVE".
Step 38: Set the bump height to 3 inches
Modify one of the parameters in the bicycle model to set the bump height to 3 inches going to Edit-Modify in the task bar. In the field right of "Filter" enter *DV_Bump_Height* and hit enter. Double-click on .World and select DV_Bump_Height and enter 3 as the standard value. Select OK. See figure 19.
OR
Modify the height using the following ADAMS/View command:
variable modify variable_name=.World.DV_Bump_Height real=3
Step 39: Bring up analyze panel
Select ANALYZE from the main-menu and DYNAMICS from the sub-menu.
Step 40: Run Bump_3 simulation
Set the gravity vector at -386 in the negative Y direction. Run the simulation for 5.0 seconds and 500 time steps using the default integrator settings.
Step 41: Save the bump_3 analysis
Select SAVE ANALYSIS and enter the name Bump_3. Select OK.
Step 42: Bring up the results panel.
Select RESULTS on the main-menu and ANIMATION on the sub-menu.
Step 43: Turn muscle graphics scaling on
Turn on the global scaling of the muscle graphics by selecting Tissues, Global and the light bulb under Animation Scaling Graphics in the Results panel.
Step 44: Display animation
Using the ADAMS/View toolset to animate the simulation results.
Step 45: Save the muscle strip chart curves
On each strip chart, right click on the curve and select "save".
Step 46: Bring up analyze panel
Select ANALYZE from the main-menu and DYNAMICS from the sub-menu.
Step 47: Set the bump height to 6 inches
Modify the bump height to 6 inches by repeating Step 38 and entering 6 as the the standard value.
OR
Set the bump height to 6 inches using the following ADAMS/View command:
variable modify variable_name=.World.DV_Bump_Height real=6
Step 48: Run Bump_6 simulation
Set the gravity vector at -386 in the negative Y direction. Run the simulation for 5.0 seconds and 500 time steps using the default integrator settings.
Step 49: Save the bump_6 analysis
Select SAVE ANALYSIS and enter the name Bump_6. Select OK.
Step 50: Bring up the results panel.
Select RESULTS on the main-menu and ANIMATION on the sub-menu.
Step 51: Turn muscle graphics scaling on
Turn on the global scaling of the muscle graphics by selecting Tissues, Global and the light bulb under Animation Scaling Graphics in the Results panel.
Step 52: Display animation
Using the ADAMS/View toolset to animate the simulation results.
Interrogating the Results
When the series of simulations are complete the results may be compared to examine the effect of the system disturbance on the muscle patterns. In Figure 18 the muscle forces for the Vastus Lateralis, Semitendonosis, and Adductor Magnus is plotted for the left leg. The effects of the disturbance are apparent as the model attempts to maintain the same speed through the bump. The effect is seen in both muscle groups but most noticeably in the quadriceps force as would be expected since the disturbance occurs on the left leg down stroke.
Figure 21 displays the quadriceps, hamstrings and gasctroc muscle forces for the Baseline simulation. What can be observed is the timings of the various groups to produce the pedaling action.
Figure 23 displays the same muscle forces with the 6 inch bump. The disturbance is apparent in the muscle signals.
Various data may be presented from the forward-dynamics simulation including:
- Major knee flexor/extensor muscle tensions
- Pedal forces
- Head accelerations
Step 53: Bring up results panel
Select RESULTS from the main-menu and DATA DISPLAY from the sub-menu. Select "Results Window" to bring up the results processor.
Step 54: Plot the left vastus lateralis force - Baseline Simulation
Select "Joe_VasLat_Ltiss_1" as the soft tissue, "Tension" characteristic, and .World.Baseline analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. Select CREATE FULL PLOT.
Step 55: Plot the left semitendonosis force - Baseline Simulation
Select "Joe_SemTen_Ltiss_1" as the soft tissue, "Tension" characteristic, and .World.Baseline analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. CREATE FULL PLOT.
Step 56: Plot the left adductor magnus force - Baseline Simulation
Select "Joe_AddMag_Ltiss_1" as the soft tissue, "Tension" characteristic, and .World.Baseline analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. CREATE FULL PLOT.
Step 57: Animate right view
Select ANIMATION from the sub-menu to bring up the animation panel. Select Scale Joint/Tissue Graphics, Tissues, Scale Globally and the light bulb to scale the tissues during animation. Select right view and Play the animation.
Step 58: Animate front view
Select front view and select PLAY.
Step 59: Plot the left vastus lateralis force - Bump_3 Simulation
Select DATA DISPLAY in the sub-menu. Select "Joe_VasLat_Ltiss_1" as the soft tissue, "Tension" characteristic, and .World.Bump_3 analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. Select CREATE FULL PLOT.
Step 60: Plot the left semitendonosis force - Bump_3 Simulation
Select "Joe_SemTen_Ltiss_1" as the soft tissue, "Tension" characteristic, and .World.Bump_3 analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. Check new plot and select CREATE FULL PLOT.
Step 61: Plot the left adductor magnus force - Bump_3 Simulation
Select "Joe_AddMag_Ltiss_1" as the soft tissue, "Tension" characteristic, and .World.Bump_3 analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. Select CREATE FULL PLOT.
Step 62: Animate right view
Select ANIMATION from the sub-menu. Select right view and select PLAY.
Step 63: Plot the left vastus lateralis force - Bump_6 Simulation
Select DATA DISPLAY from the sub-menu. Select "Joe_VasLat_Ltiss_1" as the soft tissue, "Tension" characteristic, and .World.Bump_6 analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. Select CREATE FULL PLOT.
Step 64: Plot the left semitendonosis force - Bump_6 Simulation
Select "Joe_SemTen_Ltiss_1" as the soft tissue, "Tension" characteristic, and .World.Bujp_6 analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. Check new plot and select CREATE FULL PLOTt.
Step 65: Plot the left adductor magnus force - Bump_6 Simulation
Select "Joe_AddMag_Ltiss_1" as the soft tissue, "Tension" characteristic, and .World.Bujp_6 analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. Select CREATE FULL PLOT.
Step 66: Animate right view
Select ANIMATION from the sub-menu. Select right view and select PLAY.
Step 67: Bring up joints results panel
Select DATA DISPLAY from the sub-menu. Select JOINTS on the sub-menu.
Step 68: Plot neck forces - Baseline Analysis
Select "Joe_Lower_Neck" as the joint, "Torque" characteristic, Sagittal component and .World.Baseline analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. Select CREATE FULL PLOT.
Step 69: Plot neck forces - Bump_3 Analysis
Select "Joe_Lower_Neck" as the joint, "Torque" characteristic, Sagittal component and .World.Bump_3 analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. Select CREATE FULL PLOT.
Step 70: Plot neck forces - Bump_6 Analysis
Select "Joe_Lower_Neck" as the joint, "Torque" characteristic, Sagittal component and .World.Bump_6 analysis. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 1. Select CREATE FULL PLOT.
Step 71: Animate right view
Select right view and select PLAY.
Step 72: Close plot window
Select MODEL WINDOW to return to the model.
Step 73: DEMO COMPLETE
Further
This model could be used to explore may issues including training methods, bicycle suspension design, riding postures, etc.
This model may be refined in many areas including:
- Creating detailed knee joints to examine the soft tissue strain on the knee during certain riding postures and loads. (see Detailed Knee Joint Application).
- Parametric studies of vehicle parameters including: various terrains, speeds, suspension settings, bicycle dimensions, etc.
- Comparing muscle force requirements for various riding styles including standing vs. sitting, etc.
|