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

Ergonomics Application : Grasping

One of the most powerful features of the LifeMOD/BodySIM™ Biomechanics Modeler is the capability to create sophisticated human models which may interface with external mechanical system such as a tennis racket.

For this example a full body human model is scaled to a specific tennis player. A tennis racket is imported from the model library. Connection forces between the hands of the model and the grip of the racket are created.

A forward swing complete with ball impact is simulated using the motion capture data for the human subject. A forward dynamics simulation is performed with the joints driving the activity.

The objective of this exercise is to examine the sequence of joint torques necessary to complete the swing.

Key skills exercised in this tutorial include:

  • Creating a model, joints, posture and motion from the model library
  • Importing a club head and grip from the model library
  • Modeling the flexible golf club
  • Training the joints to produce the necessary torques to drive the human model
  • Creating foot/floor forces
  • Creating hand/club contact forces

Sections


Generating the Body Segments

In this phase the human body models are generated. The body consists of 19 segments and 18 joints with the mass properties of a 95% Chinese male and the joint characteristics of the Hybrid III crash dummy.


Figure 1: Body segment creation panel

 

Step 1: Bring up segments panel and set fields for the body
Begin the ADAMS/View modeling session and select the LifeMOD/BodySIM™ button at the bottom left portion of the screen. Select SEGMENTS from the main-menu and CREATE BASE SET from the sub-menu.

Step 2: Create the body
Enter "World" for the world model name and "Thorin" for the human body name. Units are millimeter-kilogram-newton and the color is set to peach. Hands are set to open and the full body model is specified. The model is created from an anthropometric database named "GeBOD". The body will be constructed for a 77 kg person of 1778 mm in height. Select OK to set parameters and select Create Body Parameter Table to create the segment measurement table and Create Human Model from Parameter Table to create the model.

 


Reducing the Model

The segments of the full body model are reduced to concentrate on the left hand, left_lower_arm, left_upper_arm and the left_scapula. The left_scapula is then fixed to ground.


Figure 2: Reducing the full body model


Figure 3: Body segment delete panel to remove all segments except for the left hand, lower arm, upper arm and scapula.

Step 3: Bring up segment delete panel
Select SEGMENTS in the main-menu and DELETE in the sub-menu.

Step 4: Delete the extra segments
Use the body segment delete panel to remove the segments as displayed in figure 3.

Step 5: Fix the scapula to ground with a fixed joint
Use the ADAMS/View toolbox to create a fixed joint between the scapula and the ground or use the following ADAMS/View commands:

marker create marker=.World.ground.Thorin_Left_Scapula location=120, 400, 0
marker create marker=.World.Thorin_Left_Scapula.ground location=120, 400, 0
constraint create joint fixed &
joint_name=.World.fixScapulaToGround &
i_marker_name=.World.ground.Thorin_Left_Scapula &
j_marker_name=.World.Thorin_Left_Scapula.ground

Step 6: Hide the fixed constraint
Right click on the joint icons and select appearance. Toggle the visibility to off. Do this for the markers as well.

 


Generating the Joints

In this phase, the base human segments created in the first phase are connected together with kinematic joints and passive stiffness/damping. At this point a minimal value for both is created at the joints to stabilize the model during the simulation.


Figure 4: Base joints created on the model including the wrist, elbow and shoulder joints.

 


Figure 5: Panel to create HIII joints on the body model.

Step 7: Bring up joint create panel
Select JOINTS in the main-menu and CREATE BASE SET in the sub-menu. Select HYBRID III CRASH DUMMY STRENGTH CHARACTERISTICS. Enter a scale factor of 1.0 to use the default stiffness of the crash dummy.

Step 8: Bring up the joint build panel
Select Left Arm. Enter 100 for the Nominal Joint Stiffness and 100 for the Nominal Joint Damping.

Step 9: Create joints on the left arm
Select Apply in the left arm joint matrix panel to create the single scapular joint

Step 10: View the dorsal side of the hand
Use the ADAMS/View toolbox to rotate the view and zoom in on the model as in the figure above.


Discretize the Hand Segments

The single base hand segment is now discretized into individual phalanx and metacarpals. In addition to the skeletal geometry, ellipsoidal geometry representing the flesh is created. This geometry is used to estimate the mass properties of the segment.


Figure 6: Hand after being discretized into individual bones.


Figure 7: Single segment (non-base) creation panel used to discretize the hand segment into the individual bones

Step 11: Bring up the create segment panel and set the bone parameters
Select SEGMENTS from the main menu and CREATE SINGLE from the sub-menu. Set the external representation to ellipsoid and the internal representation to skeleton using the BodySIM Display Toolbox.

Step 12: Create the individual bones of the hand
Select SEGMENTS from the main menu and CREATE SINGLE from the sub-menu. Set the external representation to ellipsoid and the internal representation to skeleton using the BodySIM Display Toolbox.

