Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

 

Features in version 4.0:

  1. Nested model components. Compose a complex model from simpler more robust/testable subcomponents; for example, a muscle model can be composed of standalone activation dynamics and fiber dynamics subcomponents As a result, components have a “path”; e.g., “soleus_r/fiber,” We also improved the mechanism for accessing the components within a model by either path name or type.

  2. Connectors between model components. Components depend on each other: joints connect two bodies, muscles need wrapping surfaces, etc. We have formalized the method for specifying the connections between components to make it easier to build modular models and to make these connections far less bug-prone.

  3. Reference Frames. Performing and reporting kinematic transforms is one of the most useful functions of a multibody model and defining reference frames is essential for transforming data. Frames are new abstraction for defining and attaching reference frames in OpenSim and they have the ability to re-express quantities (positions, velocities, etc.) defined in that Frame to any other Frame.

  4. Simulink-style wiring of signals between components. Each component can have Inputs and Outputs. Any model-computed value based on the state is a candidate as an Output, and can be wired to another component’s InputA Reporter is no longer an inflexible Analysis but a modular Component that reads from designated Outputs and writes to in-memory data tables of results. No more reading storage files just to access a computed quantity.

  5. Use any data file format you want. A new DataTable class replaces Storage as OpenSim’s primary container for simulation inputs and outputs. You can create a DataTable from any file format (CSV, C3D, MAT) using the new Adapter classes. Adapters convert files of various formats to DataTables consumable by OpenSim Solvers and Tools. DataTables generated by Solvers are can also written out to various files via an adapter.

  6. Save exact simulation results to a file. The new StatesTrajectory class allows perfect replay of simulations from ForwardDynamics and CMC  without loss of precision (as with states storage files) or of the values for non-continuous state variables (e.g. modeling options and discrete state variables).

  7. Compose your own “Study” by walking through States, realizing Model dynamics and accelerations and piping Outputs to Reporters and writing results to a file format of your choice.


Potential features:

  1. Extending OpenSim classes through Python (e.g., write your Analysis class in Python instead of C++).





4.0 Enabled Projects:


  1. Pure Kinematics Study. Using coordinate information only, differentiate them to estimate velocity and acceleration and report the position, velocity and/or acceleration of Frames of interest.

  2. Custom muscle analysis. From simulation results (StatesTrajectory), extract muscle internal variables ( tendon strain, pennation angle, active force, force-velocity multiplier, etc.) and write them to file without other information (moments, moment-arms, etc….) coming for the ride.

  3. More detailed muscle models. Modeling fatigue or different fiber type dynamics does not require authoring yet another complete muscle model. Instead, existing muscle models with constituent components (for activation dynamics, fiber kinematics, and tendon dynamics) can be overridden to include additional activation and fiber states with associated differential equations.

  4. Parametric model scaling using Frames. Since joint locations and muscle origins and insertions can all be specified with respect to Frames, the parameters that define a single Frame can transform muscle attachments and joint axes, for example to represent tibial torsion or otherwise elongate/shorten and bend bones.

  5. Implement new file adapter to support .mat, .anc, etc…

  6. Live data streaming to DataTables to be processed by OpenSim Solvers in real-time (e.g. IK/ID)


Example Projects:


  1. Implicit model formulation

  2. Task-space control

  3. Patient-specific joint modeling

  4. Script based analysis pipeline

  5. Net moment/force on Bodies calculator

  6. Point of force application calculator for Contact Model visualization

  7. Modeling of human-device interaction (exoskeleton, robotic-assistive device)





Pedagogical/Didactic Example:


  1. Presentation and simulation of simple dynamical model of 3dof (knee, ankle, vertical displacement) hopper (use Luxo lamp geometry?).HopperModel.png

    1. add muscle about the knee (like a vastus muscle)

    2. add function output to drive the muscle

    3. simulate and report muscle force (activation, length, etc…)

  2. Build and add a device:

    1. Device as a new Component type with: Properties, Connector(s), Input(s) and Outputs

    2. Assistive torque device connected to the knee -> simulate

    3. add mass (Body) to the device ->simulate

  3. Perform a custom study:

    1. Use StatesTrajectory to replay simulation results

    2. report muscle fiber force and length, tendon strain, etc.. (no  muscle analysis)

    3. report contact forces (GRFs)

    4. write results to popular format (e.g. .csv)

  4. Create a new MuscleEfficiencyCalculator Component

    1. uses MuscleMetabolicProbe and Joint power output internally to compute efficiency

    2. add to 3. and compare efficiencies for simulation with and without assist



  • No labels