Skip to content

[MUSCLE] Add support multiple muscle actuator models #12

@ShravanTata

Description

@ShravanTata

The feature, motivation and pitch

Problem

We currently do not have a well-defined way to describe different muscle models needed for neuromechanical simulations. Our implementation mixes three distinct components without clear separation:

  1. Transmission (length computation)

    • Joint-based: Muscle length computed as function of joint angles (constant moment arms)
    • MTU-based: Muscle length computed from spatially-defined muscle path (variable moment arms)
  2. Activation Dynamics (control → activation)

    • Direct control (pass-through)
    • First-order activation/deactivation dynamics
  3. Force Generation (activation → force)

    • Linear combination of control inputs
    • Nonlinear Hill-type force-length-velocity curves (active + passive components)

Proposed Solution

Following MuJoCo's convention, structure muscle models as composable single-input-single-output (SISO) components that can be chained together:

Control Input → Activation Dynamics → Force Generation → Transmission → Joint Torque

Alternatives

No response

FARMS packages

farms_mujoco

Additional context

Muscle models

  1. Ekeberg muscles
  2. Brown muscle
  3. Rigid tendon
  4. Flexible tendon

Related

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions