API
4.2
For C++ developers
|
This class provides utilities for creating OpenSim models. More...
Static Public Member Functions | |
Create a model | |
static Model | createNLinkPendulum (int numLinks) |
Create a pendulum with the provided number of links. More... | |
static Model | createPendulum () |
This is a convenience for createNLinkPendulum(1) . More... | |
static Model | createDoublePendulum () |
This is a convenience for createNLinkPendulum(2) . More... | |
static Model | createSlidingPointMass () |
This model contains: More... | |
static Model | createPlanarPointMass () |
This model contains: More... | |
Modify a Model | |
static void | replaceMusclesWithPathActuators (Model &model) |
Replace muscles in a model with a PathActuator of the same GeometryPath, optimal force, and min/max control defaults. More... | |
static void | removeMuscles (Model &model) |
Remove muscles from the model. More... | |
static void | replaceJointWithWeldJoint (Model &model, const std::string &jointName) |
Replace a joint in the model with a WeldJoint. More... | |
static void | createReserveActuators (Model &model, double optimalForce, double bound=SimTK::NaN, bool skipCoordinatesWithExistingActuators=true) |
Add CoordinateActuators for each unconstrained coordinate (e.g., ! Coordinate::isConstrained() ) in the model, using the provided optimal force. More... | |
This class provides utilities for creating OpenSim models.
|
inlinestatic |
This is a convenience for createNLinkPendulum(2)
.
|
static |
Create a pendulum with the provided number of links.
For each link, there is a body /bodyset/b#
(where #
is the link index starting at 0), a PinJoint /jointset/j#
with coordinate /jointset/j#/q#
, a CoordinateActuator /tau#
, a Marker /markerset/marker#
at the origin of the link's body, and a PhysicalOffsetFrame /b#center
at the center of the link.
|
inlinestatic |
This is a convenience for createNLinkPendulum(1)
.
|
static |
This model contains:
|
static |
Add CoordinateActuators for each unconstrained coordinate (e.g., ! Coordinate::isConstrained()
) in the model, using the provided optimal force.
Increasing the optimal force decreases the required control signal to generate a given actuation level. The actuators are added to the model's ForceSet and are named "reserve_<coordinate-path>" with forward slashes converted to underscores. The bound
argument, if supplied, sets the min and max controls to -bound
and bound
, respectively. The fourth (optional) argument specifies whether or not to skip coordinates that already have CoordinateActuators associated with them (default: true).
Referenced by OpenSim::ModOpAddReserves::operate().
|
static |
This model contains:
/bodyset/body
./jointset/slider
, with coordinate /jointset/slider/position
./actuator
. Gravity is default; that is, (0, -g, 0).
|
static |
Remove muscles from the model.
Referenced by OpenSim::ModOpRemoveMuscles::operate().
|
static |
Replace a joint in the model with a WeldJoint.
Referenced by OpenSim::ModOpReplaceJointsWithWelds::operate().
|
static |
Replace muscles in a model with a PathActuator of the same GeometryPath, optimal force, and min/max control defaults.