OpenSim Moco is a software package for solving common problems in simulation biomechanics including tracking simulations, predictive simulations, muscle-redundancy problems, and more. Moco brings state-of-the-art direct collocation optimal control methods to the wider biomechanics community without requiring numerical expertise to solve complex problems. Moco leverages OpenSim’s existing modeling capabilities to allow you to seamlessly make the transition from model building to simulation a seamless process in your research.
...
- If paths to previous OpenSim versions exist on your PYTHONPATH environment variable, remove them. (If you used OpenSim 4.2 with Python, this step is likely necessary.)
- Download Anaconda.
- Download the Anaconda environment file (conda_env_tgcs2021.yml) and place it directory of your choice; perhaps C:\Users\<PROFILE_NAME_HERE>\Documents\OpenSim\4.3\Code\Python (on Windows; replace <PROFILE_NAME_HERE> with your Windows profile name). This environment includes the following packages:
- Python 3.8
- NumPy 1.20.2
- Matplotlib
- Spyder (Python IDE)
- Open the Anaconda Prompt (terminal on macOS).
Before proceeding, you may need to initialize conda for shell interaction by running
Code Block C:\> conda init <shell-name>
where <shell-name> is one of the following: cmd.exe (Windows default), bash (macOS default), powershell, fish, zsh, tcsh, xonsh.
Navigate to the location of the Anaconda environment file. For example, if using cmd.exe on Windows:
Code Block C:\> cd "C:\Users\<profile>\Documents\OpenSim\4.3\Code\Python"
Create the environment from the file:
Code Block C:\> conda env create -f conda_env_tgcs2021.yml
Deactivate any existing environments and activate the Moco workshop environment. The prefix "opensim_moco_tgcs2021" should now appear in the Anaconda Prompt.
Code Block (base) C:\> conda deactivate C:\> conda activate opensim_moco_tgcs2021 (opensim_moco_tgcs2021) C:\>
- Navigate to folder sdk\Python in the OpenSim 4.3 installation; perhaps C:\OpenSim 4.3\sdk\Python (on Windows).
If using Windows, first run the following:
Code Block (opensim_moco_tgcs2021) C:\> python setup_win_python38.py
Install OpenSim by running
Code Block (opensim_moco_tgcs2021) C:\> python -m pip install .
If using macOS, you may need to update the DYLD_LIBRARY_PATH to include the OpenSim and Simbody libraries:
Code Block $ export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:<YOUR_INSTALL_DIRECTORY_HERE>/sdk/lib" $ export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:<YOUR_INSTALL_DIRECTORY_HERE>/sdk/Simbody/lib"
where <YOUR_INSTALL_DIRECTORY_HERE> is the directory where you placed OpenSim installation.
Once installation completes, test the configuration by checking the timestamp from running
Code Block (opensim_moco_tgcs2021) C:\> python >>> import opensim as osim >>> osim.GetVersionAndDate() >>> quit()
in the Anaconda Prompt; the date should be in July 2021. Test that the visualizer is working by running the following
Code Block (opensim_moco_tgcs2021) C:\> cd "C:\Users\<profile>\Documents\OpenSim\4.3\Code\Python\Moco" (opensim_moco_tgcs2021) C:\> python exampleSlidingMass.py
You should see a visualizer window appear with a sliding mass animation. Hit ESC twice to close the window.
The workshop examples can be complete by using a text editor and running the scripts from the Anaconda Prompt via "python <script_name>.py". However, if you prefer using an interactive development enviroment (IDE) similar to Matlab, we've included the Spyder IDE in the Anaconda environment. Launch Spyder by simply running
Code Block (opensim_moco_tgcs2021) C:\> spyder
Slides (
...
coming soon!) and cheat sheet
View file | ||||
---|---|---|---|---|
|
There are two known typos in the cheat sheet:
Code Block |
---|
solver.set_num_mesh_points(51); % incorrect
solver.set_num_mesh_intervals(25); % correct |
...
Moco website
Visit the Moco website here.
Moco publication
Dembia CL, Bianco NA, Falisse A, Hicks JL, Delp SL (2020) OpenSim Moco: Musculoskeletal optimal control. PLoS Comput Biol 16(12): e1008493. https://doi.org/10.1371/journal.pcbi.1008493
View file | ||||
---|---|---|---|---|
|
...