Skip to content

Simulation of car parking in different parking lots using Unity ML-Agents

Notifications You must be signed in to change notification settings

danliukuri/AutonomousParking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banner

Reinforcement learning for precise car navigation and parking

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.

Usage

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 lots

Parking in this project involves the utilization of straightforward parking lots, designed based on specifications from dimensions.com, a reference database for dimensional information.

ParkingLotsMockupsPreview

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.

ParkingLotsPreview

Installation

  • Clone or download the repository
  • Install Unity

Training neural models

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:

  1. Python language
  2. PyTorch Python package
  3. TensorFlow Python package
  4. ML agents Python package

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. Confirmation of successful setup with Unity logo

Demonstration Application

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.

Demonstration app in operation