From e2d23147cb1e7c2558c9dea236762769fe24daa9 Mon Sep 17 00:00:00 2001 From: scalinon <sylvain.calinon@idiap.ch> Date: Tue, 2 Feb 2021 12:03:39 +0100 Subject: [PATCH] Renaming of files --- CMakeLists.txt | 24 ++++----- README.md | 51 ++++++++++--------- ...demo_MPC_batch01.cpp => demo_OC_LQT01.cpp} | 0 ...tive01.cpp => demo_OC_LQT_recursive01.cpp} | 0 ...itied01.cpp => demo_OC_LQT_semitied01.cpp} | 0 ...ocity01.cpp => demo_OC_LQT_velocity01.cpp} | 0 6 files changed, 38 insertions(+), 37 deletions(-) rename src/{demo_MPC_batch01.cpp => demo_OC_LQT01.cpp} (100%) rename src/{demo_MPC_iterative01.cpp => demo_OC_LQT_recursive01.cpp} (100%) rename src/{demo_MPC_semitied01.cpp => demo_OC_LQT_semitied01.cpp} (100%) rename src/{demo_MPC_velocity01.cpp => demo_OC_LQT_velocity01.cpp} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index edf28de..9de152e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -245,42 +245,42 @@ target_link_libraries(demo_LWR_iterative01 ${LIBRARIES} ) -add_executable(demo_MPC_batch01 +add_executable(demo_OC_LQT01 ${GFX2_SUPPORT_SOURCES} - ${PROJECT_SOURCE_DIR}/src/demo_MPC_batch01.cpp + ${PROJECT_SOURCE_DIR}/src/demo_OC_LQT01.cpp ${PROJECT_SOURCE_DIR}/src/utils/mpc_utils.cpp ${PROJECT_SOURCE_DIR}/src/utils/gl2ps.c ) -target_link_libraries(demo_MPC_batch01 +target_link_libraries(demo_OC_LQT01 ${LIBRARIES} ) -add_executable(demo_MPC_iterative01 +add_executable(demo_OC_LQT_recursive01 ${GFX2_SUPPORT_SOURCES} - ${PROJECT_SOURCE_DIR}/src/demo_MPC_iterative01.cpp + ${PROJECT_SOURCE_DIR}/src/demo_OC_LQT_recursive01.cpp ${PROJECT_SOURCE_DIR}/src/utils/mpc_utils.cpp ) -target_link_libraries(demo_MPC_iterative01 +target_link_libraries(demo_OC_LQT_recursive01 ${LIBRARIES} ) -add_executable(demo_MPC_semitied01 +add_executable(demo_OC_LQT_semitied01 ${GFX2_SUPPORT_SOURCES} - ${PROJECT_SOURCE_DIR}/src/demo_MPC_semitied01.cpp + ${PROJECT_SOURCE_DIR}/src/demo_OC_LQT_semitied01.cpp ${PROJECT_SOURCE_DIR}/src/utils/mpc_utils.cpp ${PROJECT_SOURCE_DIR}/src/utils/gl2ps.c ) -target_link_libraries(demo_MPC_semitied01 +target_link_libraries(demo_OC_LQT_semitied01 ${LIBRARIES} ) -add_executable(demo_MPC_velocity01 +add_executable(demo_OC_LQT_velocity01 ${GFX2_SUPPORT_SOURCES} - ${PROJECT_SOURCE_DIR}/src/demo_MPC_velocity01.cpp + ${PROJECT_SOURCE_DIR}/src/demo_OC_LQT_velocity01.cpp ${PROJECT_SOURCE_DIR}/src/utils/mpc_utils.cpp ${PROJECT_SOURCE_DIR}/src/utils/gl2ps.c ) -target_link_libraries(demo_MPC_velocity01 +target_link_libraries(demo_OC_LQT_velocity01 ${LIBRARIES} ) diff --git a/README.md b/README.md index 2a34226..6628582 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # pbdlib-cpp -<p>PbDlib is a collection of C++ source codes for robot programming by demonstration (learning from demonstration). It includes various functionalities at the crossroad of statistical learning, dynamical systems, optimal control and Riemannian geometry.</p> +<p>PbDlib is a collection of C++ source codes for robot programming by demonstration (learning from demonstration). It includes various functionalities including statistical learning, dynamical systems, optimal control and Riemannian geometry.</p> <p>PbDlib can be used in applications requiring task adaptation, human-robot skill transfer, safe controllers based on minimal intervention principle, as well as for probabilistic motion analysis and synthesis in multiple coordinate systems.</p> -<p>Other versions of the library in Matlab (compatible with GNU Octave) and Python are also available at http://www.idiap.ch/software/pbdlib/ (currently, the Matlab version has the most functionalities).</p> +<p>Other versions of the library in Matlab (compatible with GNU Octave) and Python are also available at https://www.idiap.ch/software/pbdlib/ (currently, the Matlab version contains the most complete set of examples).</p> ### Usage @@ -22,10 +22,10 @@ This project builds a number of executables in the `build` folder, with the corr | [demo_infHorLQR01.cpp](./src/demo_infHorLQR01.cpp) | [[2]](#ref-2) | Discrete infinite horizon linear quadratic regulation | | [demo_LWR_batch01.cpp](./src/demo_LWR_batch01.cpp) | [[2]](#ref-2) | Locally weighted regression (LWR) with radial basis functions (RBF), using batch computation | | [demo_LWR_iterative01.cpp](./src/demo_LWR_iterative01.cpp) | [[2]](#ref-2) | Locally weighted regression (LWR) with radial basis functions (RBF), using iterative computation | -| [demo_MPC_batch01.cpp](./src/demo_MPC_batch01.cpp) | [[2]](#ref-2), [[7]](#ref-7) | Model predictive control (MPC) with batch linear quadratic tracking (LQT) formulation | -| [demo_MPC_iterative01.cpp](./src/demo_MPC_iterative01.cpp) | [[2]](#ref-2), [[7]](#ref-7) | Model predictive control (MPC) with iterative linear quadratic tracking (LQT) formulation | -| [demo_MPC_semitied01.cpp](./src/demo_MPC_semitied01.cpp) | [[2]](#ref-2), [[7]](#ref-7) | MPC with semi-tied covariances | -| [demo_MPC_velocity01.cpp](./src/demo_MPC_velocity01.cpp) | [[2]](#ref-2), [[7]](#ref-7) | MPC with an objective including velocity tracking | +| [demo_OC_LQT01.cpp](./src/demo_OC_LQT01.cpp) | [[2]](#ref-2), [[7]](#ref-7) | Batch solution of linear quadratic tracking (LQT) optimal control problem | +| [demo_OC_LQT_recursive01.cpp](./src/demo_OC_LQT_recursive01.cpp) | [[2]](#ref-2), [[7]](#ref-7) | Recursive solution of linear quadratic tracking (LQT) optimal control problem | +| [demo_OC_LQT01_semitied01.cpp](./src/demo_OC_LQT01_semitied01.cpp) | [[2]](#ref-2), [[7]](#ref-7) | LQT with semi-tied covariances | +| [demo_OC_LQT01_velocity01.cpp](./src/demo_OC_LQT01_velocity01.cpp) | [[2]](#ref-2), [[7]](#ref-7) | LQT with an objective function including velocity tracking | | [demo_online_GMM01.cpp](./src/demo_online_GMM01.cpp) | [[2]](#ref-2), [[6]](#ref-6) | Online GMM learning and LQR-based trajectory generation | | [demo_online_HSMM01.cpp](./src/demo_online_HSMM01.cpp) | [[2]](#ref-2), [[6]](#ref-6) | Online HSMM learning and sampling with LQR-based trajectory generation | | [demo_proMP01.cpp](./src/demo_proMP01.cpp) | [[5]](#ref-5) | Conditioning on trajectory distributions with ProMP | @@ -53,67 +53,68 @@ If you find PbDlib useful for your research, please cite the related publication <p><a name="ref-1"> [1] Calinon, S. (2016). <strong>A Tutorial on Task-Parameterized Movement Learning and Retrieval</strong>. Intelligent Service Robotics (Springer), 9:1, 1-29. </a><br> -[[pdf]](http://calinon.ch/papers/Calinon-JIST2015.pdf) -[[bib]](http://calinon.ch/papers/Calinon-JIST2015.bib) +[[pdf]](https://calinon.ch/papers/Calinon-JIST2015.pdf) +[[bib]](https://calinon.ch/papers/Calinon-JIST2015.bib) <br><strong>(Ref. for GMM, TP-GMM, MFA, MPPCA, GPR, trajGMM)</strong> </p> <p><a name="ref-2"> [2] Calinon, S. and Lee, D. (2019). <strong>Learning Control</strong>. Vadakkepat, P. and Goswami, A. (eds.). Humanoid Robotics: a Reference, pp. 1261-1312. Springer. </a><br> -[[pdf]](http://calinon.ch/papers/Calinon-Lee-learningControl.pdf) -[[bib]](http://calinon.ch/papers/Calinon-Lee-learningControl.bib) +[[pdf]](https://calinon.ch/papers/Calinon-Lee-learningControl.pdf) +[[bib]](https://calinon.ch/papers/Calinon-Lee-learningControl.bib) <br><strong>(Ref. for MPC, LQR, HMM, HSMM)</strong> </p> <p><a name="ref-3"> -[3] Calinon, S. and Jaquier, N. (2019). <strong>Gaussians on Riemannian Manifolds for Robot Learning and Adaptive Control</strong>. arXiv:1909.05946. +[3] Calinon, S. (2020). <strong>Gaussians on Riemannian Manifolds: Applications for Robot Learning and Adaptive Control</strong>. IEEE Robotics and Automation Magazine (RAM), 27:2, 33-45. </a><br> -[[pdf]](http://calinon.ch/papers/Calinon-arXiv2019.pdf) -[[bib]](http://calinon.ch/papers/Calinon-arXiv2019.bib) +[[pdf]](https://calinon.ch/papers/Calinon-RAM2020.pdf) +[[bib]](https://calinon.ch/papers/Calinon-RAM2020.bib) <br><strong>(Ref. for Riemannian manifolds)</strong> </p> <p><a name="ref-4"> [4] Jaquier, N. and Calinon, S. (2017). <strong>Gaussian Mixture Regression on Symmetric Positive Definite Matrices Manifolds: Application to Wrist Motion Estimation with sEMG</strong>. In Proc. of the IEEE/RSJ Intl Conf. on Intelligent Robots and Systems (IROS), pp. 59-64. </a><br> -[[pdf]](http://calinon.ch/papers/Jaquier-IROS2017.pdf) -[[bib]](http://calinon.ch/papers/Jaquier-IROS2017.bib) +[[pdf]](https://calinon.ch/papers/Jaquier-IROS2017.pdf) +[[bib]](https://calinon.ch/papers/Jaquier-IROS2017.bib) <br><strong>(Ref. for S^+ Riemannian manifolds)</strong> </p> <p><a name="ref-5"> [5] Calinon, S. (2019). <strong>Mixture Models for the Analysis, Edition, and Synthesis of Continuous Time Series</strong>. Bouguila, N. and Fan, W. (eds). Mixture Models and Applications, pp. 39-57. Springer. </a><br> -[[pdf]](http://calinon.ch/papers/Calinon_MMchapter2019.pdf) -[[bib]](http://calinon.ch/papers/Calinon_MMchapter2019.bib) +[[pdf]](https://calinon.ch/papers/Calinon_MMchapter2019.pdf) +[[bib]](https://calinon.ch/papers/Calinon_MMchapter2019.bib) <br><strong>(Ref. for ergodic control, Bezier curves, LWR, GMR, probabilistic movement primitives)</strong> </p> <p><a name="ref-6"> [6] Bruno, D., Calinon, S. and Caldwell, D.G. (2017). <strong>Learning Autonomous Behaviours for the Body of a Flexible Surgical Robot</strong>. Autonomous Robots, 41:2, 333-347. </a><br> -[[pdf]](http://calinon.ch/papers/Bruno-AURO2017.pdf) -[[bib]](http://calinon.ch/papers/Bruno-AURO2017.bib) +[[pdf]](https://calinon.ch/papers/Bruno-AURO2017.pdf) +[[bib]](https://calinon.ch/papers/Bruno-AURO2017.bib) <br><strong>(Ref. for DP-means)</strong> </p> <p><a name="ref-7"> [7] Berio, D., Calinon, S. and Fol Leymarie, F. (2017). <strong>Generating Calligraphic Trajectories with Model Predictive Control</strong>. In Proc. of the 43rd Conf. on Graphics Interface, pp. 132-139. </a><br> -[[pdf]](http://calinon.ch/papers/Berio-GI2017.pdf) -[[bib]](http://calinon.ch/papers/Berio-GI2017.bib) -<br><strong>(Ref. for Bezier curves as MPC with viapoints)</strong> +[[pdf]](https://calinon.ch/papers/Berio-GI2017.pdf) +[[bib]](https://calinon.ch/papers/Berio-GI2017.bib) +<br><strong>(Ref. for Bezier curves as LQT with viapoints)</strong> </p> <p><a name="ref-8"> [8] EPFL EE613 course "Machine Learning for Engineers" </a><br> -[[url]](http://calinon.ch/teaching.htm) +[[url]](https://calinon.ch/teaching_EPFL.htm) <br><strong>(Ref. for machine learning teaching material)</strong> </p> + ### Installation prerequisite PbDlib requires: @@ -214,8 +215,8 @@ and compile as usual. |  <br> [demo\_demo\_ergodicControl\_2D01.cpp](./src/demo_ergodicControl_2D01.cpp) |  <br> [demo\_GMR01.cpp](./src/demo_GMR01.cpp) | |  <br> [demo\_GPR01.cpp](./src/demo_GPR01.cpp) |  <br> [demo\_HSMM\_batchLQR01.cpp](./src/demo_HSMM_batchLQR01.cpp) | |  <br> [demo\_LWR\_batch01.cpp](./src/demo_LWR_batch01.cpp) |  <br> [demo\_LWR\_iterative01.cpp](./src/demo_LWR_iterative01.cpp) | -|  <br> [demo\_MPC\_batch01.cpp](./src/demo_MPC_batch01.cpp) |  <br> [demo\_MPC\_iterative01.cpp](./src/demo_MPC_iterative01.cpp) | -|  <br> [demo\_MPC\_semitied01.cpp](./src/demo_MPC_semitied01.cpp) |  <br> [demo\_MPC\_velocity01.cpp](./src/demo_MPC_velocity01.cpp) | +|  <br> [demo\_OC\_LQT01.cpp](./src/demo_OC_LQT01.cpp) |  <br> [demo\_MPC\_iterative01.cpp](./src/demo_MPC_iterative01.cpp) | +|  <br> [demo\_OC\_LQT\_semitied01.cpp](./src/demo_OC_LQT_semitied01.cpp) |  <br> [demo\_MPC\_velocity01.cpp](./src/demo_MPC_velocity01.cpp) | |  <br> [demo\_online\_GMM01.cpp](./src/demo_online_GMM01.cpp) |  <br> [demo\_proMP01.cpp](./src/demo_proMP01.cpp) | |  <br> [demo\_Riemannian\_SPD\_GMR01.cpp](./src/demo_Riemannian_SPD_GMR01.cpp) |  <br> [demo\_Riemannian\_SPD\_interp02.cpp](./src/demo_Riemannian_SPD_interp02.cpp) | |  <br> [demo\_Riemannian\_pose\_batchLQR01.cpp](./src/demo_Riemannian_pose_batchLQR01.cpp) |  <br> [demo\_Riemannian\_pose\_infHorLQR01.cpp](./src/demo_Riemannian_pose_infHorLQR01.cpp) | diff --git a/src/demo_MPC_batch01.cpp b/src/demo_OC_LQT01.cpp similarity index 100% rename from src/demo_MPC_batch01.cpp rename to src/demo_OC_LQT01.cpp diff --git a/src/demo_MPC_iterative01.cpp b/src/demo_OC_LQT_recursive01.cpp similarity index 100% rename from src/demo_MPC_iterative01.cpp rename to src/demo_OC_LQT_recursive01.cpp diff --git a/src/demo_MPC_semitied01.cpp b/src/demo_OC_LQT_semitied01.cpp similarity index 100% rename from src/demo_MPC_semitied01.cpp rename to src/demo_OC_LQT_semitied01.cpp diff --git a/src/demo_MPC_velocity01.cpp b/src/demo_OC_LQT_velocity01.cpp similarity index 100% rename from src/demo_MPC_velocity01.cpp rename to src/demo_OC_LQT_velocity01.cpp -- GitLab