New Segment CM Location CM Orientation Ellip X Ellip Y EllipZ Shell Entity
Phalanx_1DL 171 -185 68 253 83 101 20 35 20 Skel_phalanx1dL
Phalanx_1PL 177 -162 61 161 16 0 20 40 20 Skel_phalanx1PL 
metacarpal_1L 186 -126 44 168 29 0 45 70 30 Skel_metacrpL
Phalanx_2DL 185 -264 29 241 3 112 15 25 15 Skel_phalanx2dL
Phalanx_2ML 188 -242 28 352 0 180 17 35 17 Skel_phalanx2ML 
Phalanx_2PL 192 -208 29 353 1 180 20 50 20 Skel_phalanx2L 
metacarpal_2L 197 -149 26 176 6 0 30 80 30 Skel_mcarpal2L
Phalanx_3DL 187 -275 -6 333 5 24 15 25 15 Skel_phalanx3dL
Phalanx_3ML 191 -251 -4 348 3 180 17 35 17 Skel_phalanx3ML 
Phalanx_3PL 194 -212 0 359 9 180 20 55 20 Skel_phalanx3PL 
metacarpal_3L 197 -151 6 355 3 180 30 85 30 Skel_mcarpal3L
Phalanx_4DL 183 -265 -28 347 10 10 15 25 15 Skel_phalanx4dL
Phalanx_4ML 186 -243 -26 347 4 180 17 35 17 Skel_phalanx4ML 
Phalanx_4PL 190 -206 -21 357 8 180 20 55 20 Skel_phalanx4PL 
metacarpal_4L 194 -148 -10 356 11 180 30 85 30 Skel_mcarpal4L
Phalanx_5DL 184 -232 -50 325 2 34 15 20 15 Skel_phalanx5dL
Phalanx_5ML 185 -213 -48 351 8 180 17 35 17 Skel_phalanx5ML 
Phalanx_5PL 189 -183 -43 354 10 180 20 40 20 Skel_phalanx5PL 
metacarpal_5L 193 -137 -29 354 20 180 30 75 30 Skel_mcarpal5L

Step 13: Modify the hand ellipsoid
Use the following ADAMS/View commands to move and resize the hand base segment ellipsoid:


marker mod marker=.World.Thorin_Left_Hand.gm loc=199,-95,5 ori=180,90,90

geom mod shape ellip ellip=.World.Thorin_Left_Hand.Ellipsoid x_scale=80 y_scale=33z_scale=55

 


Creating the Individual Joints in the Hand

With the single hand segments now discretized into the individual segments, the segments must now be jointed. In this section the individual joints in the hand are created.


Figure 8: The individual joints between the single hand segments


Figure 9: Single joint create panel to create the finger joints.

Step 14: Create the joint markers on the hand
Use the following ADAMS/View commands to create the markers depicting the center of rotation for each joint:

marker create marker= (Marker Name) loc=(Location) ori=(Orientation) rel=.world

Marker Name
Global Location
Global Orientation
Thorin_Phalanx_2ML.Phalanx_2DL 186.7 -255.8 28.9 241.4 3.2 112.7
Thorin_Phalanx_3ML.Phalanx_3DL 188.1 -267.1 -5.8 333 5.1 24.9
Thorin_Phalanx_4ML.Phalanx_4DL 183.8 -257.5 -27.5 347.7 10.4 10.3
Thorin_Phalanx_5ML.Phalanx_5DL 184 -225.7 -50.6 325.6 2.3 34.7
Thorin_Phalanx_1PL.Phalanx_1DL 172.6 -177.3 66.6 253.5 83.1 101.4
Thorin_Phalanx_2PL.Phalanx_2ML 190.2 -229 29 271 3.1 82.5
Thorin_Phalanx_3PL.Phalanx_3ML 194.7 -235.6 -3.9 319.3 16.9 20.6
Thorin_Phalanx_4PL.Phalanx_4ML 189.9 -229.3 -25 316.6 12.5 24.4
Thorin_Phalanx_5PL.Phalanx_5ML 187.7 -202.1 -47.2 325.1 10.4 20.9
Thorin_metacarpal_1L.Phalanx_1PL 182.6 -147.6 57.1 256 83.4 114.3
Thorin_metacarpal_2L.Phalanx_2PL 194.9 -187.1 30.3 199.3 6.8 157.2
Thorin_metacarpal_3L.Phalanx_3PL 194.8 -189.1 4.1 314.1 4.2 41.3
Thorin_metacarpal_4L.Phalanx_4PL 191.9 -184.2 -18.4 344 12.2 11.8
Thorin_metacarpal_5L.Phalanx_5PL 191.1 -165.1 -40.3 347 21.2 7
Thorin_Left_Hand.Metacarpal_1L 191.1 -104.5 32.1 256 83.4 114.3
Thorin_Left_Hand.Metacarpal_2L 199.7 -112.5 22 199.3 6.8 157.2
Thorin_Left_Hand.Metacarpal_3L 200.7 -114.3 8.2 314.1 4.2 41.3
Thorin_Left_Hand.Metacarpal_4L 196.7 -113.7 -3.5 344 12.2 11.8
Thorin_Left_Hand.Metacarpal_5L 196.4 -110.1 -19.1 347 21.2 7

 

Step 15: Bring up the single joint create panel
Select JOINTS from the main menu and CREATE SINGLE from the sub-menu. Set the external representation to ellipsoid and the internal representation to skeleton using the BodySIM Display Toolbox.

Step 16: Create the finger joints
Use the single joint create panel above and the table with the values below to create each joint.

