niezbednikstudenta_docs/Przybylski/awionika/wizja_projektu.md

13 KiB
Raw Blame History

author title
Wojciech Kubiak
Piotr Józefowicz
Sebastian Wawrzyn
Dokument wizji dla projektu Awionika do rakiet sondażowych

Executive summary

Dokument dotyczy projektu realizowanego w ramach przedmiotu projekt inżynierski. Niniejszy dokument służy przedstawieniu przeznaczenia tworzonego systemu, jego głównych cech i przyjętych założeń. Grupą docelową dla projektu jest koło naukowe na politechnice poznańskiej PUT RocketLab, zajmujące się budową rakiet i silników rakietowych. Potrzebny jest komputer pokładowy do rakiety oraz aplikacje umożliwiające obsługę testów rakiet i silników. Nasz projekt ma dostarczyć:

  • Aplikację desktopową pozwalająca wyświetlać dane na żywo z testów, konfigurować ustawienia modułów komputera pokładowego oraz zapisywać/usuwać dane z pamięci podręcznej modułów.

  • Komputer pokładowy posiadający układ wyzwalający separację oraz zbierający dane telemetryczne o locie, które będą mogły być przekazywane na żywo do aplikacji poprzez nadajnik i odbiornik.

  • Aplikację webową służącą jako baza danych testów oraz odgrywającą rolę wizytówki koła

Cel i grupa docelowa

Grupą docelową dla projektu jest koło naukowe na Politechnice Poznańskiej PUT RocketLab. Koło zajmuje się budową rakiet i silników rakietowych oraz rozwija systemy awioniczne i naziemne do ich testowania. Potrzebny jest komputer pokładowy do rakiety, który będzie odpowiadał za jej lot, zapisywanie danych z tego lotu, oraz lokalizację rakiety po jej wylądowaniu. Potrzebna jest również aplikacja, która będzie pełniła funkcję kontrolera lotów/testów. Takie testy generują dużą liczbę danych, które ciężko uporządkować więc potrzebne jest też miejsce, w którym będzie można je porządkować i wyświetlać w przejrzysty sposób. Koło nie posiada też strony internetowej - tak zwanej wizytówki, która ma budować rozpoznawalność w internecie i pomóc w kontakcie przyszłym kandydatom na członków koła.
Projekt oprócz komputera pokładowego będzie się składał z dwóch aplikacji -- aplikacji webowej oraz aplikacji desktopowej. Aplikacja desktopowa ma odgrywać rolę kontrolera testów. To, że aplikacja jest desktopowa, wynika z faktu, że testy zazwyczaj wykonywane są w miejscach bez dostępu do internetu. Aplikacja webowa będzie pełniła funkcję wizytówki oraz bazy danych testów. Członkowie koła będą posiadali login i hasło do aplikacji, gdzie będą katalogowane dane historyczne z testów. Dane będzie można eksportować w wygodnym formacie, a także wyświetlać w formie wykresów i tabelek z danymi. Strona będzie miała możliwość wprowadzenia danych ręcznie, jednak preferowaną opcją będzie dodawanie danych przez aplikację desktopowa, która to zrobi w sposób zautomatyzowany. Aplikacja desktopowa będzie umożliwiała wyświetlanie danych z testów rakiet oraz silników na żywo. Po teście dane będą przekazywane do aplikacji webowej, jeśli będzie dostęp do internetu. Jeśli nie będzie dostępu, to dane zostaną zapisane w pamięci komputera i przekazane od razu po podłączeniu komputera do Internetu. Aplikacja desktopowa ma również dać możliwość konfiguracji modułów elektroniki komputera pokładowego rakiety oraz odczytywania i zapisywania z nich danych. Pobrane dane będą od razu przekazywane do chmury tak jak w przypadku testu na żywo. Będzie również możliwa zmiana konfiguracji tych modułów-zmiany ustawień parametrów programu na danym module (np. ilość bitów na sekundę podczas wysyłania danych, częstotliwość, moc anteny), są to parametry, które muszą być zmieniane podczas czasu życia modułu. Ta funkcjonalność ma na celu zapewnić większe bezpieczeństwo podczas zmiany tych parametrów. Parametry nie będą zmieniane poprzez wgranie nowego kodu tylko przez aplikacje, dzięki temu na samym urządzeniu nie trzeba będzie zmieniać kodu źródłowego.
Klientowi zależy na tym, aby pozyskać z rakiety dane, które pozwolą sprawdzić, czy rakieta osiągnęła oczekiwane parametry lotu zgodne z wcześniejszą symulacją takie jak apogeum, prędkość, liczba macha czy przyspieszenie. W tym celu muszą dokonać pomiarów fizycznych za pomocą odpowiednich czujników takich jak akcelerometr, barometr, magnetometr czy żyroskop, a następnie zapisać te dane i wyświetlić je w czytelnej formie w celu ich analizy. Komputer pokładowy będzie umożliwiał zebranie powyższych danych, a także wyzwolenie separacji/spadochronu w dwóch różnych konfiguracjach: poprzez automatyczne wykrycie spadku swobodnego (apogeum). Rakieta będzie też wyposażona w lokalizator, który będzie umożliwiał odnalezienie rakiety po lokalizacji GPS wysłanej za pomocą komunikacji bezprzewodowej LORA.

