Wheelchair Rancho model

Hi !
I’m working on a new project in which I’d like to study the effect of wheelchair propulsion on the shoulder joint. I think that the model named “WheelChairRancho” could be a good starting point.

My first objective will be to use our own .c3d files and here are my questions.
Of what I understood, the model doesn’t use the AnyInputC3D function but converted the c3d file using the c3d2any converter. Am I right ? If yes:
1/ are there any updates on the wheelchairancho model that would have been made to use the AnyInputC3D function ?
2/ if the AnyInputC3D function has not yet been implemented, would you recommend that I convert my own c3d files (as they did in the model) or, rather, that I transform the model to use the AnyInputC3D function ?

Thank you for your support !
Lauranne

Lauranne,
I recommend to start with a new MoCap model and just look a little into the Wheel Chair model. The Rancho model was made 10 years ago and hasn’t seen a lot of maintenance since then.

Thank you Amir for your opinion about it ! I’ll certainly follow your advice :wink:
Regards,
Lauranne

Hi there,
I am as well working on a wheelchair model so I hope this is the right way to ask my question.

My Model is loading but as soon as I try to run the Optimization Study it’ll fails with

“5.0.0.1) …Load-time positions have been re-established.
WARNING! NAN reached!
Unexpected error in computational kernel
Constraint no. #0 in ‘Main.Studies.HumanModel.BodyModel.Right.ShoulderArm.Mus.ArtificialRake.LinCom2Drv’ above error tolerance 0.000001, error = 0.100000.
Constraint no. #0 in ‘Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Mus.ArtificialRake.LinCom2Drv’ above error tolerance 0.000001, error = 0.100000.
ERROR(OBJ.MCH.KIN3) : /2…o/D…o/A…o/AMMR/A…n/M…s/M…l/M…l/Kinematics.any(74) : MotionOptimization.InitialConditions : Kinematic analysis failed in time step 0”

So I tried activating/deactivating some markers to make the naming fit at least, but I think I might have to scale the size of the whole model to make C3D and MoCap markers match.
Or might it be possible to just change the error tolerance?

thanks a lot and I hope this is the right place to ask^^

Asaad

To give you a better idea of what it looks like you might wanna check the picture from this link:
http://postimg.org/image/ykp8gacul/

Hi !
@aasadonis: In fact, I just start the project, so I’m probably not the good person to help you… Maybe just an idea, even if you probably already think to it : did you try to increase the tolerance for the LinCom2Drv ? i.e. rather than 0.000001, maybe you could try to set it at 0.150000. I know it’s huge, but you could launch your analysis and find where is the problem. After what you might decrease it.

Regarding my project: I’d have a new question regarding markers / nodes. My idea is to use the existing anatomical markers (I use the AnyBody model template “Human”) rather than creating new ones. I found all markers but one, located at the xiphoid process on thorax. I know that there are markers close to this landmark: I drew AnyRefNodes for thorax segment and would like to find the definition in the AnyBody Script for the node in red (see attached picture). Could you give me advice to easily find name and definition of specific markers ? I mean : AnyDrawRefNodes is fine to draw them; however, I can’t figure out how to find their own names.

Thank you for your return !
Lauranne

Hey Lauranne!
thanks for your advice, but unfortunately I already tried playing with the tolerances.
I know that it is a marker problem and that there is something about the shoulder driver that makes anybody unhappy.
I’ll open a new thread as soon as I know more about it.

Thanks again,
asaad

Hi !
Ah… I guessed you did !!..

How do you know that the problem comes from shoulder ?
Did you have a look on the number of dof versus the number of constraints ? Are they equal ?

Lauranne

Hi Lauranne!
As I am not yet experienced enough to really interpret error messages in Anybody, I was just guessing from what is written in the error message. And that message refers to LinCom2Drv in the left and right shoulder.

And your idea seems pretty much legit especially as the error msg says: "Constraint No. #0 […] above error tolerance 0.000001, error = 0.100000."
But I’ll have to find out how to easily find the number of DOF and the Number of Constraints without going through all script files by hand counting each DOF and Constraint.

thank you =)
Asaad

Hey !
In fact, there is a very easy way to found the number of dof vs constraints : just clic on your “Main” folder in the tree on your left. A complete description of your system will be displayed in the next right window (please, see attached picture if it’s unclear !)

