Dynamic Movement Primitive
- Also called: DMP, dynamical movement primitive
- Category: Learning & autonomy › Learning from demonstration
- Tags: learning-from-demonstration, motion-primitives, trajectory-generation, dynamical-systems, robot-learning
A motion primitive that encodes a trajectory as a stable second-order dynamical system plus a learned forcing term, so a demonstrated movement can be replayed toward new goals and at new speeds.
Definition
A dynamic movement primitive (DMP) represents a movement as the output of a dynamical system rather than as a fixed list of waypoints. The formulation was developed by Ijspeert, Nakanishi and Schaal in the early 2000s and later presented in full by Ijspeert et al. (2013) under the name dynamical movement primitives. For each degree of freedom, a transformation system behaves like a critically damped spring-damper pulling the position toward a goal g. A forcing term is added to it that shapes the path along the way. The forcing term is a weighted sum of Gaussian basis functions of a phase variable x, which is produced by a separate canonical system that decays smoothly from 1 toward 0. Because the forcing term is multiplied by x, it fades out over time, and the system is guaranteed to converge to the goal like the plain spring-damper.
Learning a DMP from a demonstration is simple: the demonstrated position, velocity and acceleration are used to compute the forcing term the system would need, and the basis-function weights are fitted by linear regression. The learned movement can then be generalized. Changing g moves the endpoint while keeping the shape, since the forcing term is scaled by the distance from start to goal. Changing the time constant τ speeds the movement up or slows it down. Several degrees of freedom share one canonical system, which keeps them synchronized. A rhythmic version uses an oscillating phase for periodic movements such as walking or wiping, and coupling terms can be added for obstacle avoidance or to slow the phase when tracking errors grow.
A DMP is one specific kind of motion primitive, the general idea of reusable building blocks of motion. Compared with other learned primitives, DMPs are deterministic and represent a single trajectory; probabilistic movement primitives (ProMPs) instead represent a distribution over trajectories learned from several demonstrations. Known weaknesses of the original formulation include odd scaling when the new goal is very close to the start or on the opposite side of it, which later modified formulations address, and the need for special forms to handle orientations, such as quaternion DMPs. The compact weight vector also makes DMPs a common policy parameterization for reinforcement learning on real robots.
Why it matters
DMPs give a way to learn a movement from a single demonstration and reuse it with new goals and timing while keeping guaranteed convergence. This combination of easy learning, smooth output and stability has made them a standard representation in learning from demonstration and a common baseline for newer trajectory models.
Key applications
- Learning manipulation skills from a single kinesthetic or teleoperated demonstration
- Generalizing reaching, pouring and placing motions to new goal positions
- Generating and modulating expressive gestures for social robots
- Rhythmic motions such as wiping, drumming and walking patterns
- Policy parameterization for reinforcement learning on real robots
In practice
A social robot is given a set of expressive arm gestures, such as a wave and a shrug, recorded by an animator. Each gesture is encoded as a set of DMPs, one per joint, sharing a canonical system. At run time a higher-level module chooses the gesture and modulates it: changing the time constant makes the wave faster for an excited tone or slower for a calm one, shifting the goal raises the hand higher, and scaling the forcing-term weights makes the motion larger or smaller. Because each DMP always converges to its goal, the modulated gesture still ends in a valid pose, and the joint commands are passed through the robot's joint limits and velocity limits before execution.
Common misconceptions
- A DMP is just a recorded trajectory — it is a dynamical system that can be re-targeted to new goals and speeds and that reacts to perturbations of its state
- Motion primitive and DMP mean the same thing — a DMP is one specific formulation among many kinds of motion primitives
- DMPs capture the variability of several demonstrations — the basic DMP fits one trajectory; probabilistic movement primitives model variation across demonstrations
- DMPs avoid obstacles on their own — obstacle avoidance requires added coupling terms or an outer planner
Who should know this
- Robot learning researchers working on learning from demonstration
- Manipulation engineers building reusable skill libraries
- Human-robot interaction researchers designing robot gestures
- Robotics students studying trajectory representations
Related technologies
- Probabilistic Movement Primitives
- Locally Weighted Regression
- Gaussian Mixture Regression
- Kinesthetic Teaching
- Policy Search Reinforcement Learning
Related terms
- Motion Primitive
- Kinesthetic Teaching
- Imitation Learning
- Trajectory Planning
- Reinforcement Learning
- Impedance Control
Related projects
- OpenPI: Physical Intelligence VLA foundation models for general robot control
- NVIDIA Isaac GR00T: NVIDIA open foundation model for humanoid robot reasoning and skills
- DreamZero: NVIDIA World Action Model that jointly predicts future video and robot actions
- robosuite: Modular MuJoCo simulation framework for robot learning research
- LIBERO: Lifelong robot learning benchmark with 130 procedural tasks
- Open X-Embodiment (OXE): Largest open robotics dataset: 1M+ episodes from 22 embodiments