Tutorials
Golfing
Bike
Dancing
Bungee Jump
Muscle Relocation
Antagonistic Muscles
Hip Replacement
Detailed Knee
Detailed Spine
Rehabilitation Machine
Gait Analysis
Walking
Lifting Styles
Bed Settling
Fighting
Car Crash
Fall
Grasping
NeckSIM:Whiplash
Tennis

Orthopedics Application - Total Hip Replacement

One of the most powerful features of the LifeMOD/BodySIM™ Biomechanics Modeler is the capability to create sophisticated human models which may contain mechanical components such as joint replacements, spinal fixation devices, braces, etc.

A partial human model (lower body) is created in this example and augmented with a total hip replacement at the right hip. The hip replacement consists of the geometry files (shell files) for the hip stem and the acetabular liner. These files are imported into the human model and secured to the bones using bushing force elements.

A walk-sit-walk simulation is performed using motion capture data. The objective of this exercise is to determine if the hip stem impinges on the acetabular liner, and to determine the forces at the bone/component interfaces for this popular everyday activity.

A combination inverse-forward dynamics simulation will be performed with full foot contact.

Key skills exercised in this tutorial include:

  • Partial Body Model
  • Import and attach hip replacement mechanism
  • Ground reaction force calculation
  • Inverse-dynamics, forward-dynamics simulations

Sections


Generating of the Body Segments Joints, and Motion Data

In this phase, the SLF file is used to create the human body model from measurements, joints from joint data, posture from posture data and motion from recorded motion data. The body segments are created using the parameters stored in the SLF file.

This file contains information on the subject name, gender, age, height and weight. LifeMOD/BodySIM™ uses this information to extract body segment measurements and mass properties from the internal anthropometric database.

Passive joints are created for the inverse-dynamics phase of the simulation process. For this model passive joints will be created for the inverse-dynamics simulation. The passive joint consists of a tri-axis hinge joint (3 DOF) which includes angulation stops, stiffness and damping torques. This type of joint is used primarily to stabilize the body during the inverse-dynamics simulation. The parameters are included in the SLF file

Finally, the motion data (MOCAP) for the walk-sit-walk activity is imported into the model and used to drive the motion agents created on the model. There are two components to the motion agent. A yellow sphere designates the location of the data point and the red sphere designates the marker location on the human model. The yellow sphere is attached to the red sphere via a bushing element with properties designated below. During the inverse dynamic simulation, the yellow sphere will move according to the MOCAP data, while influencing the motion of the red sphere attached to the body. It is during this analysis that muscle contraction histories will be recorded. The motion agent stiffness properties are entered in the panel in Figure 1. The motion trajectory data is included in the SLF file.


Figure 1: Exchange panel to import body and joint parameters and motion data


Figure 2: The resulting model and motion data installed.

Step 1: Bring up import panel
Begin the ADAMS/View modeling session and select the LifeMOD/BodySIM™ button at the bottom left portion of the screen. Select Xchange from the main-menu and IMPORT SLF MODEL FILE from the sub-menu. Select Model Library and Lower Body Walk-Sit-Walk as the Model Library SLF File.

Step 2: Import the body, joints, posture and motion
Check Body, Joints and Motion Agents in the BUILD section and select APPLY to build the lower body with joints and motion agents as displayed in figure 2.


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.


Figure 3: Model moved into data cloud (left) After static analysis (center) after synchronization (right).

Step 3: Bring up analyze panel
Select ANALYZE on the main-menu and DYNAMICS on the sub-menu.

Step 4: Run the equilibrium simulation
Specify the end time of the simulation as 1 second with 100 time steps using the default integrator settings. Select ANALYZE.

Step 5: Update the model configuration with static results
Select UPDATE MODEL POSTURE WITH EQUILIBRIUM RESULTS to change the position of the body to match the last frame in the simulation.

Step 6: Align the body markers with data
After the the configuration is updated there will still be a discrepancy between the yellow spheres and the red spheres due to differences between the body geometry and the test subject and differences between the positioning of the markers in the model and the subject. Select SYNCHRONIZE BODY MARKER LOCATIONS WITH DATA LOCATIONS button.


Creating Passive Muscle Forces

The next step in the process is to create soft tissues (muscles) on the model. LifeMOD/BodySIM™ automatically creates a set of basic muscle groups for the body. Muscles consist of training elements or trained elements. The training 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. The trained elements use the contraction data in a PD-Servo linear force actuator to induce the force on the skeleton the replicate the recorded 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/BodySIM™ 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.


