RangeOfMotionLimits_template#
Create joint limits as soft kinematic constraints given some range of motion.
#include "<AMMR_TOOLS>\ModelUtilities/KinematicLimits/RangeOfMotionLimits_template.any"`
#RangeOfMotionLimits#
The class creates a set of limits (soft kinematic constraints) for the human model given some range of motion.
The class template should be used after the human model is included in the model.
This ensures that all the BM_*
statements are defined.
Note
Make sure the Limit drivers are included in your study. Otherwise they will have no effect.
Example
RangeOfMotionLimits RoMLimits(
ARM_RIGHT = BM_ARM_RIGHT,
ARM_LEFT = BM_ARM_LEFT,
LEG_RIGHT = BM_LEG_RIGHT,
LEG_LEFT = BM_LEG_LEFT
) = {
// Example of changing af few of the limits:
Limits.Trunk.PelvisThoraxExtension = {-90, 90};
Limits.Right.ElbowPronation = {-90, 90};
};
If some joint should not have a range of motion limits, the class accepts arguments for disabling individual joint limits:
RangeOfMotionLimits RoMLimits(
PELVIS_THORAX_LATERAL_BENDING = "Off"
...
Full signature
RangeOfMotionLimits <ObjectName>(
ARM_RIGHT=<required>,
ARM_LEFT=<required>,
LEG_RIGHT=<required>,
LEG_LEFT=<required>,
PELVIS_THORAX_EXTENSION="On",
PELVIS_THORAX_LATERAL_BENDING="On",
PELVIS_THORAX_ROTATION="On",
SKULL_THORAX_FLEXION="On",
SKULL_THORAX_LATERALBENDING="On",
SKULL_THORAX_ROTATION="On",
STERNO_CLAVICULAR_PROTRACTION="On",
STERNO_CLAVICULAR_ELEVATION="On",
STERNO_CLAVICULAR_AXIALROTATION="Off",
GLENOHUMERAL_FLEXION="On",
GLENOHUMERAL_EXTERNAL_ROTATION="On",
GLENOHUMERAL_ABDUCTION="On",
ELBOW_FLEXION="On",
ELBOW_PRONATION="On",
WRIST_FLEXION="On",
WRIST_ABDUCTION="On",
HIP_ABDUCTION="On",
HIP_FLEXION="On",
HIP_EXTERNAL_ROTATION="On",
KNEE_FLEXION="On",
ANKLE_PLANTAR_FLEXION="On",
SUBTALAR_EVERSION="On",
HUMAN_MODEL=Main.HumanModel,
) = {};
Arguments
- __CLASS__:
AnyFolder
- ARM_RIGHT:
Indicate if the right arm should be included in the limits. Set this to BM_ARM_RIGHT to make it follow the body config (Required)
- ARM_LEFT:
Indicate if the left arm should be included in the limits. Set this to BM_ARM_LEFT to make it follow the body config (Required)
- LEG_RIGHT:
Indicate if the right leg should be included in the limits. Set this to BM_LEG_RIGHT to make it follow the body config (Required)
- LEG_LEFT:
Indicate if the left leg should be included in the limits. Set this to BM_LEG_LEFT to make it follow the body config (Required)
- PELVIS_THORAX_EXTENSION:
Enables/disables limits for the pelvis thorax extension (Default: “On”)
- PELVIS_THORAX_LATERAL_BENDING:
Enables/disables limits for the pelvis thorax lateral bending (Default: “On”)
- PELVIS_THORAX_ROTATION:
Enables/disables limits for the pelvis thorax rotation (Default: “On”)
- SKULL_THORAX_FLEXION:
Enables/disables limits for the skull thorax flexion (Default: “On”)
- SKULL_THORAX_LATERALBENDING:
Enables/disables limits for the skull thorax lateral bending (Default: “On”)
- SKULL_THORAX_ROTATION:
Enables/disables limits for the skull thorax rotation (Default: “On”)
- STERNO_CLAVICULAR_PROTRACTION:
Enables/disables limits for the sterno clavicular protraction (Default: “On”)
- STERNO_CLAVICULAR_ELEVATION:
Enables/disables limits for the sterno clavicular elevation (Default: “On”)
- STERNO_CLAVICULAR_AXIALROTATION:
Enables/disables limits for the sterno clavicular axial rotation (Default: “Off”)
- GLENOHUMERAL_FLEXION:
Enables/disables limits for the glenohumeral flexion (Default: “On”)
- GLENOHUMERAL_EXTERNAL_ROTATION:
Enables/disables limits for the glenohumeral external rotation (Default: “On”)
- GLENOHUMERAL_ABDUCTION:
Enables/disables limits for the glenohumeral abduction (Default: “On”)
- ELBOW_FLEXION:
Enables/disables limits for the elbow flexion (Default: “On”)
- ELBOW_PRONATION:
Enables/disables limits for the elbow pronation (Default: “On”)
- WRIST_FLEXION:
Enables/disables limits for the wrist flexion (Default: “On”)
- WRIST_ABDUCTION:
Enables/disables limits for the wrist abduction (Default: “On”)
- HIP_ABDUCTION:
Enables/disables limits for the hip abduction (Default: “On”)
- HIP_FLEXION:
Enables/disables limits for the hip flexion (Default: “On”)
- HIP_EXTERNAL_ROTATION:
Enables/disables limits for the hip external rotation (Default: “On”)
- KNEE_FLEXION:
Enables/disables limits for the knee flexion (Default: “On”)
- ANKLE_PLANTAR_FLEXION:
Enables/disables limits for the ankle plantar flexion (Default: “On”)
- SUBTALAR_EVERSION:
Enables/disables limits for the subtalar eversion (Default: “On”)
- HUMAN_MODEL:
The human model to which the limits should be applied. (Default: Main.HumanModel)
Optional initialization members
Limits.Trunk.PelvisThoraxExtension = DesignVar({ -80, 30});
- class type:
AnyVector
The limits for PelvisThoraxExtension
Limits.Trunk.PelvisThoraxLateralBending = DesignVar({ -40, 40});
- class type:
AnyVector
The limits for PelvisThoraxLateralBending
Limits.Trunk.PelvisThoraxRotation = DesignVar({-90, 90});
- class type:
AnyVector
The limits for PelvisThoraxRotation
Limits.Trunk.SkullThoraxFlexion = DesignVar({-70, 70});
- class type:
AnyVector
The limits for SkullThoraxFlexion
Limits.Trunk.SkullThoraxLateralBending = DesignVar({-60, 60});
- class type:
AnyVector
The limits for SkullThoraxLateralBending
Limits.Trunk.SkullThoraxRotation = DesignVar({-90, 90});
- class type:
AnyVector
The limits for SkullThoraxRotation
Limits.Right.SternoClavicularProtraction = DesignVar({-23-20, -23+20});
- class type:
AnyVector
The limits for SternoClavicularProtraction
Limits.Right.SternoClavicularElevation = DesignVar({11.5-11.5, 11.5+70});
- class type:
AnyVector
The limits for SternoClavicularElevation
Limits.Right.SternoClavicularAxialRotation = DesignVar({-20-5, -20+5});
- class type:
AnyVector
The limits for SternoClavicularAxialRotation
Limits.Right.GlenohumeralFlexion = DesignVar({-70, 180});
- class type:
AnyVector
The limits for GlenohumeralFlexion
Limits.Right.GlenohumeralAbduction = DesignVar({-5, 180});
- class type:
AnyVector
The limits for GlenohumeralAbduction
Limits.Right.GlenohumeralExternalRotation = DesignVar({-50, 50});
- class type:
AnyVector
The limits for GlenohumeralExternalRotation
Limits.Right.ElbowFlexion = DesignVar({0, 160});
- class type:
AnyVector
The limits for ElbowFlexion
Limits.Right.ElbowPronation = DesignVar({-90, 90});
- class type:
AnyVector
The limits for ElbowPronation
Limits.Right.WristFlexion = DesignVar({-90, 90});
- class type:
AnyVector
The limits for WristFlexion
Limits.Right.WristAbduction = DesignVar({-30, 30});
- class type:
AnyVector
The limits for WristAbduction
Limits.Right.HipFlexion = DesignVar({-30, 100});
- class type:
AnyVector
The limits for HipFlexion
Limits.Right.HipAbduction = DesignVar({-20, 45});
- class type:
AnyVector
The limits for HipAbduction
Limits.Right.HipExternalRotation = DesignVar({-45, 60});
- class type:
AnyVector
The limits for HipExternalRotation
Limits.Right.KneeFlexion = DesignVar({0, 160});
- class type:
AnyVector
The limits for KneeFlexion
Limits.Right.AnklePlantarFlexion = DesignVar({-80, 40});
- class type:
AnyVector
The limits for AnklePlantarFlexion
Limits.Right.SubTalarEversion = DesignVar({-40, 40});
- class type:
AnyVector
The limits for SubTalarEversion
Limits.Left.SternoClavicularProtraction = DesignVar({-23-20, -23+20});
- class type:
AnyVector
The limits for SternoClavicularProtraction
Limits.Left.SternoClavicularElevation = DesignVar({11.5-11.5, 11.5+70});
- class type:
AnyVector
The limits for SternoClavicularElevation
Limits.Left.SternoClavicularAxialRotation = DesignVar({-20-5, -20+5});
- class type:
AnyVector
The limits for SternoClavicularAxialRotation
Limits.Left.GlenohumeralFlexion = DesignVar({-70, 180});
- class type:
AnyVector
The limits for GlenohumeralFlexion
Limits.Left.GlenohumeralAbduction = DesignVar({-5, 180});
- class type:
AnyVector
The limits for GlenohumeralAbduction
Limits.Left.GlenohumeralExternalRotation = DesignVar({-50, 50});
- class type:
AnyVector
The limits for GlenohumeralExternalRotation
Limits.Left.ElbowFlexion = DesignVar({0, 160});
- class type:
AnyVector
The limits for ElbowFlexion
Limits.Left.ElbowPronation = DesignVar({-90, 90});
- class type:
AnyVector
The limits for ElbowPronation
Limits.Left.WristFlexion = DesignVar({-90, 90});
- class type:
AnyVector
The limits for WristFlexion
Limits.Left.WristAbduction = DesignVar({-30, 30});
- class type:
AnyVector
The limits for WristAbduction
Limits.Left.HipFlexion = DesignVar({-30, 100});
- class type:
AnyVector
The limits for HipFlexion
Limits.Left.HipAbduction = DesignVar({-20, 45});
- class type:
AnyVector
The limits for HipAbduction
Limits.Left.HipExternalRotation = DesignVar({-45, 60});
- class type:
AnyVector
The limits for HipExternalRotation
Limits.Left.KneeFlexion = DesignVar({0, 160});
- class type:
AnyVector
The limits for KneeFlexion
Limits.Left.AnklePlantarFlexion = DesignVar({-80, 40});
- class type:
AnyVector
The limits for AnklePlantarFlexion
Limits.Left.SubTalarEversion = DesignVar({-40, 40});
- class type:
AnyVector
The limits for SubTalarEversion