Lauranne

Wooops, sent my answer too early !
Would anybody help or guide me to find the node on thorax I’m looking for ? Please, refer to my previous post (#6). Thank you !
Lauranne

Dear Lauranne,

Usually most of the AnyRefNodes in the AnyBody segments are related to either origin or insertion points of the muscles which are attached on that bone.

So what I would do is:

  1. Turn on all the muscles in the trunk
  2. Find the muscles which has your point of interest as either origin or insertion point
  3. Move your mouse on the muscle and find that muscle in the model tree.
  4. Then you can find the references of those points in the model tree.

I thinks this process will work.

Best regards,
Moonki

Thank you Moonki for your advice !
I followed your steps and, you’re right, it’s rather easy to find the corresponding nodes.

My next question is the following: I’d like to create a Folder to store the references to the nodes where the Vicon markers are attached. For example, for only two of these markers, I wrote the following code:


AnyFolder &BodyModel=Main.HumanModel.BodyModel;

BodyModel={
  AnyFolder MarkersOnBones={
    AnyRefNode &THORAX1 = Main.HumanModel.BodyModel.Trunk.SegmentsThorax.ThoraxSeg.ij;
    AnyRefNode &THORAX2 = Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.RANode ;
  };
};

I’d like to add a “AnyDrawNode” (at each node) or “AnyDrawNodes” (for all nodes) but I can’t figure out how to do it :confused: I tried the following code but (as I expected !) didn’t worked; the error I got being “ERROR(OBJ4) : D:/D…x/1…l/A…n/L…n/M…l/MarkersOnBones.any(32) : drw : Wrong owner class for AnyDrawNodes. Accepted owner(s): Any3DObject or derived”


AnyFolder &BodyModel=Main.HumanModel.BodyModel;

BodyModel={
  AnyFolder MarkersOnBones={
    AnyRefNode &THORAX1 = Main.HumanModel.BodyModel.Trunk.SegmentsThorax.ThoraxSeg.ij;
    AnyRefNode &THORAX2 = Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.RANode ;
   
    THORAX1  = {AnyDrawNode drw= RGB = {0,0,1}; ScaleXYZ = {1,1,1}*..ScaleNode ;
    AnyDrawNodes DrwNodes= {RGB = {0,0,1}; ScaleXYZ = {1,1,1}*.005;};  

  };
};

Could you help me and explain to me what is the correct code ?
Thank you !
Lauranne

Lauranne,

this will show all nodes in the humerus:

Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Humerus = {

  AnyDrawNodes dddddddd = {};

};

So, maybe this would work for you:

AnyFolder TEst = {
AnyRefNode &Node1 = …;

  AnyRefNode &Node2 = ...;
  
  AnyDrawNodes dddddddd = {};

};

but I’m not sure if it will work with the folder instead of a segment.

Hi,
ok, thank you for your tips.

Finally, the answer is “no”: adding AnyDrawNodes in a folder (i.e. not a segment folder) does not work.

So, here is the new question: how to easily draw nodes, i mean without having to go to the file were nodes are created? For example: the node “aa” located on the scapula segment/bone is created in the file “Seg.any”. My idea was to create a pointer and to add the node to this pointer:


AnyRefNode &THORAX1 = Main.HumanModel.BodyModel.Trunk.SegmentsThorax.ThoraxSeg.ij;
THORAX1  = {AnyDrawNode drw= RGB = {0,0,1}; ScaleXYZ = {1,1,1}*.004;};

However, since “THORAX1” is seen as a folder, I cannot use the AnyDrawNode (or AnyDrawNodes) function…

Any idea(s)?

Regards,
Lauranne

Hello,
I come back on the message of Moonki:

In fact it appeared that the T8 node is not linked to any muscle (please, see attached picture, I'm looking for the green circled node). I tried by a trial and error process but, really, I am absolutely unable to found the reference of this node. Would you have any other advice or idea to get its reference?

Thank you !
Lauranne

Just searched for it a while myself without success. Before spending more time, I would make a new node in a similar position.

Hello,
“good” news to see that there is not any easy solution !
In fact, I did what you’re suggesting; but I was interested in using the existing nodes to get the scale function already defined on them.
Lauranne.