OpenSim 4.3 Beta is now available. You can download the release here .
We are pleased to announce the following new features, bug fixes, and other improvements in OpenSim 4.3. We also provide a list of key details for upgrading to OpenSim 4.3 from previous versions of OpenSim (see section Upgrade Notes), as well as pointers to additional information on the changes in OpenSim 4.3.
New Features for Working with Inertial Measurement Unit (IMU) Data:
- We introduced an IMU Component, which can be added to any model, along with an IMUDataReporter analysis. This analysis allows users to report Orientations and Accelerometer and Gyroscope signals from IMUs placed on a Model. The analysis allows users to add IMUs on the fly for post-hoc calculation of IMU signals.
- With the new IMU Component, the IMUPlacer (part of the process in computing kinematics based on IMU data) now creates and places IMU Components on the Model.
- We added support in Moco for IMUTracking and EMGTracking.
- We also added the ability to optimize scale factors, including the component MocoScaleFactor. There is also a new interface for MocoGoals to add these scale factors to a MocoProblem. This functionality allows users to scale the tracking reference data associated with a control in the tracking cost when tracking EMG data using MocoControlTrackingGoal.
New Features and Examples for Matlab Users:
- New examples show how to track IMU and EMG signals with Moco in both Matlab and Python. Find these examples under the ResourcesDir/Code/Matlab/Moco &
Improvements and Additions to the API for Matlab, Python, and C++ Users:
- We added "createSyntheticIMUAccelerationSignals" method to create Synthetic IMU data in SimulationUtilities.
Bug Fixes and Performance Enhancements:
- We fixed a bug with Actuation analysis that would lead to extra columns in the output when an actuator is disabled (Issue #2977)
- We fixed an issue where incorrect header information was produced in BodyKinematics file output
- We fixed a bug applying non-uniform scaling to inertia matrix of a Body due to using local variable of type SysMat33 which resulted in non-uniform scaling of Body not being applied to inertia (Issue #2871)
- The default installation of OpenSim comes with bindings built against Python 3.8 and Numpy 1.20. Note that the installation process for scripting on windows has changed to follow the python 3.8 changes to how libraries are located as described here Scripting in Python.
Full list of changes and updates: