This repository includes the packages and instructions to run the JT-DS dynamical system, which introduced in "The Augmented Joint-space Task-oriented Dynamical System". You can find the paper here:
and the corresponding video here:
[![JT-DS](vlcsnap-2016-09-23-09h52m36s129.png)](https://youtu.be/1dgKfmN1UgE)
This research was conducted in the Learning Algorithms and Systems Laboratory (LASA) at the Swiss Federal Institute of Technology in Lausanne (EPFL) under the supervision of Prof. Aude Billard. ---- http://lasa.epfl.ch/
Mathlib form Robot-toolkit (https://github.com/epfl-lasa/robot-toolkit)
1- Initialization:
- jseds::jseds(double dt_,int Num_C_,int Num_J_,int Num_Com_, Vector P_Joint_min_, Vector P_Joint_max_)
dt_ is the sample time.
Num_ Com_ is the number of the Gaussian components
Num_J is the number of the joints
Num_C_ is the dimension of the end-effector position
P_Joint_min_ and P_Joint_max_ are the minimum and maximum of the joints positions.
- jseds::initialize_P(const char *path_)
path_ is the path to the P matrix
- jseds::initialize_A(const char *path_)
path_ is the path to the A matrices
- jseds::initialize_GMM_Latend(const char *path_prior_,const char *path_mu_,const char *path_sigma_,const char *path_W_)
path_prior_, path_mu_ and path_sigma_ are the paths to the Gaussian elements.
path_W_ is the path to the dimension reduction matrix.
2- In the update loop:
- jseds::Set_State(Vector P_END_,Vector P_Joints_,Matrix Jacobian_, Vector Target_)
P_END_ is the current position of the end-effector
P_Joints_ is the current position of the joints
Jacobian_ is the current Jacobian matrix
Target_ is the desired end-effector positions
3- jseds::Update()
4- jseds::Get_State(Vector &V_joints_,Vector &P_joints_New_)
V_joints_ The desired velocity of the joints
P_joints_New_ The desired position of the joints
An example of executions is available here:
https://github.com/epfl-lasa/rtk_JT_DS