Inverse dynamics on a human exoskeleton model

OpenSim Moco is a software toolkit to solve optimal control problems with musculoskeletal models defined in OpenSim using the direct collocation method.
POST REPLY
User avatar
Andreas Christou
Posts: 4
Joined: Mon Mar 30, 2020 3:34 am

Inverse dynamics on a human exoskeleton model

Post by Andreas Christou » Wed Jan 18, 2023 6:49 am

Hello everyone,

I've been trying to carry out an inverse dynamics analysis on a human-exoskeleton model but struggle to find the OpenSim tool which is best suited to my problem.

The task:
In its simplest form the task can be abstracted as a bicep curl, where the shoulder is locked and the elbow can be controlled by both the human and a one degree-of-freedom exoskeleton. The human performs a motion of the elbow from 0 degrees to 'X' degrees and back to 0 degrees (bicep curl) while the exoskeleton is controlled by a PD controller with a set point at 0 degrees resisting the human's motion.

The desired output (decision variable):
An estimate of the human controls during this task (or a more complicated task which involves more degrees of freedom).

The Objective (cost function):
A trajectory tracking objective (minimise the kinematic error between the model motion and the recorded motion).

The constraints:
- Human-exoskeleton dynamics
- Bushing forces between the human and the exoskeleton straps.
- Exoskeleton state-feedback controller

I am familiar with the OpenSim GUI tools and I have briefly looked into OpenSim Moco. However, I am not sure I know how to implement a state-feedback constraint for the exoskeleton's behaviour. Would it be easier to provide the recorded torque trajectory as a constraint instead (even though this signal can be quite noisy)? Any suggestions would be greatly appreciated.

Kind regards,
Andreas

User avatar
Nicholas Bianco
Posts: 1038
Joined: Thu Oct 04, 2012 8:09 pm

Re: Inverse dynamics on a human exoskeleton model

Post by Nicholas Bianco » Wed Jan 18, 2023 2:48 pm

Hi Andreas,

Moco doesn't support feedback controllers (yet), but you could either provide the torque control (as you suggest) or model the torque with an open loop control. Perhaps the best option would be to use an open loop control and track the record torque trajectory (using MocoControlTrackingGoal) and try to let the simulation filter out the noise. You probably still want to smooth out the trajectory a little before tracking to ensure good convergence.

-Nick

User avatar
Andreas Christou
Posts: 4
Joined: Mon Mar 30, 2020 3:34 am

Re: Inverse dynamics on a human exoskeleton model

Post by Andreas Christou » Thu Jan 19, 2023 7:18 am

Hi Nick,

I appreciate your prompt response. I was wondering whether there was something available that I was missing. I also found out about the ExpressionBasedCoordinateForce function which might also turn out to be useful. I will need to test whether the mathematical expressions/functions I want to use there are supported.

User avatar
Nicholas Bianco
Posts: 1038
Joined: Thu Oct 04, 2012 8:09 pm

Re: Inverse dynamics on a human exoskeleton model

Post by Nicholas Bianco » Thu Jan 19, 2023 11:51 am

ExpressionBasedCoordinateForce uses Lepton to parse mathematical expressions. You can find more info about the supported functions in the user manual included with the download.

POST REPLY