Jnt
Inboard Part
Outbard Part
Reference Axis
K
C
+
-
1 Thorin_Phalanx_1PL Thorin_Phalanx_1DL Thorin_Phalanx_1PL.Phalanx_1DL 1 10 0
2 Thorin_Phalanx_2ML Thorin_Phalanx_2DL Thorin_Phalanx_2ML.Phalanx_2DL 1 10 0
3 Thorin_Phalanx_3ML Thorin_Phalanx_3DL Thorin_Phalanx_3ML.Phalanx_3DL 1 10 0
4 Thorin_Phalanx_4ML Thorin_Phalanx_4DL Thorin_Phalanx_4ML.Phalanx_4DL 1 10 0
5 Thorin_Phalanx_5ML Thorin_Phalanx_5DL Thorin_Phalanx_5ML.Phalanx_5DL 1 10 0
6 Thorin_Metacarpal_1L Thorin_Phalanx_1PL Thorin_Metacarpal_1L.Phalanx_1PL 1 10 0
7 Thorin_Phalanx_2PL Thorin_Phalanx_2ML Thorin_Phalanx_2PL.Phalanx_2ML 1 10 0
8 Thorin_Phalanx_3PL Thorin_Phalanx_3ML Thorin_Phalanx_3PL.Phalanx_3ML 1 10 0
9 Thorin_Phalanx_4PL Thorin_Phalanx_4ML Thorin_Phalanx_4PL.Phalanx_4ML 1 10 0
10 Thorin_Phalanx_5PL Thorin_Phalanx_5ML Thorin_Phalanx_5PL.Phalanx_5ML 1 10 0
11 Thorin_Left_Hand  Thorin_Metacarpal_1L Thorin_Left_Hand.Metacarpal_1L 1 200 0
12 Thorin_Metacarpal_2L Thorin_Phalanx_2PL Thorin_Metacarpal_2L.Phalanx_2PL 1 10 0
13 Thorin_Metacarpal_3L Thorin_Phalanx_3PL Thorin_Metacarpal_3L.Phalanx_3PL 1 10 0
14 Thorin_Metacarpal_4L Thorin_Phalanx_4PL Thorin_Metacarpal_4L.Phalanx_4PL 1 10 0
15 Thorin_Metacarpal_5L Thorin_Phalanx_5PL Thorin_Metacarpal_5L.Phalanx_5PL 1 10 0
16 Thorin_Left_Hand Thorin_Metacarpal_2L Thorin_Left_Hand.Metacarpal_2L 1 200 0 15
17 Thorin_Left_Hand Thorin_Metacarpal_3L Thorin_Left_Hand.Metacarpal_3L 1 200 0 15
18 Thorin_Left_Hand Thorin_Metacarpal_4L Thorin_Left_Hand.Metacarpal_4L 1 200 0 15
19 Thorin_Left_Hand Thorin_Metacarpal_5L Thorin_Left_Hand.Metacarpal_5L 1 200 0 20

 


Manipulating the Posture of the Hand

After the hand has been discretized and jointed, the posture of the hand in manipulated to put the hand in the starting position before the simulations.

 


Figure 10: Hand before the thumb is rotated (left) and after (right) using the panel below.

 


Figure 11: The panel used rotate the thumb by 45 degrees

Step 17: Bring up the configure single joint panel
Select POSTURE on the main-menu and CONFIGURE SINGLE JOINT on the sub-menu.

Step 18: View the dorsal side of the hand
Use the ADAMS/View toolbox to zoom in and position the hand in the model window.

Step 19: Rotate the thumb out by 45 degrees
Select Select Thorin_NSjoint_11 and bring up the slider panel displayed in the figure above.

 


Defining the Extensor Digitorum Musculature

In this step trainable muscles are created for the extensor digitorum musculature. Slide points are used to represent the tendon-sheath interaction.


Figure 12: The extensor digitorum muscle group before slide points are introduced (left) and after (right).

 


Figure 13: The panel used to create individual muscle elements


Figure 14: The panel used to create slide points for the muscles

Step 20: Bring up the single soft tissue panel
Select SOFT TISSUES on the main-menu and CREATE SINGLE on the sub-menu. Select Trainable Muscle Tissue Elements.

Step 21: Create the extensor digitorum
Use the panel above to create the muscles. The table below displays the parts and attachment locations for each muscle. Use 3834 for pCSA, 1.78 for Maximum Stress and a resting load of .44

Name
Attach Part_1
Attach Part_2
Attach Loc 1
Attach Loc 2
NStiss_1 Thorin_Left_Upper_Arm Thorin_Phalanx_2DL 235.5 170.4 6.4 187.2 -261.2 28.0
NStiss_2 Thorin_Left_Upper_Arm Thorin_Phalanx_3DL 235.5 170.4 6.4 190.0 -273.0 -7.0
NStiss_3 Thorin_Left_Upper_Arm Thorin_Phalanx_4DL 235.5 170.4 6.4 187.1 -265.1 -30.0
NStiss_4 Thorin_Left_Upper_Arm Thorin_Phalanx_5DL 235.5 170.4 6.4 185.0 -230.8 -51.7

Step 22: Reduce the muscle graphical scale to 2 and bring up the slide point panel
Select Muscles as the Tissues and set the Scale to 2 on the BodySIM Display Toolbox. Select SOFT TISSUES on the main-menu and EDIT PROPERTIES on the sub-menu. Select the light bulb next to Slide Point Based to bring up the wrapping panel.

Step 23: Route the tendons through the carpal tunnels
Use the panel above to create the slide points on the muscles. The table below displays the parts and attachment locations for each muscle.

