Clinical Application - Walking
This demonstration problem will illustrate the generation of a forward dynamics gait model using motion data recorded from a digitized motion capture source. The motion capture (MOCAP) data is assigned to the model using a Motion Agent set and the inverse dynamics simulation is performed. The motion agents are removed, and the recorded joint angle histories are used to drive the torque functions in the joints for the forward dynamics simulation.
Features of this model include:
- Reducing the base model to the lower limbs
- Increasing the biofidelity of the foot segment
- Creating foot/floor contact forces
- Assigning MOCAP data through motion agent sets.
- Running inverse-dynamics simulations
- Running forward-dynamics simulations
Sections
Generating the Body Segments
In this phase, the human body model is developed from the model library file. The model library SLF file contains body measurement parameters, joint data and motion capture data.
Step 1: Bring up the import panel
Select XCHANGE on the main-menu and IMPORT SLF MODEL FILE on the sub-menu.
Step 2: Import the body model from the model library
Select Model Library and Full Body Gait as the Model Library SLF File. Check only the Body in build section and select Apply to create the 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 3: Bring up joint create panel
Select JOINTS on the main-menu and CREATE BASE SET on the sub-menu.
Step 4: Create the passive spring-damper joints
Specify the nominal joint stiffness to be 1e6 and the damping to be 1e4. Select the "Select All" button and select EXECUTE.
Generating the Motion Agents
The model, as it exists, is 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 5: Bring up MOCAP data import panel
Select MOTION on the main-menu and IMPORT MOTION CAPTURE DATA on the sub-menu. Specify the SLF Text File.
Step 6: Read in the motion capture data
Select Motion Library and Full Body: Gait for the Motion Library SLF File. In this example select Use PARTIAL Data SET with a Simulation Start Time of 1.5 and an End Time of 999.9.
Step 7: Bring up the motion agent create panel
Select MOTION on the main-menu and CREATE BASE SET on the sub-menu.
Step 8: Specify the data locations and create the motion agents
Select "Plug-in-Gait Marker Set". If data does not exist for a particular marker, the option tab will be rendered inactive. Adjust the weights on Rank, Rhee, Rtoe, Lank, Lheel, and Ltoe to 10 to increase the contribution of the motion agents to these sites. This will scale the stiffness of the foot motion agents, since, in this case, the data for the feet is more reliable. The reference marker is "World.ground.Britney_GLOBAL.
Running the Equilibrium Analysis
In order to fit the model to the data positions, an equilibrium analysis must be performed. This is a dynamics analysis 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 9: Bring up analyze panel
Select ANALYZE on the main-menu and DYNAMICS on the sub-menu.
Step 10: Run the equilibrium simulation
Check "Freeze Motion Agents for Equilibrium Analysis" and run the simulation for 1 seconds and 100 time steps. Set the integrator settings to "Robust"
Step 11: Update the model configuration with static results
Select "Update Posture with Equilibrium Results" button to adjust the starting posture of the model to the equilibrium position.
Step 12: Align the body markers with data
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 13: 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 14: Bring up the contact panel
Select CONTACTS on the main-menu and CREATE BASE SET on the sub-menu.
Step 15: Create the contact forces between the feet and the floor
Select "Ellipsoid-Plane" to get access to "Create Contact Surface Plane " that needs to be checked, 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.
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 16: Bring up analyze panel
Select ANALYZE from the main-menu and DYNAMICS from the sub-menu.
Step 17: Run the simulation
Set the gravity to -9806 in the Y-direction and run the simulation for 2 seconds and 200 time steps using the default integrator settings.
Step 18: 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 19: Bring up the joint training panel
Select JOINTS from the main-menu and TRAINING from the sub-menu.
Step 20: Install forward dynamics data
Select Select "Forward Dynamics Update Joint Formulation" button. Set the servo proportional gain to 1e5, derivative gain to 1e3. Select "Select ALL" button and EXECUTE to update the joints.
Step 21: Bring up the motion agent tracker panel
Select MOTION on the main-menu and CREATE TRACKER AGENT on the sub-menu.
Step 22: 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 23: Bring up analyze panel
Select ANALYZE from the main-menu and DYNAMICS from the sub-menu.
Step 24: Disable the motion agents and run the simulation
Set the gravity to -9806 in the Y-direction and run the simulation for 2 seconds and 200 time steps using the robust integrator settings. Be sure to disable the motion agents.
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
Step 25: Display simulation
Use the ADAMS/View toolbox to animate the model.
Step 26: Display simulation with skin/skel model
Set the External display to Skin and the Internal display to Skeleton using the BodySIM Display Toolbox and use the ADAMS/View toolbox to animate the model
Step 27: 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 28: Plot the left hip joint torques
Select "Britney_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 Create Full Plot to create the curve.
Step 29: Plot the left knee joint torques
Select "Britney_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 Create Full Plot to create the curve.
Step 30: Plot the left ankle joint torques
Select "Britney_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 Create Full Plot to create the curve.
Step 31: Animate iso view
Select ANIMATION in the sub-menu. Select Divide Window, select iso view and select PLAY.
Step 32: Select scale joint torques globally
Turn on the global scaling of the joint graphics by selecting Scale Joint/Tissue Graphics, Joints, Scale Globally and the light bulb to scale the muscle graphics. Turn on the joint graphics using the BodySIM Display Toolbox and select Joints-Graphics and on.
Step 33: Animate the stick model
In the BodySIM Display Toolbox select none as the external representation and stick as the internal representation. Select front view and select PLAY. Observe the scaling joint torque bubbles.
Step 34: Animate right view
Select right view and select PLAY.
Step 35: Turn off joint graphics
Turn on the joint graphics using the BodySIM Display Toolbox and select Joints-Graphics and off. Turn on the skeleton by selecting none as the external representation and skeleton as the internal representation in the BodySIM Display Toolbox.
Step 36: Bring up the plotting panel
Select DATA DISPLAY in the sub-menu and Contacts as the Data Type.
Step 37: Plot the ground reaction force for right foot
Select "Britney_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 Create Full Plot to create the curve.
Step 38: Plot the ground reaction force for left foot
Select "Britney_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 Create Full Plot to create the curve.
Step 39: Animate iso view
Select Divide Window, iso view and select PLAY.
Step 40: Animate front view
Select front view and select PLAY.
Step 41: Animate right view
Select right view and select PLAY.
Step 42: DEMO COMPLETE
Further
This model was put forth to demonstrate the capability of a forward dynamics gait model to assess the internal reactions and external ground reactions of locomotion.
- This model may be refined in many areas including:
- Creating the full body
- Adding a balance control controller.
- Refine the foot further to verify ground reaction results to force plane measurements
- Add point-to-point muscle forces instead of torques
- Add force-based knee joints to the model.
Acknowledgement
A special thanks for furnishing the data for this model to:
Mike Kocourek
Business Development Manager, Life Sciences Division
Vicon Motion Systems, Inc.
www.vicon.com |