This repository contains the source code of my Master's thesis - "Comparison of optimal control techniques for learning-based RRT".
The thesis can be found here.
The implementations were written in MATLAB, C++ and Python and have the following dependencies :
• MATLAB Symbolic toolbox
• Automatic Control and Dynamic Optimization (ACADO) Toolkit
• numpy Python library
• scikit-learn Python library
The code is divided into different folders in the repository as follows:
2link_direct : This folder contains the implementation of direct optimal control for 2-link manipulator. The code is written in C++ and uses the ACADO Toolkit. ACADO toolkit returns solutions in multiple files. They can be consolidated using the scripts in this folder.
2link_indirect : Implementation of indirect optimal for 2-link manipulator can be found in this folder. The indirect optimal control equations are generated in MATLAB while the data generation is performed in Python.
training_data : Data generated in this thesis is stored here. This folder also contains the Python code used for cleaning the data.
2link_NN : The folder contains the code for training the KNN and ANN with the data. scikit-learn library is used for the training. Trained model are stored in trained_models folder.
2link_rrt : This folder contains the implementations of learning-based rrt.
choosing_rrt : This folder contains the implementation of choosing-rrt in which control inputs are randomly chosen instead using the optimal control.