Hello,
I have a question about connecting two bodies.
I just found examples in the tutorials about connecting with one point contact.
Is there a way to generate this connecting with a line?
For example if you hold a racket, the contact zone is not a point but a surface. A compromise between this two extremes would be a line.
Thanks a lot for your answer.
Stephan
Hi,
If you define more than 6 reactions between two AnySeg objects, then the model would become a kind of kinetically redundant system.
Instead, you can use our conditional contact element which can be used when the model has many contact points.
Then redundant forces can be regarded as AnyGeneralMuscle object so those can be solved by AnyBodys’ muscle recruitment solver.
If you can see our ‘SeatedHuman’ example, then there are some conditional contact element points between the human and the seat.
I guess you can use the same concept for your modeling.
Best regards,
Moonki
Hello,
first of all: thank you Moonki for your quick response.
For me it is hard to understand the hole model.
It is right that the contact points in the Seated Human are distributed over several different segments like the feet, the back and the arms?
Becauce for my model it is necassary to connect two segements directly with for example three or four points.
An other problem that I have is the following:
It is possible to define a force piecewise?
For me it is necassary becauce I have a curve and it is impossible to define it as one function of time.
Or it is possible to use the messured data of the force to drive the effect of the environment like it is possible to use the motion capture data to drive the motion of a model?
I hope that you can help me again with this problem.
Best regards,
Stephan
Ps.: I am sorry for my bumpy english.
Hi Stephan,
-
Also you can define multiple contact points between two AnySeg objects using artificial muscles. If you feel difficulties in making them then please let us know.
-
You can use AnyForce3D and AnyFunInterpol classes to define a force function using your measured data.
For AnyFunInterpol class, you can use different types of function such as Piecewise Linear, Bezier and Bspline.
In the following folder you can see many examples of AnyScript:
C:\Program Files (x86)\AnyBody Technology\AnyBody.5.3\Documentation\AnyScriptReference\demo\ClassExamples
In the above folder you can find ‘AnyFunInterPol.any’ file.
I hope this may be helpful to you.
Best regards,
Moonki
Hello Moonki,
thank you again for your quick response.
I’ll try what you have proposed to me and tell you if it went well.
Best regards,
Stephan
Hello Moonki,
modelling the curve of the force was no problem at all. Thanks again for your help!
Now I try to create the multi-point-contact with the general-muscle you have mentioned before.
The problem is that the following errors occur:
WARNING(OBJ.MCH.KIN2) : MyStudy : Model is kinematically over-constrained : Additional constraints appear to be dependent (12 redundant constraint(s) found), so analysis completed successfully.
ERROR(OBJ.MCH.MUS4) : MyStudy.InverseDynamics : Muscle recruitment solver : maximum number of setbacks occured
The first error shows up when I run the Kinematics and I think this error is not that bad, isn’t it?
But the second error appears when I try to run the Inverse Dynamic and it stops at step 0.
I hope you can help me again and so I put my modell in here.
Best regards,
Stephan
Edit:
I’ve set the value for F0 of the general-muscles to 10e8.
With this, the inverse dynamic runs.
I am not sure, if this is the solution of the problem but I keep it like that 
It is possible to model the general muscles as a spring?
I would define the F0-value as: F0=Const*Main.TryConnect.Joint.ConnectOne.Linear.Pos
I have defined with a driver that the velocity has to be zero in the joint.
Is this the correct way to solve this task?
Best regards,
Stephan.
Hi Stephan,
Attached please find the modified version of your model.
I tried to use the conditional contact element which is based on the AnyGeneralMuscle that can be used for the prediction of multiple interaction forces.
In your AMMR, you could find this folder:
‘\AMMR\Body\AAUHuman\ToolBox\FrictionContactMuscles’
In this folder there are several files which you can use.
For instance, the ‘SeatedHuman’ model in the Example folder was created using this conditional contact element.
I hope this sample may be helpful to you.
Best regards,
Moonki
Hi Moonki,
it is a pleasure for me to know you.
I can’t even express how thankfull I am.
I am speechless that you overworked my model.
In the moment I try to understand how the model actually work right now.
I feel like a year one pupil. 
I have a few questions to get what happens in the script.
The “main-change” as I see it is the addition of the ConnectionSupports, right?
Why do you point in evey ConnectionSupportX on the BaseObject and why to you have to repeat the pointer on the TargetObject?
What is the function of the Low-, High- and RadiusLimit?
Could you write a few sentences of the main ideas behind to multi-connection between the model and the environment?
Thank you for your efforts.
Best regards
Stephan Hess.
Hi Stephan,
For your model, I had used the conditional contact element which you can find its definition here:
#include “<ANYBODY_PATH_TOOLBOX>\FrictionContactMuscles\ContactSurfaceLinPush.any”
It will create a kind of normal force(push) and friction force from the base object to the target object.
There are some conditions which makes these kinds of normal and frictional forces from the base to the target.
You can just imagine a virtual cylinder at the base object. And target object should be inside that cylinder.
UserDefinedLimitLow and UserDefinedLimitHigh are the minimum and the maximum height for that cylinder with respect to the base object.
UserDefinedRadiusLimit is the radius of the virtual cylinder at the base object.
It will take some time for you to understand this code of the conditional contact. But this is very useful concept if you are very interested in the prediction of the multiple contact forces.
Best regards,
Moonki
Hi Moonki,
thank you for your explanation.
I’ve played a little around with the model and observed that it is necessary to have a minimum limit of force pushing against the model. Is that right?
If it is than there is a next problem. I’ve got a force, dependent on time which starts from zero.
Because of that the massage “maximum number of setbacks occured” appears.
When I set the minimum level from zero to 70 Newton, the inverse dynamic is able to run.
Is there a possibility to deal with this problem?
Best regards,
Stephan
Hello,
slowly it becomes a little bit stressfull.
Please could someone help me with my question?
The problem is, that I have a multi-point contact (comparable with the seated human) and in my opinion there has to be a minimum level of force pushing.
I don’t have this minimum level, because my force-curve starts from zero. Because of that the inverse dynamic fails.
Is there a way to solve or to avoid this problem?
Best regards
Stephan
Hi Stephan ,
Sorry for late reply. We have been very busy internally.
The reason why you could not run the inverse dynamics when your force value starts with zero is that the normal force of conditional contact is uni-directional. So it only generates the ‘pushing’ force in the normal direction.
Your model will work well when there is some amount of the external force which is non-zero. But if the external force is zero then there should be some ‘pulling’ force between the two segments.
But if you really want to do the grip simulation, you should put more conditional contact element around like this picture:
http://ars.els-cdn.com/content/image/1-s2.0-S1350453307000318-gr1.jpg
So the concept is that there should be more conditional contact element and those should have different normal directions.
I hope this can help you.
Best regards,
Moonki
Hello Moonki,
it is very nice to hear from you.
I didn’t wanted to seem grumpy.
I thought that you are very bussy and because of the fact that I asked you in a direct way nobody else had the heart to answer my question.
I’ll try to add some more points and tell you how it worked.
Thanks again. It is great to know someone if there is a problem, who can help you to solve it.
Kind regards,
Stephan
Hi Moonki,
it turned out that a constant force pushing against the model is some kind of logical.
The user is pushing the tool for example against the ground or the wall and a reaction force is pushing back.
Now I’ve got an other problem.
I try to model a damper (F=Const*v).
I 've tried to do it like the spring in the tutorial with the FDK in a joint but it turned out that the velocity is zero.
Is there a way to model a damper?
Best regards,
Stephan
Hi Stephan,
As we know, if you want to model a damping force, then there should be some velocity value between two segments.
I’m not sure how I can answer to your question, but if the relative velocity between two AnySeg object are zero then there should be no damping force.
Can you draw a simple sketch about what you want to model and attach here again?
Best regards,
Moonki
Hi Moonki,
I know that there has to be a velocity between the two segments. The problem is that there is no velocity when I use the FDK.
But in the model I am creating there should be a velocity between the segments.
I’ve made a selfmade picture in here of the model I try to create.
I hope, it helps to understand what I’m trying to model.
Best regards,
Stephan
Hi Moonki,
I know that there has to be a velocity between the two segments. The problem is that there is no velocity when I use the FDK.
But in the model I am creating there should be a velocity between the segments.
I’ve made a selfmade picture in here of the model I try to create.
I hope, it helps to understand what I’m trying to model.
Best regards,
Stephan
Hi Stephan,
Of course if you would take the velocity of a kinematic measure of which type is force dependent, then the velocity of that kinematic measure will be always zero so you can’t use it for damping force.
But if you can define some new kinematic measures which may use some different reference nodes around, then you can get some velocity values. Then you can define your own damping force.
For your easy understanding, I tried to make a simple model based on the 2-D FDK knee example in the tutorial.
The green line in the model contains a damping force. Please make sure that the purpose of this model is just an example.
So my suggestion is that if you can define some extra reference nodes to create some new kinematic measures, then you can get some velocity values.
Best regards,
Moonki
Hi Moonki,
thanks again for your help. I see what you mean.
Your example-model is a great help for me. I try to fix my model in the same way and tell you how it works.
Again, it is great to have somebody who supports you. Thank you.
Best regards,
Stephan