Skip to main content

MORALS: Morse Graph-aided discovery of Regions of Attraction in a learned Latent Space

Ewerton R. Vieira*, Aravind Sivaramakrishnan*, Sumanth Tangirala, Edgar Granados, Konstantin Mischaikow, Kostas E. Bekris

2024 IEEE International Conference on Robotics and Automation (ICRA), 2024. Best Paper Award in Automation finalist.

Introduction

MORALS combines autoencoding neural networks with Morse Graphs. It first projects the dynamics of the controlled system into a learned latent space. Then, it constructs a reduced form of Morse Graphs representing the bistability of the underlying dynamics, i.e., detecting when the controller results in a desired versus an undesired behavior.

alt text

Installation

pip install MORALS

Usage

Reproduce experiments from the paper

  1. Download the Pendulum (LQR) dataset or Other Robot Controllers.
  2. Extract and place it inside examples/data/. There should be a directory pendulum_lqr1k and a labels file pendulum_lqr1k_success.txt.
  3. Train the autoencoder and latent dynamics networks: python train.py --config pendulum_lqr.txt.
  4. Obtain the Morse Graph and the Regions of Attraction (RoAs) for the learned latent space dynamics: python get_MG_RoA.py --config pendulum_lqr.txt --name_out pendulum_lqr --RoA --sub 16.

Try out MORALS on your own dataset (WIP)

  1. Add a Python class corresponding to your system to MORALS/systems/. At the very least, you must provide a name for your system so that its corresponding object can be returned by MORALS.systems.utils.get_system().
  2. Generate a config file for your system and place it inside examples/config/. You can follow the format of the example config files provided.
  3. Follow the steps above to train the autoencoder and latent dynamics networks using your custom config file, and then obtain the Morse Graph and the RoAs.

Bibtex

If you find this repository useful in your work, please consider citing:

@inproceedings{morals2024,
    title={{\tt MORALS}: Analysis of High-Dimensional Robot Controllers via Topological Tools in a Latent Space}, 
    author={Ewerton R. Vieira* and Aravind Sivaramakrishnan* and Sumanth Tangirala and Edgar Granados and Konstantin Mischaikow and Kostas E. Bekris},
    booktitle={ICRA},
    year={2024},
}

Metadata

Release files for MORALS 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for MORALS 0.1.4
File Size Uploaded
morals-0.1.4.tar.gz 15.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for MORALS 0.1.4
File Interpreter ABI Platform
MORALS-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 37.3 kB

Release files / morals-0.1.4.tar.gz

Download URL morals-0.1.4.tar.gz
Size 15.9 kB
Tags Source
SHA-256 checksum
How to use checksums
167cc829406923bcb9890ccee7ab2216e51fb0c781dd2be279934df500f40f81
BLAKE2b-256 checksum
How to use checksums
8ab42b178bbf57123bcb18fc3d0c1b1864c7911e8f8bd3c4ff8cd70d2eee1793
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / MORALS-0.1.4-py3-none-any.whl

Download URL MORALS-0.1.4-py3-none-any.whl
Size 21.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
69fe039c0dc4f0bef83b8ed12ebd1c21a7fb557561628bbd547fd57c12e98030
BLAKE2b-256 checksum
How to use checksums
28c2ccd4dbfe1635f988b6c2b09dab0f3d1d93ad33fc9b9382ad9cb223d12dc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page