Let’s talk about the Dynamic Movement Primitive (DMP) for robots learning from demonstration. In this article, we make an assumption that you readers all have the background of control theory and robotics.
The Basics about DMP
Dynamic movement primitives (DMPs) are a method of trajectory control / planning. It was motivated by the desire to find a way to represent complex motor actions that can be flexibly adjusted without manual parameter tuning or having to worry about instability.
To begin with, we take some time to discuss 2nd order dynamic system as follows:
τ y ˙ = z \tau\dot{y}=z τy˙=z τ z ˙ = α ( β ( g − y ) − z ) \tau\dot{z}=\alpha(\beta(g-y)-z) τz˙=α(β(g−y)−z) For the sake of simplicity, we take τ = 1 \tau = 1 τ=1. Then the equations above reduces to a time-invariant linear system which has been deeply studied in linear control theory. The only equilibrium of the system above is z = 0 , y = g z=0,y=g z=0,y=g. Here we take g g g as the goal position, α , β \alpha,\beta α,β are constant parameters to be chosen such that the system is strictly damping (e.g. α > 4 β > 0 \alpha > 4\beta > 0 α>4β>0). This is why the DMP is always stable at the goal position — the dynamics of the system is always dominated by a stable linear system.
To make the DMP fit any trajectory, it is necessary to add some terms in the equations above without any effects on its stability:
τ y ˙ = z \tau\dot{y}=z τy˙=z τ z ˙ = α ( β ( g − y ) − z ) + f ( x ) \tau\dot{z}=\alpha(\beta(g-y)-z) + f(x) τz˙=α(β(g−y)−z)+f(x) where τ x ˙ = − α x x \tau \dot{x} = -\alpha_{x}x τx˙=−αxx α x > 0 \alpha_x>0 αx</