This class provides utilities for creating OpenSim models.
#include <Moco/Moco/Components/ModelFactory.h>
◆ createNLinkPendulum()
| static Model OpenSim::ModelFactory::createNLinkPendulum |
( |
int |
numLinks | ) |
|
|
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.
◆ createPlanarPointMass()
| static Model OpenSim::ModelFactory::createPlanarPointMass |
( |
| ) |
|
|
static |
This model contains:
- 2 bodies: a massless body "intermed", and "body" with mass 1.
- 2 slider joints: "tx" and "ty" (coordinates "tx" and "ty").
- 2 coordinate actuators: "force_x" and "force_y". Gravity is default; that is, (0, -g, 0).
◆ createReserveActuators()
| static void OpenSim::ModelFactory::createReserveActuators |
( |
Model & |
model, |
|
|
double |
optimalForce, |
|
|
double |
bound = SimTK::NaN, |
|
|
bool |
skipCoordinatesWithExistingActuators = true |
|
) |
| |
|
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).
◆ createSlidingPointMass()
| static Model OpenSim::ModelFactory::createSlidingPointMass |
( |
| ) |
|
|
static |
This model contains:
- 1 body: mass 1.0 kg,
/bodyset/body.
- 1 joint: SliderJoint along x axis,
/jointset/slider, with coordinate /jointset/slider/position.
- 1 actuator: CoordinateActuator, controls [-10, 10],
/actuator. Gravity is default; that is, (0, -g, 0).
◆ removeMuscles()
| static void OpenSim::ModelFactory::removeMuscles |
( |
Model & |
model | ) |
|
|
static |
Remove muscles from the model.
- Note
- This only removes muscles within the model's ForceSet.
◆ replaceJointWithWeldJoint()
| static void OpenSim::ModelFactory::replaceJointWithWeldJoint |
( |
Model & |
model, |
|
|
const std::string & |
jointName |
|
) |
| |
|
static |
Replace a joint in the model with a WeldJoint.
- Note
- This assumes the joint is in the JointSet and that the joint's connectees are PhysicalOffsetFrames.
◆ replaceMusclesWithPathActuators()
| static void OpenSim::ModelFactory::replaceMusclesWithPathActuators |
( |
Model & |
model | ) |
|
|
static |
Replace muscles in a model with a PathActuator of the same GeometryPath, optimal force, and min/max control defaults.
- Note
- This only replaces muscles within the model's ForceSet.
The documentation for this class was generated from the following file: