AboutDownloadsForumsSource CodeNews

Release Name: v1.3.2

Release Notes
## v1.3.2 - 2024-10-28

### Added
- Treatment Optimization plotting function `plotTreatmentOptimizationResultsFromSettingsFile()` can optionally take an override results directory as a second argument to plot results from a directory other than the one in the given settings file


### Fixed
- Neural Control Personalization plots requiring multiple plot windows will correctly format overflow windows to match the first
- Prescribed coordinates in Design Optimization are saved to results correctly for free final time problems


### Changed
- Updated calls to the MATLAB `size()` function to prevent compatibility warning messages on MATLAB R2024a and newer


## v1.3.1 - 2024-10-01

### Added
- Marker tracking in Treatment Optimization (TO) can be used to track a subset of directions in the ground frame (default x, y, and z directions)
	- To change the included subset, add `<axes>true true true</axes>` with the first, second, or third entry set to `false` for an excluded direction
- TO synergy vectors can be used and saved normalized by either sum or magnitude of a given value (default sum to 1)
	- Inside the `<RCNLSynergyController>`, add `<synergy_vector_normalization_method>` set to `sum` or `magnitude` and add `<synergy_vector_normalization_value>` set to the desired vector sum or magnitude
- The root directory now includes installation instructions for the pipeline (`How to Install.pdf`)


### Fixed
- TO runs using point kinematics will no longer crash with OpenSim 4.5.1 linked to MATLAB
- TO marker tracking will track multiple markers correctly at the same time


### Changed
- Optimizing synergy vectors during TO is significantly faster
- TO plotting functions will automatically convert rotational input quantities from degrees when comparing to radians


## v1.3.0 - 2024-09-23

### Added
- Joint Model Personalization can scale point constraints with bodies
- Individual Muscle-Tendon Personalization (MTP) design variables can be included or excluded
- MTP supports a series of `<MTPTask>`s, setting up multiple-stage optimizations with individual sets of design variables and cost terms
- Plotting function `plotMtpHillTypeMuscleParamsCompare()` can compare sets of muscle parameters optimized by MTP
- Ground Contact Personalization (GCP) can optimize a change in experimental electrical center values to correct for force plate errors and produce ground reaction moments more consistent with physical models
	- Individual electrical center shift dimensions can be added as design variables `<electricalCenterX>`, `<electricalCenterY>`, and `<electricalCenterZ>`
	- Electrical center adjustment can be regularized with the `electrical_center_shift` cost term
	- An updated version of the experimental ground reactions file will be saved with the new electrical center
- GCP saves updated full-body kinematics and modeled ground reactions with modified foot motion if all `<GCPContactSurface>`s have the same time range
- GCP kinematic periodicity relative to experimental motion can be enforced with the new `kinematic_periodicity` cost term
- Model personalization plot windows have titles indicating the data displayed
- Treatment Optimization (TO) now uses a `tracked_quantities_directory` for experimental data or data to track and an `initial_guess_directory` for initial values
	- Missing intial guess values will be copied from tracked quantities, and missing quantities to track will be copied from initial guess data if available
- TO states and controls can optionally have minimum search bounds set in addition to search scale factors
	- Fields ending in `scale_factor` have an equivalent `minimum_range`
- TO cost calculations can be normalized within individual cost term types instead of by the total number of cost terms by setting the optional `<normalize_cost_by_term_type>` to true 
- New TO cost terms: 
	- Controller shape tracking
	- Controller minimization
	- Scaled controller tracking
		- Adding a `<scale_factor>` to a `controller_tracking` cost term will track a scaled version of the reference control
- User-defined TO model functions can be used to modify either an element of the OpenSim model or part of the states or controls
	- This allows users to create their own rules for modifying states or controls with custom parameters or feedback mechanisms before model dynamics are calculated
- TO joint velocities can be plotted with the `plotTreatmentOptimizationJointVelocities()` function
- New plotting functions for all tools will plot relevant results from settings files when run in the same directory as the settings file. Functions include:
	- `plotJmpResultsFromSettingsFile()`
	- `plotMtpResultsFromSettingsFile()`
	- `plotNcpResultsFromSettingsFile()`
	- `plotGcpResultsFromSettingsFile()`
	- `plotTreatmentOptimizationResultsFromSettingsFile()`
- Using the OpenSim 4.5.1 API linked with MATLAB is now supported


### Fixed
- MTP plots can properly display absolute length adjustments from Muscle-Tendon Length Initialization
- GCP updates tracked experimental ground reaction moments to use the modified spring resting length for consistency


### Changed
- GCP rotation tracking allowable error should now be given in radians to be consistent with TO cost terms
- Plot visuals have been improved and made more consistent between tools with new MATLAB grid features
- TO computes metabolic cost with a MATLAB implementation of a Bhargava metabolic cost model
Feedback