Skip to content
Snippets Groups Projects
user avatar
Sylvain Calinon authored
398e99ca
History
Name Last commit Last update
data
include
src
CMakeLists.txt
LICENSE
README.md

PbDlib-cpp

PbDlib-cpp is a set of tools in C++ combining statistical learning, optimal control and differential geometry for programming-by-demonstration applications. Other versions of the library are available at http://www.idiap.ch/software/pbdlib/ (in Matlab, C++ and Python).

Contributors

Sylvain Calinon, Ioannis Havoutis, Ajay Tanwani, Emmanuel Pignat, Fabien Crepon, Daniel Berio, Philip Abbet

This work was in part supported by the DexROV project through the EC H2020 programme (Grant #635491).

Prerequisite

The program requires glfw3 (lightweight and portable library for managing OpenGL contexts, windows and inputs).

Compilation

cd pbdlib-cpp
mkdir build
cd build
cmake ..
make

glfw3 deb package install

sudo apt-get install libglfw3-dev 

If libglfw3-dev is not available on your system, you can install it manually with:

git clone https://github.com/glfw/glfw.git
cd glfw
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON ../
make
sudo make install
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Note: The -DBUILD_SHARED_LIBS is necessary otherwise cmake will create a static library.

References

Did you find PbDlib useful for your research? Please acknowledge the authors in any academic publications that used parts of these codes.

[1] Tutorial (GMM, TP-GMM, MFA, MPPCA, GMR, LWR, GPR, MPC, LQR, trajGMM):

@article{Calinon16JIST,
	author="Calinon, S.",
	title="A Tutorial on Task-Parameterized Movement Learning and Retrieval",
	journal="Intelligent Service Robotics",
	publisher="Springer Berlin Heidelberg",
	year="2016",
	volume="9",
	number="1",
	pages="1--29",
	doi="10.1007/s11370-015-0187-9",
}

[2] HMM, HSMM:

@article{Rozo16Frontiers,
	author="Rozo, L. and Silv\'erio, J. and Calinon, S. and Caldwell, D. G.",
	title="Learning Controllers for Reactive and Proactive Behaviors in Human-Robot Collaboration",
	journal="Frontiers in Robotics and {AI}",
	year="2016",
	month="June",
	volume="3",
	number="30",
	pages="1--11",
	doi="10.3389/frobt.2016.00030"
}

[3] Riemannian manifolds (S2,S3):

@article{Zeestraten17RAL,
	author="Zeestraten, M. J. A. and Havoutis, I. and Silv\'erio, J. and Calinon, S. and Caldwell, D. G.",
	title="An Approach for Imitation Learning on {R}iemannian Manifolds",
	journal="{IEEE} Robotics and Automation Letters ({RA-L})",
	year="2017",
	month="June",
	volume="2",
	number="3",
	pages="1240--1247"
	doi="10.1109/LRA.2017.2657001",
}

[4] Riemannian manifolds (S+):

@inproceedings{Jaquier17IROS,
	author="Jaquier, N. and Calinon, S.", 
	title="Gaussian Mixture Regression on Symmetric Positive Definite Matrices Manifolds: Application to Wrist Motion Estimation with {sEMG}",
	booktitle="Proc. {IEEE/RSJ} Intl Conf. on Intelligent Robots and Systems ({IROS})",
	year="2017",
	month="September",
	address="Vancouver, Canada",
	pages=""
}

[5] Semi-tied GMM:

@article{Tanwani16RAL,
	author="Tanwani, A. K. and Calinon, S.",
	title="Learning Robot Manipulation Tasks with Task-Parameterized Semi-Tied Hidden Semi-{M}arkov Model",
	journal="{IEEE} Robotics and Automation Letters ({RA-L})",
	year="2016",
	month="January",
	volume="1",
	number="1",
	pages="235--242",
	doi="10.1109/LRA.2016.2517825"
}

[6] DP-means:

@article{Bruno17AURO,
	author="Bruno, D. and Calinon, S. and Caldwell, D. G.",
	title="Learning Autonomous Behaviours for the Body of a Flexible Surgical Robot",
	journal="Autonomous Robots",
	year="2017",
	month="February",
	volume="41",
	number="2",
	pages="333--347",
	doi="10.1007/s10514-016-9544-6"
}

[7] Shared control, adaptive teleoperation:

@inproceedings{Havoutis17ICRA,
	author="Havoutis, I. and Calinon, S.",
	title="Supervisory teleoperation with online learning and optimal control",
	booktitle=ICRA,
	year="2017",
	month="May-June",
	address="Singapore",
	pages="1534--1540"
}

[8] Keypoint-based motion edition through MPC:

@inproceedings{Berio17GI,
	author="Berio, D. and Calinon, S. and Fol Leymarie, F.",
	title="Generating Calligraphic Trajectories with Model Predictive Control",
	booktitle="Proc. 43rd Conf. on Graphics Interface",
	year="2017",
	month="May",
	address="Edmonton, AL, Canada",
	pages="132--139",
	doi="10.20380/GI2017.17"
}

[9] Adaptive assistance:

@article{Pignat17RAS,
	author="Pignat, E. and Calinon, S.",
	title="Learning adaptive dressing assistance from human demonstration",
	journal="Robotics and Autonomous Systems",
	year="2017",
	month="July",
	volume="93",
	number="",
	pages="61--75",
	doi="10.1016/j.robot.2017.03.017",
}

List of examples

This project will build a number of executables, as listed in the table below.

Filename ref. Description
demo_LQR_infHor [1] Discrete infinite horizon linear quadratic regulation
demo_MPC_batch_01 [1,8] Model predictive control (MPC) with batch linear quadratic tracking (LQT) formulation
demo_MPC_iterative_01 [1,8] Model predictive control (MPC) with iterative linear quadratic tracking (LQT) formulation
demo_MPC_semitied_01 [5,8] MPC with semi-tied covariances
demo_MPC_velocity_01 [1,8] MPC with an objective including velocity tracking
demo_online_gmm [6] Online GMM learning and LQR-based trajectory generation
demo_online_hsmm [2,7] Online HSMM learning and sampling with LQR-based trajectory generation
demo_Riemannian_cov_interp02 [4] Covariance interpolation on Riemannian manifold from a GMM with augmented covariances
demo_Riemannian_quat_infHorLQR [3] Linear quadratic regulation on hypersphere (orientation as unit quaternions) by relying on Riemannian manifold and infinite-horizon LQR
demo_Riemannian_sphere_infHorLQR [3] Linear quadratic regulation on a sphere by relying on Riemannian manifold and infinite-horizon LQR