problem about detail hand model in MOCAP

Hi, I’m trying to analyze the hand kinematics using a mocap model example.

I modified the mocap model to make the model’s hand to move and I used c3d files.

I tried to MotionAndParameterOptimizationSequence but, i got following error messages.

Failed to resolve kinematic constraints. Newton relaxation too small. (final kin. error = 2.757642E-001)
Constraint no. 252 above error tolerance 0.000001, error = 0.000032.
Constraint no. 253 above error tolerance 0.000001, error = 0.001568.
Constraint no. 254 above error tolerance 0.000001, error = 0.000348.
Constraint no. 255 above error tolerance 0.000001, error = 0.001047.
Constraint no. 256 above error tolerance 0.000001, error = 0.000121.
Constraint no. 257 above error tolerance 0.000001, error = 0.000318.
Constraint no. 258 above error tolerance 0.000001, error = 0.000628.
Constraint no. 266 above error tolerance 0.000001, error = 0.002167.
Constraint no. 267 above error tolerance 0.000001, error = 0.006487.
Constraint no. 268 above error tolerance 0.000001, error = 0.002560.
Constraint no. 269 above error tolerance 0.000001, error = 0.000443.
Constraint no. 270 above error tolerance 0.000001, error = 0.000906.



ERROR(OBJ.MCH.KIN3) : E:/P…s/A…y/A…0/A…3/AMMR/A…n/E…s/M…l/M…l/Kinematics.any(74) : MotionOptimization.InitialConditions : Kinematic analysis failed in time step 0

I tried lots of trials(changed the initial motion, reduced the differences between red and blue markers, change markers set-up like Opt and Weight) but, errors above appeared again and again.

So, I compared fullbody mocap model in example folder and I found that there are at least 2 markers on 1 segment. Is it related to errors above?

thanks for your any replies in advance.

thank you

woo-seong Choi

Hi

It is a complex model with many degrees of freedom so it can be difficult to control.

The error indicates that the model fails in the first timeframe, this can be due to poor initial conditions or markers being wrongly placed etc.

Please try the following method.

[ol]

[li] Create model which is driven by joint angles drivers, so no makers, ensure that it runs kinematically.
[/li][li] Add one marker to the model and remove a joint driver which would control the same DOF
[/li][li] gradually add the markers back into the model and remove the joint drivers one by one always ensuring that you have a running model
[/li][/ol]

Hope it helps

Best regard
Søren

1 Like

Thank you for your answer. I followed your method.

Actually, I did additional experimental work for motion capture. I added upper extremities markers (1 shoulder joint marker, 1 humerus marker, 1 elbow joint marker, 1 ulna marker).

I added all angle drivers for kinematics, and i was sure that it runs kinematically. and then, I added 2 markers (shoulder joint , humerus) . Next, I removed the shoulder joint driver and turn on the upperarmlength optimization. I ran motion and parameter optimization sequence. But, I had following messages;

Kinematic parameter analysis failed : there are 4 design variables but only 2 independent associated optimality conditions

I saw the chart about parameter optimization. There are 3 additional variables like upperArmX, Y, Z. So, it couldn’t get optimal upper arm length. How can I solve this problem?

thanks for your answer in advance.

Hi

I added all angle drivers for kinematics, and i was sure that it runs kinematically. and then, I added 2 markers (shoulder joint , humerus) . Next, I removed the shoulder joint driver and turn on the upperarmlength optimization. I ran motion and parameter optimization sequence. But, I had following messages;

This error means essentially the parameters you are trying to optimize is not bounded in the optimization. An example would be if you optimize humerus length and the elbow marker was free to change position. Then the optimizer would not know if it should change humerus length or move the marker, both would lead to the same results. So the error it looks like you need to constrain some of the markers not to be able to move by setting thé OptX–Z setting to OFF. The same error would appear in a model driven by joint angles if you tried to optimize the segments lengths.

