Giter Site home page Giter Site logo

incrementally_learning_and_exploiting_inverse_dynamics's Introduction

Incrementally_Learning_and_Exploiting_Inverse_Dynamics

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.

Requirements:

> 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

Preliminary step:

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.

Preliminary information

Note that each step is briefly detailed below and complementary information can be found at the beggining of each script.

Incremental Learning:

Steps 1-4 are used for studying the incremental learning model (GPR)

Active Learning:

Steps 5-9 are then used for developing an online model learning framework using joint's phase space exploration in 2 dimensions.

Structure:

  1. data:

    robot's urdf file

    Inverse dynamics dataset collected in "MICE"

  2. Regressors:

    GPR implementation

    Incremental GPR with Cholesky decomposition

    Incremental GPR with Block Inversion

    I-SSGPR implementation

  3. Step1_RBD:

    Comparison between RBD and the robot's inverse dynamics

  4. Step2_Incremental_Learning:

    Model learning using GPR with and without RBD

    Model learning using incremental GPR

  5. Step3_Input_Selection:

    Evaluate local exploration with Cholesky decompostion

    Evaluate local exploration with I-SSGPR

  6. 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

  7. Step5_Task_Orientation:

    Exploration without feasibility constraints

  8. Step6_Inter_Cluster_1:

    Inter-cluster exploration approach one from the report

  9. Step7_Inter_Cluster_2:

    Inter-cluster exploration approach two from the report

  10. Step8_Limit_cycles_analysis:

    Intra-cluster exploration approaches comparison

    Inter-cluster exploration approaches comparison

  11. 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

  12. Tests:

    Scripts used for debugging/testing code

  13. Tools:

    Scripts containing helper function used throughout the different sections

Experiments in the report

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

incrementally_learning_and_exploiting_inverse_dynamics's People

Contributors

raphaeluebersax avatar

Stargazers

Theo Hermann avatar

Watchers

 avatar

Forkers

waltyeh

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.