- S.M. Khansari-Zadeh and A. Billard (2011),
**Learning Stable Non-Linear Dynamical Systems with Gaussian Mixture Models**, IEEE Transaction on Robotics, vol. 27, num 5, p. 943-957.

- You could get this library from:

git clone https://bitbucket.org/khansari/seds SEDS

- SEDS C++ Library (beta version) is also available as a part of MLDemos toolbox.

We consider robot tasks that can be decomposed into sequences of point-to-point motions, i.e. movements in space stopping at a given target. Modeling point-to-point motions thus provides basic components, so-called motion primitives, for robot control. These motions primitives can be seen as a basis, from which multiple desired robot tasks can be formed. As an example, consider the standard "pick-and-place" task, which can be decomposed as follows: First reach to the item, then after grasping move to the target location, and finally return home after release. Programming by Demonstrations (PbD) can be used to learn such motion primitives from a few demonstrations of the motions performed by a trained agent (human or robot).

** Video 1: **An overview video of the SEDS framework and its validation in some challenging experiments.

My research mainly focus on learning robot discrete motions based on *non-linear time-independent Dynamical Systems (DS)*. But, why did we choose time-independent DS? Use of time-independent DS is advantageous in that:

1) it ensures the * convergence of all trajectories * to the goal from any point in the space.

2) it is * inherently robust * to external perturbations.

3) it enables the robot to * instantly re-act * in the face of perturbations.

All these three properties are crucial when modeling robot motions. The first properties guarantees task accomplishment from any point in space. The second characteristic compensates for uncertainties in the model (e.g. estimation error in the vision system, inaccuracies in a robot's controller, unexpected changes in the environment, etc.), and the last one enables a robot to safely and robustly perform super agile task (e.g. tennis swing).

The main challenge in modeling robot motions with DS is *Stability*. Stability analysis of nonlinear dynamical systems is still an open question and theoretical solutions exist only for particular cases.

Stable Estimator of Dynamical Systems (SEDS) is powerful method to tackle the big challenge in using DS. SEDS learns the parameters of the DS to ensure that all motions follow closely the demonstrations while ultimately reaching in and stopping at the target. More precisely, SEDS is a constrained optimization algorithm that formulates any arbitrary motion as a Mixture of Gaussian Functions. The objective function of SEDS could be mean square error or likelihood. The constraints in SEDS guarantees the global asymptotic stability of a non-linear time-independent DS.

**Figure** An example of of learning an arbitrary nonlinear function from 3 demonstrations using SEDS.

*Comparison to Dynamic Movement Primitives (DMP):*

Though both SEDS and DMP model robot motions with DS, they are different in the way they encode a motion. Here, I briefly pinpoint the main differences. For detailed comparison please refer to the main paper.

*pros:*

1) SEDS models robot motions with *time-independent* DS. Hence the resulting model is inherently robust to both temporal and spatial perturbations with any amplitude. In contrast, DMP is explicitly *time-dependent* through the canonical phase variable. In order to have an acceptable results in the face or perturbations, DMP depends on a higher level controller to re-index in time the canonical system.

2) SEDS is able to model robot motions from any number of demonstrations, hence it is able to model the basin of attraction to the target. Thus, it can embed different ways of performing a task into one single model. In contrast, DMP can only learn motions from one demonstration and cannot encode the basin of attractions.

3) Since SEDS can learn from multiple demonstrations, it can generalize the motion well in areas not covered with demonstrations. Even in case where the generalization is not satisfactory for point very far from demonstrations, the user can provide the model with more demonstrations to improve generalization (i.e. active learning). In contrast, since DMP models a motion only from a single demonstration, its generalization is limited to areas close to the demonstration.

4) SEDS can model multi-dimensional robot motions. In contrast, DMP is a uni-dimensional approach. For multi-dimensional motions, DMP learns each dimension separately, hence it cannot model coupling across dimensions.

*cons:*

1) DMP is a one shot learning algorithm, hence it can learn very fast. In contrast, SEDS is an iterative learning algorithm that computes the optimal value of a model by solving a constrained optimization problem. However, the execution time of both SEDS and DMP are in the same order, which makes both method appropriate for realtime implementation.