You are viewing the documentation for OpenSim 2.4. Are you looking for the latest OpenSim 4.0 Documentation?

Muscle Editor Panels

The topics included in this section include:


The properties of a muscle are organized into panels within the Muscle Editor window, figure below. The Attachment Panel shows all of the attachment points (fixed, via, and moving) that define the muscle path. 

  • The Attachment Panel, displays the fixed, via, and moving muscle points that define the muscle path. 

  • The Parameters Panel contains the force-generating parameters, such as optimal fiber length, pennation angle, and the activation time constants. The exact set of parameters in this panel depends on the type of muscle. There are currently two types of muscle supported in OpenSim. Thelen2003Muscle was developed by Darryl Thelen, Ph.D. [1], and Schutte1993Muscle was developed by Lisa Schutte, Ph.D. [2]. 

  • The Functions Panel contains the force-generating parameters that are functions, such as the force-length curve in a Schutte1993Muscle. Muscles that have no function parameters, such as muscles of type Thelen2003Muscle, do not have a Functions panel. 

  • The Wrapping Panel displays the list of wrap objects that are currently associated with the muscle. 

  • The Current Path Panel shows the list of attachment points that currently define the muscle path.

Attachments

The Attachments panel gives you access to all of the fixed, via, and moving muscle points that define the path of the muscle. Here is a description of each column of information:

<muscle point index>  the index of the attachment point. This index is used by the Add and Delete buttons, described below, as well as the start point and end point parameters for wrapping. These indices do not change when via points turn on or off or when wrapping points are added to the path. They change only when you add or delete fixed, via, or moving attachment points.


  
Sel  this checkbox indicates whether or not the muscle point is selected in the model window. Selected attachment points can be dragged to new locations using the mouse.
Type  the type of the attachment point: fixed, via, or moving. Fixed points are points whose XYZ offsets are fixed in a body's reference frame. Via points are points that are fixed to a body, but they are used in the muscle path only when a specified coordinate is in a certain range. Moving muscle points are points whose X, Y, and/or Z offsets in a body's reference frame are functions of coordinates, rather than simple constants.
X  the X offset of the attachment point in the body's reference frame. For fixed and via points, this offset is a constant. You can change the value by clicking in the number field and entering a new value. For moving muscle points, the offset is a function of a coordinate, rather than a constant. To edit the function, click the Edit button to display it in the Function Editor window.
Y  the Y offset of the attachment point in the body's reference frame. For fixed and via points, this offset is a constant. You can change the value by clicking in the number field and entering a new value. For moving muscle points, the offset is a function of a coordinate, rather than a constant. To edit the function, click the Edit button to display it in the Function Editor window.
Z  the Z offset of the attachment point in the body's reference frame. For fixed and via points, this offset is a constant. You can change the value by clicking in the number field and entering a new value. For moving muscle points, the offset is a function of a coordinate, rather than a constant. To edit the function, click the Edit button to display it in the Function Editor window.
Body  the body to which the muscle point is attached.
Coordinate  For via points, this is the coordinate that controls whether or not the point is included in the muscle path (active). The point is active only when the coordinate is between the specified minimum (Min) and maximum (Max) values.
Min  For via points, the lower bound of coordinate values for which the point is active. If the coordinate has a value that is below this minimum, the attachment point is not included in the path of the muscle.
Max  For via points, the upper bound of coordinate values for which the point is active. If the coordinate has a value that is above this maximum, the attachment point is not included in the path of the muscle.

Parameters

This panel shows the fixed, via, and moving muscle points that define the muscle path. In this example, the path is defined by four attachment points. The first point is fixed to the pelvis and the second point is a via point on the femur that is active only when the knee is flexed between -83.65 and -150.0 degrees. The third point is attached to the tibia, but its location changes as the knee flexes. The fourth point is a point fixed to the tibia. 

Below the list of attachment points are buttons for adding and deleting points. To add an attachment point, click on Add and then choose where you would like to place the point in the list of existing ones. The indices in the drop down menu refer to the indices listed in the left-most column next to each point in the Attachments panel. To delete a point, click on Delete and then choose the index of the point to be deleted.

The Parameters panel gives you access to all of the parameters that define the force-generating behavior of the muscle. The specific set of parameters displayed depends on the type of muscle. 

For muscles of type Thelen2003Muscle, this panel will display the length parameters such as optimal_fiber_length and tendon_slack_length, the activation time constants, and the coefficients describing the force-length properties, such as KshapeActive. To modify any of these parameters, just enter a new value into the number field next to the name of the parameter. 

For muscles of type Schutte1993Muscle, the panel will display the length, activation, and pennation angle parameters. Again, these can be modified by entering a new value into the number field next to the parameter name. The force-length parameters, however, are normalized functions instead of constants, so they are displayed in the Functions panel.

Functions