Rynek

Wyposażenie pokładowe rakiety (awionika) składa się głównie z dwóch części: komputera pokładowego i lokalizatora. Komputery pokładowe znajdujące się na rynku mają wysoką cenę i większość z nich, nie oferuje, aplikacji do zbierania danych, przez co robi się z nimi bałagan i trzeba dbać samemu o to, by te dane katalogować. Gotowe lokalizatory, mimo że zaawansowane również są bardzo drogie.

Przykłady produktów na rynku

  • Dużym zainteresowaniem na świecie cieszą się amerykańskie EggTimery. Posiadają one wiele różnych konfiguracji komputerów oraz lokalizatorów. Mają jednak one dość wysokie ceny modułów i nie oferują zintegrowanej aplikacji, która umożliwiałaby analizę danych, musimy korzystać z osobnych programów.

  • Dostępne są niemieckie komputery pokładowe firmy Rocketronics oferujące wysoką jakość danych oraz dokładną separację. Ich aplikacja nie umożliwia podglądu danych na żywo. Nie ma w nich lokalizatorów i mają wysoką cenę.

  • Lokalizator Featherweight (koszt to 610-2000 zł) - wysoka cena, zawiera aplikację, ale do tego potrzebny jest jeszcze komputer pokładowy.

  • Jeden z najtańszych i najpopularniejszych sposobów (przynajmniej w Polsce) na lokalizację rakiety polega na używaniu taniego lokalizatora, który wysyła podstawowe dane telemetryczne dzięki modułowi GPS i GSM. Nie są to jednak produkty przeznaczone konkretnie do rakiet i nie mogą zostać zintegrowane z komputerem pokładowym.

  • Nowością jest komputer pokładowy Signal-R2 z aplikacją na telefon (koszt to ok 1400 zł). Aplikacja dostępna na platformy android oraz iOS jest zintegrowana z komputerem pokładowym. Cały system komunikacji jest oparty na Bluetooth, co daje zasięg 10 metrów, dlatego nie można używać aplikacji do odczytów danych na żywo podczas lotu. Aby uzyskać szerszy dostęp do dokumentacji, kodów źródłowych i informacji na temat projektu trzeba dodatkowo miesięczne płacić za subskrypcje na specjalnej platformie Patronite.

Opis produkt

Aplikacja webowa

  • wizytówka koła

  • dane z testów będzie można zapisywać na serwerze w celu stworzenia historii testów

  • eksport danych GPS w formacie KML (trajektoria lotu)

  • eksport danych telemetrycznych do Excel'a

  • import danych pomiarowych z pliku

  • wyświetlenie danych historycznych (z testów)

  • wyświetlenie danych historycznych w formie live (z testów)

  • wyszukiwanie testu po nazwie i dacie

  • kategoryzacja danych telemetrycznych (historia testów) przypisana do testu

Aplikacja desktopowa

  • pomiary z rakiety obrazowane na żywo:

    • wykres prędkości od czasu,

    • wykres przyspieszenia od czasu,

    • wykresy orientacji XYZ,

    • wykres wysokości i wychylenia w osiach XYZ od czasu,

    • wyświetlenie lokalizacji GPS na mapie (Google Maps)

  • obrazowane danych z hamowni na żywo

    • wykres ciągu do czasu

    • wykres ciśnienia do czasu

  • dane po teście rakiety czy silnika będą zapisywane na serwerze

  • zgrywania/usuwanie danych z modułów elektronicznych

  • zmiana konfiguracji modułów elektronicznych

Elektronika

  • dokonywanie pomiarów podczas lotu (prędkość, przyspieszenie, wysokość, wychylenia w osiach XYZ)

  • lokalizacja GPS oraz pomiary wysyłane do stacji naziemnej za pośrednictwem komunikacji bezprzewodowej LORA

  • wykrycie apogeum (spadku swobodnego) pozwalające wyzwolić separacje/spadochron

  • wyzwolenie separacji, spadochronu poprzez odpalenie zapalnika elektrycznego

  • przesyłanie danych do stacji naziemnej przez moduł komunikacyjny

  • odbieranie danych przez odbiornik

  • odpalenie drugie spadochronu na określonej wysokości

  • przekazywanie danych do aplikacji desktopowej

  • zapisywania danych do pamięci modułu

  • odczytywanie danych z pamięci modułu

  • zmiana konfiguracji modułu

