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.  
 
 
◆ 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: