I am a student at the University of Rostock, currently working with FDK models on the lower extremity. I Would like to ask how it is possible to define an initial position or certain joint angles for a chain of segments which are connected by joints including FDK degrees of freedom? Is it possible do define it without using a driver?
I was looking into the posture model of the AMMR-documentation in the THA-KneeBendDemo. Especially in the Sub-Files „Mannequin.any“ and „InitialPositionPelvis.any“ the folder „Posture“ is used to define the position. I do not understand how the variables are connected and used in the rest of the model. Do you have any tips for me on how to progress?
Thank you in advance for your support
For clarity, I want to make a distinction between load-time position and initial position. Load-time position is the position in which the model loads and initial position is the position for the first time-step. Initial position is obtained after solving kinematics (e.g., joints, drivers, etc.). Whereas, load-time positions are determined purely from the r0 and Axes0 values of the segments. So, for your chain of segments, you can define the r0 and Axes0 values in the script. You can also make the r0 and Axes0 values to be dependent on the r0 and Axes0 values of other segments in the chain. That is, the model can calculate the r0 and Axes0 values from the root segment and the joint angles.
This is the approach that is also used in the initial position of the human model. Try to open some segment and see how its r0 and Axes0 values are defined in the script.
I hope this helps.
Thank you for your prompt and helpful response. I was able to easily specify the initial positions using "r0" and "Axes0" in a model that performs inverse kinematic analysis, obtaining its movement from an interpolation driver.
I'd like to revisit the first question. The segment I am inquiring about is constrained by an "AnyStdJoint" with active force-dependent movement to achieve full constraint. I assume that so far the position is determined by the joint equations, which lead the segment to a rest position near the x-axis, since no driver defines the joint and no further drivers act directly on the segment. Is there a straightforward method to define the initial position as observed in the "InitialCondition" with equilibrium at the first-time step for the FDK degrees-of-freedom?
Thank you in advance for your assistance.
If we simplify the solver process, we have:
Load-time position specified by r0 and Axes0, which you can easily specify.
InitialCondition is obtained after solving for all the kinematic equations (joints and drivers). Since you define the joints and drivers in your model, you would know precisely what they will solve to in the first time step. So, you should be able to specify r0 and Axes0 of your segments accordingly.
And finally, FDK motion is determined during the inverse dynamics analysis. FDK motion depends on the stiffness constant and external force that must be solved for. That will determine the deviation that you see from the constraint from the AnyStdJoint (as solved in initial condition). Estimating the equilibrium position can be difficult depending on the model. And in any case, the solver will always start by putting the model in the "InitialCondition" first before solving FDK degrees of freedom when you run the analysis.
I may not have completely understood your question still and I am sorry about that. The AnyStdJoint that you define uses two reference frames. What is your segment constrained to? And are you not able to set the r0 and Axes0 values for this segment so that it is close to the solution of the AnyStdJoint (that you will see with "InitialCondition")?