Tissue
Slide Pont Anchor
Slide Point Location
Thorin_Out_NStiss_1 .Thorin_Left_Hand 210, -90, 10    
Thorin_Out_NStiss_1 .Thorin_Metacarpal_2L (loc_rel_to({8,0,0}, Phalanx_2PL))    
Thorin_Out_NStiss_1 .Thorin_Phalanx_2PL (loc_rel_to({7,0,0}, Phalanx_2ML))    
Thorin_Out_NStiss_1 .Thorin_Phalanx_2ML (loc_rel_to({6,0,0}, Phalanx_2DL))    
Thorin_Out_NStiss_2 .Thorin_Left_Hand 210, -90, 6    
Thorin_Out_NStiss_2 .Thorin_Metacarpal_3L (loc_rel_to({8,0,0}, Phalanx_3PL))    
Thorin_Out_NStiss_2 .Thorin_Phalanx_3PL (loc_rel_to({7,0,0}, Phalanx_3ML))    
Thorin_Out_NStiss_2 .Thorin_Phalanx_3ML (loc_rel_to({6,0,0}, Phalanx_3DL))    
Thorin_Out_NStiss_3 .Thorin_Left_Hand 210, -90, 2    
Thorin_Out_NStiss_3 .Thorin_Metacarpal_4L (loc_rel_to({8,0,0}, Phalanx_4PL))    
Thorin_Out_NStiss_3 .Thorin_Phalanx_4PL (loc_rel_to({7,0,0}, Phalanx_4ML))    
Thorin_Out_NStiss_3 .Thorin_Phalanx_4ML (loc_rel_to({6,0,0}, Phalanx_4DL))    
Thorin_Out_NStiss_4 .Thorin_Left_Hand 210, -90, -2    
Thorin_Out_NStiss_4 .Thorin_Metacarpal_5L (loc_rel_to({8,0,0}, Phalanx_5PL))    
Thorin_Out_NStiss_4 .Thorin_Phalanx_5PL (loc_rel_to({7,0,0}, Phalanx_5ML))    
Thorin_Out_NStiss_4 .Thorin_Phalanx_5ML (loc_rel_to({6,0,0}, Phalanx_5DL))    

 


Defining the Extensor Pollicis Longus Musculature

In this step trainable muscles are created for the extensor pollicis longus musculature. Slide points are used to represent the tendon-sheath interaction.


Figure 15: The extensor pollicis longus muscle group before slide points are introduced (left) and after (right).

 

Step 24: Bring up the single soft tissue panel
Select SOFT TISSUES on the main-menu and CREATE SINGLE on the sub-menu. Select Trainable Muscle Tissue Elements.

Step 25: Create the extensor pollicis longus
Use the panel above to create the muscles. The table below displays the parts and attachment locations for each muscle. Use 3834 for pCSA, 1.78 for Maximum Stress and a resting load of .44

Name
Attach Part_1
Attach Part_2
Attach Loc 1
Attach Loc 2
NStiss_5 Thorin_Left_Lower_Arm Thorin_Phalanx_1DL 211.6 45.1 -4.3 116.3 -142 67.5

Step 26: Bring up the slide point panel
Select Muscles as the Tissues and set the Scale to 2 on the BodySIM Display Toolbox. Select SOFT TISSUES on the main-menu and EDIT PROPERTIES on the sub-menu. Select the light bulb next to Slide Point Based to bring up the wrapping panel.

Step 27: Route the tendons through the carpal tunnels
Use the panel above to create the slide points on the muscles. The table below displays the parts and attachment locations for each muscle.

Tissue
Slide Pont Anchor
Slide Point Location
Thorin_Out_NStiss_5 .Thorin_Left_Hand 210, -90, 20
Thorin_Out_NStiss_5_SLIDE_1 .Thorin_Metacarpal_1L (loc_rel_to({8,0,0}, Phalanx_1PL))
Thorin_Out_NStiss_5_SLIDE_1 .Thorin_Phalanx_1PL (loc_rel_to({7,0,0}, Phalanx_1DL))

 


Defining the Flexor Digitorum Profundus Musculature

In this step trainable muscles are created for the flexor digitorum profundus musculature. Slide points are used to represent the tendon-sheath interaction.


Figure 16: The flexor digitorum profundus muscle group before slide points are introduced (left) and after (right).

 

Step 28: View the palmar side of the hand and bring up the single soft tissue panel
Select SOFT TISSUES on the main-menu and CREATE SINGLE on the sub-menu. Select Trainable Muscle Tissue Elements. Use the ADAMS/View toolbox to rotate the hand as in the figure above.

Step 29: Create the flexor digitorum profundus
Use the panel above to create the muscles. The table below displays the parts and attachment locations for each muscle. Use 3834 for pCSA, 1.78 for Maximum Stress and a resting load of .44

Name
Attach Part_1
Attach Part_2
Attach Loc 1
Attach Loc 2
NStiss_6 Thorin_Left_Lower_Arm Thorin_Phalanx_2DL 197 114 -5 183 -264 28
NStiss_7 Thorin_Left_Lower_Arm Thorin_Phalanx_3DL 197 114 -5 186 -275 -7
NStiss_8 Thorin_Left_Lower_Arm Thorin_Phalanx_4DL 197 114 -5 182 -267 -30
NStiss_9 Thorin_Left_Lower_Arm Thorin_Phalanx_5DL 197 114 -5 182 -233 -51