Figure 4: Muscle groups created on the model. Note that the color of the muscles is "rust" indicating passive training elements.


Figure 5: Panel set up to create the left leg muscle groups


Figure 6: Panel set up to create the left leg muscle groups.

Step 7: Bring up the create muscle-tendon panel
Select SOFT TISSUES on the main-menu and CREATE BASE SET on the sub-menu.

Step 8: Set the fields for the muscle generation
Select the light bulb to bring up the panel displayed in figure 5. Set the muscle tone multiplier to be 100%, the tissue stress to be 259 lbs/in2 and the muscle resting load to be 0.0 lbs.

Step 9: Cerate the left leg muscles
Select Apply on each of the panels as displayed in figure 6.

Step 10: Create the right leg muscles
Select Apply on each of the panels as displayed in figure 6.


Adding the Hip Replacement Device

With the model in the proper position and posture, the joints of the right hip will be deleted and replaced with the total hip replacement. Geometry files of the hip system are imported as shell files. Geometry may also be imported via IGES, Step, Parasolids or any format currently supported by MSC.Adams.


Figure 7: Installing the cup and stem components


Figure 8: Panel set up to create the acetabular hip stem

Step 11: Display right hip joint
Move the model into position and use the ADAMS/View main menu to set the visibility of the right upper leg to off using the following ADAMS/View command:

disp vis part part=.World.Diego_Right_Upper_Leg vis=off

Step 12: Delete the right hip joint
Select JOINTS on the main-menu and DELETE on the sub-menu. Select Right-Hip to delete.

Step 13: Bring up the single part creation panel
Select SEGMENTS on the main-menu and CREATE SINGLE on the sub-menu.

Step 14: Create the acetabular cup part
Set the segment name to "Cup" with a CM location of -825, 851, 202 and orientation of 358, 46, 5. Select "Specify Mass Properties" with a mass of .18, Ixx=8.0, Iyy=8.0 and Izz=8.0. Select "Import Shell Geometry" and Model Library. Select THR Acetabular Cup as the model library and select Apply to create the part.

Step 15: Create a fixation force between the cup and the hip bone
With the cup part in place, it must now be secured to the pelvis bone using a force. The type of force entity chosen is the basic MSC.Adams bushing force, or a 6 component spring force acting at a common location between the pelvis bone and the cup part. To create the bushing enter the following ADAMS/View commands:

marker cre ma=.World.Diego_Lower_Torso.cup loc=(loc_relative_to({0,0,0},.World.Diego_cup.cm)) ori=(ori_relative_to({0,0,0},.World.Diego_cup.cm))
force create element bushing bushing=.World.cup_pelvis i_mark=.World.Diego_cup.cm j_mark=.World.Diego_Lower_Torso.cup &
damping = 1e8, 1e8, 1e8 &
stiffness = 1e9, 1e9, 1e9 &
force_preload = 0.0, 0.0, 0.0 &
tdamping = 1e8, 1e8, 1e8 &
tstiffness = 1e9, 1e9, 1e9 &
torque_preload = 0.0, 0.0, 0.0

Step 16: Display the femur bone
Display the femur bone and turn the pelvis geometry off by using the following ADAMS/View commands:

disp vis part part=.World.Diego_Right_Upper_Leg vis=no
disp vis part part=.World.Diego_Lower_Torso vis=off

Step 17: Bring up the single part creation panel
Select SEGMENTS in the main-menu and CREATE SINGLE in the sub-menu.

Step 18: Import the geometry and create the hip stem part
Set the segment name to "Stem" with a CM location of -840, 811, 261 and orientation of 191, 82, 341. Select "Specify Mass Properties" with a mass of .18, Ixx=2086.812377293, Iyy=2086.812377293 and Izz=21.1572858697.

Select "Import Shell Geometry" and specify the file "C:/Program Files/ADAMS 12.0/lifemod/Demo_Files/stem.shl". Specify geometry type as "other" and select APPLY.

Step 19: Create a joint between the stem and the femur bone
With the stem part in place, it must now be secured to the pelvis bone using a bushing force. To create the bushing enter the following ADAMS/View commands:

marker cre ma=.World.Diego_Right_Upper_Leg.stem loc=(loc_relative_to({0,0,0},.World.Diego_stem.cm)) ori=(ori_relative_to({0,0,0},.World.Diego_stem.cm))