The Functions panel displays the force-generating properties of the muscle that are functions, rather than constants. For muscles of type Schutte1993Muscle, these functions are: tendon_force_length_curve, active_force_length_curve, passive_force_length_curve, and force_velocity_curve. To modify one of these functions, click on the Edit button next to its name and then use the Function Editor to move, add, and delete the function's control points visit Function Editor for more information.

Muscles of type Thelen2003Muscle do not have any parameters that are functions, so the Functions panel is not shown.

Wrapping Panel

The Wrapping panel shows the wrap objects that are currently associated with the muscle, and provides an interface for adding, deleting, and modifying these associations. When more than one wrap object is associated with a muscle, the order in which the objects are applied to the muscle is the order in which they are listed in the Wrapping panel. In many cases, the ordering of wrap objects does not affect the resulting path of the muscle, but when the objects are close to or intersect each other, changing the order may change the muscle path.

To move a wrap object up in the order, click on the blue up arrow to the far left of the object's name. To move it down in the order, click on the blue down arrow. To delete the association, click on the red "x". This does not delete the wrap object from the model; it merely removes it from the list of objects applied to this one muscle. To add a wrap object association, click on the blue + sign and choose a wrap object from the drop down menu.

If the wrap object is an ellipsoid, you can select one of three methods to calculate the muscle path over its surface: midpoint, axial, and hybrid. These methods are described below in the section on the Current Path

This panel shows all of the wrap objects that are associated with the muscle. You can add to, delete from, or reorder the list, as well as restrict the wrapping of each object to a subset of the muscle path. For ellipsoid wrap objects, you can also specify the algorithm used to calculate the wrapping path. 

The Start Pt and End Pt parameters let you control which sections of the muscle are allowed to wrap over the wrap object. For example, if Start Pt = 1 and End Pt= 4, then only the segments of the muscle path between the first and fourth attachment points will be checked for possible wrapping over the wrap object. These indices correspond to the indices of the points listed in the Attachments panel. If Start Pt = first, then the starting point will always be the first attachment point in the muscle. Similarly, if End Pt = last, then the ending point will always be the last attachment point. In contrast, if Start Pt = 1, and then you add a new attachment point to the muscle before point 1, Start Pt will automatically be adjusted to 2 so that it still corresponds to the same attachment point in the list. In most cases, you will want to set Start Pt = first and End Pt = last, so that the entire path is checked for possible wrapping. However, for muscles which have more than one wrap object association, or are associated with wrap objects that are constrained (i.e., only half the object is active), it is sometime helpful to restrict the wrapping to a subset of the muscle path.

Current Path

The Current Path panel shows the list of attachment points that currently define the muscle path. The list includes all fixed and moving muscle points, via points that are currently active, and wrap points on each wrap object that is currently constraining the path. The XYZ coordinates of the points in their body's reference frame are shown, as well as the body to which they are attached and the type of point. This list of points is updated as the joints of the model move, so it can be a useful debugging tool when you are defining or modifying a muscle path. 

Current Path Panel: This panel shows the list of attachment points that currently define the muscle path. 

Backing Up and Restoring

When you modify any element of a muscle in the Muscle Editor, the modification occurs immediately to the muscle stored in the model. You do not need to apply the change to make it happen, nor can you cancel the change before it takes effect. To allow you to undo changes made to the muscles, there are four buttons at the bottom of the Muscle Editor window that backup and restore the state of the muscles. When you first load a model into OpenSim, the Muscle Editor makes a backup copy of every muscle, so you can restore them without having to back them up first. Here is a description of each button: 

  • Backup All  This button makes a backup copy of every muscle in the current model, overwriting the previous copies.
  • Backup Current  This button makes a backup copy of the current muscle, overwriting the previous copy.
  • Restore All  This button restores all of the muscles in the model from their backup copies, thereby erasing all modifications you have made since the last time each muscle was backed up.
  • Restore Current This button restores the current muscle from its backup copy, thereby erasing all modifications you have made since the last time the muscle was backed up.

References

[1] Thelen, D.G., Anderson, F.C., and Delp, S.L. "Generating dynamic simulations of movement using computed muscle control," Journal of Biomechanics, 2003, 36: 321–328. 
[2] Schutte, L.M., Rodgers, M.M., Zajac, F.E., "Improving the efficacy of electrical stimulation-induced leg cycle ergometry: an analysis based on a dynamic musculoskeletal model," IEEE Transactions on Rehabilitation Engineering, 1993, 1: 109-125.

 

OpenSim is supported by the Mobilize Center , an NIH Biomedical Technology Resource Center (grant P41 EB027060); the Restore Center , an NIH-funded Medical Rehabilitation Research Resource Network Center (grant P2C HD101913); and the Wu Tsai Human Performance Alliance through the Joe and Clara Tsai Foundation. See the People page for a list of the many people who have contributed to the OpenSim project over the years. ©2010-2024 OpenSim. All rights reserved.