This project focuses on using reinforcement learning techniques to teach an intelligent agent how to navigate and park a car accurately in various parking scenarios. It's a part of my bachelor's thesis, majoring in "Information Management Systems and Technologies" at KPI, Ukraine.
The primary objective of this project revolves around integrating source code and trained neural networks for the implementation of autonomous parking within Unity games or applications. Additionally, users can leverage the project to enhance parking models, adapting them to more challenging environments, and refining their accuracy, etc.
Parking in this project involves the utilization of straightforward parking lots, designed based on specifications from dimensions.com, a reference database for dimensional information.
The elements of the parking lots were created using Unity's built-in tools. For the cars, ready-made models from the “Low Poly Soviet Cars Pack” were used.
- Clone or download the repository
- Install Unity
The helper file served as a guide for installation and training procedures through Google Colab.
Note
Regrettably, as of June 2023, this approach has become obsolete due to updates in the Google Colab runtime environment. Consequently, the mentioned workflow is probably no longer functional.
An alternative approach is to shift from cloud-based training to a local setup. This transition can provide a more stable and controlled environment, mitigating issues arising from external updates or changes. Consider adapting the training process to local resources for continued efficacy.
To facilitate local model training, installation of the following components is imperative:
Following the installation process, validation can be performed by executing the designated command:
mlagents-learn
Upon successful execution, confirmation of a correctly configured setup is indicated by the appearance of the Unity logo in the console. This signifies readiness to commence model training.
Within the project, a designated branch has been established specifically for a demonstration app, exemplifying the model's capabilities. To acquire the executable file, transition to this specialized branch and proceed with building the application.
Warning
Ensure that the TextMeshPro Essentials package is imported. To accomplish this in Unity, click the button:
Window > TextMeshPro > Import TMP Examples and Extras.