force create element bushing bushing=.World.stem_femur i_mark=.World.Diego_stem.cm j_mark=.World.Diego_Right_Upper_Leg.stem &
damping = 1e8, 1e8, 1e8 &
stiffness = 1e9, 1e9, 1e9 &
force_preload = 0.0, 0.0, 0.0 &
tdamping = 1e8, 1e8, 1e8 &
tstiffness = 1e9, 1e9, 1e9 &
torque_preload = 0.0, 0.0, 0.0

Step 20: Create a bushing force between the stem ball and the cup
A bushing force is also used to simulate the interaction between the stem ball and the cup. To create the bushing enter the following ADAMS/View commands:

marker create marker= .World.Diego_Cup.Stem location = (loc_relative_to({0,0,-8},.world.Diego_cup.cm)) orientation = 0.0, 0.0, 0.0

marker create marker= .World.Diego_Stem.Cup location = (loc_relative_to({0,0,-8},.world.Diego_cup.cm)) orientation = 0.0, 0.0, 0.0

force create element bushing bushing= .World.stem_cup &
damping = 1e7, 1e7, 1e7 &
stiffness = 1e8, 1e8, 1e8 &
force_preload = 0.0, 0.0, 0.0 &
tdamping = 100,100,100 &
tstiffness = 0,0,0 &
torque_preload = 0.0, 0.0, 0.0 &
i_marker_name = .World.Diego_Cup.Stem &
j_marker_name = .World.Diego_Stem.cup


Creating the Foot Contact Forces

Contact forces must be created at the foot to generate a reaction between the feet floor and the pelvis and the stool. When the model segments were created, contact ellipsoids were scaled and positioned at the metatarsal heads and calcaneous. These ellipsoids will be used for the foot-floor contact.


Figure 9: Foot contact ellipsoids floor and the stool.


Figure 10: Panel set to create the foot contact forces for the floor


Figure 11: Panel set to create the pelvis-stool contact forces

Step 21: Bring up the contact create panel
Select CONTACTS from the main-menu and CREATE BASE SET from the sub-menu.

Step 22: Create the ground contact markers
Create marker to represent the location of the contact surface of the floor. The z-axes are oriented normal to the contact surface. Use the following ADAMS/View command to create the marker:

marker cre mar= .World.ground.CON location = 0,5,0 orientation = 180.0, 90.0, 180.0 relative_to = .World

Step 23: Create the foot/floor contact forces
Specify ellipsoid contact force. Specify the Contact Surface Marker as .World.ground.CON. Check the "Create Contact Surface Graphics" box and set the depth to 10.0 and the surface X length to 3000 and the Y length to 3000. Check the "Force Vectors" box to create scaled force vectors to be displayed with the animation, and select "Simple" to combine the force vectors of the feet to one location. Set the stiffness/damping parameters of the contact force to those in Figure 11.

Check the Right_Foot_Multiple and the Left_Foot_Multiple boxes. Select APPLY to create the contact forces between the feet and the floor.

Step 24: Create the stool (chair)
Create a marker and simple graphics to designate the location of the stool using the following ADAMS/View commands:

marker create marker=.world.ground.CONb location=0,500.7,0 orientation=0,-90,0

geometry cre shape cylinder cylinder_name = .World.ground.stoola &
center_marker = .World.ground.CON angle_extent = 360.0 length = 450 radius = 22.0 side_count_for_body = 20 segment_count_for_ends = 20

geometry cre shape cylinder cylinder_name = .World.ground.stoolb &
center_marker = .World.ground.CONb angle_extent = 360.0 length = -62 radius = 220.0 side_count_for_body = 20 segment_count_for_ends = 20

Step 25: Create pelvis-stool contact forces
Specify the Contact Surface Marker as .World.ground.CONb. Uncheck the "Create Contact Surface Graphics" box. Check the "Force Vectors" box to create scaled force vectors to be displayed with the animation, and select lower_torso. Set the stiffness/damping parameters of the contact force to those in Figure 11.

Step 26: Create the specific data requests
Create the data request to output the stem-cup forces generated during the stair stepping simulation, and the orientation of the stem by tracking the location of a point imbedded in the stem neck with respect to a coordinate system on the cup, using the following ADAMS/View commands:

output_control create request request_name = REQ_Stem_Cup_Force &
f1 = "BUSH(.World.stem_cup, 0, 1, 0)"

