How can I make torque-driven predictive simulations realistic?

OpenSim Moco is a software toolkit to solve optimal control problems with musculoskeletal models defined in OpenSim using the direct collocation method.
User avatar
Aaron Fox
Posts: 289
Joined: Sun Aug 06, 2017 10:54 pm

How can I make torque-driven predictive simulations realistic?

Post by Aaron Fox » Wed Apr 06, 2022 5:38 pm

Hi All,

A bit of a broad, thought provoking question relating to something I've had happen when producing torque driven predictive simulations. In certain circumstances I'm less interested in muscle behaviour, and more-so the movement and joint torque behaviour. For these questions, torque-driven simulations obviously provide a significant computational benefit. My problem though is that I feel it's much more difficult to tune the coordinate actuators to resemble realistic behaviour with respect to the forces and movements they can produce. For example, I've tried to program a predictive simulation of gait with the goal of getting from A to B at a certain speed. Because I hadn't appropriately tuned the torque actuators - the model simply propelled itself using it's overly powered ankle actuators while the rest of the body did nothing (i.e. like a super bunny hop).

Presumably the solution to this is putting appropriate bounds on the coordinate actuators force producing capabilities and perhaps bounding the model states (joint positions, speeds) so that they produce appropriate positions? For the first point, has anyone identified appropriate methods for matching joint torque actuator parameters so that they would match what is producible by muscles? Or has anyone had good success in producing torque driven predictive simulations of movement?

Aaron

User avatar
Ton van den Bogert
Posts: 166
Joined: Thu Apr 27, 2006 11:37 am

Re: How can I make torque-driven predictive simulations realistic?

Post by Ton van den Bogert » Thu Apr 07, 2022 7:15 am

Aaron,

You could create a torque-driven model with force-length and force-velocity properties, which will help keep the torques realistic. It would look like: T = u * f1(angle) * f2(angular_velocity), where u is the control input. There would not be a series elasticity, or biarticular muscle effects, but definitely more realistic than allowing any torque up to a maximum.

This approach was used in several simulation studies from Fred Yeadon's group. They initially did aerial movements, but later also simulated landings where realistic torques are important. They also published at least one paper on how they determined the functions f1 and f2 from strength tests. You could possibly just use those results.

Look up papers by Yeadon M.R. and look for titles that seem relevant.

As usual, I would not know how to do this in Moco but someone else can comment on that.

As an aside, some researchers have gotten realistic movements without force-length and force-velocity information in a torque driven model, see for example, Katja Mombaur's early work on predictive simulation.

Ton van den Bogert

User avatar
Pasha van Bijlert
Posts: 227
Joined: Sun May 10, 2020 3:15 am

Re: How can I make torque-driven predictive simulations realistic?

Post by Pasha van Bijlert » Thu Apr 07, 2022 7:41 am

Hi all,
As usual, I would not know how to do this in Moco but someone else can comment on that.
I ran into this issue recently when trying to add joint actuators - as far as I know it's not currently possible to add a torque actuator in moco with a moment-angle (or ang vel) relationship, or alternatively constrain the control space so the actuator can only be active over certain joint ranges (unless there's a different actuator component that I didn't find in the documentation).

This is not a problem for tracking simulations, but in predictive simulations you'll get weird gaits like you're describing. I tried to get around it by adding in joint springs (thereby getting a moment-angle relationship to some extent), and making the torque actuator much weaker, but had just as much success in doing away with the torque actuator altogether.

Cheers,
Pasha

User avatar
Simon Jeng
Posts: 87
Joined: Fri Sep 07, 2018 8:26 pm

Re: How can I make torque-driven predictive simulations realistic?

Post by Simon Jeng » Thu Apr 07, 2022 7:59 am

One of the differences of torque-driven models from muscle-driven models is that the torque limit is regarded as a constant, or we say static joint strength, instead of a real dynamic joint strength. To include muscle properties into torque-driven models, we can construct a dynamic joint strength model in which the torque limit is a function of joint angles and joint angular velocities, just like Ton said. The way to do this in Moco has been answered by Nick in another thread.
viewtopicPhpbb.php?f=1815&t=13700&p=39797&start=0&view=

In addition, is it possible to include some feasible constraints? For example, let the ground reaction force to be nonzero, or limit the vertical displacement of the CoM.

Hope it helps,
Simon

User avatar
Ross Miller
Posts: 375
Joined: Tue Sep 22, 2009 2:02 pm

Re: How can I make torque-driven predictive simulations realistic?

