Adjustment assembly tolerance

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Laura Peeters
Posts: 11
Joined: Thu Nov 28, 2013 9:12 am

Adjustment assembly tolerance

Post by Laura Peeters » Fri May 23, 2014 4:00 am

Hi,

I have (hopefully) a simple question, does any one know how I can change the assembly tolerance in an opensim model?

I think the geometry of my system is not precise enough to achieve an 1 e-9 m perfection. The error that I get is:
"Assembly error tolerance achieved: 1.79835104405468e-007 required: 1e-009."
So I'll rather relax the assembly tolerance to something like 1 e-6.

In a previous topic ("RRA Singular Matrix") it was already mentioned, but there was no response on how to relax this tolerance.

I hope someone can help me! Thanks!

User avatar
jimmy d
Posts: 1375
Joined: Thu Oct 04, 2007 11:51 pm

Re: Adjustment assembly tolerance

Post by jimmy d » Tue May 27, 2014 4:14 pm

Hi Laura,

Short answer is that there is no (easy) way for you to change the tolerance. We don't expose that ability because, through our own extensive testing, we found that anything more than a tolerance of 10^-9 caused anomalies in the model.

Do you have any locked joints in the model? or many looped constraints?

The only way to change this would be to edit from source.

Hope that helps,
-james

User avatar
Laura Peeters
Posts: 11
Joined: Thu Nov 28, 2013 9:12 am

Re: Adjustment assembly tolerance

Post by Laura Peeters » Mon Jun 02, 2014 1:56 am

Hi James,

Thanks for your reply! Too bad that it is not just an easy fix. I'll have to find the problem somewhere else.

I have some locked joints in my model and also some looped constraints (if you mean that some degrees of freedom are used both as independent and dependent value in a CoordinateCooplerConstraint). I used the constraints to simulate a knee movement (and it worked fine with the constraints). In a nutshell, I added two tubes next to the knee on both sides afterwards(see attachment, thick tubes are the one that need to move with the whole block below (three rotations)). These tubes should be able to translate in the blocks guided by the knee movement. Manually (coordinates window), I can change the rotation and translation in a way that the top of the tube is connected to the upperpart. But when I add a PointConstraint at this point, the whole model can not move any more. OpenSim cannot solve the kinematic equations and I get the tolerance error. Possibly, my pointConstraint causes the problem.. Well, I'll figure it out. Unless someone has a great idea, I like to hear it ;)

Regards
Attachments
Snapshot_model.jpg

User avatar
Dario Cazzola
Posts: 44
Joined: Mon Jun 03, 2013 8:08 am

Re: Adjustment assembly tolerance

Post by Dario Cazzola » Thu Jul 31, 2014 3:18 am

Hi Laura and James,

I have got a similar issue related to model constraints. I am using a refined version of Vasavada model (Head Neck) that includes many constraints in order to simulate cervical spine and head kinematics and scapula-clavicle coupled motion.

I got the same error (figure in attachment) related to 'Assembly error tolerance achieved', but also an exception related to 'Inverse Dynamic ERROR - overconstrained system -- need at least as many forces as there are degrees of freedom'.

I could potentially change scapular and clavicle motion but I would not like to change vertebrae relative motion since the function describing their motion is based on in-vivo data from the literature.

So, my question relies on general utilisation of looped constraints in our models. Is it true that it's better to minimise costraints design ? Is there any other option to avoid this tolerance issue?

Many thanks

Cheers

Dario
Attachments
RRA_constraint.JPG

User avatar
Laura Peeters
Posts: 11
Joined: Thu Nov 28, 2013 9:12 am

Re: Adjustment assembly tolerance

Post by Laura Peeters » Tue Aug 05, 2014 3:48 am

Hi Dario,

I'm not an expert in building OpenSim models, but maybe some things you could try..
I got some desginer tips from James, based on another forum topic: "slow simulations". In the end, these suggestions also solved my error tolerance problem. Maybe you can try to use the tag <is_free_to_satisfy_constraints>true</is_free_to_satisfy_constraints> in the coordinates which can take on any value in order to satisfy the constraints. So in your case I can imagine that the coordinates of the vertebrae are defined, but the motions scapular and clavicle may deviate a little with your defined values just to help the model solving the kinematics. Please see the other topic for more detailed information.
I don't know whether this will solve your problem, but you could try.

Regards

User avatar
Dario Cazzola
Posts: 44
Joined: Mon Jun 03, 2013 8:08 am

Re: Adjustment assembly tolerance

Post by Dario Cazzola » Wed Aug 06, 2014 6:48 am

Hi Laura,

Thanks a lot for the fast reply. I tried to include <is_free_to_satisfy_constraints>true</is_free_to_satisfy_constraints> but in this way I get a rid of the control of the coordinate selected to be free to satisfy constraints. Is that right?

Cheers

Dario

User avatar
Laura Peeters
Posts: 11
Joined: Thu Nov 28, 2013 9:12 am

Re: Adjustment assembly tolerance

Post by Laura Peeters » Wed Aug 06, 2014 10:28 pm

I'm not sure.. It suggests indeed that you get rid of the control of the coordinates, but I can also imagine that it tries to match your control values, but it may deviate a little when necessary. So, actually I don't know. I'll think you should try and see what happens :) Maybe you can conclude from the results if the model is getting rid of the control values or not.

POST REPLY