AMMR\Body

Hi. Why are there so many body models in AMMR\Body\AAUHuman\BodyModels if Generic Body Model can build them. What happens if I delete them?

Hi Saeed,

Some application examples in the repository rely on those and if you delete them - they may stop working. So don’t delete them just now. But you are correct that the generic could be used everywhere. This might be done in some later versions of the AMMR.

Regards,
Pavel

Hi Saeed,

I understand why you are wondering. The development of the AMMR is a fine balance between improving the structure and maintaining some degree of backward compatibility, so that people with existing models can continue to use them without changing too much. But in the long run we are heading towards simplification of the structure.

Best regards,
John

I checked all Body Models and found that some of them are useless

I can help that. The models tagged useless are not even good for backward compatibility.

FullBodyModel
[ul]
[li]Airline Passenger[/li][li]Armcurl[/li][li]BenchPress[/li][li]BikeModelFullBody[/li][li]Egress[/li][li]FreePosture (AMR 1.0)[/li][li]FreePostureMove[/li][li]HandPump[/li][li]PushUp[/li][li]SeatedHuman[/li][li]ShoulderBag[/li][li]StandingLift[/li][li]StandingModel (AMR 1.0)[/li][li]StandingModelCircumduction[/li][li]StandingModelScalingDisplay[/li][/ul]
FullBodyModelNoMuscieslnArms (Useless)
FullBodyModelWithNeck
[ul]
[li]SeatedHumanFullWithNeck[/li][/ul]
GenericBodyModel (AMMR 1.0)
[ul]
[li]FreePosture (AMMR 1.x)[/li][li]StandingModel (AMMR 1.x)[/li][/ul]
Include
NeckNoMusclesInArmsAndLumbarSpine
[ul]
[li]MaxForceNeckModel[/li][/ul]
PelvisLeftLeg (Removed in AMMR 1.0)
PelvisRightLeg (Removed in AMMR 1.0)
Trunk (Useless)
TrunkNeck (Useless)
TrunkNeckRightArm (Useless)
TrunkNeckTwoArms (Useless)
TrunkNoAbdominalPressureTwoLegs (Removed in AMMR 1.0)
TrunkNoMusclesLeftLeg (Removed in AMMR 1.0)
TrunkNoMusclesRightArm (Useless)
TrunkNoMusclesRightLeg
[ul]
[li]KneeLoad[/li][/ul]
TrunkNoMusclesTwoArms (Useless)
TrunkNoMusclesTwoLegs has muscle in it. So why is it named “no muscles”?
[ul]
[li]BikeModel3E[/li][li]Vaughan[/li][li]Lunge[/li][li]PedalDemo Why is it named demo??[/li][li]PedalDemoConditional[/li][/ul]
TrunkNoMusclesTwoLegsRightArm (Removed in AMMR 1.0)
TrunkRightArm
[ul]
[li]WheelChairRancho[/li][/ul]
TrunkTwoArms
[ul]
[li]GearStick[/li][li]WheelChair[/li][li]WheelTurn[/li][/ul]
TrunkTwoLegs
[ul]
[li]BikeModel3E[/li][/ul]
TrunkTwoLegsRightArm (Removed in AMMR 1.0)
TwoLegs (Removed in AMMR 1.0)
< Built-in >
[ul]
[li]Bike2D[/li][li]BikeSpring[/li][li]GaitUniMiami[/li][li]GaitUniMiamiRightLeg[/li][li]JumpingJack[/li][li] Runner[/li][/ul]

Hi Saeed,

Thank you very much for the great work. The next version of AMMR will make all body models except the generic one obsolete and from now on all the examples will use a slightly different approach. Yet there is an issue of back-compatibility - because we are not sure what our users use for their tasks - they may have copied one of those examples or somehow else started using the old body models. Deleting them would mean extra work for someone (not much, of course, but nevertheless some heavy automated scripts may fail). A possible scenario for removal would be to add a warning when these bodymodels are used in order to allow users switching to the recommended approach + complete removal in the second next version. We might also just do it in the coming version, but our list of things to do is filled with more urgent items.

But your point of view is absolutely valid and we are aligned with you on improving this minor imperfection.

Best regards,
Pavel

