Links to software implementations of movement primitive (MP) frameworks and core papers including dynamic MPs, probabilistic MPs, kernelized MPs, conditional neural MPs, Fourier MPs, and other methods. All links are in chronological order.
- Dynamic Movement Primitives
- Probabilistic Movement Primitives
- Kernelized Movement Primitives
- Conditional Neural Movement Primitives
- Fourier Movement Primitives
- Other Approaches
- Citing This Work
- Schaal, S. (2003). Dynamic movement primitives - A framework for motor control in humans and humanoid robotics. Adaptive Motion of Animals and Machines, pp. 261-280.
- Ijspeert, A. J., Nakanishi, J., Hoffmann, H., Pastor, P., & Schaal, S. (2013). Dynamical movement primitives: Learning attractor models for motor behaviors. Neural Computation, vol. 25, no. 2, pp. 328-373.
- Saveriano, M., Abu-Dakka, F. J., Kramberger, A., & Peternel, L. (2021). Dynamic movement primitives in robotics: A tutorial survey. The International Journal of Robotics Research, vol. 42, no. 13, pp. 1133-1184.
clmc/DMP: Archive link to orignal implementation by Schaal et al. Includes links to software for locally weighted regression.
carlos22/pydmp: Educational implementation of 1D discrete DMP.
stulp/dmp_bbo_matlab_deprecated: Black-box optimization with DMPs.
sniekum/dmp: Robot-agnostic implementation for ROS.
AlexanderFabisch/PyDMP: Illustrative notebooks for understanding concepts.
stulp/dmpbbo: Combines black-box optimization with DMPs.
awesomebytes/dmp_gestures: Uses cameras to capture gestures to learn and generate DMPs executed through MoveIt.
studywolf/pydmps: DMP tutorial and applications with minimal library dependencies.
shobhit6993/egraphs-with-dmp: DMPs integrated into experience-graph framework to support adaptation to unseen obstacles.
baxter-flowers/dmp_lib: Wraps @studywolf implementation into ROS package.
cunnia3/Dynamic-Motion-Primitives: Implementation based on @studywolf DMP.
baggepinnen/DynamicMovementPrimitives.jl: Standard formulation and implementation of 2-DoF control for trajectory tracking and perturbation recovery.
dgerod/more-dmps: Implementation of three other Python DMP libraries.
ZhengYi0310/dmp-ros-pkg: DMP implementation for PR2 and WAM robots.
chauby/DMP_chebotar: DMP implementation that supports goal location updates.
Dennis-BIRL-GDUT/baxter_dmp_rl: Workspace for ROS implementation of Baxter robot for pick-and-place tasks.
zhouyou-kit/dmp_exercise: Educational visualization based on Peter Corke's MATLAB robotics toolbox.
ferreirafabio/movement_primitives_via_optimization: Incorporates Lagrangian optimization for adapting to demonstrations.
nag92/dmp_experiments: Experimental implementation in two languages.
herambnemlekar/dmp-handovers: Predictive human-robot handovers using DMPs on the Baxter robot.
abakisita/dmp_motion: Precursor implementation to author's ROS package.
abakisita/ros_dmp: Package with services for learning motion from a learned DMP.
tsitsimis/dmpling: Trajectories learned from human gestures (3D marker poses) with notebook visualizations.
justagist/reversible_dmp: Implements reversible discrete DMP.
dkebude/DMP-gen: DMP generator for reinforcement learning applications.
ZhengYi0310/DMP: Implementation in two languages.
suryakiranmg/Dynamic-Movement-Primitives-and-Imitation-Learning-Robotics: Short implementation in MATLAB.
Slifer64/DMP_KF: DMPs implemented with Kalman filtering and support for KUKA/UR robots.
kostasVlachos/dmp_control: DMP control for KUKA robot.
MichailTheofanidis/dmp-protoype: Experimental implementation of reinforcement learning-based adaptation and robot inverse kinematics.
heracleia/pyrdmp: Reinforcement learning library based on the PoWER algorithm.
mginesi/dmp_vol_obst: Appended secondary forcing term for obstacle avoidance.
cloudy/dmp-obstacle-avoidance: Human obstacle avoidance demonstrated on the Sawyer robot.
mginesi/dmp_pp: Library based on the "DMP++: Overcoming some drawbacks of dynamic movement primitives" paper.
liangyuwei/dual_ur5_arm: Dual-arm peg-in-hole task via a UR5 robot.
yuehuang315/LIL-DMP: Lifelong imitation learning with DMPs.
xukechun/DMPs-learning: Visualizer for DMPs with RViz.
mathiasesn/obstacle_avoidance_with_dmps: Incorporates obstacle avoidance and link-collision avoidance.
alaradirik/robot-learning: Algorithms from a university course implemented in NumPy.
Shaluols/ur5e_dmp: Leverages the UR5e robot Gazebo simulation to learn DMPs based on @studywolf's library.
emarescotti/VelocityPlanning_DMP_FL: Velocity planning of robotic sealing tasks using DMPs.
gsutanto/dmp: Reference implementation in three languages with hard real-time support for robot control (C++).
Slifer64/GMP: Generalized MPs based on DMPs. Supports online adaptation to via points and offline/online optimization under kinematic constraints.
chauby/PyDMPs_Chauby: DMPs for simulated UR5 robot in CoppeliaSim (V-REP).
varadVaidya/dmp: Secondary forcing term for single and multi-point obstacle avoidance.
Lygggggg/Upper-level-task-planning-of-Jaco-based-on-behavior-tree: Uses behavior trees and DMPs for upper-level task planning.
dfki-ric/movement_primitives: Various MP frameworks including DMPs (with spatially coupled support) and ProMPs.
CarlDegio/PI2-DMPs: Reinforcement learning via policy improvement with path integrals (PI2).
giobraglia/Dynamic-Motion-Primitives: Cartesian trajectory-based implementation of discrete DMPs. Optimized for parallel computing toolbox.
Slifer64/resnet_dmp: Uses RGB images with ResNet architecture to learn DMPs for planar tasks.
kit/DynamicMovementPrimitive: KIT-developed DMP library with different types of DMPs and function approximators.
kit/MovementPrimitiveLibrary: KIT-developed DMP wrapper combined with via point MP implementation.
giobraglia/Geometric-Dynamic-Motion-Primitives: Geometric dynamic motion primitives to decouple transformation system from timing law.
matteodv99tn/dmp_ros2: ROS2 wrapper for a DMP library. Includes data collection and processing utilities.
- Paraschos, A., Daniel, C., Peters, J. R., & Neumann, G. (2013). Probabilistic movement primitives. Advances in Neural Information Processing systems, vol. 26.
- Gomez-Gonzalez, S., Neumann, G., Schölkopf, B., & Peters, J. (2020). Adaptation and robust learning of probabilistic movement primitives. IEEE Transactions on Robotics, vol. 36, no. 2, pp. 366-379.
baxter-flowers/promplib: Features interactive learning component to automatically cluster primitives based on standard deviation.
herambnemlekar/probabilistic-movement-primitives: Experimental implementation for training ProMPs with the Baxter robot.
mjm522/promps_python: 1D ProMP model with closed-form trajectory controller.
sebasutp/promp: Library that computes trajectory likelihood of a ProMP, trajectory sampling, and save/load.
sebasutp/promp-cpp: C++ version of @sebasutp Python library.
thejose5/movement-primitives: LfD implementations including ProMPs with ROS support.
dfki-ric/movement_primitives: Various MP frameworks including DMPs (with spatially coupled support) and ProMPs.
imanlab/deep_movement_primitives: ProMP-based deep MPs for breast cancer examination robot.
- Huang, Y., Rozo, L., Silvério, J., & Caldwell, D. G. (2019). Kernelized movement primitives. The International Journal of Robotics Research, 38(7), pp. 833-852.
- Silvério, J., Huang, Y., Abu-Dakka, F. J., Rozo, L., & Caldwell, D. G. (2019). Uncertainty-aware imitation learning using kernelized movement primitives. IEEE/RSJ International Conference on Intelligent Robots and Systems (pp. 90-97).
- Huang, Y., & Caldwell, D. G. (2020). A linearly constrained nonparametric framework for imitation learning. IEEE International Conference on Robotics and Automation, pp. 4400-4406.
- Padalkar, A., Stulp, F., Neumann, G., & Silvério, J. (2025). Towards safe and efficient learning in the wild: Guiding RL with constrained uncertainty-aware movement primitives. IEEE Robotics and Automation Letters, vol. 10, no. 7, pp. 6880-6887.
yanlongtu/robInfLib-matlab: Demonstrates various functionalities of KMPs.
lbusellato/KMP_demos: Implements three demos showcasing individual KMP capabilities.
- Seker, M. Y., Imre, M., Piater, J. H., & Ugur, E. (2019). Conditional neural movement primitives. Robotics: Science and Systems, vol. 10.
- Akbulut, M., Oztop, E., Seker, M. Y., Hh, X., Tekden, A., & Ugur, E. (2021). ACMP: Skill transfer and task extrapolation through learning from demonstration and reinforcement learning via representation sharing. Conference on Robot Learning, pp. 1896-1907, PMLR.
myunusseker/CNMP: Full implementation of CNMPs with experiments from the original publication.
mtuluhanakbulut/ACNMP: Experimental implementation and simulation for adaptive CNMP.
nag92/pdblib-matlab: Demos for a wide variety of programming by demonstration frameworks including FMPs.
ir-lab/intprim: Complete framework for learning controllers for human-robot interaction applications using Bayesian interaction primitives.
idiap/pbdlib: Source code collection for robot programming by demonstration.
This repository was made in support of the following survey paper:
@article{gutierrez2025movement,
title={Movement Primitives in Robotics: A Comprehensive Survey},
author={Gutierrez, Nolan B and Beksi, William J},
journal={arXiv preprint arXiv:2601.02379},
year={2025}
}