marker create marker=.World.Diego_Stem.Ref loc=(loc_relative_to({0,0,50},.World.Diego_Cup.stem))

output_control create request request = REQ_Stem_Cup_Orientation &
output_type = displacement &
i_marker_name = .World.Diego_Stem.Ref &
j_marker_name = .World.Diego_Cup.Stem &
r_marker_name = .World.Diego_Cup.Stem


Running the Inverse-Dynamics Simulation

With the model in the proper position, the hip components implanted in the model, the motion capture data read in, and the motion agents installed, an inverse-dynamics simulation may be performed. This simulation is performed to record the muscle contractile history for the stair-stepping activity. In the forward-dynamics simulation, to be done later, the muscle contraction histories will be used in the contractile elements in the muscles to produce forces to allow the model the replicate the motion.


Figure 12: Successive animation frames from the inverse-dynamics simulation

Step 27: Bring up the analyze panel
Select ANALYZE from the main-menu and DYNAMICS from the sub-menu.

Step 28: Run the dynamics simulation
Check the gravity box and set the y-value to -9806.65. Select "Robust" integrator settings. Set the simulation end time to 3 seconds with 100 times steps. Specify the robust integrator settings and select ANALYZE.

Step 29: Display animation
Use the ADAMS/View toolbox to animate the model.


Preparing the Model for the Forward-Dynamics Simulation

With the muscle contraction history recorded from the inverse-dynamics simulation, it is now used in linear PD-Servo formulation to produce a force to recreate the motion history. The process entails deactivating the Motion Agents and updating the muscles. For information on selecting specific model parameters for this section see Choosing Model Parameters.

The motion agents are removed from the model and a "Tracker Agent" is installed. The tracker agent is a motion agent located at the center of the pelvis which provides force-stabilization for the forward-dynamics simulation. During the inverse-dynamics simulation the location and orientation of the frame of the tracker agent is recorded (it is not generating a force during the inverse-dynamics simulation). The location and orientation information may then be used to drive the tracker agent in the forward-dynamics simulation. Usually various degrees-of freedom are specified as "free" to allow for proper dynamical interaction. For this example the freedom in the direction normal to the floor would be specified as free, to allow for proper ground reaction force generation between the feet and the steps.

In this example the tracker agent accounts for the fact that the upper body is missing from the model. It compensates for the forces of the arms and upper body transmitted through the trunk.


Figure 13: Tracker agent at the pelvis center Note that the color of the muscles is now red indicating active elements.


Figure 14: Panel set to create the tracker agent.

Step 30: Bring up the tissue training panel
Select SOFT TISSUES from the main-menu and TRAINING from the sub-menu.

Step 31: Install ACTIVE contractile element
Select the light bulb to bring up the INSTALL TRAINED LINEAR DRIVER ELEMENTS panel.

Step 32: Set fields and update joints
Specify 1751.2 as the proportional gain and 17.512 as the derivative gain. These values control how well the PD-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.

Step 33: Bring up the motion agent tracker panel
Select MOTION from the main-menu and CREATE TRACKER AGENT from the sub-menu.

Step 34: Create the tracking agent
Specify the stiffness/damping parameters as in Figure 14. Specify all freedoms as driven. Select APPLY.


Running the Forward-Dynamics Simulation

With the contact forces created, the tracker agent place, and the contractile elements in the muscles to include the motion splines from the inverse-dynamics simulation, the forward-dynamics simulation is ready to be performed. For this simulation, the "Robust" integrator settings are necessary due to the model complexity.


Figure 15: Panel set to run the forward-dynamics simulation

Step 35: Bring up the analysis panel
Select ANALYZE on the main-menu and DYNAMICS on the sub-menu.

Step 36: Run the forward dynamics simulation
Run the simulation 3.0 seconds and 100 time steps using the "Robust" integrator settings. Select ANALYZE.


Interrogating the Results

When the simulation is complete the model may be animated and the results reviewed. Various data may be presented from the forward-dynamics simulation including:

  • Ball-cup interaction forces
  • Foot-floor contact forces
  • Stem motion
  • Muscle forces
  • Stem-bone forces
  • Cup-bone forces


Figure 16: Data for the foot-floor contact forces, pelvis-stool forces


Figure 17: Data for the ball - cup contact force


Figure 18: Data for the motion of a point embedded in the neck of the hip stem with respect to a coordinate system on the cup


