This repository contains the code for the Raphael Uebersax's semester project at LASA in 2021-2022, EPFL.
This code is used for the study that aims at exploring the robot's configuration space in order to learn accurately the inverse dynamics model required to execute a specific task. This is achieved through deploying a probabilistic regression model online used to extract and optimize the most informative set of trajectories.
> Matlab 9.9 (R2020b)
> Robotics System Toolbox - version 3.2
> Statistics and Machine Learning Toolbox - version 12.0
> gurobi 9.1.2
> python 3.8.12
> torch 1.7.1
In order to execute the first 4 steps, the dataset collected at LASA about the iiwa Kuka14 robot's inverse dynamics needs to be placed in the "data" folder under the name 'gprProcessedActualData.csv' or change the filename in the code.
Note that each step is briefly detailed below and complementary information can be found at the beggining of each script.
Steps 1-4 are used for studying the incremental learning model (GPR)
Steps 5-9 are then used for developing an online model learning framework using joint's phase space exploration in 2 dimensions.
-
data:
robot's urdf file
Inverse dynamics dataset collected in "MICE"
-
Regressors:
GPR implementation
Incremental GPR with Cholesky decomposition
Incremental GPR with Block Inversion
I-SSGPR implementation
-
Step1_RBD:
Comparison between RBD and the robot's inverse dynamics
-
Step2_Incremental_Learning:
Model learning using GPR with and without RBD
Model learning using incremental GPR
-
Step3_Input_Selection:
Evaluate local exploration with Cholesky decompostion
Evaluate local exploration with I-SSGPR
-
Step4_Incremental_GPR_Comparison:
Performance comparison of different Incremental GPR
Efficiency comparison of different Incremental GPR
Efficiency of I-SSGPR with respect to feature space dimension
-
Step5_Task_Orientation:
Exploration without feasibility constraints
-
Step6_Inter_Cluster_1:
Inter-cluster exploration approach one from the report
-
Step7_Inter_Cluster_2:
Inter-cluster exploration approach two from the report
-
Step8_Limit_cycles_analysis:
Intra-cluster exploration approaches comparison
Inter-cluster exploration approaches comparison
-
Step9_Trajectory_generation:
Computation of joint space regions belonging to a specific task
First step of limit cycle on actual data collected from the specific task
Implementation of mechanisms to use NN as actual true troque
-
Tests:
Scripts used for debugging/testing code
-
Tools:
Scripts containing helper function used throughout the different sections
Code in step4 is executing the comparison of the incremental GPR models that can be found in section 3.2.4, figure 3.2 and 3.3
Code in step8 is executing the comparison of the intra-cluster as well as the inter-cluster approaches in section 4.2.4, figures 4.10 and 4.11
Code in step9 is executing the experiments to obtain joint configurations likely to be used for a specific task, section 4.1 of the report.
Code in step9 is executing the exploration on the real data in figure 4.9