Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jrl-umi3218/RBDyn
RBDyn provides a set of classes and functions to model the dynamics of rigid body systems.
https://github.com/jrl-umi3218/RBDyn
Last synced: about 1 month ago
JSON representation
RBDyn provides a set of classes and functions to model the dynamics of rigid body systems.
- Host: GitHub
- URL: https://github.com/jrl-umi3218/RBDyn
- Owner: jrl-umi3218
- License: bsd-2-clause
- Created: 2012-03-16T15:22:12.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2024-10-21T21:00:10.000Z (about 2 months ago)
- Last Synced: 2024-10-22T15:55:31.549Z (about 2 months ago)
- Language: C++
- Homepage:
- Size: 4.03 MB
- Stars: 168
- Watchers: 15
- Forks: 48
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
- awesome-robotics - jrl-umi3218/RBDyn - RBDyn provides a set of classes and functions to model the dynamics of rigid body systems. (Uncategorized / Uncategorized)
README
RBDyn
=====[![License](https://img.shields.io/badge/License-BSD%202--Clause-green.svg)](https://opensource.org/licenses/BSD-2-Clause)
[![Hosted By: Cloudsmith](https://img.shields.io/badge/OSS%20hosting%20by-cloudsmith-blue?logo=cloudsmith)](https://cloudsmith.com)
[![CI](https://github.com/jrl-umi3218/RBDyn/workflows/CI%20of%20RBDyn/badge.svg?branch=master)](https://github.com/jrl-umi3218/RBDyn/actions?query=workflow%3A%22CI+of+RBDyn%22)
[![Documentation](https://img.shields.io/badge/doxygen-online-brightgreen?logo=read-the-docs&style=flat)](http://jrl-umi3218.github.io/RBDyn/doxygen/HEAD/index.html)RBDyn provides a set of classes and functions to model the dynamics of rigid body systems.
This implementation is based on [Roy Featherstone Rigid Body Dynamics Algorithms book](http://www.springer.com/fr/book/9780387743141) and other state of the art publications.
Installing
------## Ubuntu LTS (16.04, 18.04, 20.04)
You must first setup our package mirror:
```
curl -1sLf \
'https://dl.cloudsmith.io/public/mc-rtc/stable/setup.deb.sh' \
| sudo -E bash
```You can also choose the head mirror which will have the latest version of this package:
```
curl -1sLf \
'https://dl.cloudsmith.io/public/mc-rtc/head/setup.deb.sh' \
| sudo -E bash
```You can then install the package:
```bash
sudo apt install librbdyn-dev python-rbdyn python3-rbdyn
```## vcpkg
Use the registry available [here](https://github.com/mc-rtc/vcpkg-registry/)
## Homebrew OS X install
Install from the command line using [Homebrew](brew.sh):
```bash
# Use mc-rtc tap
brew tap mc-rtc/mc-rtc
# install RBDyn and its Python bindings
brew install rbdyn
```## Manually build from source
### Dependencies
To compile you need the following tools:
* [Git]()
* [CMake]() >= 2.8
* [pkg-config]()
* [doxygen]()
* [g++]() >= 4.7 (for C++11 support)
* [Boost](http://www.boost.org/doc/libs/1_58_0/more/getting_started/unix-variants.html) >= 1.49
* [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page) >= 3.2
* [SpaceVecAlg](https://github.com/jrl-umi3218/SpaceVecAlg)For Python bindings:
* [Cython](cython.readthedocs.io) >= 0.20
* [Eigen3ToPython](https://github.com/jrl-umi3218/Eigen3ToPython) (to use the python binding)### Building
```sh
git clone --recursive https://github.com/jrl-umi3218/RBDyn
cd RBDyn
mkdir _build
cd _build
cmake [options] ..
make && make intall
```#### CMake options
By default, the build will use the `python` and `pip` command to install the bindings for the default system version (this behaviour can be used to build the bindings in a given virtualenv). The following options allow to control this behaviour:
* `PYTHON_BINDING` Build the python binding (ON/OFF, default: ON)
* `PYTHON_BINDING_FORCE_PYTHON2`: use `python2` and `pip2` instead of `python` and `pip`
* `PYTHON_BINDING_FORCE_PYTHON3`: use `python3` and `pip3` instead of `python` and `pip`
* `PYTHON_BINDING_BUILD_PYTHON2_AND_PYTHON3`: builds two sets of bindings one with `python2` and `pip2`, the other with `python3` and `pip3`
* `BUILD_TESTING` Enable unit tests building (ON/OFF, default: ON)### Arch Linux
You can use the following [AUR package](https://aur.archlinux.org/packages/rbdyn-git).
Documentation
-----Features:
* Kinematics tree Kinematics and Dynamics algorithm C++11 implementation
* Use Eigen3 and [SpaceVecAlg](https://github.com/jrl-umi3218/SpaceVecAlg) library
* Free, Spherical, Planar, Cylindrical, Revolute, Prismatic joint support
* Translation, Rotation, Vector, CoM, Momentum Jacobian computation
* Inverse Dynamics, Forward Dynamics
* Inverse Dynamic Identification Model (IDIM)
* Kinematics tree body merging/filtering
* Kinematics tree base selection
* Python bindingTo make sure that RBDyn works as intended, unit tests are available for each algorithm.
Besides, the library has been used extensively to control humanoid robots such as HOAP-3, HRP-2, HRP-4 and Atlas.A short tutorial is available [here](https://github.com/jorisv/sva_rbdyn_presentation/blob/master/presentation_release.pdf).
The [SpaceVecAlg and RBDyn tutorial](https://github.com/jorisv/sva_rbdyn_tutorials) is also a big ressource to understand how to use RBDyn by providing a lot of IPython Notebook that will present real use case.
A doxygen documentation is available [online](https://jrl-umi3218.github.io/RBDyn).