Skip to content
/ RBDyn Public
forked from jrl-umi3218/RBDyn

RBDyn provide a set of class and function to model the dynamics of rigid body system.

License

Notifications You must be signed in to change notification settings

aescande/RBDyn

 
 

Repository files navigation

RBDyn

License Build Status AppVeyor status Download

RBDyn provide a set of class and function 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.

Installing

Ubuntu LTS (14.04, 16.04, 18.04): PPA

Use the multi-contact-unstable ppa:

sudo add-apt-repository ppa:pierre-gergondet+ppa/multi-contact-unstable
sudo apt-get update
sudo apt-get install librbdyn-dev librbdyn-doc python-rbdyn python3-rbdyn

Homebrew OS X install

Install from the command line using Homebrew:

# install homebrew package manager
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# install caskroom application manager
brew install caskroom/cask/brew-cask
# tap homebrew-science package repository
brew tap homebrew/science
# tap ahundt-robotics repository
brew tap ahundt/robotics
# install tasks and all its dependencies
brew install rbdyn

Manually build from source

Dependencies

To compile you need the following tools:

For Python bindings:

Building

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
  • DISABLE_TESTS Disable unit tests building (ON/OFF, default: OFF)

Arch Linux

You can use the following AUR package.

Documentation

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.

About

RBDyn provide a set of class and function to model the dynamics of rigid body system.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 84.6%
  • Python 14.2%
  • Other 1.2%