Biomechanical model of joint movements in human body
Author
Muhammad Ubadah Tanveer
Title
Biomechanical model of joint movements in human body
Description
Biomechanical model of left arm.
Category
Essays, Posts & Presentations
Keywords
kinematic, biomechanics, human body, joints, biomedical, skeleton
URL
http://www.notebookarchive.org/2021-07-61i0clh/
DOI
https://notebookarchive.org/2021-07-61i0clh
Date Added
2021-07-13
Date Last Modified
2021-07-13
File Size
0.77 megabytes
Supplements
Rights
Redistribution rights reserved



WOLFRAM SUMMER SCHOOL 2021
Biomechanical model of joint movements in human body
Biomechanical model of joint movements in human body
Muhammad Ubadah Tanveer
NED University of Engineering and Technology
We aim to develop a 3D human arm skeletal model with dynamic joint kinematics. To achieve this all the bones in arm humerus, radius, ulna and wrist (carpals) have to move in space with defined ranges of motion. Literature review was done to obtain maximum and minimum angles for all joints with respect to specific movements. For bone models we’ll leverage the Wolfram Knowledgebase and extract anatomical data. The osteokinematics of bones at each joint is visualized using transformation functions.
Arm anatomy and kinematics
Arm anatomy and kinematics
A human arm consists of 7 degrees of freedom that includes shoulder joint with 3 degrees of freedom, elbow joint with 1 degree of freedom, forearm with 1 degree of freedom and wrist with 2 degrees of freedom. Each joint is a combination of bones, the humerus joint at proximal end is called the gleno-humeral or shoulder joint its between scapula and humerus. The elbow joint is the articulation of three bones humerus, ulna and radius. The wrist joint also known as radio-carpal joint is between the distal ends of radius and ulna in forearm and the carpals in hand.
3D bone models and arm construction
3D bone models and arm construction
The Wolfram Language has built in human skeleton images based on data from [1] which can be accesses via the “Entity” function. After retrieving each bone from Wolfram database the mesh region of each bone is extracted and enclosed in a cuboid, this was important because however the Wolfram anatomical entities can be transformed as a whole but to have bone segment move as per the natural angles to simulate joint movements each bone has to be connected to another as an individual entity so that transformation and rotation functions can be applied.
Using natural language input ( + =) we get the bones from “Entity” of type “Anatomy”:
In[]:=
Clear["Global`*"];boneHumerus=
;boneRadius=
;boneUlna=
;boneWrist=
;boneHCuboid=boneHumerus;boneRCuboid=boneRadius;boneWCuboid=boneWrist;boneUCuboid=boneUlna;boneHRegion=boneHumerus;boneRRegion=boneRadius;boneWRegion=boneWrist;boneURegion=boneUlna;
left humerus | ANATOMICAL STRUCTURE |
left radius | ANATOMICAL STRUCTURE |
left ulna | ANATOMICAL STRUCTURE |
skeleton of left hand | ANATOMICAL STRUCTURE |
enclosing cuboid
enclosing cuboid
enclosing cuboid
enclosing cuboid
mesh region
mesh region
mesh region
mesh region
In[]:=
{AnatomyPlot3D/@{boneHumerus,boneWrist}Graphics3D/@{boneHCuboid,boneWCuboid}{boneHRegion,boneWRegion}}
Out[]=


,