Zakres i ograniczenia

Skład zespołu

  • Wojciech Kubiak - systemy wbudowane - arduino, c++, FreeRTOS, python

  • Sebastian Wawrzyn - backend - .NET Core, C# , Docker, NoSql

  • Piotr Józefowicz - frontend - Vue.js, typescript

Kamienie milowe

  • I faza, I semestr (02.2020 - 07.2020):

    • Przygotowanie prototypu aplikacji

    • Przygotowanie backlogu dla projektu w systemie Trello, opracowanie funkcjonalności, user stories

    • Rozpoczęcie prac programistycznych nad aplikacją

    • Rozpoczęcie prac programistycznych nad komputerem pokładowym 1.0

    • Testowanie komputera pokładowego

    • Ukończenie MVP aplikacji i komputera pokładowego

    • Poddanie MVP testom funkcjonalnym

  • II faza, II semestr(10.2020 - 01.2021):

    • Uaktualnienie dokumentacji i Trello

    • Kontynuacja prac programistycznych nad aplikacjami

    • Kontynuacje prac programistycznych nad komputerem pokładowym

    • Rozpoczęcie prac nad nadajnikiem i odbiornikiem

    • Testowanie komputera pokładowego oraz elektroniki naziemnej

    • Ukończenie aplikacji wraz ze wszystkimi zdefiniowanymi funkcjonalnościami

    • Integracja aplikacji z elektroniką

    • Testy integracyjne

    • Wdrożenie aplikacji na publiczną domenę

Harmonogram

MVP produktu zostanie wypracowane i przedstawione do końca czerwca 2020 roku, zawierać będzie funkcjonalności takie jak:

  • Komputer pokładowy 1.0:

    • Dokonywanie pomiarów telemetrycznych

    • Zapis danych na kartę SD

    • Wyzwolenie separacji za pomocą timera

    • Odpalenie zapalnika elektrycznego

  • Aplikacja internetowa (frontend):

    • Stworzenie konta użytkownika, logowanie

    • Dodawanie testów z pliku

    • Wyświetlanie danych z testów

    • Przegląd danych historycznych

    • Zintegrowania aplikacji webowej z REST API

  • Aplikacja serwerowa, REST API:

    • Dodanie serwisów REST pozwalających na operacje wymienione w punkcie "Aplikacja internetowa"

    • Zintegrowania API z bazą danych

    • Wdrożenie aplikacji na środowisko testowe

Druga wersja produktu wypracowana i oddana do stycznia 2021 roku, obejmować będzie:

  • Wszystkie funkcjonalności zdefiniowane w MVP

  • Komputer pokładowy 2.0:

    • Układ wyzwolenia separacji

    • Komunikacja z nadajnikiem

    • Konfiguracja modułu

    • Zapis danych na pamięć flash

  • Nadajnik/Lokalizator:

    • Lokalizacja GPS oraz redundantny system prędkości wysokości przyspieszenia

    • Komunikacja bezprzewodowa LORA

    • Konfiguracja modułu

  • Elektronika naziemna/Odbiornik:

    • Konfiguracja modułu

    • Odbieranie danych od komputera pokładowego (LORA)

    • Przekazywanie danych do serwera za pomocą REST API

    • Przekazywanie danych do kolejnych urządzeń za pomocą Seriala

  • Aplikacja internetowa (frontend):

    • Wyświetlanie i gromadzenie danych historycznych testów

    • Wyświetlanie testów historycznych w postaci live

    • Eksport testów do plików

    • Widok podsumowania testu

    • Profil użytkownika

  • Aplikacja desktopowa:

    • Wyświetlanie danych z testów live (wykresy)

    • Wyświetlanie lokalizacji za pośrednictwem Google Maps

    • Konfigurowanie płytki

    • Odczyt danych z płytki

    • Usuwanie danych z płytki

  • Aplikacja serwerowa, REST API:

    • Dodanie serwisów REST pozwalających na operacje wymienione w punkcie "Aplikacja internetowa"

    • Dodanie serwisów REST pozwalających na operacje wymienione w punkcie "Aplikacja desktopowa"

    • Wdrożenie aplikacji na środowisko produkcyjne

Ograniczeniem projektu jest hosting, nie wiadomo czy politechnika udostępni nam domenę oraz otworzy porty na zewnątrz.