Getting parameters for muscle spindle model

Discussion in 'Support requests' started by Travis DeWolf, Feb 25, 2021.

  1. Hello,
    I am working to implement the muscle spindle model described in this paper. The parameters that it needs are

    FM : The force exerted by the muscle fiber FM (N)
    FMmax : Maximal isometric force (N)
    lM : Fiber length (mm)
    lMopt : Optimal fiber length (mm) == rest sarcomere length
    a : Normalized muscle activity
    vM : Fiber contraction velocity (mm/s)

    I'm working on getting these values out of Mujoco. So far I'm looking at

    FM :
    sim.data.actuator_force

    FMmax :
    the user specified 'force' if specified, otherwise scale / actuator_acc0

    lM :
    Where I'm looking for the length of the muscle, and actuator_length is the muscle length plus the length of the tendon
    sim.data.actuator_length - sim.model.tendon_length0
    but I'm not sure that tendon_length0 is actually what I'm looking for. I might be looking for sim.data.ten_length? It's not clear to me what the difference is. The documentation says that tendon_length0 is the tendon length in qpos0, but also the length of the tendons is supposed to be constant, if I understood the documentation properly.

    lMopt:
    Working backwards from the equations provided in the documentation, I'm calculating the resting muscle length (L0 in the Mujoco documentation) for muscle ii as:
    (lengthrange[ii][0] - lengthrange[ii][1]) / (gainprm[ii][0] - gainprm[ii][1])

    a
    I'm not sure here what value to use. I see that the
    actuator_force = - FLV(L, V, act) * F0
    so I would guess
    a = actuator_force / F0
    but I'd like to be sure I'm not mixing up terms or missing something.

    vM:
    The fiber contraction velocity I'm guessing in this case is sim.data.actuator_velocity ... ? There's also ten_velocity, and it's not clear to me how they interact, exactly.

    Any insight that you could provide would be greatly appreciated!
    Thanks,