% A rendered version of the CHANGELOG is avaible here:
% https://anyscript.org/ammr/beta/changelog.html
(ammr-3.1.0-changelog)=
CreateCoMRefNode
,TRI(N)
macro to create a lower triangular (NxN) matrix.TOTAL_POLYLINE_LENGTH(P)
macro to compute the total length of aFree Posture Static
example<example_freeposture>
. The X and Z rotation drivers were previouslyCreateMarkerDriverClass
within MoCap models. The search string inMain.ModelSetup.Views.All_MarkerArrows.Objects
has been updated to correctlyBM_TRUNK_*_DISC_STIFNESS
parameters have been renamed to BM_TRUNK_*_DISC_STIFFNESS
.special 'bony landmark' defined <_JOINT_TYPE_BONY_LANDMARK_>
(ammr-3.0.4-changelog)=
Bike Model example <example_bikemodel>
that(ammr-3.0.3-changelog)=
(ammr-3.0.1-changelog)=
This minor release of AMMR contains no updates to the models compared to the major AMMR 3.0.0 released the previous month. It only has a few minor changes to the documentation and new tolerances in the FDK models.
Knee Simulator example
<example_kneesimulator>
, to take avantage of the improved robustness of the(ammr-3.0-changelog)=
:::{Warning} Care must be taken when porting existing MoCap models to the
new AMMR. Changes to the pelvic tilt, and changes to the foot anatomical
frame can cause MoCap markers on Pelvis and feet to have moved slightly.
If migrating models from AMMR 2.4, be sure to check markers on
pelvis and the foot segments. The Y component may need to be adjusted to
achieve same marker position and joint angle output.
:::
Seated Human model <example_seatedhuman>
: Main.ModelSetup.CreateVideo
operation was missing in some of the MoCapCreateVideo.any
file in your application. buckle
support
) by increasing the strength of recruited reactions on buckle segmentScale
) for segments in trunk model (lumbar,BM_LEG_TRUNK_INTERFACE
setting.AnatomicalFrame
of TLEM 2.2 foot and talus that caused the.viewMuscle
drawing objects AnyDrawMuscle
objects, usually namedDrwMus
have been removed. Added two small helper code macros:
NON_UNIQUE_VALUES()
/NON_UNIQUE_POINTERS()
for finding duplicate
(non-unique) entries in arrays of values and pointers.
Added new set of hip joint measures (Interface.Right.HipISB
) that strictly
follow the International Society of Biomechanics' (ISB) definitions. These
measures are similar to existing angles but do not have zero hip-flexion in
neutral position due to different definition of pelvis coordinate system with
respect to a plane defined by ASIS-PSIS points.
Segments in trunk model (lumbar, thoracic and cervical) now explicitly define
a ScalingNode
node indicating coordinate system for segment scaling.
Improved error message when MoCap markers in marker protocol are missing from
C3D file.
Add an option to override the default kinematic joint limits in the MoCap
framework
The trunk joint reaction force in SelectedOutputs
is now expressed in new reference nodes that are aligned with the vertebral body.
Therefore, the names of the outputs now include CompressionForce and
ShearForce. The new reference nodes are created inside the joint node on the proximal
segment. The implementation from AMMR 2.4 can be enabled by using the compatibility
switch: #define BM_COMPATIBILITY_24_TRUNK_SELECTED_OUTPUTS_JRF ON
Adjustments to pelvic tilt have changed the position of MoCap markers on the
pelvis segment. This mostly affects markers with hardcoded positions.
Particularly PSIS markers furthest posterior from the origin between ASIS.
When migrating from AMMR 2.4 models without adjusting marker positions, PSIS
markers may move 2 cm lower.
Most non-MoCap model examples
have been updated to account for the new pelvic tilt value. Either by using the
AnatomicalFrameTrunk
reference frame in the pelvic driver or by adjusting the
Pelvis-Thorax Extension slightly.
The Twente Lower Extremity Model (TLEM) 2 leg model has several updates and is
now designated as TLEM 2.2.
The ankle complex and the knee joint axis have been redefined to compensate for
the non-neutral position in which the cadaver was scanned. This improves the
alignment of the tibia, talus, and calcaneus bones. The updated knee joint ensures
that the patella tendon is straight in the neutral position. The net effect is
rotation of the tibia about its long axis with the feet still pointing in the
same direction in the neutral position.
Wrapping surfaces have been added to the Achilles tendon around the ankle in
the TLEM 2.2 leg model, giving a more even ratio of moment arms between
the soleus and gastrocnemius muscles. Hence, gastrocnemius is recruited
less, especially during downhill walking and stair descent, solving the
tendency of the model to over-predict the knee contact forces at toe off.
This is the first of a number of improvements to the leg model by Dr. Enrico
De Pieri, who is working on a publication on improvements and validation of
the TLEM 2 leg model.
The foot and talus models in TLEM 2.2 leg model have several updates in
preparation for the release of advanced multi-segment foot models in the
future:
TalusCompatibilityFrameAMMR24
,The implementation of the TLEM model has been split into two separate folders,
LegTLEM/
and LegTLEM1/
. All references to TLEM 1 code have been removed in
the code implementing the TLEM 2 model.
The TLEM 1 model now triggers a deprecation warning suggesting using TLEM 2.
The InverseDynamics analysis in MoCap models now uses the first step of Marker
tracking as a start guess (initial conditions)
for the kinematic solver. This improves robustness in certain cases.
The marker protocol in the {ref}"ADL gait (MoCap model)"
<sphx_glr_auto_examples_MoCap_plot_ADL_Gait.py>
was updated/tweaked to
improve the robustness of the model. Some special exceptions were added to
trials where we discovered that some markers were swapped by accident in the
original open access dataset.
Scaling laws defined by the BM_SCALING
setting have been updated to calculate
offsets between different scaling regions and apply them at load time. Scaling
remains the same, but users can now create scaling functions that account for
offsets between regions with different scaling.
Glenoid reaction forces are now expressed in the coordinate system of the glenoid
cup instead of the general scapula coordinate system. Variables
GlenoHumeral_DistractionForce
, GlenoHumeral_InferoSuperiorForce
,
GlenoHumeral_AnteroPosteriorForce
represent three directions given by the
glenoid cup. Variables may differ slightly even if the force remains the same.
Resolved inconsistencies in arm muscle parameters. The same underlying parameters
are now used for both simple and 3-element muscle models.
MoCap marker protocols: Users must now explicitly specify a coordinate system
relative to which markers are placed on the segment using the
PlaceMarkerAt
argument in the class template. Previously, this defaulted to the AnatomicalFrame
of
the segment.
The organization of segmental scaling functions was reworked and now configured
slightly simpler. This modification is expected not to affect users working
with default and non-default scaling laws and patient-specific morphing.
Additionally, all spinal segments share a scaling reference frame.
We updated how the class AnySurfCylinderFit
is used in the {ref}Knee
Simulator example <example_kneesimulator>
. The deprecated way of using the
AnySurfCylinderFit
has been changed. Since AnySurfCylinderFit
is now a
subclass of AnyRefNode
, it should no longer be nested inside another
parent reference frame to provide the pos sRel
and orientation ARel
. This
fixes a number of deprecated warnings that would have triggered with AnyBody version 8.
Added the new AnatomicalFrameTrunk
reference frame to the pelvis segment consistent
with anatomical frames in the rest of the trunk model. All joint angles relative
to the pelvis segment now use this frame. This aligns the neutral position of
the model with the neutral position of the trunk dataset and results in more
pelvic tilt in the neutral position, better reflecting reported values in
literature. Existing PelvisSeg.AnatomicalFrame
defined by the ASIS and pubic bony
landmarks remains unchanged.
Updated trend validation in "Wilke Spine Pressure validation
models" to reflect changes to the thoracic model
and the pelvis frame. Although absolute pressures in the spine have changed,
trends (relative changes in spine pressure between models) remain the same.
Reduced discretization (number of elements) of the pectoralis major and
semispinalis muscles for consistency with textbook anatomy. Pectoralis no
longer has its origin on rib 2, and semispinalis no longer inserts on the
lumbar region.
Refactored the implementation of muscle parameters in the arm model. All
parameters are now given as muscle volume, optimal fiber length, and tendon
slack length. Physiological cross-sectional area (PCSA), previously a
hardcoded parameter, is now an intermediate value used for calculating muscle
strength from muscle volume and optimal fiber length.
This new structure allows for overwriting the complete set of muscle volumes with
an alternative dataset.
The MarkerName
argument in the CreateMarkerDriver
template for MoCap models is no longer necessary. The argument can still be used
if the marker class and data entry in the C3D file differ.
Updated the implementation of muscle parameters section in models to use the new
??=
(optional assignment) operator introduced in AnyBody 7.4.1. This allows
for direct overriding/redefinition of muscle parameters and volumes.
For example, muscle volumes can be overridden with new data.
{code-block} AnyScriptDoc
Main.HumanModel.BodyModel.Right.Leg.ModelParameters.Muscles = {
SoleusMedialis.MuscleVolume = 540; //ml
SoleusLateralis.MuscleVolume = 450; //ml
};
If the optimal fiber length of different elements is
the same, this method yields the same result as before.
Renamed the folders holding muscle models from MusPar
to MuscleModels
for
better clarity.
The CameraClassTemplate.any
include file in model utilities has been renamed to
VideoLookAtCamera.any
to have the same name as the class template it
contains.
The template DEFAULT_PARAMETER_FOLDER
has been removed. It is no longer needed
since the same functionality is now provided by the ??=
operator.
The three scaling laws _SCALING_UNIFORM_EXTMEASUREMENTS_
,
_SCALING_LENGTHMASS_EXTMEASUREMENTS_
,
_SCALING_LENGTHMASSFAT_EXTMEASUREMENTS_
have been deprecated. They are
superseeded by the "Statistical Scaling Plugin" which cover the same
functionality. The AMMR guide on scaling have been updated to reflect this
change.
(ammr-2.4-changelog)=
This version of AMMR adds a number fixes and tweaks to the body models which
improves robustness of various kinematic and recruitment solvers.
Added:
Added kinematic joint angle limits in MoCap models for elbow and wrist joints
to prevent the kinematic solver from finding postures that are physiologically
impossible, such as bending the elbow backwards. These limits are active where
marker tracking solver would occasionally find a local minima with
unphysiological posture.
Tables with body model configuration parameter in the AMMR documentation now
contain links showing their options. For example, see the page on {doc}Leg
model parameter </bm_config/leg>
.
Fixed:
Fixed an issue with wrist joint segment's load time position (start guess).
This greatly improves kinematic robustness of all models with arms as it
creates a 'universal-joint' mechanism for wrist movement.
Further fixes made to pectoralis wrapping segment's robustness by optimizing
initial load time positions to ensure model kinematics can more easily solve.
Fixed missing LoadParameters
operation in LoadAndReplay
operation in MoCap
examples.
Fixed a problem with oblique muscles introduced in AMMR 2.4. A weak residual
force was added to Y rotation of buckle to eliminate this problem.
Corrected wrong order of nonlinear intervertebral disc stiffness polynomial
coefficients (affects only those who used polynomial disc stiffness).
Corrected small asymmetry in function for nonlinear intervertebral disc
stiffness in coronal plane (affects only those who used polynomial disc
stiffness).
Added:
Added a few utility helper class templates
Template_OperationSaveValues
Template_OperationLoadValues
Template_OperationUpdateValues
to make it easier to do common class operations without manually having to
create the operations with macros.
To create an operation which loads a file, do:
{code-block} AnyScriptDoc
Template_OperationLoadValues LoadAnySetFile = {
FileName= "MyFile.anyset";
};
* A more helpful error message is now printed when MoCap markers in the marker
protocol are missing the C3D file.
Changed:
* The load-time position of the box in the {ref}BVH_BoxLift model
<sphx_glr_auto_examples_Mocap_plot_BVH_BoxLift.py>
is now calculated using
the position of the hands. Also,
Main.ModelSetup.EnvironmentParameters.GravityDirection
defined in the
box.any
file is now calculated automatically from
Main.ModelSetup.LabSpecificData.Gravity
defined in the LabSpecificData.any
file. These changes should make the model more robust when dealing with
different BVH files.
* It is no longer necessasry to supply the MarkerName
argument in the
CreateMarkerDriver template MoCap models. The argument can still be used if
the marker name and the data entry in the c3d file are different.
* The references to muscle models in the joint muscles of the detailed hand have
been renamed to avoid future naming conflicts.
* The "via-points" for the Psoas Major muscle have been adjusted to ensure that
the muscles can better act the role of stabilizing muscle for the lumbar
spine.
Fixed:
* The Main.ModelSetup.CreateVideo
operation was missing in some of the MoCap
examples. This has been fixed. If you have this problem please update the
CreateVideo.any
file in your application.
* Fixed a wrapping problem with the posterior deltoid muscle in the
two-parameter shoulder calibration.
* Fixed a bug in the LegPressMachine example that caused the model view to zoom
to infinity.
* The robustness of muscle recruitment with the abdominal muscles (buckle
support
) was futher tweaked by increasing the the strength of the recruited
reactions on the balance of the buckle segment.
AMMR version 2.4.2 contains only a few minor changes and fixes compared to
version 2.4.1.
Changed:
SkullThoraxRotation
andSkullThoraxLateralbending
variable in the interface
folder. They are nowOptimizeBVH_Origin
classFixed:
Evaluate moments arms example
<sphx_glr_auto_examples_Validation_plot_EvaluateMomentArms.py>
where a fewOptimizeBVH_Origin
class template to fail toNew example models:
See more
<sphx_glr_auto_examples_Mocap_plot_BVH_OptimizeOrigin.py>
>Fixed:
* Fixed a small syntax error which caused the BVH example S1/S01_Trial02/
to
fail loading.
* Fixed a problem with the "interface" morphing between the TLEM2 pelvis and
Trunk Pelvis at the tip of the scarum bone. This bug was visible when using
#define BM_LEG_TRUNK_INTERFACE _MORPH_LEG_TO_TRUNK_
, (i.e. when using the
trunk pelvis morphology with the TLEM2 model), which is not the default.
* Fixed missing calibration for the new latissimus dorsi elements introduced in
AMMR 2.4. This fix also ensures that all latissimus dorsi elements are
calibrated in the same arm posture.
Changed:
AnySphericalJoint
) instead of implementing theThe new names of the explicit joint objects in ShoulderArm.Jnt
are:
SternoClavicularJoint
(-3 DOF)AcromioClavicularJoint
(-3 DOF)GlenoHumeralJoint
(-3 DOF)HumeroUlnarJoint
(-5 DOF)HumeroRadialJoint
(-1 DOF)ProximalRadioUlnarJoint
(-2 DOF)DistalRadioUlnarJoint
(-2 DOF)The HumeroUlnarJoint
is the elbow flexion extension, and together
HumeroRadialJoint
, ProximalRadioUlnarJoint
and DistalRadioUlnarJoint
adds
5 constraints leaving the forearm rotation degree of freedom.
Added:
* A few previously renamed nodes in pelvis were added back to improve backwards
compatibility when loading old seating models.
New example models:
See more
<sphx_glr_auto_examples_Other_plot_ExoConceptTrunk_BoxLift.py>
>See more
<sphx_glr_auto_examples_Other_plot_ExoConcept_BoxLift.py>
>See more
<sphx_glr_auto_examples_Orthopedics_and_rehab_plot_FemoralTorsionTool.py>
>See more
<sphx_glr_auto_examples_Orthopedics_and_rehab_plot_KneeForcesExample.py>
>See more <sphx_glr_auto_examples_mocap_plot_bvh_boxlift.py>
>New features:
VideoTool.CreateVideo
operation under the Study folder. This willTwo new utility macros, which make it easier to create 3D grid arrays, have
been added to the model repository. MESHTRIPLES(xarr, yarr, zarr)
and
MESHGRID(xarr,yarr,zarr)
. i.e. for creating arrays of all points in a 3D
grid array. More information in the file: {menuselection}Body --> AAUHuman
--> BodyModels --> GenericBodyModel --> Helper.ClassTemplates.any
Added a warning when the glenohumeral flexion/abduction in the mannequin
values can cause problems as start guess for the kinematic solver. A small
automatic pertubation of the Humerus orientation (Axes0
) is also added in
these cases so the shoulder rhythm will work as expected.
DefaultMannequinDrivers
section. Now the driver type (CType=Hard/Soft
),buckle support
). Muscle recruitment could previously fail with high lumbarFixed:
KneeFlexorMuscleActivity
) and muscle force (KneeFlexorMuscleForce
)._SCALING_XYZ_
would Fixed some logical issues with the ContactSurfaceDistanceAndVelocityDepLinPush.any
file.
Fix length calculation and drawing of the normal force
Fixed an extrapolation error when changing the internal setting
_SMOOTHING_FUNCTION_PROFILE_
to FUNC_PROFILE_BSPLINE
. We now cap the
height ratio to only be in the interpolation area. Values outside this area
infer that no contact is present.
Refactored the way Trunk nodes are mirrored between left and right. This is
more consistent with the remaining body parts and handled in the cadaver data
files.
example to evaluate moments arms <sphx_glr_auto_examples_Validation_plot_EvaluateMomentArms.py>
Changed:
clavicle
entry in the Anthropometric.SegmentMasses
folder have beenshoulder
. This makes it consistent with the rest of varaibles inOptimalFiberLength
and TotalTendonLength
in the TLEM leg models are noL5LContactNode
,L4LContactNode
,L3LContactNode
,L4LContactNode
,L1LContactNode
nodes were scaled using the Right nodeAnyFolder&
references to the single rigid:::{note} A number of nodes have been renamed in the process. If you have
problems loading old model due to missing nodes, please consult the new model
examples to find the new names.
:::
r
which could collide with built-in r
Removed:
_LEG_MODEL_Leg_
has been completelyBM_MANNEQUIN_DRIVER_ANKLE_EVERSION_RIGHT/LEFT
) have been deprecated.BM_MANNEQUIN_DRIVER_ANKLE_SUBTALAR_EVERSION_RIGHT
) can now beAnyViaPointLigament
->AnyLigamentViaPoint
.Fixed:
<ANYBODY_PATH_MODELUTILS>/Reactions
support filesAdded:
DriverBasedOnLoadPos
which makes it easy tojoint strength evaluation
<sphx_glr_auto_examples_Validation_plot_EvaluateJointStrength.py>
.BM_TRUNK_LUMBAR_LIGAMENTS
define statement.Changed:
"ADL gait (MoCap model)"
<sphx_glr_auto_examples_MoCap_plot_ADL_Gait.py>
has been updated with moststanding lift example
<sphx_glr_auto_examples_ADLs_and_ergonomics_plot_StandingLift.py>
have beenTuber_ischiadicum
node to Seat_contact
as it was misaligned to theTuber_ischiadicum
nodes have been addedFixed:
OptimizeAnthropometricsOnOff.any
preventing models with only one leg
- Fix a problem single leg models in AnyMocap. The file
included from being loaded.
- Removed two unused measures with references to thorax in the scapula and
clavicula segments. The references could cause problems for ´AnyKinCOM` which
uses search when including segments. Thanks to Handa Kensuke from Terrabyte
helping fix this error.
- Fix bug in initial wrapping guess for Triceps LH muscle wrapping. This bug
could cause the left side Triceps LH muscle to wrap incorrectly at shoulder.
- Fix calibration of of element 4 and 5 of the latissimus dorsi muscle. These
two stands of the muscles where not included correctly in the calibration
study when using the three element muscles model.
Changed:
Knee Simulator example <example_kneesimulator>
has been{rst-class} without-title
:::{warning} Model results can change!
A bug related to scaling was fixed in AMMR 2.3.2. This affect models using the
{bm_constant}length-mass-fat<_SCALING_LENGTHMASSFAT_>
and
{bm_constant}uniform <_SCALING_UNIFORM_>
scaling, when only Body Height is
specified. The results can change as models more accurately match the
requested body height.
:::
Fixed:
SelectedOutput
section.max()
of the muscle elementssum()
. Thanks to Dr. Enrico De Pierie from University_SCALING_LENGTHMASSFAT_
and_SCALING_UNIFORM_
and only specifying the body height as input._SCALING_XYZ_
(used in the MoCap models) and_SCALING_STANDARD_
(50 percentile) which were both correct."Spine Pressure validation
model" <sphx_glr_auto_examples_Validation_plot_WilkeSpinePressure.py>
lyingtEnd
was set after the last data point in the BVH data file.Changed:
"Wilke Spine Pressure"
<sphx_glr_auto_examples_Validation_plot_WilkeSpinePressure.py>
validation_SCALING_UNIFORM_
. The updated model improved the validation" MoCap model (ADL gait)"
<sphx_glr_auto_examples_MoCap_plot_ADL_Gait.py>
has been updated so theVideoLookAtCamera
camera class template in the AMMR now saves videos asAnyCameraLookAt.RenderUserInterfaceViewState
in AnyBody version 7.3.2. TheCamera.RenderUserInterfaceViewState=Off;
in the class template.Added:
AnyBody73_ExperimentalShortestPathSolver
setting is deprecated and no{code-block} AnyScriptDoc
System.Compatibility.ShortestPathSolverVersion = 2; // 4 is default (new wrapping)
Changed:
"ADL Gait"
<sphx_glr_auto_examples_MoCap_plot_ADL_Gait.py>
example. The model now hasPmet
) contributions from artificial muscles definedAnyMuscle
derived classes. Pmet
contributions from tools, such as GRFAnyGeneralMuscles
will no longer be part of studies'Fixed:
Fixed incorrect values in "SelectedOutput" for four reaction moments
variables, which were wrong due an implementation change of
AnyRevoluteJoint
. The following variables in
SelectedOutput.Trunk.JointReactionForce
were incorrect.
C2C1FlexionExtensionMoment
C2C1LateralMoment
C1C0AxialMoment
C1C0LateralMoment
The values were wrong because they referered to the internal generalized force
output of AnyRevoluteJoint
. (i.e. Constraints.Reactions.Fout
). The values
Fout[3]
and Fout[4]
can not be interpreted as real physical reaction
moments because AnyRevoluteJoint
is implemented using euler angles.
:::{warning}
The use of generalized forces (Fout
) is
discouraged, and will be removed in the AMMR. Instead use the force and moment
variables in AnyRefFrameOutput
subfolder instead.
:::
Fixed incorrect volume of Satorius muscle in TLEM1 and TLEM2. Thanks to Dr.
Adam D. Sylvester from Johns Hopkins School of Medicine and Dr. Patricia A.
Kramer from the University of Washington for pointing out the error. The error
occurred since the satorius in the original TLEM1
paper was muscles in
series with a pseudo insertion/origin on the femur. Both of these muscle
elements were therefore listed with the full PSCA of Satorius. This detail was
missed in the AnyBody TLEM1 and TLEM2 implementation where Satorius was
implemented two parallel elements (TLEM1) and a single element (TLEM2). Hence
the Satorius had twice the correct volume.
Fixed a problem when C3D files are malformed and doesn't contain a
FORCE_PLATFORM.ZERO
variable. The C3D standard specifies that the variable
should exist but since it not used in the models the reference could just be
remvoed.
Fixed an problem which prevented the ANSUR scaling plugin example from working
correctly 7.3.0
Fixed incorrect output of ThoraxHumerus
interface measures. The mesure
wasn't used by other parts of the AMMR until now so the bug had no
consequences in previous AMMR versions.
Fixed mass calculation of the foot and talus segments in the GaitVaughan
validation model.
Removed:
BM_TRUNK_CERVICAL_LIGAMENTS
switch which had no effect sinceAdded:
Added a new Full Body {ref}"ADL Gait"
<sphx_glr_auto_examples_MoCap_plot_ADL_Gait.py>
MoCap Example based on the
"Rehazenter Adult Walking Dataset" by Schreiber and Moissenet
(2019). The model is configured to
run all 50 subjects and 1145 trials in the data set. However, you must
download the actual data separately from
FigShare
where it is hosted under a Creative Commons license.
New GUI plugin which uses statistical information from the ANSUR database to
set anthropometric values in AnyBody. A small example model is added
Examples/StatisticalScalingPlugin
which shows how to use the plugin.
Added a new option to optimize "head width" / "head depth" / "neck length" /
"Tibia torsion" / "hand breadth" as part of the OptimizeAnthropometricsOnOff
class_template in the AnyMoCap framework.
Added new rotation vector based measures in the interface folder for the arm
degrees of freedom. These measures (Interface.Right.RotVectorMeasures.*
) for
joint angles do not have a clinical meaning but are useful when exporting and
importing joint angles.
Added a new {ammr:bm_statement}option for setting custom muscle calibration
<BM_CALIBRATION_TYPE>
. I.e. an option which disables calibration so the user
can add their own code.
```{code-block} AnyScriptDoc
#define BM_CALIBRATION_TYPE CALIBRATION_TYPE_CUSTOM
#include "<anybody_path_body>\HumanModel.any"</anybody_path_body>
// Manually include calibration code.
Main.HumanModel.Calibration = {
#include "<anybody_path_body>/LegTLEM/Calibration/CalibrationSequenceRight.any"
#include "<anybody_path_body>/LegTLEM/Calibration/CalibrationSequenceLeft.any"
#include "<anybody_path_body>/Arm/Calibration/CalibrationSequenceRight.any"
#include "<anybody_path_body>/Arm/Calibration/CalibrationSequenceLeft.any"
};
```</anybody_path_body></anybody_path_body></anybody_path_body></anybody_path_body>
:::{note}
If you need to modify the calibration code, copy it to the application folder
and include it from there.
:::
Changed:
{code-block} AnyScriptDoc
System.Compatibility.AnyBody73_ExperimentalShortestPathSolver = On;
:::{seealso}
The release notes for the AnyBoy Modeling System has more information
on the new and faster experimental wrapping algorithm.
:::
Split the SternoCleidomastoid muscle up into two muscle branches. This makes
the two heads of the muscle able to work independent.
Add extra muscle-via points on for the Latissimus dorsi on the Thorax segment.
This change fixes wrapping problems where the Latissimus dorsi muscle strands
would slide off the wrapping surface representing the thorax segment.
Renamed all deprecated muscle class names. AnyViaPointMuscle
-> AnyMuscleViaPoint
and AnyShortestPathMuscle
-> AnyMuscleShortestPath
The AnyMoCap framework now uses a more robust way of saving optimized
parameters from the parameter optimization studies, when using AMS 7.3.
Pectoralis Major has been split from 5 into 10 branches to better represent
the real fiber direction of the muscle. Similarly the origins of the new
Pectoralis Major muscles have been moved to align with real anatomy of the
muscle.
Changed the format used by the AnyMoCap models when transferring joint angles
from the mrker tracking step to inverse dynamics simulation. The joint-angles
for the arms and pelvis rotation are now written in terms of rotation vectors
instead of Euler angles. This fixes potential singularity problems. The
temporary joint angle files produced by the MoCap models have been renamed to
indicate the data is no longer Euler angles.
:::{note}
This means that the data in these temporary files can not easily be interpreted from a clinical
point of view. Create your own output files with physiological joint angles if you need to export that data.
:::
The body model configuration plugin have been updated. This fixes a number of
smaller issues and bugs.
The via points of PeroneusLongus and PeroneusBrevis have been adjusted to
ensure the muscles maintain moment arm in a larger range of motion.
Rectus abdominis muscle has been split into eight branches to better represent
geometry, than what is possible with one branch. The strength between the new
branches has been split evenly. Additionally, the PCSA has been increased from
$2.6 cm^2$ to $7.9 cm^2$ according to McGill et al 1988, the $2.6 cm^2$
originates from a study with elderly subjects, the McGill study used mid age
subjects.
Adjusted the origin of Serratus Anterior 1 so it aligns with the geometry of
the rib on which it originates.
Changed the way the deltoid wrapping surfaces move relative to humerus. This
changes makes it wrapping more robust to deltoid flipping over to the wrong
side of the wrapping surface in extreme postures.
The BVH virtual marker protocol have been adjusted. If older BVH models is
used with AMMR 2.3 a warning/error is triggered to warn the user that the
protocol needs to be updated.
Fixed:
SelectedOuput
folder:HipAbductorMuscleForce
, HipExtensorMuscleActivity
,HipExtensorMuscleForce
, KneeFlexorMuscleActivity
andKneeFlexorMuscleForce
.Main.ModelSetup.BVHFileData.ModelDrawOnOff
.evaluate arm joint strength
<sphx_glr_auto_examples_Validation_plot_EvaluateJointStrength.py>
. The range_SCALING_XYZ_
and both legs excluded.Removed:
Tools/ModelUtilities/ContactMuscles/*
Added:
{code-block} AnyScriptDoc
#define BM_ARM_DELTOID_WRAPPING _DELTOID_WRAPPING_CYLINDERS_
See {bm_statement}BM_ARM_DELTOID_WRAPPING
for possible options.
Fixed:
AnyInputBVH
class. See the updated {ref}BVH_Xsens
example <sphx_glr_auto_examples_Mocap_plot_BVH.py>
, and port your existingAnyMoCap models <anymocap>
, where model viewMain.ModelSetup.Views.SetViewMacros
would not trigger a redrawChanged:
HumanModel.Anthropometrics.SegmentDimensions
folder:HeadWidth
, HeadDepth
, TrunkDepth
, NeckLength
, FootWidth
)Removed:
#define ANYBODY_ENABLE_MODIFIED_AMMR_NOTICE
Added:
Fixed:
BodyModel.Interface
now measures theWristJointSeg
segmentBM_SCALING
_SCALING_LENGTHMASSFAT_
.LegCal1
) includedLegCal1
wouldLegCal1
only calibrates muscles which areChanged:
Fixed:
_SCALING_XYZ_
scaling law.AnyForceSurfaceContact
.SPLine.AugLagCoef
value and the using full wrapping solver.Changed:
link 1
<sphx_glr_auto_examples_MoCap_plot_Plug-in-gait_Simple_FullBody_GRFPrediction.py>
link 2 <sphx_glr_auto_examples_MoCap_plot_BVH.py>
). This greatlyAdded:
New options to optimize pelvis-, trunk- and head- widths and depths in the
OptimizeAnthropometricsOnOff
class template.
Simple library of Python utility functions which can be used from AnyScript.
This first version only adds a few functions from the Python's os.path
module. They are used by including the Python.Utils.any
file:
```{code-block} AnyScriptDoc
#include "<anybody_path_modelutils>/Python/Utils.any"</anybody_path_modelutils>
AnySwitchVar file_exists = PyUtils.os.path.exist("some-file")
```
Added:
New implementation of the Deltoid muscles that uses wrapping instead of
previous rake-segment/via-point approach. The new wrapping deltoid was
developed by Marta Strzelczak from Ecole de technologie superieure, Montreal,
CA. The new implementation is used by default but the old implementation can
be enabled with the {bm_statement}BM_ARM_DELTOID_WRAPPING
switch.
Please see the {ref}Shoulder-Arm Documentation <DeltoidWrapping>
for more
information.
Added new example model of a Knee Simulator using a knee implant model and
force-dependent kinematics (FDK). See the {ref}Knee Simulator example
<example_kneesimulator>
for more information.
New model plugin (BodyModel Configurator) which provides a graphical user
interface to configure the Body Model (i.e. setting the BM_*
parameters).
Please see the blog
post introducing the BM
plugin.
Added a new {ref}Posture prediction model
<sphx_glr_auto_examples_ADLs_and_ergonomics_plot_PosturePredictionModel.py>
based on standing posture. The model can predict posture as a consequence of
applied loads in hands. It does this by minimizing joint torques and applying
balance drivers which account for external applied loads.
Added new standing model example which uses soft constraints and GRF
prediction. {ref}See this link
<sphx_glr_auto_examples_ADLs_and_ergonomics_plot_StandingModel.py>
. This new
model is good starting point for making standing/balancing models, and the
corresponding standing model in the template generator has also been updated.
Added new kinematic rhythm to determine the Sterno-Clavicular axial rotation,
effectively removing the degree of freedom from the shoulder model. The
rhythm distributes the axial rotation equally between SC and AC joint. The
rhythm is active by default, but can be disabled with
{bm_statement}BM_ARM_CLAVICULA_ROTATION_RHYTHM
switch.
More documentation on the {ref}AnyMoCap framework and the settings available
<anymocap-settings>
.
New measures for shoulder angles based on recommendation from International
Society of Biomechanics (ISB). The measures are available in the
BodyModel.Interface
folder. The new measures are:
AcromioClavicular
([Wu et al. 2005] section 2.4.3)
Protraction
MedialRotation
PosteriorTilt
ScapulaHumerus
([Wu et al. 2005] section 2.4.4)
PlaneOfElevation
Elevation
InternalAxialRotation
ThoraxScapula
([Wu et al. 2005] section 2.4.6)
Protraction
MedialRotation
PosteriorTilt
ThoraxHumerus
([Wu et al. 2005] section 2.4.7)
PlaneOfElevation
Elevation
InternalAxialRotation
Three new BM switches to control add default drivers for the individual neck
degrees of freedom:
{bm_statement}BM_MANNEQUIN_DRIVER_SKULL_THORAX_FLEXION
BM_MANNEQUIN_DRIVER_SKULL_THORAX_LATERALBENDING
{bm_statement}BM_MANNEQUIN_DRIVER_SKULL_THORAX_ROTATION
A default center of mass kinematic measure were added
Main.HumanModel.BodyModel.Interface.CenterOfMass
Markers in MoCap models now changes color to gray when they drop out (i.e.
have a weight of zero).
Added new ASIS
/PSIS
/PT
bony-landmark nodes to the
PelvisSeg.Right
/Left
folders. This ensures the bony landmarks are easily
available as nodes in all models even if the legs are not included.
Added a new setting (#define MOCAP_FILTER_JOINT_ANGLES ON/OFF
) to the
AnyMoCap frame work. If enabled a filter will be applied to the intermediate
set of joint angles generated by the Marker Tracking step. This can be useful
to remove high accelerations due to kinematic limit constraints (e.g. Joint
angle limits, surface contacts etc.).
Added a #define MOCAP_PARAMETER_FILE_PREFIX
switch to override the prefix
for parameter identification files (containing marker position and scaling).
This can be useful in special cases where subjects share a common parameter
identification file.
Added two new default arguments (MANNEQUIN_FOLDER
, BODYMODEL_FOLDER
) to
the class_template Template_MannequinDrivers
, making it easier to reuse the
class template as a general-purpose driver for all joint angles.
Added a PreAnalysis
step to the video recorder template
(CameraClassTemplate.any
). Operations placed in the PreAnalysis
step will
be executed before the video recorder starts.
Added a new warning if using low-pass filters in the AnyMoCap model without a
zero phase filter (e.g. warn if FilterForwardBackwardOnOff
is set to Off
)
Added a new option for choosing a different implementation of the kinematic
sliding between scapula and thorax. The new scapula sliding implementation
uses multiple points on the ribs and a norm measures to surfaces on the
scapula. This work is preparation of a new thoracic model where ribs are
individual segments. Note that this implementation is still a
work-in-progress. The new thorax-scapula contact can be enabled with the
{bm_statement}BM_ARM_THORAX_SCAPULA_CONTACT
switch:
{code-block} AnyScriptDoc
#define BM_ARM_THORAX_SCAPULA_CONTACT _MULTIPLE_POINT_CONTACT_
DEFAULT_PARAMETER_FOLDER
class template for creating folders with```{code-block} AnyScriptDoc
DEFAULT_PARAMETER_FOLDER Settings(
NPARAM = 2,
PARAM_1 = TibialRotation, PARAM_1_TYPE = AnyMat33,
PARAM_2 = Offset, PARAM_2_TYPE = AnyVar
) = {
// Default values are specified in the defaults folder.
Default.TibialRotation = RotMat(5*pi/180,y);
Default.Offset = 0.005;
};
// Parameters can now be overridden if desired.
Settings.TibialRotation = RotMat(10*pi/180,y);
```
Changed:
Re-implemented the origins for the Semitendinosus and Biceps Caput Longum
muscles in the TLEM-2.1 model based on the original digitized insertions and
MRI scans. Better correspondence with the original MRI scans increases the
moment-arms through range of motion.
New wrapping surfaces for Semitendinosus and Biceps Caput Longum muscles based
on original MRI scans. New surfaces ensure that muscles don't penetrate the
pelvis bone at high hip flexion angles.
Reimplement insertion of Gluteus Medius/Minimus of the TLEM2.1 model based on
original TLEM2 dataset. This improves range of motion in which Gluteus Medius
and Gluteus Minimus has a moment arm for internal rotation of the hip.
Kinematic rhythms for the shoulder, lumber-spine and cervical-spine can now be
specified as soft contraints. The setting is controlled by setting the BM
control statement BM_XXX RHYTHM
to {bm_constant}_RHYTHM_SOFT_
. For
example:
{code-block} AnyScriptDoc
#define BM_ARM_SHOULDER_RHYTHM _RHYTHM_SOFT_
Re-implemented the origins for the Semitendinosus and Biceps Caput Longum
muscles in the TLEM-2.1 model based on the original digitized insertions and
MRI scans. Better correspondence with the original MRI scans increases the
moment-arms through range of motion.
New wrapping surfaces for Semitendinosus and Biceps Caput Longum muscles based
on original MRI scans. New surfaces ensure that muscles don't penetrate the
pelvis bone at high hip flexion angles.
Reimplement insertion of Gluteus Medius/Minimus of the TLEM2.1 model based on
original TLEM2 dataset. This improves range of motion in which Gluteus Medius
and Gluteus Minimus has a moment arm for internal rotation of the hip.
The {doc}TLEM2 model</body/leg_tlem2_model>
is now the default leg model
unless the model is configured otherwise.
All AnyMoCap examples where changed to use the {bm_constant}_SCALING_XYZ_
scaling law. This scaling law is similar to
{bm_constant}_SCALING_LENGTHMASSFAT_
, but allows for optimization of all
segment dimensions (hence the XYZ
name).
Scaling law {ammr:bm_constant}_SCALING_XYZ_
now has a scaling factors to
control the neck scaling. Before neck scaling were controlled by
the head scale factors.
All MoCap model examples now use the option (UseC3DWeightResiduals=ON
) in
the marker protocols. This ensures that the marker weights are reduced to zero
when a marker drops out (i.e. when the residual value in the C3D file becomes
negative).
AnyMoCap examples are updated with extra margin at the start/end of the
analysis compared to the data in the C3D file. This prevents inaccurate
kinematics due to low-pass filter transients.
Add warning to AnyMoCap models when tStart
/tEnd
are very close to the
start/end times of the data in the C3D file. This can cause inaccurate
kinematics at the very start/end of the simulation due to low-pass filter
transients.
Increased the resolution tibia bones for the TLEM1 and TLEM2 models.
All examples now have their body model configuration in a separate file
(usually, BodyModelConfiguration.any
) to accommodate the new Body Model
Configurator plugin.
The MoCap models now use joint angles for all degrees of freedom when
transferring motion from MarkerTracking study to the Inverse dynamic study.
This means that rhythms can now be soft constraints when running the Marker
tracking study, and markers can override the kinematic rhythms if needed.
Refactored all examples to avoid the confusing paradigm with a reference
called Model.HumanModel
pointing to HumanModel.BodyModel
.
Improvements to the accuracy of the wrapping cylinder used by Teres Minor and
Teres Major.
The interface morphing algorithm (which morphs pelvis of the trunk or leg
dataset to match) now includes the ASIS/PSIS/PT bony landmarks as control
points. This change ensures that bony-landmarks of the Trunk and Leg datasets
map to the exact same point.
Models generated from templates now fail with a descriptive error message if
they are loaded with an older unsupported version of the AMMR.
Fixed:
PedalConnectNode
). The point in the footFlexor_Digitorum_Profundus_Digit5
name.CustomScaling.any
for custom scaling scenariosHumanModel.DefaultMannequinDrivers
.pectoralis_major_thoracic_part_3
inStanding Model example
<sphx_glr_auto_examples_ADLs_and_ergonomics_plot_StandingModel.py>
, where theCameraClassTemplate.any
) when specifyingRemoved:
Removed previously deprecated MoCap model which were not based on the AnyMoCap
framework.
Removed all references to the previously deprecated BM_TRUNK_NECK
switch.
Removed outdated versions of JointLimits_template.any
and
KinLimitsDriver_template.any
from the AnyMoCap folder. Updated version of
the files still exists in the Tools\ModelUtilities\KinematicLimits
folder.
All uses of the Sterno-Clavicular axial rotation in all examples, since this
DOF is now handled by a kinematic rhythm which distributes the rotation
equally between SC and AC joint.
The BM_MANNEQUIN_DRIVER_INDIVIDUAL_WEIGHTS
switch was removed, since the
individual weights can be set directly using
{code-block} AnyScriptDoc
Main.HumanModel.DefaultMannequinDrivers.KneeDriverRight.WeakDriverWeight = 0.1;
The AMMR 2.1.1 version is a minor release of the AMMR with smaller changes and
bugfixes. The AnyBody Managed Model Repository now has a DOI
(10.5281/zenodo.1250764). This is
handled by Zenodo.org (The European Open Science platform
hosted at CERN).
Added:
model. This RefNode was also present in the TLEM1 model and was used by few
- Added a Leg.Seg.Foot.GroundJoint
RefNode to the foot segment of the TLEM2
applications.
- New GroundVelocity
setting added to the ForcePlateAutoDetection
class_template, which makes class usable with instrumented treadmills.
- All force plate types now have a user-definable ForcePlate.CalMatrix
variable. The feature is useful to easily compensate for errors in the c3d
file (i.e. swapped channel and wrong sign)
Changed:
multi-trial MoCap example
<sphx_glr_auto_examples_Mocap_plot_Plug-in-gait_MultiTrial_StandingRef.py>
Fixed:
Corrected the default mass of the patella segment in the TLEM2 model from zero
to 0.025.
Add missing unilateral reaction between TS node on Scapula and the Thorax when
using the shoulder rhythm.
Adjusted the initial wrapping vectors for the semitendinosus, semimembranosus,
and biceps caput breve muscles around the knee. This has no influence on the
output of the model, and is only done to reduce the risk of the muscles
wrapping the wrong direction around the wrapping surface.
AnyMoCap:
The high memory usage of the AnyMoCap BVH model has been fixed. The high
memory usage was due to a reference in the CreateMarkerDriver
class
template which caused the studies to include the BVH input data multiple
times in the output.
PointScaleFactor != 1
). The PointScaleFactor was applied twice to the zMOCAP_CREATE_PARAMETER_ID_SHORTCUT
is set to OFF
.Added:
New {ref}squat example
<sphx_glr_auto_examples_ADLs_and_ergonomics_plot_Squat.py>
model which
demonstrates a parameterized squatting motion.
New #class_template
for adding limit drivers to kinematic measures. Can be
included with #include
"<ANYBODY_PATH_MODELUTILS>/KinematicLimits/KinLimit_template.any"
Muscle ColorScale can now be set from the
Main.DrawSettings.Muscles.ColorScale
. If you port an older model to the new
AMMR you will need to update your DrawSettings.any
file.
AnyMoCap framework:
New argument DRAW_SCALE
in the CreateMarkerDriver
class_template to
control the visual size of markers.
ALLOW_MULTI_LIMB_CONTACT=OFF
will ensure that both legs cant be in contactAdd support for the {doc}/body/detailed_hand_model
in AnyMoCap based
models.
New BM_FOOT_MODEL
parameter, as preparation for integrating the
Glasgow-Maastricht foot model (GM-Foot) back into the AMMR. Currently, the
parameter can only be used for excluding the feet (#define BM_FOOT_MODEL
_FOOT_MODEL_NONE_
). making it easier to work on integrating the GM foot
model.
:::{seealso}
Adding the GM-Foot to the TLEM2 model is a work in progress. An early version is
released on GitHub: https://github.com/AnyBody/gm-foot
:::
Changed:
BodyModel.Interface.Trunk.PelvisPosX/Y/Z
.:::{warning}
This change will affect models using the default mannequin drivers unless
the driver values are updated.
:::
The Wilke spine pressure validation examples have been updated and now uses
the TLEM2 lower extremity model.
In {bm_constant}_SCALING_XYZ_
scaling law the definition of
length/depth/width of the scapula is corrected to match the anatomical
definitions.
Updated the AAU Mandible Model introduced in AMMR 2.0.0. By accident the
authors did not share the exact same version of the model that was used in the
publication by Andersen et al. 2017 This
is now corrected and the validation example produces the same results as
published version.
TLEM 2 model
Pectineus implementation has been adjusted based on the original MRI Scans.
Only the most lateral element of the pectineus muscle was changed. This was
done to prevent it from penetrating the femoral head in some situations.
Tweaked the Gluteus Maximum Superior implementation to reduce the risk of
collisions between muscle insertions and the wrapping surface. The two most
proximal insertion points of the Gluteus Superior are shifted more distally,
and the locations of the wrapping surfaces are tweaked.
AnyMoCap Framework:
Models now uses the default kinematic solver for the inverse dynamic
analysis.
AnyMechObjectExcluder
MechObjectExlcude
member of the Study. This has noMechObjectExlcude
canPlug-in-gait_MultiTrial_StandingRef
to make it a better starting point forCriterion.UpperBoundOnOff =
Off;
to improve the stability of the simulations.Fixed:
Shoulder-arm model:
Fixed problems with Pectoralis Major wrapping. Wrapping could fail
unpredictively when muscles wrapped in the intersection between the coracoid
wrapping and pectoralis minor cylinder. The coracoid wrapping cylinder has
been removed, and the others has been made longer. This creates a more
robust wrapping for the Pectoralis Major muscle.
Fixed problems with via points of the wrist extensor muscles colliding with
the wrist wrapping surface in normal range of motion. The via point of
Extensor indicis Via_Extensor_Indicis_pos
has been slightly adjusted and
the location of the wrist wrapping cylinder MedialExtensorCyl
has been
improved.
Detailed hand model:
Fix a problem causing the hand to scale incorrectly.
Fixed compatibility between the detailed hand and scaling law
{bm_constant}_SCALING_XYZ_
.
Lower extremity models:
Fixed various warnings when running calibration routines with the lower
extremity models.
#define BM_LEG_MODEL
_LEG_MODEL_LEG_
). The misaligned pelvis muscles insertions was a regressionFix missing left leg calibration operations when right leg was excluded.
MoCap models:
Weak residuals for GRF prediction: Ensure the same strength is used in all
directions for the weak recruited actuators.
CreateMarkerDriver
class template which prevented theUseC3DWeightResiduals
from having any effect.Wrong masses in the deprecated "old" MOCAP models. The model was not using
the body mass specified in Main.TrialSpecificData.Anthropometrics.BodyMass
Other fixes:
Wrapping convergence for multiple muscles has been improved. This was done
by tweaking the string-mesh of the muscles to improve the wrapping solvers
ability to find the solution within the given number of iterations.
The Twente Lower Extremity Model version 2.0
dataset, developed in the
TLEMsafe EU project was implemented in the AMMR repository. The model is not
the default model, but can be enabled with the {ref}BM parameter <bm-config>
#define BM_LEG_MODEL _LEG_MODEL_TLEM2_
The model is versioned TLEM 2.1, to indicate the number of changes and
correction which has been added in the process. The changes and updates to the
TLEM2 dataset was done in the Life Long
Joints
EU research project (paper submitted for publication).
The most important changes to the TLEM 2 dataset include the following:
Updated wrapping for the Gluteus Maximus, Iliacus, Psoas around the hip.
Small correction to wrong insertion points for Adductor Longus and Vastus
Medialis.
See the dedicated {doc}TLEM2.1 page </body/leg_tlem2_model>
page for more
information.
AnyMoCap example gallery
<mocap_examples>
for more information.ammr/tools/GRFPrediction/
. See the {ref}MoCap examples
<sphx_glr_auto_examples_Mocap_plot_Plug-in-gait_Simple_FullBody_GRFPrediction.py>
GeomScale
function to the patella segment.Tools
folder helper files and other models which don'tBody/
or Application
.Body/AAUHuman/Toolbox
to Tools/ModelUtilities
Body/AUHuman
to Body/Mandible_AU
HumanModel.AnthroDataSubject
is renamed to HumanModel.Anthropometics
. TheSegmentDimensions
andSegmentMasses
subfolder.BM parameters <bm-config>
.BM
parameter<bm-config>
#define BM_SCALING _SCALING_XYZ_
. See the {ref}guide
on scaling <scaling-intro>
._SCALING_STANDARD_
(e.g #define BM_SCALING
_SCALING_STANDARD_
) which scales all models to default standard 50% male._SCALING_NONE_
, which disables scaling. E.g. models gets thethe documentation for the model
</body/aalborg_mandible>
or the {ref}validation example
<sphx_glr_auto_examples_Validation_plot_AalborgMandible.py>
.BM parameters <bm-trunk-config>
were updated to have control over eachBM parameters <bm-arm-config>
have been updated for more convenientBM_ARM_DETAILED_HAND
and BM_ARM_SHOULDER_RHYTHM
are now used insteadGeomScale
function the Clavicula segment.AnyMuscleModel3E
and AnyMuscleModel
in the AnyBody Modeling System 7.1.
- The "optimal fiber length" variable renamed from
Lfbar
toLf0
- The "Pennation angle" variable renamed from
Gammabar
toGamma0
- The "Tendon strain at F0" variable renamed from
Epsilonbar
toEpsilon0
Restructured the muscle model section of both TLEM1 and TLEM2 models.
All the original TLEM based muscle parameter are now located under:
Leg/ModelParameters/Muscles
All scaled muscle parameters are located in Leg/MusPar/SubjectMusPar
. This
folder references the TLEM muscle and applies strength scaling etc. The
SubjectMusPar
folder and all subfolders are implemented with
class_template
. Thus, all muscle parameter can now be overridden in
applications by just assigning the variables a new value: E.g.
{code-block} AnyScriptDoc
Main.HumanModel.BodyModel.Right.Leg.MusPar.SubjectMusPar = {
GastrocnemiusMedialis.MuscleVolume = 300; // Volume in mililiters
GastrocnemiusMedialis.Pennationangle = 15; // (in degrees)
};
- include muscles to the calibration study with search functions.
- drive the postures using the measures from the interface folder to remain
anatomically similar throughout future versions.
BM_CALIBRATION_TYPE
parameter.For example:
{code-block} AnyScriptDoc
#define BM_CALIBRATION_TYPE _CALIBRATION_TYPE_2PAR_
Added new initial guess for wrapping muscles, which make the wrapping more
when the model starts in extreme postures.
Updated many examples to use the TLEM 2.1 model. See the {ref}example gallery
<example-gallery>
.
BM mannequin drivers are now implemented with a class_template allowing all
weights and other settings to be customized.
A default HumanModel.Mannequin
folder is now automatically created with a
class_template
when no user-defined Mannequin file is set.
A default Main.DrawSettings
folder is now automatically created with a
class_template
when no user-defined {bm_statement}DrawSettings
<BM_DRAWSETTINGS_FILE>
file is set.
Extra Mannequin drivers for the individual shoulder degrees of freedom:
{any}Sterno clavicula protraction <BM_MANNEQUIN_DRIVER_STERNOCLAVICULAR_PROTRACTION_RIGHT>
,
{any}Sterno clavicula elevation <BM_MANNEQUIN_DRIVER_STERNOCLAVICULAR_ELEVATION_RIGHT>
,
{any}Sterno clavicula axial rotation <BM_MANNEQUIN_DRIVER_STERNOCLAVICULAR_AXIAL_ROTATION_RIGHT>
The initial positions of the pelvis now use the anatomical reference frame.
This follows the logic from the initial rotation of the pelvis which also uses
the anatomical frame.
DeltoidMuscleConnector segment loading time positioning now depends on the
Humerus segment.
Added class template to easily create videos from AnyScript
model.
The tool requires that FFmpeg is installed. The
class template can be found in:
<ANYBODY_PATH_MODELUTILS>/Video/CameraClassTemplate.any
. See this blog
post.
In TLEM models make the opacity of the patellar tendon dependent on the
opacity of the patellar surface.
New AnyDoc
classes are added to the different body model, so the GUI can
create direct links to the documentation.
Simplify the Scapular reactions to the thorax segment.
Foot contact nodes are aligned with the AnatomicalFrame
Updated the Wilke Validation example to reflect the forces for the AMMR 2.0
repository.
Updates to BM parameters:
New {bm_statement}BM_ARM_DETAILED_HAND
parameter for the detailed hand.
The old BM_ARM_DETAIL_HAND_RIGHT
/LEFT
are deprecated.
BM_ARM_SHOULDER_RHYTHM
parameter for controlling the shoulder rhythm.BM_ARM_SHOULDER_RHYTHM_RIGHT
/LEFT
are deprecated.BM_JOINT_TYPE_<joint>_<side>
parameter for completelyBM_JOINT_TYPE_HIP_RIGHT
)BM_LEG_MODEL
parameter for setting the type of leg modelBM_LEG_RIGHT
/{bm_statement}LEFT <BM_LEG_LEFT>
areON
/{bm_constant}OFF
options.StandingModelScalingDisplay
from loading when usingLeg <old-leg-model>
model.MuscleNames.any
and thus fromsphx_glr_auto_examples_Sports_plot_CrossTrainer.py
.sphx_glr_auto_examples_ADLs_and_ergonomics_plot_StandingModel.py
fromApplication/Examples/Deprecated