Step 30: Bring up the slide point panel
Select Muscles as the Tissues and set the Scale to 2 on the BodySIM Display Toolbox. Select SOFT TISSUES on the main-menu and EDIT PROPERTIES on the sub-menu. Select the light bulb next to Slide Point Based to bring up the wrapping panel.

Step 31: Route the tendons through the carpal tunnels
Use the panel above to create the slide points on the muscles. The table below displays the parts and attachment locations for each muscle.

Tissue
Slide Pont Anchor
Slide Point Location
Thorin_Out_NStiss_6 .Thorin_Left_Hand 190, -90, 10
Thorin_Out_NStiss_6_SLIDE_1 .Thorin_Metacarpal_2L (loc_rel_to({-8,0,0}, Phalanx_2PL))
Thorin_Out_NStiss_6_SLIDE_1 .Thorin_Phalanx_2PL (loc_rel_to({-7,0,0}, Phalanx_2ML))
Thorin_Out_NStiss_6_SLIDE_1 .Thorin_Phalanx_2ML (loc_rel_to({-6,0,0}, Phalanx_2DL))
Thorin_Out_NStiss_7 .Thorin_Left_Hand 190, -90, 6
Thorin_Out_NStiss_7_SLIDE_1 .Thorin_Metacarpal_3L (loc_rel_to({-8,0,0}, Phalanx_3PL))
Thorin_Out_NStiss_7_SLIDE_1 .Thorin_Phalanx_3PL (loc_rel_to({-7,0,0}, Phalanx_3ML))
Thorin_Out_NStiss_7_SLIDE_1 .Thorin_Phalanx_3ML (loc_rel_to({-6,0,0}, Phalanx_3DL))
Thorin_Out_NStiss_8 .Thorin_Left_Hand 190, -90, 2
Thorin_Out_NStiss_8_SLIDE_1 .Thorin_Metacarpal_4L (loc_rel_to({-8,0,0}, Phalanx_4PL))
Thorin_Out_NStiss_8_SLIDE_1 .Thorin_Phalanx_4PL (loc_rel_to({-7,0,0}, Phalanx_4ML))
Thorin_Out_NStiss_8_SLIDE_1 .Thorin_Phalanx_4ML (loc_rel_to({-6,0,0}, Phalanx_4DL))
Thorin_Out_NStiss_9 .Thorin_Left_Hand 190, -90, -2
Thorin_Out_NStiss_9_SLIDE_1 .Thorin_Metacarpal_5L (loc_rel_to({-8,0,0}, Phalanx_5PL))
Thorin_Out_NStiss_9_SLIDE_1 .Thorin_Phalanx_5PL (loc_rel_to({-7,0,0}, Phalanx_5ML))
Thorin_Out_NStiss_9_SLIDE_1 .Thorin_Phalanx_5ML (loc_rel_to({-6,0,0}, Phalanx_5DL))

 


Creating the Other Muscles of the Hand

To complete the musculature of the hand the flexor pollicis brevis, the adductor pollicis and the flexor pollicis longus muscles and tendons are generated. The flexor pollicis longus tendon is routed through the carpal tunnel.


Figure 17: The flexor pollicis brevis, the adductor pollicis and the flexor pollicis longus muscles and tendons.


Figure 18: Panel used to create the trainable base tissues on the rest of the arm

Step 32: Bring up the single soft tissue panel
Select SOFT TISSUES on the main-menu and CREATE SINGLE on the sub-menu.

Step 33: Create the flexor pollicis brevis muscle
Use the panel above to create the muscle. The table below displays the parts and attachment locations for each muscle.

Name
Attach Part_1
Attach Part_2
Attach Loc 1
Attach Loc 2
NStiss_11 Thorin_Left_Hand Thorin_Phalanx_1PL 190 -98 21 148 -121 52

Step 34: Create the adductor pollicis muscle
Use the panel above to create the muscle. The table below displays the parts and attachment locations for each muscle.

Name
Attach Part_1
Attach Part_2
Attach Loc 1
Attach Loc 2
NStiss_12 Thorin_Metacarpal_3L Thorin_Phalanx_1PL 199 -145 8 147 -125 55

Step 35: Create the flexor pollicis longus muscle
Use the panel above to create the muscle. The table below displays the parts and attachment locations for each muscle.

Name
Attach Part_1
Attach Part_2
Attach Loc 1
Attach Loc 2
NStiss_10 Thorin_Left_Lower_Arm Thorin_Phalanx_1DL 214 69 23 120 -143 60

Step 36: Bring up the slide point create panel
Select SOFT TISSUES on the main-menu and EDIT PROPERTIES on the sub-menu. Select the light bulb next to Slide Point Based to bring up the slide point based tissue wrapping tool.

Step 37: Create slide points on the flexor pollicis longus tendon
Use the panel above to create the slide points on the muscles. The table below displays the parts and attachment locations for each muscle.

Tissue Slide Pont Anchor Slide Point Location
Thorin_Out_NStiss_10 Thorin_Left_Hand 190 -90 16
Thorin_Out_NStiss_10_SLIDE_1 Thorin_Metacarpal_1L (loc_rel_to({-8,0,0}, Phalanx_1PL))
Thorin_Out_NStiss_10_SLIDE_1 Thorin_Phalanx_1PL  (loc_rel_to({-7,0,0}, Phalanx_1DL))

Step 38: Bring up the tissues create set panel
Select SOFT TISSUES on the main-menu and CREATE BASE SET on the sub-menu.

