Page 1 of 1
elbow flexion moment exo
Posted: Tue Mar 17, 2020 12:05 pm
by danmenpui
Hi, I'm trying to see how using an exoskeleton when doing a flexion / extension movement affects the elbow, the problem is that when modifying the spring stiffness, I always get the same torque at the elbow.
- exo.png (60.61 KiB) Viewed 972 times
- elbow flexion moment.png (14.69 KiB) Viewed 972 times
Logically, by modifying the spring stiffness, you should get a different torque at the elbow, but that doesn't happen. Does anyone have any idea what is going on?
Thank you
Re: elbow flexion moment exo
Posted: Tue Mar 17, 2020 12:41 pm
by tkuchida
Logically, by modifying the spring stiffness, you should get a different torque at the elbow, but that doesn't happen. Does anyone have any idea what is going on?
How are you generating your simulations? If you are running the Inverse Dynamics Tool, then the behavior you are seeing does make sense: the net joint moments required to track the specified kinematics would not change if you change the spring stiffness (unless you also change the kinematics that are being tracked).
Re: elbow flexion moment exo
Posted: Wed Mar 18, 2020 4:29 am
by danmenpui
I do the IK first and then the ID. After modifying the stiffness of the spring, I carry out a new study of IK and ID, saving it in different files and comparing the moment of flexion in the elbow, resulting in that they are exactly the same, which I do not understand, according to which the kinematics does not vary, but the forces for dynamic study if they should vary and a different elbow flexion moment should be obtained, right?
Re: elbow flexion moment exo
Posted: Thu Mar 19, 2020 6:57 am
by tkuchida
If the motion you are tracking with IK is not changing, then the IK results will not change. Similarly, if the kinematics do not change, then the net joint moments computed by ID will not change.
Re: elbow flexion moment exo
Posted: Tue Mar 24, 2020 5:33 am
by danmenpui
I don't understand your reasoning. The kinematic study is always the same, but the dynamic study should change when modifying the spring stiffness, since the external forces applied to the model vary. It is not possible that the moment supported by the elbow is always the same when I modify the conditions of the spring. The problem is that I can't find where the failure may be.
Re: elbow flexion moment exo
Posted: Wed Mar 25, 2020 7:51 pm
by tkuchida
I'm also not sure about this: I added a SpringGeneralizedForce to the arm26 model and the computed net joint moments changed. I can help you investigate if you upload an example that demonstrates the issue.
Re: elbow flexion moment exo
Posted: Wed Mar 25, 2020 8:00 pm
by tkuchida
By the way, please check the "forces_to_exclude" property in your Inverse Dynamics Tool setup file:
Code: Select all
<InverseDynamicsTool>
...
<!--List of forces by individual or grouping name (e.g. All, actuators, muscles, ...) to be excluded when computing model dynamics. 'All' also excludes external loads added via 'external_loads_file'.-->
<forces_to_exclude />
...
</InverseDynamicsTool>
Re: elbow flexion moment exo
Posted: Thu Mar 26, 2020 5:34 am
by danmenpui
Hi, thanks for your response. As forces excluded are only the muscles, so the spring must act. It occurs to me that to connect the exoskeleton to the arm I have used a ConstraintSet. Can it not transmit the force generated by the spring to the arm because of that?
Thank you
Code: Select all
<WeldConstraint name="weldconstraint">
<!--List of components that this component owns and serializes.-->
<components />
<!--Flag indicating whether the constraint is enforced or not.Enforced means that the constraint is active in subsequent dynamics realizations. NOTE: Prior to OpenSim 4.0, this behavior was controlled by the 'isDisabled' property, where 'true' meant the constraint was not being enforced. Thus, if 'isDisabled' is'true', then 'isEnforced' is false.-->
<isEnforced>true</isEnforced>
<!--Path to a Component that satisfies the Socket 'frame1' of type F (description: The first frame participating in this linker.).-->
<socket_frame1>placa_ulna_02_offset</socket_frame1>
<!--Path to a Component that satisfies the Socket 'frame2' of type F (description: The second frame participating in this linker.).-->
<socket_frame2>ulna_offset</socket_frame2>
<!--Frames created/added to satisfy this component's connections.-->
<frames>
<PhysicalOffsetFrame name="placa_ulna_02_offset">
<!--The geometry used to display the axes of this Frame.-->
<FrameGeometry name="frame_geometry">
<!--Path to a Component that satisfies the Socket 'frame' of type Frame.-->
<socket_frame>..</socket_frame>
<!--Scale factors in X, Y, Z directions respectively.-->
<scale_factors>0.20000000000000001 0.20000000000000001 0.20000000000000001</scale_factors>
</FrameGeometry>
<!--Path to a Component that satisfies the Socket 'parent' of type C (description: The parent frame to this frame.).-->
<socket_parent>/bodyset/placa_ulna_02</socket_parent>
<!--Translational offset (in meters) of this frame's origin from the parent frame's origin, expressed in the parent frame.-->
<translation>0 0 -0.10000000000000001</translation>
<!--Orientation offset (in radians) of this frame in its parent frame, expressed as a frame-fixed x-y-z rotation sequence.-->
<orientation>0 0 0</orientation>
</PhysicalOffsetFrame>
<PhysicalOffsetFrame name="ulna_offset">
<!--The geometry used to display the axes of this Frame.-->
<FrameGeometry name="frame_geometry">
<!--Path to a Component that satisfies the Socket 'frame' of type Frame.-->
<socket_frame>..</socket_frame>
<!--Scale factors in X, Y, Z directions respectively.-->
<scale_factors>0.20000000000000001 0.20000000000000001 0.20000000000000001</scale_factors>
</FrameGeometry>
<!--Path to a Component that satisfies the Socket 'parent' of type C (description: The parent frame to this frame.).-->
<socket_parent>/bodyset/ulna</socket_parent>
<!--Translational offset (in meters) of this frame's origin from the parent frame's origin, expressed in the parent frame.-->
<translation>0 -0.089999999999999997 0</translation>
<!--Orientation offset (in radians) of this frame in its parent frame, expressed as a frame-fixed x-y-z rotation sequence.-->
<orientation>0 0 0</orientation>
</PhysicalOffsetFrame>