https://github.com/ami-iit/paper_elobaid_2024_stable-centroidal-mpc
https://github.com/ami-iit/paper_elobaid_2024_stable-centroidal-mpc
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
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.7%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: ami-iit
- License: bsd-3-clause
- Default Branch: main
- Size: 63.5 KB
Statistics
- Stars: 22
- Watchers: 4
- Forks: 2
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Online Non-linear Centroidal MPC with Stability Guarantees for Robust Legged Robots Locomotion
Mohamed Elobaid, Giulio Turrisi, Lorenzo Rapetti, Giulio Romualdi, Stefano Dafarra, Tomohiro Kawakami, Tomohiro Chaki, Takahide Yoshiike, Claudio Semini and Daniele Pucci
Paper
The paper appeared in the March issue of IEEE RA-L 2025. The preprint is available in the following link https://arxiv.org/pdf/2409.01144
https://github.com/user-attachments/assets/95e4774c-9b37-42a9-8d3a-af2524bffbc6
Code organization
The MPC problem formulation for both the humanoid case and the quadruped case are housed in submodules. The code is organized as follows
- examples houses example code and scripts allowing to install and run the MPC and produce plots/simulations for a bipedal and a quadruped.
- humanoid-mpc points to the implementation of the Centroidal MPC (Casadi + IPOPT) with the possibility of setting a flag enabling or disabling the stability constraints
- quadruped-mpc points to the implementation of the Centroidal MPC through ACADOS with the possibility of using different quadruped robots and terrains.
Examples and usage
To use the examples in the example directory you can simply run the corresponding run_and_plot.sh script as in the following
humanoid example
The humanoid example simulates using the Centroidal MPC with the flag enable_stability_cstr off and then on. It then generates gifs/animation of the data of the footsteps and CoM trajectory in both cases.
The simulation, to test for edge cases, runs the MPC with dt = 200ms with a horizon length of 5 steps. In this way we emphasize the role played by the stability constraints in ensuring success as opposed to the nominal case. To run the example you simply do
bash
cd examples/humanoid
chmod +x run_and_plot.sh
./run_and_plot.sh
The above script builds the MPC suite housed in the submodule humanoid-mpc . Make a build directory for the example in main.cpp , build and install it, and then run the matlab plotting scripts for the generated data.
If successful, you should be able to see animations of this kind in your build/bin directory
| Simulations without (left) and With (right) Stability for a biped | |
|---|---|
⚠️ The `run_and_plot.sh` script assumes you have the dependencies of the `bipedallocomotionframework` housed in the submodule `humanoid-mpc`. Please check https://github.com/ami-iit/bipedal-locomotion-framework/?tab=readme-ov-file#page_facing_up-mandatory-dependencies for the details
⚠️ Do not build `bipedallocomotioninterface` from master. The script will handle building and installing the correct version with the relevant commit. Only ensure you have the dependencies installed in your system
Quadruped example
The quadruped example simulates using the MPC with and without the stability constraints with a quadruped (Aliengo). It produces the simulations using mojoco. To run the example you simply do
bash
cd examples/quadruped
chmod +x run_and_plot.sh
./run_and_plot.sh
You should be able to see something similar to (with obvious difference in performance between nominal and stable centroidal MPC)
https://github.com/user-attachments/assets/bc05ba45-fcff-4a21-9281-8ed78c6ea37a
Citing this work
Feel free to open issues on this repo for specific questions. If you find this work useful, consider citing it
``` @article{elobaid2024online, title={Online Non-linear Centroidal MPC with Stability Guarantees for Robust Locomotion of Legged Robots}, author={Elobaid, Mohamed and Turrisi, Giulio and Rapetti, Lorenzo and Romualdi, Giulio and Dafarra, Stefano and Kawakami, Tomohiro and Chaki, Tomohiro and Yoshiike, Takahide and Semini, Claudio and Pucci, Daniele}, journal={arXiv preprint arXiv:2409.01144}, year={2024} }
```
Maintainers
| 👨💻 @Mohamed Elobaid |
Owner
- Name: Artificial and Mechanical Intelligence
- Login: ami-iit
- Kind: organization
- Location: Italy
- Website: https://ami.iit.it/
- Repositories: 111
- Profile: https://github.com/ami-iit
GitHub Events
Total
- Issues event: 3
- Watch event: 8
- Delete event: 1
- Issue comment event: 9
- Push event: 5
- Pull request event: 1
- Pull request review event: 1
Last Year
- Issues event: 3
- Watch event: 8
- Delete event: 1
- Issue comment event: 9
- Push event: 5
- Pull request event: 1
- Pull request review event: 1
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Mohamed Elobaid | 3****d | 23 |
| Silvio Traversaro | s****o@t****t | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 3
- Total pull requests: 3
- Average time to close issues: 5 days
- Average time to close pull requests: 9 minutes
- Total issue authors: 3
- Total pull request authors: 2
- Average comments per issue: 1.0
- Average comments per pull request: 0.67
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 3
- Pull requests: 3
- Average time to close issues: 5 days
- Average time to close pull requests: 9 minutes
- Issue authors: 3
- Pull request authors: 2
- Average comments per issue: 1.0
- Average comments per pull request: 0.67
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- Wan020607 (1)
- zhxiaoyu218 (1)
- xiaoshui7722 (1)
Pull Request Authors
- mebbaid (2)
- traversaro (2)