Implement Muscle Actuator

Discussion in 'Simulation' started by Chris Saliba, Sep 15, 2016.

  1. Hi,

    I'm working on implementing a model using biological muscles as actuators. In the mujoco.h header file, there are definitions for mju_muscleFVL and mju_musclePassive functions. Most of the inputs to these functions make sense, but some I'm not sure of - the values in the prm input for example. I couldn't find a detailed description of the functions in the current documentation. What are the appropriate inputs to these functions?

    Thanks in advance,

  2. Emo Todorov

    Emo Todorov Administrator Staff Member

    These functions are just placeholders. They don't do anything for now. The plan is to implement a default muscle model at some point.
  3. Ok, thanks for the quick reply.
  4. Hello,

    Is there a default muscle model available now??
    I am very interested to use it in my project for lower limb model with powered exoskeleton.

  5. Emo Todorov

    Emo Todorov Administrator Staff Member

    There is no default muscle model. I will probably add one in version 1.60 due by the end of May.
  6. hi,

    Thanks for the information. Waiting for the update :)

  7. Any update regarding muscle functions?
  8. I'm also running into this. I'd specifically love it if tendons could act as non-linear springs (exponential rather than Hookean) as that would allow for easily implementation of Hill-type models. Maybe there's an easy way to do this already, if so please do let me know!
  9. Emo Todorov

    Emo Todorov Administrator Staff Member

  10. Very glad to see this! Thanks for all the hard work. I look forward to getting to play with them. A couple questions on a first pass reading

    1. Do the combined muscle+tendon structures have elastic properties by default? If not is there anything stopping a user setting the standard stiffness param on a tendon to have it display spring like behavior?

    2. Muscle fatigue comes in (at least) two components. 1. central (which is effectively a modifier on the control signal) and 2. peripheral (which is effectively a modifier on the activation level). For my model I'd love to provide a callback that sits between the tau filter and the FLV function. Is that possible?
  11. Emo Todorov

    Emo Todorov Administrator Staff Member

    1. Elasticity is built into the FLV function, in the sense that it has positive slope in the interval (lmin, 1). You could add linear elasticity to the tendon itself. But if you are talking about explicit modeling of a muscle and an elastic tendon in series, this is not done and is left to the user.

    2. You can replace the default filter with a callback, but it is easier to simply change tau over time. There is a separate tau for each muscle. You can also change the peak force F0 of the muscle.