Updating from AMMR 3#

Models created in earlier versions of AnyBody may need to be updated to work with AnyBody 8.1 and the new model repository (AMMR 4.0).

This document outlines important changes which may break older models or change results.

Model changes#

Default pelvis#

The default pelvis morphology is now the one from the trunk model, as oposed to the pelvis belonging to whatever leg model has been selected. This was done to get a consistent trunk model and considering all the recent improvements to the trunk. This option can be controlled with:

#define BM_LEG_TRUNK_INTERFACE _MORPH_LEG_TO_TRUNK_

In practice, this means that the morphology of the leg pelvis is moprhed to match the Trunk pelvis. Using _MORPH_TRUNK_TO_LEG_ instead will revert to the old behaviour.

Trunk changes#

The trunk model in AMMR 4.0 is completly new, and many parts of the model structure has changed.

Warning

These postural changes will affect older applications. Especially, in models where trunk joint angles are driven directly and in models where a driver is applied directly on the pelvis segmental reference frame.

Muscle groups in the model tree#

Muscles elements are now grouped into folders representing the physiological muscles.

References to their old locations may there break. You can enable backwards compatibility by setting:

#define BM_COMPATIBILITY_MUSCLE_STRUCTURE ON

This add the old strucuture in addition to the new one, and should make it easier to update the model.

BodyModel folder restructure#

The folder names and structure of the whole body model has been streamlined. e.g. Main.HumanModel.BodyModel.Right.ShoulderArm.Seg -> Main.HumanModel.BodyModel.Right.ShoulderArm.Segments

This means that references to the old folder names may break. You can enable the old names and locations by setting

#define BM_COMPATIBILITY_BODYMODEL_STRUCTURE ON

This will re-create the old folders as references to the new ones and ease the transition to use the new structure.

MoCap models#

The metatarsal joint nodes in the TLEM foot model have been updated to be at the joint centers instead of the contact between the metatarsals and proximal phalanges. This will affect MoCap models where foot markers, for example RTOE or RMT5, are located relative to the metatarsal joint nodes using the option PlaceMarkerAt. The sRelOpt parameter for such markers must be updated in the marker protocol.

Load time errors#

'MoCapMarkerFrameAMMR24'  :  Unresolved object
ERROR(SCR.PRS9) :   "MarkerProtocol.any(###)"  :     Defined at :   "MarkerProtocol.any(###)"  :   'MoCapMarkerFrameAMMR24'  :  Unresolved object

The MoCapMarkerFrameAMMR24 have been removed in AMMR4. Remove the argument completely or change it to ScalingNode(default). Please see the marker protocol in the gallery models for examples on how to define markers at different bony landmarks.

'HeelContactNode'  :  Unresolved object
ERROR(SCR.PRS9) :   "C:\####\GroundDrivers.any(7)"  :   'HeelContactNode'  :  Unresolved object

This node has been renamed to HeelContactNodeLow in the new GM foot model, and is now located under different sub-frame, to ensure the model has the same structure regardless of how detailed the foot model is. This particular error can be fixed by changing HeelContactNode -> Calcaneus.HeelContactNodeLow. See the section on foot model errors

Foot model errors#

The default foot model for the TLEM leg is now changed to the rigid variant of the GM foot model instead of the default TLEM foot. This is done to make use of the more detailed dataset available in the GM foot model. This change might lead to Unresolved object errors for objects referring to objects within the foot model. These can be resolved by including the name of the intrinsic foot segment in the path. For example, the unresolved MetatarsalJoint1Node node on the foot:

AnyRefNode &MyNode = .Foot.MetatarsalJoint1Node;

can be resolved by inserting the intrinsic Metatarsal1 foot segment in the path:

AnyRefNode &MyNode = .Foot.Metatarsal1.MetatarsalJoint1Node;

Similar errors can be expected for the following:

  • HeelContactNode -> Calcaneus.HeelContactNodeLow

  • ToeLateralContactNode -> ProximalPhalange5.ToeLateralContactNode

  • ToeMedialContactNode -> ProximalPhalange1.ToeMedialContactNode

  • ToeJoint -> Metatarsal1.ToeJoint

It is advised to always construct pointers to foot segment objects using the intrinsic foot segment. See usage of GM foot model for more info.

If you would like to work with the TLEM foot model, it can be selected by the following BM Statement:

#define BM_FOOT_MODEL _FOOT_MODEL_DEFAULT_

Deprecation warnings#