Table of Contents
Joint
The term “joint” is used periodically throughout Visual3D, and has several different meanings. This tutorial focuses on a joint that connects two kinetic segments.
In 6 DOF tracking there is no explicit linkage (or joint) connecting the segments. Visual3D explores the collection of segments and considers any two segments in proximity (the distal end of one segment and the proximal end of another segment within the radius of the segment ends) to be “linked” and references a Joint between them. The Joint does not constrain the segments, but is rather a bookkeeping tool that keeps track of which segments are assumed to have an equal and opposite Joint Reaction Force acting between their endpoints and an equal and opposite Joint Moments acting on the adjacent segments.
The most typical example of a joint would be in gait, the GRF is applied to the foot segment, and because there is a joint at the ankle, the force is applied from the foot segment to the shank segment.
How is a joint created
A joint is created by:
- Value 1 - Calculating the distance between the proximal end of a segment and the distal end of a segment (ex. Ankle joint, the distance between the distal end of the shank and the proximal end of the foot)
- Value 2 - Getting the proximal end radius (ex. foot) and the distal end radius (ex. shank) and determining which is larger
- If Value 1 is less than Value 2, a joint is created.
Essentially, a joint is created if the proximal and distal ends of two segments are close to each other.
Default Joint Names
Visual3D creates joint names automatically for the default segments.
Visual3D contains a number of default segment names that are provided for the convenience of the user. These default segments contain geometry, the inertial properties, and the wire frame model. Users that create their own segment names need to add this information in the segment properties tab in Model Builder Mode
The calculation of Joint Moment, Joint Power, and Joint Force refer to the proximal end of the segment selected. For convenience we have mapped segment names to joint names automatically because we assumed that users would find it more intuitive.
Visual3D Segment Name | Anatomical Segment | Joint Name | Anatomical Joint |
RFT | Right Foot | RANKLE | Right Ankle |
RSK | Right Shank | RKNEE | Right Knee |
RTH | Right Thigh | RHIP | Right Hip |
LFT | Left Foot | LANKLE | Left Ankle |
LSK | Left Shank | LKNEE | Left Knee |
LTH | Left Thigh | LIHP | Left Hip |
RPV | Pelvis | WAIST | Waist |
RTK | Trunk and Pelvis | RWAIST | Waist |
RTA | Thorax and Abdomen | RWAIST | Waist |
RHE | Head | NECK | Neck |
RAR | Right Upper Arm | RSHOULDER | Right Shoulder |
RFA | Right Forearm | RELBOW | Right Elbow |
RHA | Right Hand | RWRIST | Right Wrist |
LAR | Left Upper Arm | LSHOULDER | Left Shoulder |
LFA | Left Forearm | LELBOW | Left Elbow |
LHA | Left Hand | LWRIST | Left Wrist |
Default Joint Names ====
Visual3D creates joint names automatically for the default segments.
Visual3D contains a number of default segment names that are provided for the convenience of the user. These default segments contain geometry, the inertial properties, and the wire frame model. Users that create their own segment names need to add this information in the segment properties tab in Model Builder Mode
The calculation of Joint Moment, Joint Power, and Joint Force refer to the proximal end of the segment selected. For convenience we have mapped segment names to joint names automatically because we assumed that users would find it more intuitive.
Visual3D Segment Name | Anatomical Segment | Joint Name | Anatomical Joint |
RFT | Right Foot | RANKLE | Right Ankle |
RSK | Right Shank | RKNEE | Right Knee |
RTH | Right Thigh | RHIP | Right Hip |
LFT | Left Foot | LANKLE | Left Ankle |
LSK | Left Shank | LKNEE | Left Knee |
LTH | Left Thigh | LIHP | Left Hip |
RPV | Pelvis | WAIST | Waist |
RTK | Trunk and Pelvis | RWAIST | Waist |
RTA | Thorax and Abdomen | RWAIST | Waist |
RHE | Head | NECK | Neck |
RAR | Right Upper Arm | RSHOULDER | Right Shoulder |
RFA | Right Forearm | RELBOW | Right Elbow |
RHA | Right Hand | RWRIST | Right Wrist |
LAR | Left Upper Arm | LSHOULDER | Left Shoulder |
LFA | Left Forearm | LELBOW | Left Elbow |
LHA | Left Hand | LWRIST | Left Wrist |
if a default name doesn't exist for a segment you have created, Visual3D, for the purpose of creating model based items specifies the joint name as
segmentName_JOINT
How to visually check for joints
If you have a model template applied to a static trial, you will be able to see if joints are created between segments. You can also view the joints in the example CMO file.
Joints appear in the 3D viewer of the Model's tab as yellow spheres.
If you do not see joints, make sure that you have the option to see joints on by right clicking in the 3D viewer and selecting View Joints.
You can also change the size of the spheres by going to Settings → Modify Scale of 3D Graphics Objects, and changing the Joint Size option.
Example: Hip Joint
Visual3D's rule for deciding when to form a hip joint during calibration is:
Step 1) Visual3D takes the proximal end of the thigh location.
Step 2) Visual3D then searches all of the other segments and finds their distal end location.
Step 3) Visual3D then finds which segment's distal end is closest to the proximal end of the thigh. This is the neighbouring segment. (This is almost always the distal end of the pelvis.)
Step 4) Visual3D then look at looks at the radius of the proximal end of the thigh and the distal end of the neighbouring (pelvis) segment and chooses the larger value between the two radii.
Step 5) Vsual3D then computes the distance between the proximal end of the thigh and the distal end of the neighbouring (pelvis) segment.
Step 6) If the value is step 5 (distance between the segment ends) is less then 1.1 times the value in Step 4 (the larger radius) a joint is formed. If the segment end are separated by more then 1.1 times the larger radius no joint is formed. (Basically Visual3D is checking to see if the distal end of the neighbour is close enough to the proximal end of the segment).
The value in Step 6 (1.1) is specified as the Joint_Radius_Ratio in the Model Metrics (this was implemented in version 6).