GithubHelp home page GithubHelp logo

zzxrepository / bachelor-project Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rezaes79/bachelor-project

0.0 0.0 0.0 19.06 MB

Implementation Handover for Satellite in python

Python 64.42% MATLAB 34.39% M 1.19%

bachelor-project's Introduction

Handover Operation with Reinforcement Learning

Table of Contents

Introduction

This project implements a Handover or Handoff (HO) operation using reinforcement learning (RL) techniques. It focuses on training an agent to perform HO operations effectively in a simulated environment that is satellite communication environment. This project includes two parts designed to perform Handover: inter-satellite HO (Satellite HO) and intra-satellite HO (Spotbeam HO). The reinforcement learning algorithm employed here enables the agent to learn and adapt its actions to achieve optimal performance.

Requirements

List the software and libraries required to run your project :

  • Python 3.x
  • OpenAI Gym
  • stable-baselines3
  • pygame
  • tensorboard

You can also include any hardware requirements if necessary.

Installation

  1. Clone the repository to your local machine:

    git clone https://github.com/RezaEs79/Bachelor-Project.git
    
  2. To install dependencies (It works on both Linux and Windows) :

     pip install  gym
     conda install stable-baselines3
     conda install multipledispatch
     conda install pygame
     pip install Shimmy
     conda install -c conda-forge tensorboard
    
  3. Also, for any possible errors, these may be useful:

     pip install stable-baselines3[extra]
     pip install tensorflow --upgrade --force-reinstall
     pip install stable-baselines3[extra] --upgrade --force-reinstall
     pip3 install torch torchvision torchaudio

Usage

To use this project, follow these steps:

  • Chose your handover scenario in satellite communication: Proj1 is inter satellite HO and Proj2 is intra satellite HO. You can try following command to test whether it works or not:

    # in Proj1
    python Test.py

    or :

    # in Proj2
    python mytest.py
  • Train the RL Agent: Train the reinforcement learning agent to optimize handover operations.

  • Test the Agent: Evaluate the agent's performance and visualize the results.

GIF 1 (inter SAT)

Simulation of inter Satellite HO

GIF 2 (intra SAT)

Simulation of intra Satellite HO

Train

To train the reinforcement learning agent, run the following command:

python Model_builder.py

and then type ppo or a2c or dqn for your specific algorithm.

Testing

To test the trained agent and evaluate its performance, use the following command:

python Model_runner.py

and then type ppo or a2c or dqn for your specific algorithm.

Results

For watching results obtained from your project, such as performance metrics, graphs, and visualizations. use codes in MATLAB_Codes folder and results that writed in .txt file.

bachelor-project's People

Contributors

rezaes79 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.