MyoSuite is a collection of musculoskeletal environments and tasks simulated with the MuJoCo physics engine and wrapped in the OpenAI gym API to enable the application of Machine Learning to bio-mechanic control problems.
Documentation | Tutorials | Task specifications
Below is an overview of the tasks in the MyoSuite.
You will need Python 3.10 or later versions.
uv is a fast Python package manager. Install MyoSuite with:
uv sync -p 3.10It is recommended to use Miniconda and to create a separate environment with:
conda create --name myosuite python=3.10
conda activate myosuite
pip install -U myosuiteFor faster installation, you can use uv, a fast Python package installer:
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create and activate a virtual environment
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install MyoSuite
uv pip install -U myosuiteFor installation from source with uv:
git clone --recursive https://github.com/myohub/myosuite.git
cd myosuite
uv pip install -e .For advanced installation options, see here.
Test your installation using the following command (this will return also a list of all the current environments):
# With uv:
uv run python -m myosuite.tests.test_myo
# With pip/conda:
python -m myosuite.tests.test_myoYou can also visualize the environments with random controls using the command below:
# With uv:
uv run python -m myosuite.utils.examine_env --env_name myoElbowPose1D6MRandom-v0
# With pip/conda:
python -m myosuite.utils.examine_env --env_name myoElbowPose1D6MRandom-v0NOTE: On MacOS, we moved to mujoco native launch_passive which requires that the Python script be run under mjpython:
mjpython -m myosuite.utils.examine_env --env_name myoElbowPose1D6MRandom-v0It is possible to take advantage of the latest MyoSkeleton. Once added (follow the instructions prompted by uv run myoapi_init or python -m myosuite_init), run:
# With uv:
uv run python -m myosuite.utils.examine_sim -s myosuite/simhive/myo_model/myoskeleton/myoskeleton.xml
# With pip/conda:
python -m myosuite.utils.examine_sim -s myosuite/simhive/myo_model/myoskeleton/myoskeleton.xmlIt is possible to create and interface with MyoSuite environments just like any other OpenAI gym environments. For example, to use the myoElbowPose1D6MRandom-v0 environment, it is possible simply to run:
from myosuite.utils import gym
env = gym.make('myoElbowPose1D6MRandom-v0')
env.reset()
for _ in range(1000):
env.mj_render()
env.step(env.action_space.sample()) # take a random action
env.close()You can find our tutorials on the general features and the ICRA2023 Colab Tutorial ICRA2024 Colab Tutorial
on how to load MyoSuite models/tasks, train them, and visualize their outcome. Also, you can find baselines to test some pre-trained policies.
MyoSuite is licensed under the Apache License.
If you find this repository useful in your research, please consider giving a star ⭐ and cite our arXiv paper by using the following BibTeX entrys.
@Misc{MyoSuite2022,
author = {Vittorio, Caggiano AND Huawei, Wang AND Guillaume, Durandau AND Massimo, Sartori AND Vikash, Kumar},
title = {MyoSuite -- A contact-rich simulation suite for musculoskeletal motor control},
publisher = {arXiv},
year = {2022},
howpublished = {\url{https://github.com/myohub/myosuite}},
doi = {10.48550/ARXIV.2205.13600},
url = {https://arxiv.org/abs/2205.13600},
}
