This is an implementation (mainly C++) or temporally coupled dynamical movement primitives (DMPs), described in
Karlsson, M., F. Bagge Carlson, A. Robertsson, and R. Johansson (2017a). “Two-degree-of-freedom control for trajectory tracking and perturbationrecovery during execution of dynamical movement primitives”. In:20thIFAC World Congress. July 9–14, Toulouse, France, pp. 1959–1966.
Karlsson, M., A. Robertsson, and R. Johansson (2018a). “Convergence of dynamical movement primitives with temporal coupling”. In:EuropeanControl Conference (ECC). June 12–15, Limassol, Cyprus, pp. 32–39.
Two videos are available: https://www.youtube.com/watch?v=KRfjMXs4LjQ and https://www.youtube.com/watch?v=u8GwsSsL0TI
Compile simulink .mdl file: open matlab 2012a click on red box to initialize press ctrl+B to build (c-code is generated and compiled)
Compile C++:
- Navigate to cpp folder
- type 'make'
Run ExtCtrl: /opt/robot/example/opcom/lth_net_xeno -v /dev/ttyUSB0 localhost 2000
Then load /tmp/$USER/convergence_dmp_two_arms
Run C++ program: ./main localhost 2000
Requirements:
Armadillo C++ library for linear algebra & scientific computing http://arma.sourceforge.net/
You may have to adjust some directories for compiling and linking.
See also: https://gitlab.control.lth.se/cont-mkr/dmp_perturbation_sim_example for simple simulation in Matlab.
https://github.com/baggepinnen/DynamicMovementPrimitives.jl for a Julia implementation. Also allows for offline simulations.
See also wiki for info about Frida and force sensors: https://sites.google.com/a/ulund.org/robotwiki/robots/frida