# Stable Heteroclinic Channel-Based Movement Primitives: Tuning Trajectories Using Saddle Parameters
## 5 Discussion  
In this work, we characterized the effect of the SMP system parameters \(\alpha\), \(\beta\), and \(\
u\) on both the system and its produced trajectory. Additionally, we used these parameters to tune a localized part of a more complex trajectory without disrupting the rest of the trajectory. Alpha is a frequency (speed) modifier. As \(\alpha\) increases, the kernel takes less time to grow and decay. This decreases the effect of that kernel on the trajectory, causing lower precision in the trajectory areas where a kernel's \(\alpha\) value has been increased. In the task space, increasing \(\alpha\) increases the trajectory's speed for that kernel's activation. Beta is a magnitude (scale) modifier. As \(\beta\) increases, the magnitude of the kernel's waveform increases until it would exceed the system's maximum. At that point, the waveform is truncated and the produced trajectory's shape around that kernel is changed. In the task space, \(\beta\) can be used to under- or over-direct the trajectory past a kernel by decreasing or increasing it, respectively. Nu is a precision modifier. As \(\
u\) increases, the kernel takes more time to grow and decay. This increases the \"power\" of that kernel on the trajectory, causing a higher precision in those areas in the task space. The amount of time the system takes to grow/decay towards a kernel determines how closely its associated trajectory will be attracted to that kernel's saddle point. With more time, the trajectory can be executed more closely, e.g., sharper corners for the square trajectory and a more defined inner point for the number \"3\" trajectory. With less time, the trajectory will be executed more loosely, potentially skipping a kernel's associated portion of the trajectory. We hypothesized that the kernels can be individually modified to vary the trajectory's fidelity in that location. Specifically, increasing the saddle value \(\
u\) would increase the trajectory's precision around that saddle. This was achieved in tuning a number \"3\" shape. We were able to produce a 32% decrease in the trajectory error by increasing the \(\
u\) values of the saddles in the inner point of the shape. In a limited parameter space, the system variables can be used separately or in tandem to modify the produced trajectory at key points without significantly affecting the surrounding trajectory areas. For example, if a specific kernel becomes higher priority than others, we can increase the activation time for that kernel by increasing its \(\beta\) or \(\
u\) value, or decreasing its \(\alpha\) value. If a kernel becomes lower priority or needs to be avoided, we can decrease its activation time by increasing its \(\alpha\) value or decreasing its \(\beta\) value. The variable \(\beta\) shows a unique feature when it is reduced below 1 for all kernels; it acts as a scaling factor for the whole trajectory. For practical applications there are three main considerations: speed, precision, and scale. There is a trade off between speed and precision in adjusting \(\alpha\) and \(\
u\), especially when their values are greater than 1. Due to the visualization feature of SMPs, the scale of a trajectory path can be easily adjusted using \(\beta\), and a new path can be initialized quickly. Since the SMP system is stable and robust for this parameter space, all of the system parameters can be learned via a user's chosen optimization algorithm according to the desired task specifications. In addition to predictable changes at small parameter changes, we observed unexpected changes to the produced trajectories at large parameter changes, such as rotations, distortions, and roundness in corners and sharp turns. Changes in the task space are implied when we look at the state space representations of these trajectories. The state space plots indicate that each kernel waveform is interdependent on its neighbors and that interdependence uniquely affects their activation.