• Stars
    star
    164
  • Rank 230,032 (Top 5 %)
  • Language
    C++
  • License
    BSD 2-Clause "Sim...
  • Created over 12 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

RBDyn provides a set of classes and functions to model the dynamics of rigid body systems.

RBDyn

License Hosted By: Cloudsmith CI Documentation

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.

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:

sudo apt install librbdyn-dev python-rbdyn python3-rbdyn

vcpkg

Use the registry available here

Homebrew OS X install

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

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.

More Repositories

1

mc_rtc

mc_rtc is an interface for simulated and real robotic systems suitable for real-time control
C++
106
star
2

Tasks

The Tasks library is designed to make real-time control for kinematics tree and list of kinematics tree.
C++
90
star
3

SpaceVecAlg

Implementation of spatial vector algebra with the Eigen3 linear algebra library.
C++
67
star
4

jrl-cmakemodules

CMake utility toolbox
CMake
56
star
5

Eigen3ToPython

Provide Eigen3 to numpy conversion
Python
49
star
6

copra

This a c++ implementation of a Time Invariant Linear Model Predictive Controller (LMPC) done in C++14 with python bindings
C++
35
star
7

eigen-quadprog

eigen-quadprog allow to use the QuadProg QP solver with the Eigen3 library.
C
34
star
8

tvm

A framework for writing and solving optimization problem, with an emphasis on robotic control (Beta)
C++
27
star
9

sva_rbdyn_tutorials

Tutorials in IPython notebook for the SpaceVecAlg and RBDyn library.
Python
25
star
10

eigen-qld

eigen-qld allow to use the QLD QP solver with the Eigen3 library.
C
15
star
11

jrl-walkgen

Walking Pattern Generator for Humanoids
C++
14
star
12

sch-core

Implementation and computation algorithms for the convex hulls
C++
13
star
13

jrl-qp

Tools and implementations to write, specialize and test QP solvers
C++
12
star
14

CaptureProblemSolver

A dedicated solver for the capture problem initially presented in S. Caron, B. Mallein "Balance control using both ZMP and COM height variations: A convex boundedness approach", ICRA 2018
C++
12
star
15

mc_rbdyn_urdf

A ROS-free URDF parser to create RBDyn structures
C++
10
star
16

mc_rtc_ros

Tools for the mc_rtc framework built around ROS
C++
9
star
17

mc_franka

Interface between mc_rtc and libfranka
C++
8
star
18

mc_panda

Panda's RobotModule and extensions for mc_rtc
C++
8
star
19

eigen-gurobi

eigen-gurobi allows to use the Gurobi QP solver with the Eigen3 library
C++
8
star
20

jrl-travis

Travis build scripts
Shell
7
star
21

lexls

A fast C++ solver for lexicographic least-squares problems
C++
7
star
22

jrl-umi3218.github.com

JRL webpage
TeX
7
star
23

mc_vrep

Interface between mc_rtc and CoppeliaSim (was V-REP)
C++
5
star
24

jrl-mal

Matrix Abstract Layer to allow multiple libraries on JRL code
C++
5
star
25

mc_force_sensor_calibration_controller

Controller to calibrate force sensors and let mc_rtc remove the effect of gravity due to links attached to the force sensors (grippers/feet).
C++
5
star
26

mc_naoqi

Communication module between mc_rtc and SoftBank robots running NAOqi operating system
C++
4
star
27

mc_openrtm

Interface between OpenRTM and mc_rtc
C++
3
star
28

mc_udp

UDP-based client-server implementation for mc_rtc
C++
3
star
29

jrl-dynamics

Implementation of RNEA for robot control
C++
3
star
30

pepper-fsm-controller

Sample FSM controller for the Pepper humanoid robot
C++
3
star
31

eigen-osqp

eigen-osqp allows to use the OSQP solver with the Eigen3 library
C++
3
star
32

jrl-mathtools

JRL Math Tools- Provides small size matrices efficient implementation
C++
3
star
33

libmocap

A simple library to load motion capture data
C++
2
star
34

mc_env_description

Description package for environments used along the mc_rtc framework
CMake
2
star
35

sample-humanoid-robot

Provides a humanoid robot model to test algorithms
Shell
2
star
36

ManipulationKinodynamics

Human manipulation kinodynamics dataset
2
star
37

jrl-cmakemodules-tutorials

Basic example of jrl-cmakemodules usage
CMake
2
star
38

pepper_description

ROS description package for the Pepper robot customized for mc_rtc usage
CMake
2
star
39

sch-creator

Creation of convex hulls volumes
C++
1
star
40

nao_description

NAO ROS description package modified for mc_rtc
CMake
1
star
41

mc_state_observation

State observers for mc_rtc
C++
1
star
42

mc_naoqi_dcm

Local DCM module for SoftBankRobotics robots designed to be used with mc_naoqi interface
C++
1
star
43

mc_rtc_msgs

ROS messages for mc_rtc
CMake
1
star
44

sch-visualization

Library for vizualization of the the sch volumes
C++
1
star
45

mc_rtc_data

Data for the mc_rtc package
CMake
1
star
46

SpringEstimator

CMake
1
star
47

bibmanagement

Python package to manipulate bibliographies and output them in various formats.
Python
1
star
48

mc-talos

mc_rtc robot module for Talos robot
C++
1
star
49

sch-core-python

Python bindings for the sch library
CMake
1
star
50

human_description

Human model ROS description package customized for mc_rtc
CMake
1
star
51

github-actions

GitHub Actions used in JRL projects
JavaScript
1
star
52

mc_int_obj_description

Description package for sample interactive objects in the mc_rtc framework
CMake
1
star
53

mc_go1

Robot module for the unitree Go1 robot
C++
1
star
54

mc_go1_description

Robot description for the Unitree Go1 robot
CMake
1
star
55

mc_panda_lirmm

Custom robot modules for panda robots in LIRMM
C++
1
star
56

mc_human

Human robot module for mc_rtc
C++
1
star