mppi_in_mjpc
Implementing Model Predictive Path Integral(MPPI) control into MuJoCo Predictive Control (MJPC) environment
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.3%) to scientific vocabulary
Repository
Implementing Model Predictive Path Integral(MPPI) control into MuJoCo Predictive Control (MJPC) environment
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Note (2023/12/23)
This repository was originally obtained from MJPC, which was downloaded on October 18, 2023. For the most recent updates in MJPC itself, you should visit the official MJPC repository. I have made a few modifications to integrate the Model Predictive Path Integral (MPPI) control method into MJPC for my personal project. I decided to upload the entire MJPC repository since my changes involved some specific changes within the original MJPC to ensure compatibility with my new code. It's important to clarify that the copyrights for the MJPC code do not belong to me; I have only added the MPPI controller and made a few adjustments to suit it to my specific requirements. I'd like to express my gratitude to Google DeepMind for making the entire MJPC code publicly available.
Below is the readme file copied from the original MJPC repository. I Strongly Recommend you to make sure the original MJPC runs in your environment before testing with my repository. Note that my implementation was developed based on the Windows environment.
Readme
MuJoCo MPC (MJPC) is an interactive application and software framework for real-time predictive control with MuJoCo, developed by Google DeepMind.
MJPC allows the user to easily author and solve complex robotics tasks, and currently supports three shooting-based planners: derivative-based iLQG and Gradient Descent, and a simple yet very competitive derivative-free method called Predictive Sampling.
- Overview
- Graphical User Interface
- Installation
- Predictive Control
- Contributing
- Known Issues
- Citation
- Acknowledgments
- License and Disclaimer
Overview
To read the paper describing this software package, please see our preprint.
For a quick video overview of MJPC, click below.
For a longer talk at the MIT Robotics Seminar describing our results, click below.
Graphical User Interface
For a detailed dive of the graphical user interface, see the MJPC GUI documentation.
Installation
You will need CMake and a working C++20 compiler to build MJPC. We recommend using VSCode and 2 of its extensions (CMake Tools and C/C++) to simplify the build process.
- Clone the repository:
git clone https://github.com/google-deepmind/mujoco_mpc.git - Configure the project with CMake (a pop-up should appear in VSCode)
- Build and run the
mjpctarget in "release" mode (VSCode defaults to "debug"). This will open and run the graphical user interface.
macOS
Additionally, install Xcode.
Ubuntu
Additionally, install:
shell
sudo apt-get install libgl1-mesa-dev libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev ninja-build
Build Issues
If you encounter build issues, please see the
Github Actions configuration.
Note, we are using clang-14.
Python API
We provide a simple Python API for MJPC. This API is still experimental and expects some more experience from its users. For example, the correct usage requires that the model (defined in Python) and the MJPC task (i.e., the residual and transition functions defined in C++) are compatible with each other. Currently, the Python API does not provide any particular error handling for verifying this compatibilty and may be difficult to debug without more in-depth knowedge about mujoco and MJPC.
agent.py for available methods for planning.
filter.py for available methods for state estimation.
direct.py for available methods for direct optimization.
Installing via Pip
The MJPC Python module can be installed with:
sh
pip install "${MUJOCO_MPC_ROOT}/python"
Alternatively:
sh
python "${MUJOCO_MPC_ROOT}/python/${API}.py" install
Test that installation was successful:
sh
python "${MUJOCO_MPC_ROOT}/python/mujoco_mpc/${API_TEST}.py"
where API(TEST) can be: agent(test), filter(test), or direct(test).
Example Usage
See cartpole.py for example usage for planning.
See cartpole_trajopt.py for usage for direct optimization.
Predictive Control
See the Predictive Control documentation for more information.
Contributing
See the Contributing documentation for more information.
Known Issues
MJPC is not production-quality software, it is a research prototype. There are likely to be missing features and outright bugs. If you find any, please report them in the issue tracker. Below we list some known issues, including items that we are actively working on.
- We have not tested MJPC on Windows, but there should be no issues in principle.
- Task specification, in particular the setting of norms and their parameters in XML, is a bit clunky. We are still iterating on the design.
- The Gradient Descent search step is proportional to the scale of the cost function and requires per-task tuning in order to work well. This is not a bug but a property of vanilla gradient descent. It might be possible to ameliorate this with some sort of gradient normalisation, but we have not investigated this thoroughly.
Citation
If you use MJPC in your work, please cite our accompanying preprint:
bibtex
@article{howell2022,
title={{Predictive Sampling: Real-time Behaviour Synthesis with MuJoCo}},
author={Howell, Taylor and Gileadi, Nimrod and Tunyasuvunakool, Saran and Zakka, Kevin and Erez, Tom and Tassa, Yuval},
archivePrefix={arXiv},
eprint={2212.00541},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2212.00541},
doi={10.48550/arXiv.2212.00541},
year={2022},
month={dec}
}
Acknowledgments
The main effort required to make this repository publicly available was undertaken by Taylor Howell and the Google DeepMind Robotics Simulation team.
License and Disclaimer
All other content is Copyright 2022 DeepMind Technologies Limited and licensed under the Apache License, Version 2.0. A copy of this license is provided in the top-level LICENSE file in this repository. You can also obtain it from https://www.apache.org/licenses/LICENSE-2.0.
This is not an officially supported Google product.
Owner
- Login: jangminhyuk
- Kind: user
- Repositories: 1
- Profile: https://github.com/jangminhyuk
GitHub Events
Total
- Watch event: 1
Last Year
- Watch event: 1
Dependencies
- actions/checkout v3 composite
- grpcio *
- grpcio-tools *