Step 39: Create muscle tissues on the rest of the arm
Select Left Arm and select execute to select trainable tissues on the arm. Select Muscles and set the scale factor to 2 on the BodySIM Display Toolbox.


Posing the Arm/Hand Model

With all the tissues now created on the arm/hand model, the limb is then positioned into the starting position by manipulating the joints.


Figure 19: The model before posing (left) and after (right)


Figure 20: The panel used to adjust the shoulder and elbow angles

Step 40: Bring up the posture panel to configure the base joints
Select POSTURE on the main-menu and CONFIGURE BASE MODEL on the sub-menu.

Step 41: Load the current joint angles and change the view to left
Select Load Current Joint Angles to bring up the angles for the shoulder, elbow and wrist joints. Using the ADAMS/View toolbox to rotate the view to the left.

Step 42: Adjust the shoulder and elbow angles in the sagittal plane
Seth the Sagittal angle of the shoulder joint and the elbow joints to be -40 and -90 degrees respectively.

 


Defining the Environment

With the arm/hand model in position, a tennis ball model is imported from the mechanical system library. Also, a box is created using the geometric boolean operations from ADAMS/View. Contact properties are created between the fingers and palm of the hand and the ball as well as between the ball and the box.


Figure 21: Ball positioned in the hand and secured with a lock joint. The hollow box built using boolean operations.


Figure 22: Contact panel used to create the contact force between the flesh of the fingers and palm of the hand and the ball.

Step 43: Bring up the import mechanical environment panel
Select XCHANGE on the main-menu and IMPORT MECHANICAL ENVIRONMENT on the sub-menu. Set the option to Mechanical Environment Library.

Step 44: Import the tennis ball
Select Tennis Ball as the Model Library SLF File and select Apply to create the ball.

Step 45: Move the ball into the hand and attach with a lock joint
Either use the ADAMS/View move panel to move the ball or use the following commands to reposition the ball:

part modify rigid_body name_and_position &
part_name = .World.Ball &
location = 144.0, 444.0, 433.0 &
orientation = 0.0, 0.0, 0.0 &
relative_to = .World

Either use the ADAMS/View panel to create a fixed joint between the ball and the hand or use the following commands :

constraint create joint fixed joint_name = .World.ballFix &
i_part_name = .World.ground &
j_part_name = .World.Ball &
location = .World.Ball.cm &
orientation = 0.0, 0.0, 0.0

Step 46: Create two boxes
Two boxes are created with one a bit larger that the other. the smaller box is to be used as the "cutting tool" in the boolean operation to create a hollow box to drop the ball in. Use the following ADAMS/View commands to create the boxes:

mar cre mar=.World.ground.box_rm1 loc=-90.0, -410.0, -176 rel=.World
geo cre sha block blo=.World.ground.box_a cor= .World.ground.box_rm1 dia= (480mm),(-330mm),(470mm)
mar cre mar=.World.ground.box_rm2 loc=-100.0, -420.0, -191 rel=.World
geo cre sha block blo=.World.ground.box_b cor= .World.ground.box_rm2 dia= (500mm),(-350mm),(500mm)
geo att geo=.world.ground.box_a color=yellow
geo att geo=.world.ground.box_b color=brown

Step 47: Use box_a to cut box_b to create the hollow box.
Two boxes are created with one a bit larger that the other. the smaller box is to be used as the "cutting tool" in the boolean operation to create a hollow box to drop the ball in. Use the following ADAMS/View commands to create the boxes:

geometry create shape csg csg_name=.World.ground.basket &
base_object=.World.ground.box_b &
object=.World.ground.box_a &
type=difference

entity attributes &
entity_name = .World.ground.basket color = .colors.Brown &
transparency = 75

Step 48: Bring up the contact panel
Select CONTACTS from the main-menu and CREATE SINGLE from the sub-menu.

Step 49: Create contact forces between the ball and the hand
Contact forces are created between the flesh of the fingers and palm of the hand and the ball using the panel with the contact settings in the figure above and the individual values in the table below.

Contact Solid 1 Contact Solid 2
Ball.ellipsoid Thorin_Left_Hand.Ellipsoid
Ball.ellipsoid Phalanx_1DL.Ellipsoid
Ball.ellipsoid Phalanx_2DL.Ellipsoid
Ball.ellipsoid Phalanx_3DL.Ellipsoid
Ball.ellipsoid Phalanx_4DL.Ellipsoid
Ball.ellipsoid Phalanx_5DL.Ellipsoid
Ball.ellipsoid Phalanx_2ML.Ellipsoid
Ball.ellipsoid Phalanx_3ML.Ellipsoid
Ball.ellipsoid Phalanx_4ML.Ellipsoid
Ball.ellipsoid Phalanx_5ML.Ellipsoid
Ball.ellipsoid Phalanx_1PL.Ellipsoid
Ball.ellipsoid Phalanx_2PL.Ellipsoid
Ball.ellipsoid Phalanx_3PL.Ellipsoid
Ball.ellipsoid Phalanx_4PL.Ellipsoid
Ball.ellipsoid Phalanx_5PL.Ellipsoid
Ball.ellipsoid Metacarpal_1L.Ellipsoid
Ball.ellipsoid Metacarpal_2L.Ellipsoid
Ball.ellipsoid Metacarpal_3L.Ellipsoid
Ball.ellipsoid Metacarpal_4L.Ellipsoid
Ball.ellipsoid Metacarpal_5L.Ellipsoid

