how to reslove kinametic over constrain problem

Hi there,
I am working on seating human model. I had attached a steering with two nodes attached right & left side to the steering & given the joint between reference node and steering. I had defined a revolute joint between the steering and reference node & also given the driver for the steering to rotate.
I made the following modification in the seated model:
In joints and driver folder I made the following changes in the drivers for the right arm:
// 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.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};
Reaction.Type={Off,Off};
};

}; //End Right

When I try to run the application it is giving me an the following error

ERROR(OBJ.MCH.KIN2) :
C:/D…s/A…r/D…p/A…1/A…n/E…s/S…n/SeatedHuman.main.any : Study : Model is kinematically over-constrained : Position analysis failed : 2 unsolvable constraint(s) found

How to resolve this problem ?
thanks & Regards,
Jaswinder

Hi Jaswinder

You have added to many kinematic constraints to the model and this makes it impossible for the system to find a solution. The error message says the model has two constraint too many, so you need to remove to of them.

when doing such a model it is usually a good idea to try to the model in some steps to keep a working model.

Here are some possible steps

  1. Start having the steering wheel in the model but without the hands attached.

2 Make sure the model runs

  1. Add one constraints between one hand and the steeringwheel and remove one driver for the arm

  2. Make sure it runs

  3. Continue until you have the intended model…

If you are using Ver. 4.,1 you can also create soft constraints in the revolute joints between the hands and the steering wheel (all joints have this switch), this would make it run but it would probably not be what you want to have in the long run.

Best regards
Søren