Figure 19: Data for the iliacus muscle force (hip flexor) for right hip (with implant) and left hip (no implant)


Figure 20: Results panel set up to plot the right foot ground reaction forces.

Step 37: Display animation
Use the ADAMS/View toolbox to animate the model.

Step 38: Display simulation with skin/skel model
Set the display to Skel_Skin and run the animation.

Step 39: Display simulation close up view
Use the ADAMS/View toolbox to zoom in on the hip. In the animation panel set the base part to pelvis and run the animation.

Step 40: Display simulation close up side view
Use the ADAMS/View toolbox to zoom in on the hip. In the animation panel set the base part to pelvis and run the animation.

Step 41: Bring up results panel
Select RESULTS in the main-menu and DATA DISPLAY in the sub-menu. Select Contacts as the Data Type.

Step 42: Plot the right foot ground reaction force
Select Diego_GRX_Rfoot_1 for the contact force and the magnitude component. Select a low pass butterworth data filter with a cutoff frequency of 5.0 and an order of 5. Select Create Full Plot.

Step 43: Plot the left foot ground reaction force
Select Diego_GRX_Lfoot_1 for the contact force and the magnitude component. Select Create Full Plot.

Step 44: Plot the pelvis stool contact forces
Select Diego_Lower_Torso_CON_1 for the contact force and the magnitude component. Select Create Full Plot.

Step 45: Animate side view
Select ANIMATION in the sub-menu. Select ALL OFF for force vectors, then select CONTACT_ALL to turn on only the contact force vectors for the animation. Select front view, divide window. Check zoom and enter the center as -270,496,0 and the scale as 1.7. Select PLAY.

Step 46: Animate side view close up
Select front view, divide window. Check zoom and enter the center as -797,876,0 and the scale as 6.7. Check Fix Camera to Marker and enter the lower_torso.cm as the part to fix the camera. Select PLAY.

Step 47: Plot the stem/cup forces
se the ADAMS/View tools to plot the special request for the stem/hip force (World.Last_Run.REQ_Stem_Cup_Force.u1)

Step 48: Animate front view
Select ALL OFF for force vectors. Use the following ADAMS/View command to turn on the force vectors for the stem/cup force:

mdi graphic_force object=.World.stem_cup type=1

Select front view, divide window. Check zoom and enter the center as -270,496,0 and the scale as 1.7. Select PLAY.

Step 49: Plot the stem orientation with respect to the cup
se the ADAMS/View tools to plot the special request for the stem/hip location (.World.Last_Run.REQ_Stem_Cup_Orientation.x and .World.Last_Run.REQ_Stem_Cup_Orientation.y)

Step 50: Animate side view close up
Use the following ADAMS/View command to turn off the force vectors for the stem/cup orientation:

mdi graphic_force object=.World.stem_cup type=0
Select front view, divide window. Check zoom and enter the center as -797,876,0 and the scale as 6.7. Check camera and enter the lower_torso as the part to fix the camera. Select PLAY.

Step 51: Bring up soft tissue results panel
Select DATA DISPLAY in the sub-menu.

Step 52: Plot the right iliacus tension
Select Soft Tissues as the Data Type. Select Diego_Iliac_Rtiss_1 for the soft tissue and "Tension" for the characteristic. Select a low pass butterworth data filter with a cutoff frequency of 5.0 and an order of 5. Select Create Full Plot.

Step 53: Plot the left iliacus tension
Select Diego_Iliac_Ltiss_1 for the soft tissue and "Tension" for the characteristic. Select Create Full Plot.

Step 54: Turn muscle graphics scaling on and animate side view
Select ANIMATION in the sub-menu. 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. Select right view, divide screen and select PLAY to animate the model with the plot.

Step 55: Animate side view
Select front view, divide window. Check zoom and enter the center as -270,496,0 and the scale as 1.7. Select PLAY.

Step 56: Animate side view close up
Select front view, divide window. Check zoom and enter the center as -797,876,0 and the scale as 6.7. Check camera and enter the lower_torso as the part to fix the camera. Select PLAY.

Step 57: DEMO COMPLETE


Further

This model could be used to explore may involved with the design of total hip replacements including:

  • impingement forces
  • range of motion for various human movement protocols
  • bone-stem forces evaluation
  • bone-cup forces evaluation
  • wear prediction

Acknowledgement

A special thanks for furnishing the data for this model to:

Diego Crovato
eMotion S.r.l\
Italy
www.emotion3d.com/contact.html