Step 50: Create contact forces between the ball hollow box
Use a contact stiffness of 10, damping of 17, exponent 1.5, depth 10, MU static .8 MU dynamic .8 and Friction Velocity of 254 and stiction velocity of 1. Select the .Ball.Ellipsoid as contact solid 1 and .ground.basket as contact solid 2. Select Apply to create the contact force.


Creating the Motion Agents

In this step, motion agents are created on the finger tips. They will serve two functions: 1) to close the hand around the ball to establish the starting point of the simulation, and, 2) to open the hand to train the muscles to drop the ball.


Figure 23: The single motion agents installed on the fingers and thumb of the hand


Figure 24: The single motion agent create panel.

Step 51: Bring up the single motion agent panel
Select MOTION in the main-menu and CREATE SINGLE AGENT in the sub-menu. Use the ADAMS/View toolbox to zoom closely into the hand.

Step 52: Create the motion splines
Use the ADAMS/View command below to create the 4 splines. The data for X_finger, Y_finger, x_thumb and z_thumb splines in included in the tables below.

dat cre spl spl=.World.x_finger x_u=time y_u=length x=(data below) y=(data below)

 

Step 53: Create the single motion agents
Use the panel in the figure above and the data from the table below to create the motion agents on the fingers.

Motion Agent Body Segment Location X_dof Y_dof Z_dof
 MOTagent_1 Thorin_Phalanx_2DL 183 539 498 x_finger y_finger y_finger
 MOTagent_2 Thorin_Phalanx_3DL 186 519 532 x_finger y_finger y_finger
 MOTagent_3 Thorin_Phalanx_4DL 182 497 539 x_finger y_finger y_finger
 MOTagent_4 Thorin_Phalanx_5DL 183 457 526 x_finger y_finger y_finger
 MOTagent_5 Thorin_Phalanx_1DL 105 489 384 x_thumb FREE z_thumb

 


Running an Analysis to Set up the Initial Conditions

In this step, the hand is locked to ground and an analysis is run to have the motion agents wrap the fingers around the ball. The model will then be updated so the resulting configuration will be initial condition in the next simulation.


Figure 25: Three successive images of the hand grasping the ball with the motion agents.

Step 54: Bring up the analyze panel
Select ANALYZE in the maine-menu and DYNAMICS in the sub-menu.

Step 55: Lock the hand to ground during the grasping
Create an ADAMS/View lock joint between the hand and the ground using either the ADAMS/View toolbox or the following command

constraint create joint fixed joint_name = .World.handFix &
i_part_name = .World.ground &
j_part_name = .World.Thorin_Left_Hand &
location = .World.Thorin_Left_Hand.cm &
orientation = 0.0, 0.0, 0.0

Step 56: Run the simulation to put the hand in the starting position
Select the Robust integrator settings and run the simulation for 1 second and 100 time steps.

Step 57: Save the current configuration as the starting point for the next analysis
Select Update Model Posture with Equilibrium Results to update the model with the results of the analysis.


Training the Muscles to Open the Hand

With the hand in the gripping position two motion single agents are created. The first motion agent is fixed to the ball with the motion being with respect to a reference frame attached to the hand. This agent will facilitate the "pulling" of the ball out of the hand. The second agent is fixed to the arm which will facilitate the motion of the arm. Together these motion constitute a ball dropping activity in which the muscle reaction forces will be calculated to perform in a subsequent forward-dynamics simulation.


Figure 26: Marker created on the hand to act as a reference for the motion agent on the ball. The marker will move with the hand.


Figure 27: Panel use to create the single motion agent on the ball

 

Step 58: Bring up the motion agent delete panel, delete all the motion agents
Select MOTION on the main-menu and DELETE on the sub-menu. Select Delete All to delete all the motion agents.

Step 59: Bring up the motion agent create single panel
Select MOTION on the main-menu and CREATE SINGLE AGENT on the sub-menu.

Step 60: Create a spline for ball movement
Use the following ADAMS/View command to create the spline:

dat cre spl spl=.World.SPL_ball &
x=0,.25,.5,.75,1,1.7,2.2,2.8,3.3,3.9,4.4,5 &
y=0,0,-10,-50,-133,-200,-300,-400,-400,-400,-400,-400

Step 61: Create the reference frame for ball motion
A marker is created on the left_hand part to act as a reference frame for the motion of the ball. The marker will move with the hand, therefore, the motion agents will be working off this moving reference frame.

Step 62: Create the single motion agent on the ball
Use the data in the figure above to create the single motion agent on the ball.

Step 63: Create the data spline for the arm movement
Use the following ADAMS/View command to create the spline:

dat cre spl spl=.World.SPL_arm &
x=0,.6,1.1,1.7,2.2,2.8,3.3,3.9,4.4,5 &
y=0,-500,-600,-620,-620,-620,-750,-620,-620,-620

Step 64: Create the single motion agent on the arm
Create a motion agent on the Left_Hand at location 144,478,473. Leave the rotational dof's free. Fix the x_dof, drive the y_dof with the spline SPL_arm and leave the z_dof as free. Select global reference frame and use the same stiffness/damping properties as in the ball motion agent.

Step 65: Bring up the analyze panel
Select ANALYZE in the maine-menu and DYNAMICS in the sub-menu.

