Awesome
<!-- ================================================= # Copyright (c) Facebook, Inc. and its affiliates Authors :: Vikash Kumar (vikashplus@gmail.com), Vittorio Caggiano (caggiano@gmail.com) ================================================= --> <img src="https://github.com/myohub/myosuite/blob/main/docs/source/images/Full%20Color%20Horizontal%20wider.png?raw=true" width=800>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.
<img width="1240" alt="TasksALL" src="https://github.com/myohub/myosuite/blob/main/docs/source/images/myoSuite_All.png?raw=true">Installations
You will need Python 3.8 or later versions.
It is recommended to use Miniconda and to create a separate environment with:
conda create --name myosuite python=3.8
conda activate myosuite
It is possible to install MyoSuite with:
pip install -U myosuite
for advanced installation, see here.
Test your installation using the following command (this will return also a list of all the current environments):
python -m myosuite.tests.test_myo
You can also visualize the environments with random controls using the command below:
python -m myosuite.utils.examine_env --env_name myoElbowPose1D6MRandom-v0
NOTE: 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-v0
It is possible to take advantage of the latest MyoSkeleton. Once added (follow the instructions prompted by python -m myosuite_init
), run:
python -m myosuite.utils.examine_sim -s myosuite/simhive/myo_model/myoskeleton/myoskeleton.xml
Examples
It 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.
License
MyoSuite is licensed under the Apache License.
Citation
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}},
year = {2022}
doi = {10.48550/ARXIV.2205.13600},
url = {https://arxiv.org/abs/2205.13600},
}