Post by Ross Miller » Thu Apr 07, 2022 9:11 am

A way of accomplishing the spirit of this without adding custom functions to Moco might be with a minimal set of muscles, e.g. for a 3-DoF model (hip/knee/ankle), define just six muscles, one on each side of each joint. You might even be able to arrange them in a way that the moment arms are constant, or close to constant (the lines of action need to be parallel to the long axis of the body, I think).

Ross

User avatar
Aravind Sundararajan
Posts: 17
Joined: Mon Aug 29, 2016 2:59 pm

Re: How can I make torque-driven predictive simulations realistic?

Post by Aravind Sundararajan » Thu Apr 07, 2022 9:24 am

Is it insufficient to use ActivationCoordinateActuators along with ExpressionBasedCoordinateForce or CoordinateLimitForce on each dof tuned to some physiological estimates of damping/stiffness?

For some of our models, I've been using variations of hyperbolic sine as expressions for mapping coordinate value over the desired joint range of motion to limiter force and some linear or constant damping term. Some of other developed models I've seen just have damping terms as constant 0.1 N/(m/s) or Nm /(m/s)

in a simtk expression happy form, that would be like 1*exp(1 - q) - 1*exp(q - 1) - 0.1*qdot

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

Re: How can I make torque-driven predictive simulations realistic?

Post by Nicholas Bianco » Thu Apr 07, 2022 10:48 am

Another approach relevant to this discussion can be found in "Synthesis of Biologically Realistic Human Motion Using Joint Torque Actuation" by Jiang et al. (2019): https://arxiv.org/abs/1904.13041. In this study, the authors used neural networks to create non-linear constraints on torque actuators based the state-dependent torque generating capacity of a musculoskeletal model. They then use these constraints in direct collocation problems and with reinforcement learning.

User avatar
Ross Miller
Posts: 375
Joined: Tue Sep 22, 2009 2:02 pm

Re: How can I make torque-driven predictive simulations realistic?

Post by Ross Miller » Thu Apr 07, 2022 3:10 pm

aravind wrote:
Thu Apr 07, 2022 9:24 am
Is it insufficient to use ActivationCoordinateActuators along with ExpressionBasedCoordinateForce or CoordinateLimitForce on each dof tuned to some physiological estimates of damping/stiffness?

For some of our models, I've been using variations of hyperbolic sine as expressions for mapping coordinate value over the desired joint range of motion to limiter force and some linear or constant damping term. Some of other developed models I've seen just have damping terms as constant 0.1 N/(m/s) or Nm /(m/s)

in a simtk expression happy form, that would be like 1*exp(1 - q) - 1*exp(q - 1) - 0.1*qdot
This would give you an actuator force like F = Fo*Act + f(q,qdot). Hill-type actuators are typically F = Fo*Act*f(q,qdot) although lots of muscle models assume some simpler form like F = Fo*Act + b*qdot. I tried that model for walking once and it worked fine (similar results to full-blown Hill model) although for general use I think it would be pretty limited since it requires that force-length effects are negligible and velocities are slow.

Ross

User avatar
Aaron Fox
Posts: 289
Joined: Sun Aug 06, 2017 10:54 pm

Re: How can I make torque-driven predictive simulations realistic?

Post by Aaron Fox » Thu Apr 07, 2022 5:37 pm

Thanks everyone for the detailed responses.

For my application it seems like Ton's suggestion links up with the link out to another thread and the use of physiological-like torque actuators in Carmichael's paper (https://pubmed.ncbi.nlm.nih.gov/26258930/). I want to apply these approaches in jumping, cutting and landing movements so linking up to Carmichael's jumping application makes sense.

@Nick - would I be able to build these muscle like coordinate actuators for use with my OpenSim install by using them like a custom plugin?

Aaron

User avatar
Tylan Templin
Posts: 40
Joined: Mon Jan 15, 2018 10:55 am

Re: How can I make torque-driven predictive simulations realistic?

Post by Tylan Templin » Fri Apr 08, 2022 2:28 pm

Hi Aaron,

I am also interested in doing something similar, so thank you for this post!

I was able to use the MuscleLikeCoordinateActuator.cpp and MuscleLikeCoordinateActuator.h here: https://github.com/opensim-org/opensim- ... gWholeBodyto build a custom plugin as you suggested, and it seems to work well!

My question is regarding the polynomial coefficients that are used in the Ashby Model. Should these be the same regardless of movement? And is there any guidance on how to generate these coefficients for additional degrees of freedom?

Thanks!

Ty

POST REPLY