Thanks. your explanations proved useful for updating my AMR 1.0 models to AMMR 1.0 with the exception of “bone transparency” which I commented out. of course I prefer AMR 1.0 for now.

So What about these lines in the beginning of FreePosture:

/*Execute this operation to run the model in the intended operation sequence.
It is also possible to run operations seperately, by manual selections in the operation tree
/
AnyOperationSequence RunApplication = {

/**This operation calibrates the muscles in the model if these are of the type AnyMuscleModel3E.
This will just be an empty operation if the model is using a muscle type that does not require calibration.*/
AnyOperation &CalibrationAnal = Main.HumanModel.Calibration.CalibrationSequence;

///This operation is the kinematic analysis
AnyOperation &InvAnal=Main.Study.Kinematics;

};

is it safe for me to delete them? cause there is a HumanModel.Calibration.CalibrationSequence That does the job.

Hi Saeed,

You could safely remove those lines, but this is a shortcut for quicker execution of your application and made for convenience for all Examples. By pressing RunApplication in the Operations tab you make sure you haven’t missed to run the calibration for your Inverse Dynamics studies. Or if it hides the contents of the model - you could move this section down after the AnyBodyStudy. But for this particular application it may not be needed.

If this somehow causes inconvenience for yourself feel free to remove it in your local copy of AMR, which I guess is your edition of AMMR.

Please also note that AMMR 1.0 is a very old version. The current version is 1.5.3 and in some foreseeable future the version 1.6.0 will be released.

Best regards,
Pavel

Hi. thanks for your practical advices.
Problem with Leg
Both FreePosture and StandingModel works with:

#define RIGHT_LEG 1
#define LEFT_LEG 1

but when I run FreePosture or StandingModel with:

#define RIGHT_LEG_TD 1
#define LEFT_LEG_TD 1

I get the following message: :frowning:

Scanning…
Parsing…
Constructing model tree…
Linking identifiers…
Evaluating constants…
Configuring model…
Model Warning: Study ‘Main.Study’ contains too few kinematic constraints
to be kinematically determinate.

On the other hand FrePosture works with:

#define RIGHT_LEG_TD 1
#define LEFT_LEG_TD 1

But when I run the FreePosture with:

#define RIGHT_LEG 1
#define LEFT_LEG 1

I get the following message: :frowning:

Scanning…
Parsing…
Constructing model tree…
ERROR(SCR.PRS9) : C:/A…y/(…)/RightLegDrivers.any : ‘HipFlexion’ : Unresolved object

I’m using both models and need to combine them. this has caused my models to become under constrained.

Problem with Neck
FreePosture and StandingModel work with:

#define TRUNK 1
#define TRUNK_SIMPLE_MUSCLES 1

But when I run the standing model with:

#define TRUNK_NECK 1
#define TRUNK_NECK_SIMPLE_MUSCLES 1

I get the following message: :frowning:

Loading Main : "C:…
Scanning…
ERROR(SCR.SCN6) : C:/…/SegmentsThoraxWithoutNeck.any : EOF : Unexpected.
Model loading skipped

The same goes to FreePostureMove. It works with:

AAUHuman\BodyModels\FullBodyModel\BodyModel.any

But When I use:

AAUHuman\BodyModels\FullBodyModelWithNeck\BodyModel.any

I get the same message: :frowning:

Loading Main : “C:…\FreePostureMove.Main.any”
Scanning…
ERROR(SCR.SCN6) : C:/…/SegmentsThoraxWithoutNeck.any : EOF : Unexpected.
Model loading skipped

Dear Saeed,

we have AMMR v1.6 out since several weeks and we cannot give support on AMMR v1.0 anymore as many of your statements and problems are not used anymore. There have been several serious changes in both, the modeling system and the repository. We check for our new repositories that all those combinations work.

Dear aalmunajjed, AMMR v1.6 is not available on anyforge. how can I access it?

From the customer download section on anybodytech.com. You’ll need to log in to see the downloads.

http://www.anybodytech.com/index.php?id=931

If you install AMS v6.0 you have it included.

http://www.anybodytech.com/fileadmin/AnyBody/Docs/Tutorials/A_Getting_started_AMMR/lesson1.html

shows how to unpack it.