Another comment when addind the markers and removing the joint drivers it is important that you remove the corresponding dof. So adding a elbow marker may mean that you can remove a driver for GH. Or adding an wrist driver may mean you remove elbow drivers etc.

Hope it made sense

Best regards
Søren

thank you for your quick reply. I understand what you were saying. So, I did like this.

  1. I attached 2 markers on the humerus(Opt x,y,z = off)
  2. I removed shoulder driver
  3. humerus length optimization set on

but I got a message saying that

there are 1 design variables but only 0 independent associated optimality conditions

I thought that according 2 fixed markers, humerus length would be optimized but I wouldn’t

thank you for your help in advance

Hi

It sounds correct what you did, it should work.

I can think of these reasons:

[ol]
[li] There are additional design variables in the study… the error indicates this not issue
[/li][li] Mix up between left and right side… so markers on right and optimize left
[/li][li] Things not included in the study, are you sure the model parts you are using are referred or included into the study
[/li][li] If you have only one timestep it may also fail…i think
[/li][/ol]

If none of the above helps please upload the model, if possible

Best regards
Søren

Thank you for your answer. I think that my problem was about sRelOptScalingOnOff in

Markers.any. I set it “OFF”. I think I solved problem by setting it “ON”

I have additional question about it . In RunMotionAndParameterOptimizationSequence, I

found that there are various design variables that can be selected, Marker position and

segment length. Do I have to add joint angles as design variables? I set initial posture in

TrialSpecificData.any but i think it also could be different with experimental posture .

Hi

you do not need to add the joint angles as design variables.

In a mocap driven model the model is driven by the markers so the joint angles is a result of the tracking, this means there is no specific driver on the joint which needs to be added as design var.

Best regards
Søren

Thank you for your answer

I totally understood what you said. I set finger segment lengths as design variables, but I got following error.

Kinematic parameter analysis failed : there are 3 design variables but only 2 independent associated optimality conditions

could you explain when it occurs? thanks you in advance.

Hi

I think you still have too many design variables somehow below is my explanation from earlier i tried to change it a little.

This error means essentially the parameters you are trying to optimize is not bounded in the optimization.

An example would be if you optimize humerus length and the elbow marker was free to change position. Then the optimizer would not know if it should change humerus length or move the marker, both would lead to the same results. So in this case you would have to lock the position of the elbow marker.
So the error it looks like you need to constrain some of the markers not to be able to move by setting thé OptX–Z setting to OFF. The same error would appear in a model driven by joint angles if you tried to optimize the segments lengths.

So if you have finger lengths as designvars and all marker positions on the finger as design on the finger it will lead to problems.

Best regards
Søren

Hi,

thank you for your answer again. I found how to solve this problem. As I said, I tried to adjust finger length as a design variable, so I added it in the optimal class. But I got error about optimal conditions. I found how to solve this problem. I made many mistakes. To scale the length, I had to add scale function of finger length and applied it to all points on the segment, but I haven’t applied it. no I can scale all finger segment length.

I have another question right now. I have c3d files for hand motion, and I’m trying to add markers on wrist . But I thought that there is something strange about radius position and rotation. As you can see, I think radius bone and ulna bone are not parallel. Distal part of radius bone is hanging out to dorsal direction. I wanted to attach markers on styloid process(acute part) of ulna and radius. But I don’t know where I have to attach markers. I compared to radius and ulna bone in Opensim software. In Opensim, two points(styloid process of ulna and radius)looks parallel. So, my conclusion is that the position of radius bone looks weired. Could you tell me any references about this problem? thank you for your attention.

Hi

It is difficult to place markers on the wrist because there is a lot of skin motion, you may want to consider to place these markers on the hand segment.

When comparing the two models it is important that the same pronation angle is used this will affect how this looks, also there are subject specific differences which will play a role.

You can read more about the arm model at our wiki page. www.anyscript.org

Hope it helps

Best regards
Søren