Joint ranges of motion
Joint ranges of motion
A range of motion refers to the distance and direction a joint can move to its full potential. ROM is usually measured by the number of degrees from the starting position of a segment to its position at the end of its full range of the movement. The ranges of motion for joints in this model are obtained from the study [2], the study offers different values for each joint for male and female subjects aged between 2 and 69 years, for this project the maximum and minimum angles from the study for each joint is taken.
Range of motions with respect to particular movements at each joint:
In[]:=
wristRoM={{"Flexion",73Degree},{"Extension",71Degree},{"Radial Deviation",19Degree},{"Ulnar Deviation",33Degree}}//Map[AssociationThread[{"Movements","Angles"},#]&]//<|"Wrist"->#|>&//Dataset;humerusROM={{"Flexion",150Degree},{"Extension",10Degree},{"Abduction",19Degree},{"Adduction",33Degree},{"Medial Rotation",13Degree},{"Lateral Rotation",53Degree}}//Map[AssociationThread[{"Movements","Angles"},#]&]//<|"Humerus"->#|>&//Dataset;elbowROM={{"Flexion",150Degree},{"Extension",10Degree},{"Pronation",13Degree},{"Supination",53Degree}}//Map[AssociationThread[{"Movements","Angles"},#]&]//<|"Elbow"->#|>&//Dataset;humerusROMelbowROMwristRoM//TableForm
Out[]//TableForm=
|
|
|
Connecting bone segments
Connecting bone segments
Each bone segment cuboid was used to determine the axis of rotation, using the mesh coordinates nearest from one bone to another.
Each bone segment cuboid was used to determine the axis of rotation, using the mesh coordinates nearest from one bone to another.
To find a bone’s “proximal point”:
In[]:=
boneToBoneProximalPoint[fromBone_MeshRegion,toBone_MeshRegion]:=Module[{fromBoneNearestFunction=RegionNearest[fromBone],toBonePoints=MeshCoordinates[toBone],fromBoneNearestPoints,fromBoneNearestCentroid,fromBoneSurfacePoint},fromBoneNearestPoints=fromBoneNearestFunction[toBonePoints];fromBoneNearestCentroid=RegionCentroid@Region[Point@fromBoneNearestPoints];fromBoneSurfacePoint=fromBoneNearestFunction[fromBoneNearestCentroid];fromBoneSurfacePoint]
Find the joint coordinates between two bones:
In[]:=
twoBoneJointPoint[bone1_MeshRegion,bone2_MeshRegion]:=Midpoint[{boneToBoneProximalPoint[bone1,bone2],boneToBoneProximalPoint[bone2,bone1]}]
In[]:=
radiusWristJointCoordinates=twoBoneJointPoint[boneRRegion,boneWRegion];humerusUlnaJoinCoordinates=twoBoneJointPoint[boneURegion,boneHRegion];radiusHumerusJointCoordinates=twoBoneJointPoint[boneRRegion,boneHRegion];wristHumerusJointCoordinates=twoBoneJointPoint[boneWRegion,boneHRegion];
Visualizing bone movements
Visualizing bone movements
To visualize all the movements and manipulate them across the range of motion the linked objects were nested, so that rotations of parent objects also apply to child objects. In this way rotations at each level were obtained with graphical representation.
To visualize all the movements and manipulate them across the range of motion the linked objects were nested, so that rotations of parent objects also apply to child objects. In this way rotations at each level were obtained with graphical representation.
In[]:=
ManipulateGraphics3DEdgeForm[None],FoldRotate[#1,#2[[2]],#2[[1]],radiusHumerusJointCoordinates]&,{boneRRegion,Fold[Rotate[#1,#2[[2]],#2[[1]],radiusWristJointCoordinates]&,boneWRegion,Transpose[{boneWCuboid[[2,1]],{wA,0,wC}}]]}, Transpose boneRCuboid[[2,1]],{0,0,-1*uC},Fold[Rotate[#1,#2[[2]],#2[[1]],radiusHumerusJointCoordinates]&,boneRRegion,Transpose[{boneRCuboid[[2,1]],{0,0,-1*uC}}]],Fold[Rotate[#1,#2[[2]],#2[[1]],humerusUlnaJoinCoordinates]&,boneURegion,Transpose[{boneUCuboid[[2,1]],{0,0,uC}}]],Fold[Rotate[#1,#2[[2]],#2[[1]],humerusUlnaJoinCoordinates]&,boneHRegion,Transpose[{boneHCuboid[[2,1]],{0,0,0}}]] ,SphericalRegionTrue,{{wA,0,"Wrist | Ulnar/ Radial Deviation"},-19 Degree,33Degree},{{wC,0,"Wrist | Flexion/ Extension"},-73Degree,71Degree},Delimiter,{{uC,0,"Elbow | Flexion/Extension"},10Degree,-150Degree},ControlPlacementLeft,TrackedSymbols-> True
Out[]=
Future work
Future work
The model is at an initial stage. This project is a proof of concept for a single skeletal model comprising of all joint movements in the human body. In this project each bone movement is relative to its local axis i.e; coordinates of joint about which it rotates while anchored at the origin. This model comprises bones of left arm however same methodology can be applied for right arm movement. We still don’t know if a similar approach is applicable to more complex movements in human body, for instance movements in vertebral column. Also, there may be other approaches such as Denavit–Hartenberg convention which may lead to better segment integration and movement.
Keywords
Keywords
◼
Biomechanical model
◼
Kinematics
◼
Joint movements
Acknowledgment
Acknowledgment
Mentor: Tuseeta Banerjee, Ph.D.
I would like to thank my mentor Tuseeta for her perspicacious suggestions which provided essential direction to this project and her correspondence throughout the project with code, development and research. I would also like to thank Stephen Wolfram for suggesting this project. Finally, I am grateful to the TAs Jesse Friedman and Faizon Zaman for helping with Wolfram Language questions and coding.
I would like to thank my mentor Tuseeta for her perspicacious suggestions which provided essential direction to this project and her correspondence throughout the project with code, development and research. I would also like to thank Stephen Wolfram for suggesting this project. Finally, I am grateful to the TAs Jesse Friedman and Faizon Zaman for helping with Wolfram Language questions and coding.
References
References
◼
[1] N. Mitsuhashi, K. Fujieda, T. Tamura, S. Kawamoto, T. Takagi, and K. Okubo, “BodyParts3D: 3D structure database for anatomical concepts,” Nucleic Acids Res., vol. 37, no. Database issue, pp. D782–5, Jan. 2009, doi: 10.1093/nar/gkn613.
◼
[2] J. M. Soucie et al., “Range of motion measurements: reference values and a database for comparison studies,” Haemophilia, vol. 17, no. 3, pp. 500–507, May 2011, doi: 10.1111/j.1365-2516.2010.02399.x.


Cite this as: Muhammad Ubadah Tanveer, "Biomechanical model of joint movements in human body" from the Notebook Archive (2021), https://notebookarchive.org/2021-07-61i0clh

Download

