Giter Site home page Giter Site logo

delsmm's Introduction

Kunal Menda, Jayesh K. Gupta, Zachary Manchester, Mykel J. Kochenderfer

overall-idea.png

Abstract

Model-based paradigms for decision-making and control are becoming ubiquitous in robotics. They rely on the ability to efficiently learn a model of the system from data. Structured Mechanical Models (SMMs) are a data-efficient black-box parameterization of mechanical systems, typically fit to data by minimizing the error between predicted and observed accelerations or next states. In this work, we propose a methodology for fitting SMMs to data by minimizing the discrete Euler-Lagrange residual. To study our methodology, we fit models to joint-angle time-series from undamped and damped double-pendulums, studying the quality of learned models fit to data with and without observation noise. Experiments show that our methodology learns models that are better in accuracy to those of the conventional schemes for fitting SMMs. We identify use cases in which our method is a more appropriate methodology.

Getting started

Clone delsmm and pip install the module.

cd delsmm
pip install -e '.[test]'

Codebase Overview

  • delsmm: contains the source code, including the StructuredMechanicalModel class, training criteria, and regularization criterion.
  • examples: contains a Jupyter notebook containing a minimal example of how to smooth data and fit an SMM to it by minimizing the discrete Euler-Lagrange residual.
  • experiments: contains scripts to run the experiments in the paper and plot the results.
  • datagen: contains scripts to generate example data

Running experiments in the paper

Remember to first generate the data:

python datagen/generate_doublepen_data.py
python datagen/generate_damped_doublepen_data.py

Also generate the smoothened data:

python datagen/create_smoothed_data_doublepen.py

Now you can run the experiments with default noise settings:

python experiments/run_experiment.py

Dependencies

  • PyTorch
  • CEEM
  • Numpy
  • Scipy
  • PyKalman (for smoothing)
  • Matplotlib (for visualization)

delsmm's People

Contributors

kunalmenda avatar rejuvyesh avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

abnsy

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.