Skip to content

nas-git-nas/LearningStableDynamicModels

Repository files navigation

Learning System Dynamics of Holohover

This repository is the implementation to prepare the data for processing and to learn the system dynamics of the Holohover vehicle. It is a semester project at STI IGM LA3, EPFL. The report is found under SemesterProjectReport_NicolajSchmid.pdf.

  • Student: Nicolaj Schmid
  • Supervisor: Roland Schwan
  • Professor: Colin Jones

System requirements

The code is run with Python 3.10.9 and all library requirements are found in the file requirements.

Data

The data is contained in the experiment folder. Only the csv files are included due to the large size of the ROS files (deb3 and mcap files):

  • holohover_20221130: First holohover measurements with random noise added to the LQR controller and without idle thrust
  • holohover_20221208: First holohover measurements with random noise added to the LQR controller and with idle thrust
  • signal_20221121: First force sensor measurement without idle thrust
  • signal_20221206: First force sensor measurement with idle thrust
  • validation_20221208: Could be used for validation

Settings

args contains the arguments for the different models and params the parameters of the white box model.

Data preparation

The data preparation is done by executing run_preprocess.py. All source code is contained in src_preprocess and the plots are saved in the folder plots.

Models

To train and evaluate the system dynamics execute run.py. Choose the model type by setting the variable model_type to one of the following possibilities:

  • DHO: Learn stabalizable system dynamics of damped harmonic oscillator
  • CSTR: Learn stabalizable system dynamics of continuous stirred tank reactor
  • HolohoverBlack: Learn stabalizable system dynamics of Holohover
  • HolohoverBlackSimple: Learn control input to acceleration mapping without ensuring the dynamics to be stable
  • HolohoverGrey: Learn grey box model of Holohover

All source code is contained in the folder src and the models and plots are saved in models.