Giter Site home page Giter Site logo

robplan-uit's Introduction

ROBPLAN INSIGHT

image

ROBPLAN INSIGHT er et dashboard utviklet i samarbeid med SINTEF og Equinor. for å integreres med Equinors ISAR (Integration and Supervisory control of Autonomous Robots), som håndterer integrasjon av robotapplikasjoner i operatørsystemer. Gjennom ISAR API kan man sende kommandoer til en robot for å utføre oppdrag og samle inn resultater.

ROBPLAN INSIGHT er et resultat av et bachelorprosjekt (DTE-2781 Bacheloroppgave i datateknikk) med SINTEF og Equinor som oppdragsgivere.

Utviklet av Bachelorgruppe 16 ved UiT Norges arktiske universitet, våren 2024.

Lokal Utvikling

MERK: Dashboardet er blitt utviklet på Ubuntu 20.04 gjennom hele prosjektets gang og alle resultater produsert i bacheloroppgaven er basert på dette operativsystemet. Dashboardet har blitt installert og testet i Windows og, der alt fungerer utenom Historikk. Dette er på grunn av forskjell i hvordan dataene håndteres mellom Ubuntu og Windows.

For å sette opp et lokalt utviklingsmiljø må repositoryen forkes:

  1. Fork repoet: Trykk på "+ Create a new fork" for å lage din egen kopi av repoet.

  2. Klon repoet: Klon din forkede repo til din lokale maskin ved å kjøre følgende kommando i terminalen:

    git clone https://github.com/<ditt-brukernavn>/RobPlan-UiT
    cd RobPlan-UiT
    

Oppsett av Docker Container

For å sette opp og kjøre MariaDB og phpMyAdmin som Docker-containere for webapplikasjonen:

  1. Naviger til mappen der docker-compose.yml-filen ligger.

Linux

Kjør kommando: docker compose up -d

Windows

Kjør kommando: docker-compose up -d

phpMyAdmin

Etter oppsett av docker containeren kan du administrere databasen via http://localhost:8082/

Username: user

Password: test

Trykk på SQL øverst og kjør scriptet i Datamodel.sql

Deretter kjør scriptet i Data.sql

Virtuelt miljø

Linux

  1. Opprett det virtuelle miljøet:

    python -m venv venv
    
  2. Aktiver det virtuelle miljøet:

    source venv/bin/activate
    

