AboutDownloadsForumsSource CodeNews

Release Name: OpenSim Moco 0.2.0

Release Notes
This release contains a MATLAB version of Moco's 2D predictive simulation of walking, contributed by Brian Umberger, and examples in MATLAB, Python, and C++ for using the MocoInverse tool. Lastly, we added examples for creating a custom goal in C++; see exampleSlidingMassAdvanced.cpp and exampleMocoCustomEffortGoal.

To easily plot a solution in MATLAB, we introduced the osimMocoTrajectoryReport.m utility.

We updated the versions of Simbody and OpenSim that we bundle with Moco. As a result, this release contains a fix for the simbody-visualizer for macOS Catalina, and contains OpenSim's support for IMUs.

This release contains the following new modules:
- MocoOutputGoal, for minimizing any scalar output of a model.
- MocoFrameDistanceConstraint, to constrain the distances between frames in the model.
- MocoAngularVelocityTrackingGoal and MocoAccelerationTrackingGoal, added in anticipation of supporting IMU data in the future.

We made minor changes to various parts of Moco's interface; you may have to make small changes to your code to use this release. For example, converting muscles from Millard2012EquilibriumMuscle to DeGrooteFregly2016Muscle now preserves the fiber damping property, while previously we set fiber damping to 0 during this conversion. To set fiber damping to zero, you can use ModOpFiberDampingDGF.

More details about this release are in the file.
Change Log
- 2019-12-12: Added MocoFrameDistanceConstraint.

- 2019-12-11: Add MocoOutputGoal, allowing any scalar model output to be used as
              as a goal.

- 2019-12-11: ActivationCoordinateActuator now provides default activation 
              bounds equal to its control bounds.
- 2019-12-11: Add ModOpFiberDampingDFG to set the fiber damping for all
              DeGrooteFregly2016Muscles in a model.

- 2019-12-10: Add an example for MocoInverse in MATLAB, Python, and C++.

- 2019-12-10: Update the Simbody dependency to version 3.7.

- 2019-12-09: MocoTrajectory::isCompatible() gives more details when provided 
              with an incompatible problem.

- 2019-12-08: Include support for OpenSim's C3DFileAdapter.

- 2019-12-04: Updated the version of OpenSim used by Moco. As a result, we
              removed the utility readTableFromFile(). Use the TimeSeriesTable 
              constructor instead, which accepts a filename.
- 2019-12-04: Removed support for approximating GeometryPaths with a generic 

- 2019-12-02: Fixed multiple examples by updating "cost" to "goal", and other 
              such changes. Fixed exampleMocoTrack by ignoring tendon 

- 2019-12-02: Add a MATLAB MocoTrajectory plotting utility, 
              osimMocoTrajectoryReport.m. This has the same functionality as 
     in Moco's python package.

- 2019-11-28: Brian Umberger contributed a Matlab version of example2DWalking,
              which contains a 2-D prediction of walking.

- 2019-11-26: Consistently refer to MocoTrajectories as "trajectory" instead of

- 2019-11-25: Update SmoothSphereHalfSpaceForce to visualize contact forces in
              the Simbody visualizer (not the OpenSim GUI).

- 2019-11-22: Introduce TabOpUseAbsoluteStateNames to convert column labels  
              from IK solutions pre-4.0 states files to use new-style column 

- 2019-11-20: Added MocoAngularVelocityTrackingGoal and 
              MocoAccelerationTrackingGoal in anticipation of supporting 
              applications using IMU data in the future.
- 2019-11-18: Updates to linewidth and legend formatting. 

- 2019-11-18: Exporting controls to TimeSeriesTable via 

- 2019-11-18: Utility createPeriodicTrajectory() now properly handles 
              antisymmetric coordinate position, speed, and actuator 
- 2019-11-18: Add a "Getting started" page to the User Guide.

- 2019-11-09: Improve the reliability of building the Ipopt dependency by using
              more stable servers for downloading Metis and MUMPS.

- 2019-10-30: ModelFactory::replaceMusclesWithPathActuators() now adds the
              PathActuators to the Model's ForceSet, and the connectee names
              for PathPoints are now valid.

- 2019-10-30: Solvers print the date and time before and after solving a 

- 2019-10-27: DeGrooteFregly2016Muscle::replaceMuscles() now carries over the
              appliesForce property. This affects 
              ModOpReplaceMusclesWithDeGrooteFregly2016 as well.

- 2019-10-19: configureMoco.m adds Moco's Matlab Utilities directory
              to the Matlab path, and removes any detected OpenSense beta
              installations from Matlab.

- 2019-10-18: MocoInverse has separate properties for constraint and convergence

- 2019-09-28: exampleSlidingMassAdvanced.cpp and exampleMocoCustomEffortGoal
              show how to create a custom goal class.