Clinical Application - Gait Analysis
The motion capture was performed for two individuals to compare various aspects of their functional gait parameters. Two models were built in LifeMOD/BodySIM™ and the simulations were performed with the models walking side-by side for a visual comparison, as well as examining gait kinematics, kinetics and ground reaction forces.
Features of this model include:
- Inverse-dynamics simulation
- Forward-dynamics simulation
- Model driven with motion-capture data
- Two human simulation models
- Direct model comparison
Steps
Generating the Body Segments
In this phase, the human segments of models are created for both bodies. The first body, "Connor" is created from properties in the model library. The second body, "Casey" is created from properties in model library.
Step 1: Bring up the import panel
Select XCHANGE from the main-menu and IMPORT SLF MODEL FILE from the sub-menu. Select Lower Body Gait Case 2 as the Model Library SLF File.
Step 2: Import the Connor body from the model library
Make sure Body is checked and select Apply to create the Connor body
Step 3: Import the Casey body from the model library
Select Lower Body Gait Case 1 as the Model Library SLF File.
Make sure Body is checked and select Apply to create the Connor body
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. The torque functions are simple, lightly damped springs to stabilized the model during the inverse-dynamics simulation. For information on selecting specific model parameters for this section see Choosing Model Parameters.
Step 4: Bring up joint create panel
Select JOINTS on the main-menu and CREATE BASE SET on the sub-menu.
Step 5: Create the passive spring-damper joints on Casey
Specify the nominal joint stiffness to be 100000 and the damping to be 10000. Select the "Select All" button and select MODIFY.
Step 6: Set active the Connor model
Specify the active model (at the top of the panel) to be "Connor".
Step 7: Create the passive spring-damper joints on Connor
Specify the nominal joint stiffness to be 100000 and the damping to be 10000. Select the "Select All" button and select MODIFY.
Generating the Motion Agents
The models, as they exist, are passive and must be driven with an external force. To drive the model to capture the simple joint angle histories for each joint, Motion Agents will be added to the model. The motion agents have the effect of guiding the model to track the segment motion contained in the motion input file.
The steps include importing the motion data file, creating the motion agents, fitting the model to the data, and synchronizing the motion agents. The synchronization process reduces the slight differences between the model and the data.
For this example only a subset of the captured data is used. The discarded data represents known inaccuracies such as occlusions, etc.
Step 8: Bring up MOCAP data import panel
Select MOTION on the main-menu and MOCAP DATA IMPORT on the sub-menu. Specify Motion Library.
Step 9: Read in the motion capture data for the Connor model
Select "Lower Body: Gait Case 2) as the motion library file. Specify the Data Prefix as Gait_Connor and Use FULL Data Set.
Step 10: Bring up the motion agent create panel
Select MOTION on the main-menu and CREATE BASE SET on the sub-menu.
Step 11: Specify the the weights on the motion agents and create
Select "Helen Hayes Lower Body Protocol". If data does not exist for a particular marker, the option tab will be rendered inactive. Adjust the weights as in Figure 4 to increase the contribution of the motion agents of these markers where data is considered to be more reliable and artifact-free.
Step 12: Set active the Casey model
Specify the active model (at the top of the panel) to be "Casey".
Step 13: Bring up MOCAP data import panel
Select MOTION on the main-menu and MOCAP DATA IMPORT on the sub-menu. Specify the SLF Text File.
Step 14: Read in the motion capture data for the Casey model
Select "Lower Body: Gait Case 1 as the motion library file. Specify the Data Prefix as Gait_Casey and Use FULL Data Set.
Step 15: Bring up the motion agent create panel
Select MOTION on the main-menu and CREATE BASE SET on the sub-menu.
Step 16: Specify the the weights on the motion agents and create
Select "Helen Hayes Lower Body Protocol". If data does not exist for a particular marker, the option tab will be rendered inactive. Adjust the weights as in Figure 4 to increase the contribution of the motion agents of these markers where data is considered to be more reliable and artifact-free.
Running the Equilibrium Analysis
In order to fit the model to the data positions, an equilibrium analysis must be performed. This is a dynamics analytics which holds the positions of the data-driven motion agents (yellow balls) fixed, while finding the minimum energy configuration in the springs of the motion agents. The motion agents with the higher weights will have more influence on the model and the initial configuration.
Step 17: Set active both models
Specify the active model (at the top of the panel) to be "all".
Step 18:Bring up analyze panel
Select ANALYZE on the main-menu and DYNAMICS on the sub-menu.
Step 19: Run the equilibrium simulation
Check "Freeze Motion Agents for Equilibrium Analysis" and run the simulation for 4 seconds and 100 time steps using the "Robust" integrator settings.
Step 20: Set active Casey model
Specify the active model (at the top of the panel) to be "Casey".
Step 21: Update the model configuration with equilibrium results
Select "Update Posture with Equilibrium Results" button to adjust the starting posture of the model to the equilibrium position.
Step 22: Set active Connor model
Specify the active model (at the top of the panel) to be "Connor".
Step 23: Update the model configuration with equilibrium results
Select "Update Posture with Equilibrium Results" button to adjust the starting posture of the model to the equilibrium position.
Step 24: Synchronize marker locations
Select "Synchronize Body Marker Locations with Data Locations" button to move the body marker locations to the locations of the data.
Step 25: Set active Casey model
Specify the active model (at the top of the panel) to be "Casey".
Step 26: Synchronize marker locations
Select "Synchronize Body Marker Locations with Data Locations" button to move the body marker locations to the locations of the data.
Creating the Foot-Floor Contacts
The contact ellipsoids automatically created at the time of segment generation, will now be used to create the foot-floor contact elements. For information on selecting specific model parameters for this section see Choosing Model Parameters.
Step 27: Create the ground contact marker
Create a marker to designate the location and orientation of the ground (z-axis pointing normal to surface) using the following ADAMS/View commands.
marker cre marker=.World.ground.flr loc= 0,0,0 ori= 0.0, -90.0, 0.0 rel= .World
Step 28: Bring up the contact panel
Select CONTACTS on the main-menu and CREATE BASE SET on the sub-menu.
Step 29: Create the contact forces between the feet and the floor
Check "Create Contact Surface Graphics", set depth to 10, X-length to 3000 and Y-length to 3000. Check force vectors to create scaled force graphics during animation and check simple so as to create only two vectors instead of one per contact element on the feet. See figure 6 for contact parameters.
Step 30: Set active Connor model
Specify the active model (at the top of the panel) to be "Connor".
Step 31: Create the contact forces between the feet and the floor
Check "Create Contact Surface Graphics", set depth to 10, X-length to 3000 and Y-length to 3000. Check force vectors to create scaled force graphics during animation and check simple so as to create only two vectors instead of one per contact element on the feet. . See figure 6 for contact parameters.
Running the Inverse Dynamics Simulation
From this simulation, it can be seen that the human model will track the motion data. Discrepancies between the recorded motion history and the performance of the model can be witnessed by observing the Motion Agents during animation. A yellow sphere will track the motion exactly, a red sphere is rigidly attached to the body segment. When a discrepancy between the data and the kinematics restraints in the model occur there will be a separation of these two spheres (the bushing uniting the two parts extends). This flexibility allows the Motion Agents to become "motion influencers" rather that motion governors. This allows for errors in data, measurement and collection.
As a product of the inverse-dynamics simulation the rotations of the joints ("training" elements) are recorded to be used in the following forward-dynamics simulation.
Step 32: Set active both models
Specify the active model (at the top of the panel) to be "All".
Step 33: Bring up analyze panel
Select ANALYZE from the main-menu and DYNAMICS from the sub-menu.
Step 34: Run the simulation
Set the gravity to -9806 in the Y-direction and run the simulation for 2.5 seconds and 250 time steps using the default integrator settings.
Step 35: Display animation
Display animation using the ADAMS/View toolbox.
Preparing the Model for the Forward Dynamics Simulation
With the joint angle history recorded from the inverse-dynamics simulation, it may now be used in a proportional-derivative controller to produce a torque to recreate the motion history. The process entails removing the Motion Agents and updating the Joints to include the PD controllers or "trained" joints.
Also a tracker agent will be installed. The tracker agent is a motion agent which is driven using data recorded from the inverse-dynamics analysis. The agent will be used to guide the model and account for any dynamic instabilities. For information on selecting specific model parameters for this section see Choosing Model Parameters.
Step 36: Set active Connor model
Specify the active model (at the top of the panel) to be "Connor".
Step 37: Bring up the joints training panel
Select JOINTS from the main-menu and TRAINING Set from the sub-menu.
Step 38: Update joints with ACTIVE elements
Select "Go" on the panel displayed in figure 8.
Step 39: Set the fields and update the joints
Specify the Servo proportional gain at 1e5 and the derivative gain at 1e3. Check the Left Leg and the Right Leg and select "Execute" to update the leg joints with the active elements. A rule of thumb in selecting controller gains is to select a relatively high proportional gain, and a derivative gain at about 10% of the proportional gain. These values may be varied using the Parameters selection from the LifeMOD/BodySIM™ main menu to note the effect on the simulation results.
Step 40: Bring up the motion agent tracker panel
Select MOTION on the main-menu and CREATE TRACKER AGENT on the sub-menu.
Step 41: Create the tracking agent
Set the stiffness parameters as in Figure 9 and specify all freedoms as driven except for the y-DOF which is specified as free. This allows the model to create the proper ground reaction force.
Step 42: Set active Casey model
Specify the active model (at the top of the panel) to be "Casey".
Step 43: Bring up the joints training panel
Select JOINTS from the main-menu and TRAINING from the sub-menu.
Step 44: Update joints with ACTIVE elements
Select "Go" on the panel displayed in figure 8.
Step 45: Set the fields and update the joints
Specify the Servo proportional gain at 1e6 and the derivative gain at 1e5. Check the Left Leg and the Right Leg and select "Execute" to update the leg joints with the active elements
Step 46: Bring up the motion agent tracker panel
Select MOTION on the main-menu and CREATE TRACKER AGENT on the sub-menu.
Step 47: Create the tracking agent
Set the stiffness parameters as in Figure 9 and specify all freedoms as driven except for the y-DOF which is specified as free. This allows the model to create the proper ground reaction force.
Running the Forward Dynamics Simulation
With the joint formulated to include PD-servo controllers based on motion recorded from the inverse-dynamics analysis and the foot-floor contact forces installed, the model is now ready a forward dynamics simulation.
Step 48: Set active both models
Specify the active model (at the top of the panel) to be "all".
Step 49: Bring up analyze panel
Select ANALYZE from the main-menu and DYNAMICS from the sub-menu.
Step 50: Run the simulation
Set the gravity to -9806 in the Y-direction and run the simulation for 2.5 seconds and 250 time steps using the robust integrator settings.
Interrogating the Results
When the simulation is complete the model may be animated. To gain insight to the dynamics of gait and the joint reactions necessary for locomotion.
- Hip, knee and ankle torques
- Ground reaction force
Figures 11, 11a & 12 Hip, knee and ankle torques for both models
Step 51: Display simulation
Use the ADAMS/View toolbox to animate the model.
Step 52: Display simulation with skin/skel model
Set the external display to skin and the internal to skeleton using the BodySIM Display Toolbox. Use the ADAMS/View toolbox to animate the model
Step 53: Bring up results panel
Select RESULTS on the main-menu and DATA DISPLAY on the sub-menu. Select Joints as the Data Type. Select "Results Window" button to bring up the results processor.
Step 54: Plot the Connor left hip joint torques
Select "Connor_Left_Hip", torque characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 55: Plot the Casey left hip joint torques
Select "Casey_Left_Hip", torque characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 56: Animate right view
Select Divide Window. Select right view and select PLAY.
Step 57: Fix camera and animate right view
Check "Camera Track" box and enter ".World.Connor_Lower_Torso.cm " as the marker to be tracked. Select Zoom and enter 0.0, 574.0, -1150.0 as the center coordinates and 2.6 as the scale. Select right view and select PLAY.
Step 58: Plot the Connor left knee joint torques
Select DATA DISPLAY in the sub-menu. Select "Connor_Left_knee", torque characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 59: Plot the Casey left knee joint torques
Select "Casey_Left_knee", torque characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 60: Animate top view
Select ANIMATION in the sub-menu. Select Divide Window. Select top view and select PLAY.
Step 61: Plot the Connor left ankle joint torques
Select DATA DISPLAY in the sub-menu. Select "Connor_Left_ankle", torque characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 62: Plot the Casey left ankle joint torques
Select "Casey_Left_ankle", torque characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 63: Animate ISO view
Select ANIMATION in the sub-menu. Select iso view and select PLAY.
Step 64: Plot the ground reaction force for Connor right foot
Select DATA DISPLAY in the sub-menu. Select "Connor_GRX_Rfoot_1", magnitude component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Check New Plot and select PLOT CURVE.
Step 65: Plot the ground reaction force for Connor left foot
Select "Connor_GRX_Lfoot_1", magnitude component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 66: Plot the ground reaction force for Casey right foot
Select "Casey_GRX_Rfoot_1", magnitude component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 67: Plot the ground reaction force for Casey left foot
Select "Casey_GRX_Lfoot_1", magnitude component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 68: Animate right view
Select ANIMATION in the sub-menu. Select right view and select PLAY.
Step 69: Plot the Connor right hip flexion angle
Select DATA DISPLAY in the sub-menu. Select "Connor_Right_Hip", Angle characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Check New Plot and select PLOT CURVE.
Step 70: Plot the Casey right hip flexion angle
Select "Casey_Right_Hip", Angle characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 71: Plot the Connor right knee flexion angle
Select "Connor_Right_Knee", Angle characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 72: Plot the Casey right knee flexion angle
Select "Casey_Right_Knee", Angle characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 73: Plot the Casey Connor right ankle flexion angle
Select "Connor_Right_Ankle", Angle characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 74: Plot the right ankle flexion angle
Select "Casey_Right_Ankle", Angle characteristic and sagittal component. Select a low pass butterworth data filter with a cuttoff frequency of 5.0 and an order of 5. Select PLOT CURVE.
Step 75: Fix camera and animate right view
Select ANIMATION in the sub-menu. Check "Camera Track" box and enter ".World.Connor_Lower_Torso" as the part to be tracked. Select right view and select PLAY.
Step 76: DEMO COMPLETE
Further
This model was put forth to demonstrate the creation of a active human model driven using data from a motion capture system. Obviously the model can be further refined and improved, from the point developed in this example. The intention with this example was to touch of the various modeling functions of both the LifeMOD/BodySIM™ Biomechanics Modeler and ADAMS/View necessary to create a model of this nature for this application.
This model may be refined in many areas including:
- Creating a force-based knee joint to examine local loadings on ligaments and (see Force-Based Knee Joint tutorial ).
- Create muscles to drive motion.
- Create a detailed foot model to understand the balancing activity of the foot.
Acknowledgement
A special thanks for furnishing the data for this model to:
Diego Crovato
eMotion S.r.l
Italy www.emotion3d.com/contact.html |