GithubHelp home page GithubHelp logo

florasat's Introduction

FLoRaSat

FLoRaSat (Framework for LoRa-based Satellite networks) is an Omnet++ based discrete-event simulator to carry out end-to-end satellite IoT simulations based on LoRa and LoRaWAN adaptations for the space domain.

A general introduction to the topic is provided in [1]. A description of the early realease of FLoRaSat can be found in [2]. Part of the tool is being developed in the context of the STEREO ANR project.

The FLoRaSat simulator is based on an extended version of FLoRa, leosatellites, OS3, and INET integrated in a single Omnet++ framework to provide an accurate simulation model for space-terrestrial integrated IoT.

Please consider the the simulator is under active development, and it should not be considered a final stable (or documented) version at the moment. Please reach us at [email protected] if interested in joining the developers team.

Currently, we support a single sample scenario comprising 16 satellites in a grid-like formation (realistic orbital parameters), passing over a circular region with up to 1500 nodes. However, some flexibility can already be leveraged based on the features listed below.

image info

Features

(UD = Under Development, TD = To-do roadmap)

  • Ground IoT Device

    • Platform
      • Energy model
      • Clock drift model (TD)
      • Localization model (TD)
    • PHY: LoRa
      • Free-Space channel model (from INET)
      • Antena models (from INET: omni, monopole, parabolic, etc.)
      • Sensitivity model
      • Doppler effect model (available, but not integrated TD)
      • Spreading Factors (configurable and fixed per node)
      • Capture effect (TD)
    • MAC: LoRaWAN
      • Class A (from FLoRa)
      • Class B (downlink beacon only, uplink TD)
      • Class C (TD)
      • Class S (time-slotted Class B extension, downlink beacon only, uplink TD)
      • FSA Frame-Slotted ALOHA Game (leveraging network size estimation)
      • ADR (TD)
    • MAC/PHY: LR-FHSS (UD)
  • Satellite Gateway

    • Platform
      • Orbital propagation with SGP4 (LEO and GEO) (from leosatellites)
      • Orbital propagation with SDP4 (GEO) (TD)
      • Support for Keplerian orbital parameters
      • Support for TLE (UD)
      • Attitude control: Nadir-aligned
      • Constellation creation (Walker Star and Walker Delta)
      • EventModule (Scenario scripting, enable/disable ISL at given timestamps)
    • Inter-Satellite Link
      • Cabled (mimick P2P links)
      • Radio (UD, draft version available)
      • Topology control (UD)
      • Dynamic link creation/destruction
        • Constellation-based (constraints: ISL device status, satellite directions, is adjacent sat, latitude)
        • Contact Plan-based (read from topology file)
      • Dynamic link latency update
    • Routing
      • Generic routing interface (UD)
      • Packet queue and configurable processing delay
      • Mesh routing
      • Delay-Tolerant routing
        • CGR based on Rev 17 from DtnSim (UD by S. Montoya)
        • Contact Plan generation (TD by S. Montoya)
        • Storage model (UD by S. Montoya)
  • Ground Segment

    • Ground Station-to-Satellite Link
      • Cabled (mimick P2P links)
      • Radio (TD)
      • Topology control (UD)
        • Dynamic link creation/destruction
        • Constellation-based (constraints: min elevation)
        • Contact Plan-based (read from topology file)
      • Dynamic link latency update
    • Internet
      • From INET
    • Network Server
      • Lora/LoRaWAN Network server (from FLoRa)

Installation

  1. Install OpenSSL with sudo apt-get install libssl-dev

  2. Install OMNeT++6.0.1. Tips:

    • Set the omnetpp environment permanently with echo '[ -f "$HOME/omnetpp-6.0.1/setenv" ] && source "$HOME/omnetpp-6.0.1/setenv"' >> ~/.profile

    • Remember to compile with make -j8 to take advantage of multiple processor cores

    • If ERROR: /home/diego/omnetpp-6.0.1/bin is not in the path!, add it by entering export PATH=$HOME/omnetpp-6.0.1/bin:$PATH

    • If ERROR: make: xdg-desktop-menu: No such file or directory do sudo apt install xdg-utils

  3. Launch omnetpp from the terminal with omnetpp and choose a workspace for project (default is $HOME/omnetpp-6.0.1/samples)

  4. Go to Help >> Install Simulation Models... menu and install INETv4.3.x in the workspace

  5. Clone https://gitlab.inria.fr/jfraire/florasat.git in the workspace

  6. Add INETv4.3 to the environment by executing florasat/setinet.sh passing the absolute path to the INET root directory, eg. sh setinet.sh $HOME/omnetpp-6.0.1/samples/inet4.3

  7. In omnetpp go to File >> Open Projects from File System and add florasat project to the workspace

  8. Right-click florasat project and go to Properties, under Project References select inet4.3 (only)

  9. Finally, right-click florasat and Build Project

Execution

Two scenarios are under development:

  • In /simulations/satelliteradio the satellites/gateways use radio modules for inter satellite communication. This functionality does not work yet but it is open for development

  • In /simulations/satellitewired the satellites/gateways use direct links for inter satellite communication

florasat's People

Contributors

juanfraire avatar pablomadoery avatar meddyaitmesbah avatar robinohs avatar

Watchers

aomi.ai 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.