Step 66: Delete the lock joint between the ball and the hand and the hand and ground
Delete the ballfix and handfix lock joints using the following ADAMS/View command:

constraint del con=.World.ballfix
constraint del con=.World.handFix

Step 67: Run the inverse dynamics simulation
Select Default integrator settings. Rung the simulation for 2 seconds and 200 time steps.

Step 68: Animate the results
Use the ADAMS/View toolbox to animate the results of the simulation.

 


Running the Forward Dynamics Analysis

With the muscles now trained from the inverse dynamics analysis, the motion agents are deleted and a forward dynamics simulation is performed. The simulation is complete with the ball-hand dynamics and the ball-box dynamics.


Figure 28: Successive frames of the ball dropping forward dynamics analysis


Figure 29: Panel use to update the muscles with the data from the inverse dynamics simulation

 

Step 69: Bring up the muscles training panel
Select SOFT TISSUES on the main-menu and TRAINING on the sub-menu. Select the light bulb next to Install Trained Driver Elements.

Step 70: Update the muscles with the inverse dynamics data
Enter 500000.0 for the Controller Gain and 500 for the Derivative Gain of the muscle controllers. Select Apply to update the muscles with trained driver elements.

Step 71: Bring up the analyze panel
Select ANALYZE in the maine-menu and DYNAMICS in the sub-menu.

Step 72: Turn off the motion agents and run the forward dynamics simulation
Check Disable Motion Agents, and default integrator settings. Run the analysis for 2 seconds and 200 time steps.

Step 73: Reduce the muscle scale, turn off the attachments and animate the results
Use the BodySIM Display panel to reduce the scale of the muscles to 2 and turn off the attachment graphics. Use the ADAMS/View toolbox to animate the results of the simulation.


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:

  • Individual muscle forces
  • Individual ligament forces
  • Disk compression forces
  • Disk shear forces

 


Figure 30: Forces in the extensor digitorum muscles


Figure 31: Forces in the flexor digitorum muscles

 


Figure 32: Results panel set up to plot the extensor digitorum muscle forces

 

Step 74: Bring up results panel
Select RESULTS in the main-menu and ANIMATION in the sub-menu. Select "Results Window" button to bring up the results processor

Step 75: Turn off ellipsoids and animate the front view
Set the external representation to none in the BodySIM Display Toolbox. Also turn of the tissue attachments using the toolbox. Select .Ball.cm as the trace marker. select front view and run the animation.

Step 76: Turn off the visibility of the box and animate
Select Thorin_Left_Hand.cm as the Fix to Camera Marker, select fix rotations. Select front view and run the animation.

Step 77: Scale the muscles and run the animation fixing the camera to the lower arm
Select Thorin_Left_Lower_Arm.cm as the Fix to Camera Marker, select fix rotations. Select right view and run the animation.

Step 78: Animate the left view
Select Thorin_Left_Lower_Arm.cm as the Fix to Camera Marker, select fix rotations. Select right view and run the animation.

Step 79: Examine the forces in the extensor digitorum muscles
Select DATA DISPLAY in the sub-menu and Soft Tissues as the Data Type. Select the Tension Characteristic. Select Create Full Plot for the following soft tissues

  • Thorin_Nstiss_1_SLIDE_1
  • Thorin_Nstiss_2_SLIDE_1
  • Thorin_Nstiss_3_SLIDE_1
  • Thorin_Nstiss_4_SLIDE_1

Step 80: Animate the model with scaling muscle graphics
Select ANIMATION in the sub-menu. Turn on the local scaling of the muscle graphics by selecting Scale Joint/Tissue Graphics, Tissues, Scale Locally and the light bulb to scale the muscle graphics. Select divide window, right view and animate.

Step 81: Examine the forces in the flexor digitorum muscles
Select DATA DISPLAY in the sub-menu and Soft Tissues as the Data Type. Select the Tension Characteristic. Select Create Full Plot for the following soft tissues

  • Thorin_Nstiss_6_SLIDE_1
  • Thorin_Nstiss_7_SLIDE_1
  • Thorin_Nstiss_8_SLIDE_1
  • Thorin_Nstiss_9_SLIDE_1

Step 82: Animate the model with scaling muscle graphics
Select ANIMATION in the sub-menu. Turn on the local scaling of the muscle graphics by selecting Scale Joint/Tissue Graphics, Tissues, Scale Locally and the light bulb to scale the muscle graphics. Select divide window, left view and animate.

Step 83: Examine the finger tip contact forces
Select DATA DISPLAY in the sub-menu and Contacts as the Data Type. Select the Mag Component Characteristic. Select Create Full Plot for the following soft tissue forces:

  • Thorin_NScon_7
  • Thorin_NScon_8
  • Thorin_NScon_9
  • Thorin_NScon_10

Step 84: Animate the model with muscle graphics turned off
Select ANIMATION in the sub-menu. Select Muscles as the Tissues and toggle off using the BodySIM Display Toolbox. Select divide window, left view and animate.

Step 85: Zoom in on the hand and animate
Select ANIMATION in the sub-menu. Select Muscles as the Tissues and toggle off using the BodySIM Display Toolbox. Select zoom with center coordinates of 130, 448, 413 with a scale factor of 2. Select divide window, left view and animate.

Step 86: DEMO COMPLETE


Further

This model could be used to explore many aspects including:

  • Various muscle/ligament parameters
  • Various acceleration profiles