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
The code is run with Python 3.10.9 and all library requirements are found in the file requirements.
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
args contains the arguments for the different models and params the parameters of the white box model.
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.
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.