Based on the example of StandingLift model, I want to make a little changes to the human body posture when lifting, with the box exactly in front of the body, like the attached figure (1).
However, after I changed the mannequin.any, and CoM Drivers, and run the initialposition, I can only get the figure (2), the box was still put at the right side of the body. I tried to input many different values in the CoM driver, but failed to get what I want:
[SIZE=3]
[SIZE=2]AnyKinEqSimpleDriver[/SIZE][/SIZE] CoMDriver = {
AnyKinCoM CoM = {
AnyFolder &Body = Main.Model.HumanModel;
AnyFolder &Environment = Main.Model.EnvironmentModel;
};
MeasureOrganizer = {0,2}; // Only the x and z directions DriverPos = {0.1, -0.05}; //Possibly I changed the values inside a little bit
DriverVel = {0.0, 0.1};
Reaction.Type = {Off,Off};
};
I also tried to use FreePostureMove (without using the CoM driver) to do the same lifting task, also failed, and got the figure (3), with two arms inside the thorax, when running initialposition. Please find all the figures attached.
Could you please advise me how to get what I want when lifting the box, when running the initial position?
The box has its own driver for translation and rotation in the global reference frame (you can find it in the JointsAndDrivers file). Notice that in this case the CoM driver does not affect the box because its motion is already fully defined.
So if you want the box to be always exactly in front of the body you can drive the box to a fixed value in the thorax reference frame for example.
That should do what you want.
Hi, Sylvain and AnyBody,
Thanks for your timely response.
Actually I was able to lift the box from waist to shoulder level, with the control from box driver data. I also changed a little bit on the CoM DriverPos and Mannequin.any files.
It worked fine.
Now I want to lift the box from the floor to shoulder level, but failed in the time step 0, even I changed the data file of box driver, r0 of box, mannequin.any, and CoM driverPos.
I attached my lifting model.Could you please give me some advice how to make the model work forward?
The value for the CoMDriver in the y direction is much too low. Try with this DriverPos = {0.1, 1};
Also the position of the hands on the box is not correct, you should tilt them a little. Try to give a values 0f -50 degrees in the RHBoxDriver and LHBoxDriver.
The model will run with those changes, but you will see that the motion is not realistic. I think it is mainly due to contraining the CoM in the Y direction.
Thanks for your response. Yes, I tried the values, and the model was unrealistic.
I tried this way: constrain the CoM driver in x and z directions, like the original one. I spent the whole day on the model, but failed again.
I am attaching the modified model, in need of your advice. The final kinematic error of the model is 0.322, which was the least error that I could reach.
Is there an easy way to make the box lifted from the floor to overhead level? Why I can be able to lift the box from waist level to overhead, while there were so many problems when lifting it from lower level?
Some drivers are conflicting in the model. If you drive the CoM in X and Z you need a free dof on both directions. For X there is the ankle flexion but there is none for Z, so you need to free the thorax lateral bending for example instead of the thorax flexion/extension. It is extremely important to have a good overview of the drivers and dof. You can make small sketches to help you visualize it. Without this you may end up modifying the drivers randomly with little chance to achieve good results.
You will see that even after exchanging thorax lateral bending and flexion/extension, the model still does not look completly right. Lifting a box from floor to head is more complex than from waist to head. That last only involves motion in the arm. Whereas lifting from the floor normaly involves motion in all the body with extension of the ankles, knee, hip and trunk. Try to observe someone doing the task and then reproduce the joint motion in the model.
Secondly, you need to provide information about yourself in order for us to help you. We need to know who we are helping to. This is a professional forum.