Making joint and motion

Hello.

I transfered the rigid body from solid works.

I want to apply translational motion (axis=x) to rigid body

so I wrote the below codes

 AnyKinEqSimpleDriver AnkleLinDriver = 

{
AnyKinLinear lin =
{
AnyRefFrame& ref0 = Main.MyModel.GlobalRef.basenode;
AnyRefFrame& ref1 = Main.seat_assem.seat_pan___1.Fix_Node;
Ref = 0;
};
MeasureOrganizer = {0}; //x
DriverPos = {0};
DriverVel = {2};
Reaction.Type = {On};
};

when I start kinematic analysis

the message ’ Model is kinematically over-constrained’ was occured

how can I fix it?

please check my file

thank you

Hi,

I looked at your previous model and you already have a fixation to the global ref. frame - try choosing just one:


  AnyFolder Mates = 
    {
      AnyKinEq Fix_seat_pan___1 =
      {
        AnyKinLinear lin = 
        {
          AnyRefFrame& base = ....seat_assem.Origin_Ref;
          AnyRefFrame& target = ...seat_pan___1.Fix_Node;
          Ref = 0;
        };
        AnyKinRotational rot = 
        {
          AnyRefFrame& base = ....seat_assem.Origin_Ref;
          AnyRefFrame& target = ...seat_pan___1.Fix_Node;
          Type = PlanarAngles;
        };
        CType = {.._ANY_CTYPE_, .._ANY_CTYPE_, .._ANY_CTYPE_, .._ANY_CTYPE_, .._ANY_CTYPE_, .._ANY_CTYPE_ };
      };
    };


Kind regards,
Pavel

Hi.

I wrote ‘//’ in front of the codes you said like below.

 //AnyFolder Mates = 
//{
  //AnyKinEq Fix_seat_pan___1 =
  //{
    //AnyKinLinear lin = 
    //{
      //AnyRefFrame& base = ....seat_assem.Origin_Ref;
      //AnyRefFrame& target = ...seat_pan___1.Fix_Node;
      //Ref = 0;
    //};
    //AnyKinRotational rot = 
    //{
      //AnyRefFrame& base = ....seat_assem.Origin_Ref;
      //AnyRefFrame& target = ...seat_pan___1.Fix_Node;
      //Type = PlanarAngles;
    //};
    //CType = {.._ANY_CTYPE_, .._ANY_CTYPE_, .._ANY_CTYPE_, .._ANY_CTYPE_, .._ANY_CTYPE_, .._ANY_CTYPE_ };
  //};
//};

please check ‘seat2.zip file’ (not ‘seat.zip’)

As I think, you didn’t check and open ‘seat2.zip’ file

when I start the kinematic analysis, the message(Model is kinematically over-constrained) was occured.

thank you

[quote=uricoco11;22730]Hi.

I wrote ‘//’ in front of the codes you said like below.

//AnyFolder Mates =
//{
//AnyKinEq Fix_seat_pan___1 =
//{
//AnyKinLinear lin =
//{
//AnyRefFrame& base = …seat_assem.Origin_Ref;
//AnyRefFrame& target = …seat_pan___1.Fix_Node;
//Ref = 0;
//};
//AnyKinRotational rot =
//{
//AnyRefFrame& base = …seat_assem.Origin_Ref;
//AnyRefFrame& target = …seat_pan___1.Fix_Node;
//Type = PlanarAngles;
//};
//CType = {…ANY_CTYPE, …ANY_CTYPE, …ANY_CTYPE, …ANY_CTYPE, …ANY_CTYPE, …ANY_CTYPE };
//};
//};

And I made joint and motion in ‘Environment’

please check ‘seat2.zip file’ (not ‘seat.zip’)

As I think, you didn’t check and open ‘seat2.zip’ file

when I start the kinematic analysis, the message(Model is kinematically over-constrained) was occured.

thank you

Hi,

You did not define your segment inside of the MyModel folder that is being included later in MyStudy, and, hence, the analysis is not aware of this particular segment.

It creates a situation when you provided a driver (1dof), but no segment. This is why the system gives an over-constrained error.

BUT! If you include this object like this:


  // The actual body model goes in this folder
  AnyFolder MyModel = {

    #include  "Model/seat_pan.any"

    // Global Reference Frame
    AnyFixedRefFrame GlobalRef = {
      AnyRefNode basenode ={};
      #include "Model\Environment.any" 
    };  // Global reference frame
  }; // MyModel

  // The study: Operations to be performed on the model
  AnyBodyStudy MyStudy = {
    AnyFolder &Model = .MyModel;
    ...
  };

