Hi Cathy,

Thanks for the kind words!

Here are some answers:

A1: You are right, the inverse analysis runs on the calculated angles from the motion optimization study. You may not be able to just add at the cart in the same way as in the motion optimization study. The inverse dynamic analysis requires does not run the overdetermined kinematics so it will cause it the the problems you have seen if you apply extra kinematics constraints to the model.

The solution is to dump out the position and orientation of the cart in the kinematic analysis and then read this motion into the inverse analysis, this is exactly how is done with the joint angels. Please have a look in the files

JointAngleoutputs.any here the angles are written to files and you add a new one with the cart position.

JointAndDriversOptimized.any here the angles are being used to drive the inverse dynamic model and you could add a driver for the cart.

You will also need to have proper reactions between the cart and the hand, so simply add AnyReacForce to the dof you have active in the kinematic optimization study. This will create the possibility for the model to have a force but it will not add a kinematic constraint.

So if you have the following in the kinematic optimization model:

```
AnyKinLinear lLin = {
AnyRefNode &CartNode = Main.Studies.InverseDynamicStudy.EnvironmentModel.Cart.HandleLeft;
AnyRefNode &HandNode = Main.Studies.InverseDynamicStudy.HumanModel.Left.ShoulderArm.Seg.Hand.PalmJoint;
Ref = 0;
};
AnyKinRotational lRot = {
AnyRefNode &CartNode = Main.Studies.InverseDynamicStudy.EnvironmentModel.Cart.HandleLeft;
AnyRefNode &HandNode = Main.Studies.InverseDynamicStudy.HumanModel.Left.ShoulderArm.Seg.Hand.PalmJoint;
Type = RotVector;
AngVelOnOff = On;
};
AnyKinEqSimpleDriver lHandle = {
AnyKinLinear &LinearMeasure = .lLin;
AnyKinRotational &RotMeasure = .lRot;
MeasureOrganizer = {0,2,3,4,5};
DriverPos = {0,0,0,0,0};
DriverVel = {0,0,0,0,0};
Reaction.Type = {On,On,Off,On,Off};
};
```

Then in the inverse study it should only apply the reaction forces not the motion.

```
AnyKinLinear lLin = {
AnyRefNode &CartNode = Main.Studies.InverseDynamicStudy.EnvironmentModel.Cart.HandleLeft;
AnyRefNode &HandNode = Main.Studies.InverseDynamicStudy.HumanModel.Left.ShoulderArm.Seg.Hand.PalmJoint;
Ref = 0;
};
AnyKinRotational lRot = {
AnyRefNode &CartNode = Main.Studies.InverseDynamicStudy.EnvironmentModel.Cart.HandleLeft;
AnyRefNode &HandNode = Main.Studies.InverseDynamicStudy.HumanModel.Left.ShoulderArm.Seg.Hand.PalmJoint;
Type = RotVector;
AngVelOnOff = On;
};
AnyReacForce lHandle = {
AnyKinLinear &LinearMeasure = .lLin;
AnyKinRotational &RotMeasure = .lRot;
MeasureOrganizer = {0,2,4};
};
```

A2: according to the c3d file in the model you have two forceplates of type2, these do not need a calibration matrices …?

see also http://www.c3d.org/html/type2.htm

A3: If you apply the AnyReacFroces between the hands and the cart you can read out the forces from these.

Best regards

Søren