https://github.com/ami-iit/bipedal-locomotion-framework
Suite of libraries for achieving bipedal locomotion on humanoid robots
Science Score: 26.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
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.7%) to scientific vocabulary
Keywords from Contributors
Repository
Suite of libraries for achieving bipedal locomotion on humanoid robots
Basic Info
- Host: GitHub
- Owner: ami-iit
- License: bsd-3-clause
- Language: C++
- Default Branch: master
- Homepage: https://ami-iit.github.io/bipedal-locomotion-framework/
- Size: 149 MB
Statistics
- Stars: 184
- Watchers: 17
- Forks: 42
- Open Issues: 81
- Releases: 26
Metadata Files
README.md

bipedal-locomotion-framework
:warning: REPOSITORY UNDER DEVELOPMENT :warning:
The libraries implemented in this repository are still experimental and we cannot guarantee stable API
The bipedal-locomotion-framework project is a suite of libraries for achieving bipedal locomotion on humanoid robots.
Table of content
- :page_facing_up: Mandatory dependencies
- :orange_book: Exported components
- :package: Install with conda (recommended)
- :hammer: Build the suite
- :computer: Some utilities
- :snake: Python
- :running: How to use the libraries
- :gear: Contributing
- :technologist: Maintainers
:pagefacingup: Mandatory dependencies
The bipedal-locomotion-framework project is versatile and can be used to compile only some components.
The minimum required dependencies are Eigen3, iDynTree and spdlog. If you want to build the tests please remember to install Catch2. If you are interested in the Python bindings generation please install python3 and pybind11 in your system.
:orange_book: Exported components
The bipedal-locomotion-framework project consists of several components. The components are stored in the src folder and their compilation depends on the installed dependencies.
| Component | Description | Additional Dependencies |
| :--------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: |
| Framework | Interface library that gathers all the exported components, includable with the file BipedalLocomotion/Framework.h | - |
| AutoDiff | Bridge between CppAD and Eigen | CppAD |
| ContactModels | Models to describe the contact between robot and enviroment | - |
| Contacts | Syntactic description of a contact | manif nlohmann json |
| CommonConversions | Common conversion utilities used in the framework | - |
| ManifConversions | Library related conversion utilities used in the framework | manif |
| matioCppConversions | Library related conversion utilities used in the framework | matio-cpp |
| CasadiConversions | Library related conversion utilities used in the framework | CasADi |
| ContinuousDynamicalSystem | Library containing algorithms for continuous dynamical systems | manif |
| Estimators | Library containing observers | - |
| FloatingBaseEstimator | Library containing floating base estimators | manif |
| RobotDynamicsEstimator | Library containing floating base estimators | manif |
| GenericContainer | Data structure similar to span but resizable. | - |
| IK | Inverse kinematics | manif osqp-eigen |
| Math | Library containing mathematical algorithms | manif |
| ML | Library containing deep learning algorithms | onnxruntime |
| ParametersHandler | Library for retrieving parameters from configuration files | YARP (only if you want the YARP implementation) tomlplusplus (only if you want the toml implementation) |
| PerceptionInterface | Generic interface classes to adapt to perception data formats like images and point clouds | OpenCV PCL |
| PerceptionCapture | Library containing driver classes for perception devices | OpenCV PCL realsense2 |
| PerceptionFeatures | Library containing perception algorithms useful for locomotion | OpenCV |
| Planners | Library containing planner useful for locomotion | manif CasADi qhull |
| ReducedModelControllers | Controller based on reduced models, e.g., CentroidalMPC | CasADi|
| RobotInterface | Library for communicating with the robot | YARP (only if you want the YARP implementation) |
| SimplifiedModelControllers | Controllers based on simplified models, i.e, LIPM. | - |
| System | Description of discrete and continuous dynamical systems | - |
| TSID | Task space inverse dynamics | manif lie-group-controllers |
| TextLogging | Helper library to display messages into the console | YARP (only if you want the YARP implementation) ros-humble (if you want the ros2 implementation) |
| YarpUtilities | Utilities library for retrieving data and from YARP structures | YARP |
:warning: Including BipedalLocomotion/Framework.h may result in higher compilation time because of the inclusion of headers which may not be used in your project. It is always suggested to follow the IWYU paradigm. This applies also to the CMake targets. It is suggested to link only the targets used in your project.
:package: Install with conda (recommended)
You can easily the library with conda using the following command
console
conda install -c conda-forge bipedal-locomotion-framework
conda will automatically install all the required dependencies.
:hammer: Build the suite
The bipedal-locomotion-framework can be built on Windows, macOS, and Linux. The easiest way to compile the library is to use the robotology-superbuild. If you enable the profiles ROBOTOLOGY_ENABLE_DYNAMICS and ROBOTOLOGY_ENABLE_DYNAMICS_FULL_DEPS in the robotology-superbuild you will automatically clone and build bipedal-locomotion-framework and all the dependencies.
If you do not want to use the robotology-superbuild you can manually compile the code in the repository by running the following command in the terminal
sh
git clone https://github.com/ami-iit/bipedal-locomotion-framework.git
cd bipedal-locomotion-framework
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=<path/where/you/want/to/install> \
-DCMAKE_BUILD_TYPE=Release \
cmake --build . --config Release --target install
Remark: If you manually compile the framework remember to install the dependencies required by the component you are interested in.
:computer: Some utilities
The bipedal-locomotion-framework ships also some utilities that can help you in the everyday tests on a real robot. You can find them in the utilities folder. Each utility contains a well-documentedREADME where you can find further details.
:snake: Python
bipedal-locomotion-framework also provides Python bindings. Only a small set of the components implemented in the library have the corresponding Python bindings.
If you want to compile the bindings please install python3 and pybind11 in your system then you can run the following CMake command in your build folder
sh
cmake -DCMAKE_INSTALL_PREFIX=<path/where/you/want/to/install> \
-DCMAKE_BUILD_TYPE=Release \
-DFRAMEWORK_COMPILE_PYTHON_BINDINGS:BOOL=ON \
-DPython3_ROOT_DIR=$(python3 -c "import sys; print(sys.prefix)") \
-DFRAMEWORK_USE_Python3:BOOL=ON \
-DFRAMEWORK_USE_pybind11:BOOL=ON .
cmake --build . --config Release --target install
Disclaimer: The Python bindings are currently supported on Linux.
:running: How to use the libraries
The bipedal-locomotion-framework provides native CMake support which allows the library to be easily used in CMake projects.
bipedal-locomotion-framework exports the CMake targets presented in the Exported components section. The targets can be imported using the find_package command and used by calling target_link_libraries.
For instance, the Math component can be used as follows:
cmake
cmake_minimum_required(VERSION 3.0)
project(myproject)
find_package(BipedalLocomotionFramework COMPONENTS Math REQUIRED)
add_executable(example example.cpp)
target_link_libraries(example PRIVATE BipedalLocomotion::Math)
The list of the targets can be found in the table :orange_book: Exported components.
:gear: Contributing
bipedal-locomotion-framework is an open-source project, and is thus built with your contributions. We strongly encourage you to open an issue with your feature request. Once the issue has been opened, you can also proceed with a pull request:rocket:
:technologist: Maintainers
- Giulio Romualdi (@GiulioRomualdi)
- Stefano Dafarra (@S-Dafarra)
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: 28
- Watch event: 32
- Delete event: 23
- Issue comment event: 168
- Push event: 149
- Pull request review event: 154
- Pull request review comment event: 108
- Pull request event: 122
- Fork event: 3
- Create event: 31
Last Year
- Issues event: 28
- Watch event: 32
- Delete event: 23
- Issue comment event: 168
- Push event: 149
- Pull request review event: 154
- Pull request review comment event: 108
- Pull request event: 122
- Fork event: 3
- Create event: 31
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Giulio Romualdi | g****i@g****m | 1,582 |
| Stefano | s****a@g****m | 138 |
| Prashanth | p****s@g****m | 133 |
| Ines | i****0@g****m | 122 |
| Silvio Traversaro | s****o@i****t | 94 |
| Diego Ferigo | d****o@i****t | 56 |
| Paolo | p****e@g****m | 22 |
| Lorenzo Moretti | 1****i | 18 |
| Prashanth | p****s@i****t | 5 |
| Filippo Passerini | 1****9 | 5 |
| Carlotta Sartore | 5****e | 4 |
| Giovanni Fregonese | g****t@g****m | 4 |
| RiccardoGrieco | r****o@h****m | 4 |
| github-actions[bot] | 4****] | 3 |
| Nicogene | n****o@i****t | 2 |
| Guglielmo Cervettini | 1****i | 2 |
| Fabio Bergonti | 3****i | 2 |
| iCub | i****b@i****t | 2 |
| Alessandro Croci | 5****5 | 1 |
| Daniele Pucci | d****5@g****m | 1 |
| Davide Gorbani | 1****i | 1 |
| Evelyn D'Elia | 1****d | 1 |
| Giorgio De Santis | 1****S | 1 |
| Mohamed Elobaid | 3****d | 1 |
| Roberto Mauceri | 7****u | 1 |
| Lorenzo Rapetti | l****i@g****m | 1 |
| Ehsan Ranjbari | e****i@i****t | 1 |
| Nick Tremaroli | n****i@i****t | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 57
- Total pull requests: 268
- Average time to close issues: 9 months
- Average time to close pull requests: 22 days
- Total issue authors: 14
- Total pull request authors: 15
- Average comments per issue: 2.77
- Average comments per pull request: 2.11
- Merged pull requests: 198
- Bot issues: 0
- Bot pull requests: 4
Past Year
- Issues: 18
- Pull requests: 132
- Average time to close issues: 7 days
- Average time to close pull requests: 6 days
- Issue authors: 8
- Pull request authors: 10
- Average comments per issue: 1.56
- Average comments per pull request: 1.77
- Merged pull requests: 93
- Bot issues: 0
- Bot pull requests: 2
Top Authors
Issue Authors
- GiulioRomualdi (41)
- traversaro (20)
- CarlottaSartore (5)
- S-Dafarra (4)
- LoreMoretti (4)
- diegoferigo (2)
- giotherobot (2)
- isorrentino (2)
- xela-95 (2)
- lrapetti (1)
- PasMarra (1)
- paolo-viceconte (1)
- davidegorbani (1)
- prashanthr05 (1)
- xEnVrE (1)
Pull Request Authors
- GiulioRomualdi (138)
- traversaro (78)
- isorrentino (56)
- LoreMoretti (25)
- S-Dafarra (11)
- prashanthr05 (10)
- fils99 (9)
- G-Cervettini (6)
- github-actions[bot] (5)
- giotherobot (4)
- nicktrem (4)
- CarlottaSartore (3)
- mebbaid (3)
- RiccardoGrieco (3)
- evelyd (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 3
- Total downloads: unknown
-
Total dependent packages: 3
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 6
conda-forge.org: libbipedal-locomotion-framework
- Homepage: https://github.com/ami-iit/bipedal-locomotion-framework
- License: BSD-3-Clause
-
Latest release: 0.10.0
published over 3 years ago
Rankings
conda-forge.org: bipedal-locomotion-framework-python
- Homepage: https://github.com/ami-iit/bipedal-locomotion-framework
- License: BSD-3-Clause
-
Latest release: 0.10.0
published over 3 years ago
Rankings
conda-forge.org: bipedal-locomotion-framework
- Homepage: https://github.com/ami-iit/bipedal-locomotion-framework
- License: BSD-3-Clause
-
Latest release: 0.10.0
published over 3 years ago
Rankings
Dependencies
- Zomzog/changelog-checker v1.1.0 composite
- actions/checkout v1 composite
- actions/cache v3 composite
- actions/checkout master composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- conda-incubator/setup-miniconda v2 composite
- JamesIves/github-pages-deploy-action 3.7.1 composite
- actions/checkout master composite
- actions/download-artifact v2 composite
- actions/upload-artifact v2 composite
- conda-incubator/setup-miniconda v2 composite
- actions/labeler v3 composite
- actions/checkout v2 composite
- peter-evans/create-pull-request v3 composite