How can I make torque-driven predictive simulations realistic?
How can I make torque-driven predictive simulations realistic?
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
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
- Ton van den Bogert
- Posts: 166
- Joined: Thu Apr 27, 2006 11:37 am
Re: How can I make torque-driven predictive simulations realistic?
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
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
- Pasha van Bijlert
- Posts: 227
- Joined: Sun May 10, 2020 3:15 am
Re: How can I make torque-driven predictive simulations realistic?
Hi all,
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
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).As usual, I would not know how to do this in Moco but someone else can comment on that.
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
- Simon Jeng
- Posts: 87
- Joined: Fri Sep 07, 2018 8:26 pm
Re: How can I make torque-driven predictive simulations realistic?
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
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
- Ross Miller
- Posts: 375
- Joined: Tue Sep 22, 2009 2:02 pm
Re: How can I make torque-driven predictive simulations realistic?
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
Ross
- Aravind Sundararajan
- Posts: 17
- Joined: Mon Aug 29, 2016 2:59 pm
Re: How can I make torque-driven predictive simulations realistic?
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
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
- Nicholas Bianco
- Posts: 1045
- Joined: Thu Oct 04, 2012 8:09 pm
Re: How can I make torque-driven predictive simulations realistic?
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.
- Ross Miller
- Posts: 375
- Joined: Tue Sep 22, 2009 2:02 pm
Re: How can I make torque-driven predictive simulations realistic?
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.aravind wrote: ↑Thu Apr 07, 2022 9:24 amIs 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
Ross
Re: How can I make torque-driven predictive simulations realistic?
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
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
- Tylan Templin
- Posts: 40
- Joined: Mon Jan 15, 2018 10:55 am
Re: How can I make torque-driven predictive simulations realistic?
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
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