This will create a situation, where the system is underconstrained. Because you created a single driver for 1 dof, but out-commented constraints for all other degrees of freedom. You need to provide another 5 constraints.

One way to do it is like this:


  AnyKinEqSimpleDriver AnkleLinDriver = 
  {
    AnyKinLinear lin = 
    {
      AnyRefFrame& ref0 = Main.MyModel.GlobalRef.basenode;
      AnyRefFrame& ref1 = Main.MyModel.seat_assem.seat_pan___1.Fix_Node;
      Ref = 0;
    };
    AnyKinRotational rot = 
    {
      AnyRefFrame& ref0 = Main.MyModel.GlobalRef.basenode;
      AnyRefFrame& ref1 = Main.MyModel.seat_assem.seat_pan___1.Fix_Node;
      Type = RotAxesAngles;
    };
    //MeasureOrganizer = {0}; //x
    DriverPos = {0, 0, 0, 0, 0, 0};
    DriverVel = {1, 0, 0, 0, 0, 0};
    Reaction.Type = {On, On, On, On, On, On};
  };


This code makes the seat move in the X direction.

Kind regards,
Pavel

Thanks for your help

I made another model using your comments

I want to make the seat moved with human.

seating on the seat pan, the human can be moved in x-direction.

in ‘seat_model_04.zip’ file,

there is human model fixing with seat pan.

I made translational joint and motion in x-direction

when I start kinematic analysis, the error was bigger than default tolerance.

Please check my file.

thank you.

Hi

I took a quick look at the model and noticed that it seems to be driven in a rather strange way.
There is a list drivers each adding 3 linear constraints to each point between human and environment, there is no guarantee that this approach will work.

Please follow this approach:

[ol]
[li]Make a model of the enviroment e.g. the seat which can run without the human, make sure kinematics works.
[/li][li]Add the human model
[/li][li] Make sure there are soft drivers applied ont he human model
[/li][li] Make sure model will run kinematically
[/li][li] Now start to add the drivers do this one by one always ensuring that the model is running kinematically before you move on add more drivers.
[/li][/ol]

This gradually approach is in my experience the best approach for creating such models.

Hope it helps

Best regards
Søren

Hi

I imported rigid body and human one by one and made joints and motion.

and before importing the each part, I check the model by starting the kinematic analysis.

I didn’t import all of rigid bodies and human at once.

I made and checked the model gradually.

My problem is

without joint between human and seat, kinematic analysis could be started.

but making the STD joint between human pelvis and seat, I couldn’t start.

please check my file again

thanks

Hi

I have looked at the model drivers and it looks a bit strange to me,

All the segments like Main.lsdyna_human_modified.X are joined together into one stiff body using a series of anystd joints, but i did not find a driver which drives one of these bodies wrt. to the world or human. So it looks like there is a missing driver there on 6 dof.

Secondly i do not understand why the human model is then is driven and carried by this rigid lsdyna rig in the movement folder, as it is right now you make a rigid structure of bodies, and you drive the human using these bodies but you also let the rigid structure carry all loads, since reactions in the movements driver has not been switched off.

Please do the following:
[ol]
[li] make model of the human alone, make sure it runs.
[/li][li] introduce the rigid lsdyna model, make sure it runs i think you are lacking driving 6 dof now
[/li][li] make connections from human to rigid rig BUT ensure to switch off reactions.
[/li][/ol]

Best regards
Søren

I want to make the seat_pan and seat_back moved with human.

I made human alone and imported rigid bodies.

I followed and did two step you said already.

there are not any problems of dof.

that kinds of problems are solved already.

I made the translational motion of seat pan and seat back.

without std joint between pelvis and seat pan, kinematic analysis could be started.

with std joint between pelvis and seat pan, kinematic analysis couldn’t be started.

as you said, if there were dof problems, any kinematic analysis couldn’t be started.

and I wonder how I can fix the exceed the tolerance when I start kinematic analysis.

thank you.

I tried to go forward in these steps:

[ol]
[li]Excluded seat and drivers for seat loaded and checked kin, it worked
[/li][li]I then added back in the joint and driver for the seat, it works as long the seatpan joint is not used
[/li]
[li]If seatpan joint is introduced it fails
[/li][li]It is however not strange that it does because the frame Main.seat_assem.seat_pan_1 is located about one meter in front of the seat on the floor and it makes little sense to try to move the pelvis to this location
[/li][li] Please move this frame to a proper location and ensure also that its orientation is somewhat matching with the pelvis orientation, which it is not.
[/li][li] note that you can add a visual frame in the a node by using an AnyDrawRefFrame object
[/li][/ol]

Best regards
Søren