Windows

  1. Opprett det virtuelle miljøet:

    python -m venv venv
    ```[ISAR](https://github.com/equinor/isar) 
    

Installasjon av ISAR og isar-robot:

ROBPLAN INSIGHT er designet for å jobbe med ISAR. Følg instruksjonene i de respektive repoene for å installere Equinors ISAR og isar-robot

Merk: Dashboardet har ikke blitt testet med ISAR kjørt på Docker, men fungerer med ISAR kjørt lokalt.

Generell veiledning til installasjon av ISAR og isar-robot

  1. Lag en fork av ISAR
  2. Deretter klon og installer ISAR slik:
git clone https://github.com/<brukernavn>/isar
cd isar
pip install -e .[dev]

Installer så isar-robot med kommadoen:

pip install isar-robot

Etter installasjon av ISAR og isar-robot må du navigere til ISAR sin settings.env fil og sette følgende:

ISAR_MQTT_SSL_ENABLED = false

Dette er nødvendig for å deaktivere SSL for MQTT-kommunikasjon da standardoppsettet for ROBPLAN INSIGHT ikke inkluderer SSL-konfigurasjon for MQTT.

Installere MQTT-broker

For at dashboardet skal kunne abonnere på emner fra ISAR, må du installere en MQTT-broker som Mosquitto:

Linux

  1. Oppdater pakkelisten og installer Mosquitto og Mosquitto-klienter:
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients
  1. Start Mosquitto-tjenesten og sett den til å starte automatisk ved oppstart:
sudo systemctl start mosquitto
sudo systemctl enable mosquitto

Windows

  1. Last ned Mosquitto.
  2. Følg installasjonsinstruksjonene for Windows.
  3. Start Mosquitto-tjenesten ved å navigere til installasjonsmappen, default path er C:\Program Files\mosquitto og kjør kommandoen
mosquitto.exe -v 

MQTT-klient

For å overvåke MQTT-meldinger, anbefales det å bruke MQTT Explorer:

  1. Last ned MQTT Explorer.
  2. Installer og konfigurer klienten til å koble til din lokale Mosquitto-broker.
  3. Legg til en ny connection + og fyll inn følgende:
    • Name: Valgfritt navn
    • Host: localhost
    • Port: 1883
    • Username: isar
    • Password:

Husk å skru av Encryption (tls).

image

Oppsett av selvsignert SSL-sertifikat for lokal utvikling

Før du kjører applikasjonen, må du opprette et SSL-sertifikat for å kunne kjøre serveren over HTTPS.

Linux

  1. Installer OpenSSL med kommandoen
sudo apt-get install openssl
  1. Åpne terminalen og naviger til mappen hvor du ønsker å lagre sertifikatene.
  2. Kjør følgende kommando for å generere en privat nøkkel og et offentlig sertifikat:
    openssl genrsa -out server.key 2048
    openssl req -new -x509 -key server.key -out server.crt -days 365
    

Under prosessen, vil du bli bedt om å oppgi informasjon for sertifikatet. Disse kan være vilkårlige for lokal utvikling.

Windows

  1. Installer OpenSSL fra slproweb.com.
  2. Åpne OpenSSL og naviger til mappen hvor du ønsker å lagre sertifikatene.
  3. Kjør følgende kommando for å generere en privat nøkkel og et offentlig sertifikat:
    openssl genrsa -out server.key 2048
    openssl req -new -x509 -key server.key -out server.crt -days 365
    

Under prosessen, vil du bli bedt om å oppgi informasjon for sertifikatet. Disse kan være vilkårlige for lokal utvikling.

Opprette en .env-fil

For å konfigurere applikasjonen til å bruke SSL-sertifikater og hente resultatene fra ISAR, må du opprette en .env-fil i prosjektets rotmappe. Denne filen brukes til å sette miljøvariabler som applikasjonen vil lese ved oppstart.

Linux og Windows

Opprett en .env-fil i prosjektets rotmappe og legg til følgende miljøvariabler:

export SSL_CERT_PATH="/path/to/your/server.crt"
export SSL_KEY_PATH="/path/to/your/server.key"
export RESULTS_DIR="/path/to/isar/results"

For eksempel:

export SSL_CERT_PATH="/home/dennis/RobPlan-UiT/server.crt"
export SSL_KEY_PATH="/home/dennis/RobPlan-UiT/server.key"
export RESULTS_DIR="/home/dennis/isar/results"

Kjøre ROBPLAN INSIGHT og ISAR

Nå som alt er konfigurert, kan vi kjøre ISAR og ROBPLAN INSIGHT.

Kjøre ISAR

  1. Åpne en ny terminal eller IDE: Naviger til ISAR-prosjektets rotmappe.
  2. Start ISAR: Kjør følgende kommando:
    python main.py
    
    Dette vil starte ISAR og opprette en isar-robot med navnet "Placebot"

Legge til flere roboter

Hvis du ønsker å legge til flere roboter, må du endre settings.py i ISAR.

  1. Sett en ny API_PORT:

    På linje 81, sett en ny port for API-en

    API_PORT: int = Field(default=3001)
    
  2. Sett et nytt ROBOT_NAME:

    På linje 184, sett et nytt navn for roboten.

    ROBOT_NAME: str = Field(default="Placebot 2")
    
  3. Sett en ny ISAR_ID:

    På linje 187, sett en ny unik ID for ISAR-instansen.

    ISAR_ID: str = Field(default="00000000-0000-0000-0000-000000000001")
    

Kjøre ROBPLAN INSIGHT

  1. Naviger til RobPlan-UiT sin rotmappe.
  2. Husk at det virtuelle miljøet må være aktivert.
python manage.py

Du kan nå åpne dashboardet i en nettleser gjennom https://127.0.0.1:5000/

Merk: Når du prøver å få tilgang til applikasjonen via HTTPS, kan du få en advarsel som sier:

"Your connection is not private NET::ERR_CERT_AUTHORITY_INVALID"

Dette er normalt når man bruker et selvsignert sertifikat. For å fortsette til applikasjonen, kan du trykke på "Advanced" og deretter "Proceed to 127.0.0.1 (unsafe)".

Du kan nå logge inn og begynne!

Brukernavn: testbruker

Passord: test

Oversikt over dashboardet

Etter innlogging kommer du til hoveddashboardet.

Dashboardet viser følgende:

  • Aktive Oppdrag: Viser alle pågående oppdrag med detaljer som oppdragets navn, og robot som utfører oppdraget.
  • Kalender: Inneholder viktige datoer for kommende og fullførte oppdrag.
  • Anleggsoversikt: En visuell representasjon av anlegget hvor robotene opererer i, som hjelper operatøren å forstå hvor hver robot befinner seg.

Flåteoversikt

Flåteoversikten gir detaljert informasjon om alle roboter i flåten. Dette inkluderer:

  • Batterinivå: Viser nåværende batterinivå for hver robot.
  • Nåværende Oppdrag: Informasjon om hvilke oppdrag hver robot utfører.
  • Siste Signal: Tidspunktet for siste kommunikasjon fra roboten.

Hver robot har sin egen side, som nås ved å trykke på Detaljer-knappen på en robot. På denne siden kan man pause, fortsette, stoppe og replanlegge oppdrag.

Oppdragshåndtering

På oppdragssiden kan du starte et oppdrag så lenge Start oppdrag-knappen er grønn. Hvis knappen er gul, betyr det at det ikke finnes noen ledige roboter til å utføre oppdraget. Oppdragssiden lar også brukeren:

  • Legge til Nye Oppdrag: Opprette og tildele nye oppdrag til tilgjengelige roboter.
  • Slette Oppdrag: Fjerne oppdrag som ikke lenger er nødvendige.
  • Schedule oppdrag: Lar operatøren velge en tid oppdraget skal starte.

Historikk

Historikksiden gir en oversikt over alle fullførte oppdrag. For hvert oppdrag vises:

  • Oppdragsnavn: Navnet på oppdraget.
  • Robotnavn: Hvilken robot som utførte oppdraget.
  • Status: Om oppdraget ble fullført eller mislyktes.
  • Tid Fullført: Når oppdraget ble ferdigstilt.

Hvert oppdrag har en rapport, som operatøren kan se på.

Rapporter

Rapportsiden genererer detaljerte rapporter for hvert fullførte oppdrag. Rapportene inkluderer:

  • Inspeksjonsresultater: Data samlet inn under oppdraget.
  • Bilder: Bilde fra robotens kamera.
  • Lydopptak: Eventuelle relevante lydopptak gjort av roboten.

Notifikasjoner

Sanntidsnotifikasjoner gir varsler om viktige hendelser som kan kreve operatørens oppmerksomhet:

  • Lavt Batterinivå: Varsler når en robots batterinivå er lavt.
  • Mislykkede Oppdrag: Informerer operatøren om oppdrag som ikke ble fullført.
  • Fullførte Oppdrag: Bekreftelse når et oppdrag er fullført.

Mediakrediteringer

robplan-uit's People

Contributors

dma042 avatar alise316 avatar patricuj avatar

Watchers

 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.