over-constrained problems while modifying seated human model

Hi,

I am working on seatedhuman model, using it to attach a steeringwheel, pedals and gear stick to simulate driver’s movement.

Now I have attached a steerng wheel which was able to rotate by an inclined axis I set, two nodes on the steering wheel, joints between the the driver and the nodes. Then I tried to modify the drivers to avoid being over-constrained, according to the tutorial.

// Drivers for the right arm
// ************************************

//Sterno clavicular joint driver
AnyKinEqSimpleDriver SCDriverRight ={
AnyKinMeasureOrg &ref1 =…HumanModel.Interface.Right.SternoClavicularPr otraction;
AnyKinMeasureOrg &ref2 =…HumanModel.Interface.Right.SternoClavicularEl evation;
AnyKinMeasureOrg &ref3 =…HumanModel.Interface.Right.SternoClavicularAx ialRotation;
DriverPos = pi/180*{
…JntPos.Right.SternoClavicularProtraction,
…JntPos.Right.SternoClavicularElevation,
…JntPos.Right.SternoClavicularAxialRotation
};
// DriverVel = {
//…JntVel.Right.SternoClavicularProtraction,
// …JntVel.Right.SternoClavicularElevation,
// …JntVel.Right.SternoClavicularAxialRotation
//};
DriverVel={0,0,0};
Reaction.Type={Off,Off,Off};
};

//Glenohumeral joint
AnyKinEqSimpleDriver GHDriverRight={
AnyKinMeasureOrg &ref1 = …HumanModel.Interface.Right.GlenohumeralAbducti on;
// AnyKinMeasureOrg &ref3 = …HumanModel.Interface.Right.GlenohumeralExterna lRotation;

//DriverPos=pi/180*{
//…JntPos.Right.GlenohumeralAbduction //GH joint
// …JntPos.Right.GlenohumeralExternalRotation //GH joint
// };
//DriverVel = pi/180*{
// …JntVel.Right.GlenohumeralAbduction //GH joint
// …JntVel.Right.GlenohumeralExternalRotation //GH joint
//};
//Reaction.Type={Off};
DriverVel={0};
Reaction.Type={Off};
};

//Elbow pronation driver
//AnyKinEqSimpleDriver ElbowPronationDriverRight={
//AnyKinMeasureOrg &Elbow =…HumanModel.Interface.Right.ElbowPronation;
//DriverPos = pi/180*{…JntPos.Right.ElbowPronation };

//DriverVel=pi/180*{…JntVel.Right.ElbowPronation };
//Reaction.Type={Off};
//};

//Wrist driver
AnyKinEqSimpleDriver WristDriverRight ={
AnyKinMeasureOrg &ref1 =…HumanModel.Interface.Right.WristFlexion;
AnyKinMeasureOrg &ref2 =…HumanModel.Interface.Right.WristAbduction;
DriverPos = pi/180*{
…JntPos.Right.WristFlexion,
…JntPos.Right.WristAbduction
};

// DriverVel = pi/180*{
//…JntVel.Right.WristFlexion,
//…JntVel.Right.WristAbduction};
DriverVel={0,0};
Reaction.Type={Off,Off};
};

}; //End Right

This was for the right arm, similar to the left arm.

But when I set the initial condition,error occured.

ERROR(OBJ.MCH.KIN2) : C:/U…s/FSAE/A…a/R…g/A…y/A…x/A…o/A…n/E…s/S…n/SeatedHuman.main.any : Study : Model is kinematically over-constrained : Position analysis failed : 4 unsolvable constraint(s) found

I have seen the previous thread about this problem and I tried but failed to sort it out.

I studied Anybody for about a week. Maybe it’s too easy for experts. Could you help me to solve it and some tips or exprience for modeling the driver’s movement?

Best Regards

Hi Da Fan,

the seated human has a constraint in the “ConnectionSegments.any” that fixes the arm to the armrest. Did you remove this connection?

Hi Amir,

I found that redundant contrast later, removed it and model worked. And thanks for your help as well.

Now I want to make the velocity and moment of the wheel mutative other than constant. Is it something about the Anyscript that I can use certain functions directly?

Best Regards

Da Fan

there are many different driver types
AnyKinEq-SimpleDriver, -InterPolDriver, … you find more information in the reference manual.

However, I’m not sure if that will work smooth for you. I guess you might have to define the arm and upper body motion as well.