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 CHANGELOG.md 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 function. - 2019-12-02: Fixed multiple examples by updating "cost" to "goal", and other such changes. Fixed exampleMocoTrack by ignoring tendon compliance. - 2019-12-02: Add a MATLAB MocoTrajectory plotting utility, osimMocoTrajectoryReport.m. This has the same functionality as report.py 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 "iterate". - 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 labels. - 2019-11-20: Added MocoAngularVelocityTrackingGoal and MocoAccelerationTrackingGoal in anticipation of supporting applications using IMU data in the future. - 2019-11-18: Updates to report.py linewidth and legend formatting. - 2019-11-18: Exporting controls to TimeSeriesTable via MocoTrajectory::exportToControlsTable(). - 2019-11-18: Utility createPeriodicTrajectory() now properly handles antisymmetric coordinate position, speed, and actuator variables. - 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 problem. - 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 tolerances. - 2019-09-28: exampleSlidingMassAdvanced.cpp and exampleMocoCustomEffortGoal show how to create a custom goal class.