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 and other state of the art publications.
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:
sudo apt install librbdyn-dev python-rbdyn python3-rbdynUse the registry available here
Install from the command line using Homebrew:
# Use mc-rtc tap
brew tap mc-rtc/mc-rtc
# install RBDyn and its Python bindings
brew install rbdynTo compile you need the following tools:
- Git
- CMake >= 2.8
- pkg-config
- doxygen
- g++ >= 4.7 (for C++11 support)
- Boost >= 1.49
- Eigen >= 3.2
- SpaceVecAlg
For Python bindings:
- Cython >= 0.20
- Eigen3ToPython (to use the python binding)
git clone --recursive https://github.com/jrl-umi3218/RBDyn
cd RBDyn
mkdir _build
cd _build
cmake [options] ..
make && make intallBy 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_BINDINGBuild the python binding (ON/OFF, default: ON)PYTHON_BINDING_FORCE_PYTHON2: usepython2andpip2instead ofpythonandpipPYTHON_BINDING_FORCE_PYTHON3: usepython3andpip3instead ofpythonandpipPYTHON_BINDING_BUILD_PYTHON2_AND_PYTHON3: builds two sets of bindings one withpython2andpip2, the other withpython3andpip3BUILD_TESTINGEnable unit tests building (ON/OFF, default: ON)
You can use the following AUR package.
Features:
- Kinematics tree Kinematics and Dynamics algorithm C++11 implementation
- Use Eigen3 and 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 binding
To 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.
The SpaceVecAlg and RBDyn tutorial 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.