Implementation of Arm Support Counterweight type

Hello,

I’m looking for ways to implement the inertia of an arm support which uses counterweights to provide force at the Ulna. Currently I’ve only modeled the arm support as an uplifting force, distributed over 2 points on the Ulna. Now I want to replace it by representing the counterweight as a flat disc with no inertia in medio-lateral & anterior-posterior movement (as the weight is actually not located at the Ulna) and the proper inertia for translations up and down. I’ve made the flat disc with inertia properties and want it to be attached to predefined positions on the Ulna, but I want it to stay horizontal. I do not have luck in figuring out how to restrict the movement as most joints are constraining translations and not rotations. My attempt at fixing the disc to the Ulna with a spherical joint and fixing the disc to the ground for rotations has not been successful. The second problem would be that the disc should provide a force upwards, but I’m not certain if setting the mass as negative could be a solution.

Greets, Hans

Dear Hans,

It would be easier for us to help you if you can upload your model here.

Best regards,
Moonki

Attached you will find the DeBugModel, you only need to change the directories specified in the ModelInput.any

In the Environment.any file you will find my progress so far. The SLINGnodes.any specifies the location on the Ulna where the discs would be attached.

Thanks in advance.

Greets, Hans

Hi,

I tried to modify your model.

So please have enough time to figure out what I’ve changed and please check whether those change may make sense for you.

Best regards,
Moonki

Hello Moonki,

Thanks for the modifications.

The model runs and it seems like the movement of the disc is how I want it to be. However, it seems that the mass and inertia properties have no effect on the shoulder joint moments. For example, I would expect to see a decrease in the Shoulder Abduction moments due to the supporting force from the disc. Perhaps I incorrectly segmented the disc? The real-life situation would be with a pulley, but I tried to simplify the situation by giving the disc a negative mass.

Greets, Hans

Hello Moonki,

I haven’t figured out why the inertia of the discs has no effect on the joint loading. Have you by any chance had the opportunity to look at it?

Greets, Hans

Dear Hans,

First, sorry for late reply.

If you want to provide some support from this device to human arm,
you should define some reaction forces from the ground to your device.

Then you can try to change the values of the inertia of your device and see how the effect on human will be changed.

Best regards,
Moonki

Hello Moonki,

I’ve tried to modify the Reaction folder so the forces due to the Slings inertia will be transferred, but I was unsuccessful. When I try to run Inverse Dynamics I get this error:

Macro command : InverseDynamicAnalysisSequence(8:8)> run

8.0) InverseDynamics (Operation: Main.Studies.InverseDynamicStudy.InverseDynamics):
8.0.0) PreOperation (Operation: Main.Studies.InverseDynamicStudy.InverseDynamics.PreOperation):
8.0.0.0) InitialConditions (Operation: Main.Studies.InverseDynamicStudy.InitialConditions):
8.0.0.0) …Design variables have been updated.
8.0.0.1) …Load-time positions have been re-established.
8.0.0.2) …Kinematic analysis completed. The kinematic constraints have been resolved.
8.0.0.3) …Initial conditions are fully updated.
8.0) Inverse dynamic analysis…
ERROR(OBJ.MCH.MUS4) : E:/Pro…ts/A…l/M…l/M…l/InverseDynamics.any(29) : InverseDynamicStudy.InverseDynamics : Muscle recruitment solver : solver aborted due to singular KKT matrix

If I interpret this error correctly, it means that there are not enough muscles (or strength) to solve this situation, even at a Sling weight of 0. I’m not sure to which constraint this applies and this error occurs at the initial conditions. I’ve only adjusted the Environment.any file (attached), the ArmSupport.zip you’ve sent me on 11-05-2016 still contains the model and all relevant input data.

Greets, Hans

Dear Hans,

Attached please find the modified version of your model.

What I did in the attached model is that I define an AnyKinPLine object between the global reference frame and the target disc. And I assumed that there should be a reaction force between those two points.

I think that now it is up to you regarding how you would like to determine the size of this disc, and how many contact points you would like to use between the lower arm and this disc.

Best regards,
Moonki