master #48

Merged
bap merged 5 commits from :master into master 2021-01-18 09:02:41 +01:00
2 changed files with 879 additions and 864 deletions

View File

@ -4,32 +4,24 @@ author:
- Piotr Józefowicz
- Sebastian Wawrzyn
title:
- Dokument wizji dla projektu Awionika do rakiet
- 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ń. Grupa
docelowa dla projektu jest koło naukowe na politechnice poznańskiej PUT
RocketLab, zajmujące się budowa rakiet i silników rakietowych. Potrzebny
jest komputer pokładowy do rakiety oraz aplikacje ułatwiające obsługę
testów rakiet i silników. Nasz projekt ma dostarczyć: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ń. Grupa docelowa dla
projektu jest koło naukowe na politechnice poznańskiej PUT RocketLab,
zajmujące się budowa rakiet i silników rakietowych. Potrzebny jest
komputer pokładowy do rakiety oraz aplikacje ułatwiające obsługę testów
rakiet i silników. Nasz projekt ma dostarczyć:
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 wyzwolenie separacji oraz
- 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.
@ -71,12 +63,12 @@ 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ła danych, częstotliwość, moc anteny),
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.\
bitów na sekundę podczas wysyłania danych, częstotliwość, moc anteny),
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
@ -86,10 +78,9 @@ 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
oraz poprzez użycie timera (ustawienie odpowiedniego opóźnienia, po
którym zostanie wyzwolona separacja/spadochron). 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.
(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
@ -100,7 +91,7 @@ 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:
## Przykłady produktów na rynku
- Dużym zainteresowaniem na świecie cieszą się amerykańskie
[EggTimery](http://eggtimerrocketry.com/home/altimeters-av-bay/).
@ -139,16 +130,14 @@ mimo że zaawansowane również są bardzo drogie.
# Opis produkt
## Aplikacja webowa:
## Aplikacja webowa
- wizytówka koła
- możliwością wgrania avatara
- dane z testów będzie można zapisywać na serwerze w celu stworzenia
historii testów
- eksport danych GPS w formacie NMEA
- eksport danych GPS w formacie KML (trajektoria lotu)
- eksport danych telemetrycznych do Excel'a
@ -156,12 +145,14 @@ mimo że zaawansowane również są bardzo drogie.
- 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:
## Aplikacja desktopowa
- pomiary z rakiety obrazowane na żywo:
@ -187,7 +178,7 @@ mimo że zaawansowane również są bardzo drogie.
- zmiana konfiguracji modułów elektronicznych
## Elektronika:
## Elektronika
- dokonywanie pomiarów podczas lotu (prędkość, przyspieszenie,
wysokość, wychylenia w osiach XYZ)
@ -198,8 +189,6 @@ mimo że zaawansowane również są bardzo drogie.
- wykrycie apogeum (spadku swobodnego) pozwalające wyzwolić
separacje/spadochron
- timer pozwalający wyzwolić separacje/spadochron
- wyzwolenie separacji, spadochronu poprzez odpalenie zapalnika
elektrycznego
@ -207,6 +196,8 @@ mimo że zaawansowane również są bardzo drogie.
- odbieranie danych przez odbiornik
- odpalenie drugie spadochronu na określonej wysokości
- przekazywanie danych do aplikacji desktopowej
- zapisywania danych do pamięci modułu
@ -217,16 +208,15 @@ mimo że zaawansowane również są bardzo drogie.
# Zakres i ograniczenia
## Skład zespołu:
## Skład zespołu
- Wojciech Kubiak - systemy wbudowane - arduino, c++, python
- Wojciech Kubiak - systemy wbudowane - arduino, c++, FreeRTOS, python
- Sebastian Wawrzyn - backend - .NET Core, C#, Docker, baza
danych
- Sebastian Wawrzyn - backend - .NET Core, C# , Docker, NoSql
- Piotr Józefowicz - frontend - Vue.js, typescript
## Kamienie milowe:
## Kamienie milowe
- I faza, I semestr (02.2020 - 07.2020):
@ -245,14 +235,15 @@ mimo że zaawansowane również są bardzo drogie.
- Poddanie MVP testom funkcjonalnym
- II faza, II semestr(10.2020 - 12.2020):
- II faza, II semestr(10.2020 - 01.2021):
- Uaktualnienie dekumentacji i Trello
- Uaktualnienie dokumentacji i Trello
- Rozpoczęcie prac programistycznych nad aplikacjami
- Kontynuacja prac programistycznych nad aplikacjami
- Kontynuacje prac programistycznych nad komputerem pokładowym
oraz rozpoczęcie prac nad nadajnikiem i odbiornikiem
- Rozpoczęcie prac nad nadajnikiem i odbiornikiem
- Testowanie komputera pokładowego oraz elektroniki naziemnej
@ -265,7 +256,7 @@ mimo że zaawansowane również są bardzo drogie.
- Wdrożenie aplikacji na publiczną domenę
## Harmonogram:
## Harmonogram
MVP produktu zostanie wypracowane i przedstawione do końca czerwca 2020
roku, zawierać będzie funkcjonalności takie jak:
@ -301,7 +292,7 @@ roku, zawierać będzie funkcjonalności takie jak:
- Wdrożenie aplikacji na środowisko testowe
Pierwsza wersja produktu wypracowana i oddana do grudnia 2020 roku,
Druga wersja produktu wypracowana i oddana do stycznia 2021 roku,
obejmować będzie:
- Wszystkie funkcjonalności zdefiniowane w MVP
@ -314,6 +305,8 @@ obejmować będzie:
- Konfiguracja modułu
- Zapis danych na pamięć flash
- Nadajnik/Lokalizator:
- Lokalizacja GPS oraz redundantny system prędkości wysokości
@ -325,18 +318,24 @@ obejmować będzie:
- 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
- Przekazywanie danych do kolejnych urządzeń za pomocą Bluetooth
- 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:

View File

@ -43,10 +43,6 @@ title:
- Baza danych NoSql
- Repozytorium git zawierające kod aplikacji, API, elektroniki
- Tablica projektowa -- Trello
# Granice projektu
- Produkty zawarte:
@ -63,18 +59,18 @@ title:
# Lista wymagań funkcjonalnych
## Komputer pokładowy:
## Komputer pokładowy
- Dokonywanie pomiarów telemetrycznych (barometr, żyroskop,
akcelerometr)
- Zapis danych na flash (format tekstowy)
- Wyzwolenie separacji za pomocą timera
- Odpalenie zapalnika elektrycznego
- Automatyczne wyzwolenie separacji za pomocą barometru
- Automatyczne wyzwolenie separacji za pomocą barometru w apogeum
- Wyzwolenie separacji na żądanej wysokości
- Konfiguracja/kontrola modułu:
@ -82,6 +78,8 @@ title:
- odczyt danych z flash
- czyszczenie pamięci flash
## Nadajnik/Lokalizator
- Lokalizacja GPS oraz redundantny system prędkości wysokości
@ -95,6 +93,8 @@ title:
- odczyt danych z flash
- czyszczenie pamięci flash
## Aplikacja internetowa
- Logowanie za pomocą Auth0
@ -121,19 +121,23 @@ title:
- Przegląd danych historycznych
- Wyświetlanie testów historycznych w postaci live
- Zintegrowania aplikacji webowej z REST API
- Profil użytkownika, możliwość zmiany nazwy użytkownika, imienia,
nazwiska, emaila, hasła
- Eksport testów do plików (json, excel)
## Aplikacja desktopowa:
- Eksport trajektorii lotu rakiety do pliku KML (Google earth)
- Profil użytkownika, możliwość zmiany nazwy użytkownika, imienia,
nazwiska, e-maila, hasła
## Aplikacja desktopowa
- Wyświetlanie danych z testów live (wykresy)
- Wyświetlanie lokalizacji za pośrednictwem Google Maps
- Wyświetlenie informacji tekstowych z komputera pokładowego
- Konfigurowanie modułów elektronicznych
- Odczyt/Zapis danych z modułów elektronicznych
@ -142,7 +146,7 @@ title:
- Zapis pomiarów w plikach json
## Aplikacja serwerowa, REST API:
## Aplikacja serwerowa, REST API
- Dodanie serwisów REST pozwalających na operacje wymienione w punkcie
"Aplikacja internetowa"
@ -150,13 +154,13 @@ title:
- Dodanie serwisów REST pozwalających na operacje wymienione w punkcie
"Aplikacja desktopowa"
- Zintegrowania API z bazą danych
- Zintegrowanie API z bazą danych
- Wdrożenie aplikacji na środowisko testowe
- Wdrożenie aplikacji na środowisko produkcyjne
## Elektronika naziemna (odbiornik):
## Elektronika naziemna (odbiornik)
- Odbieranie danych od komputera pokładowego (LORA)
@ -164,15 +168,13 @@ title:
- Przekazywanie danych do kolejnych urządzeń za pomocą Seriala
- Przekazywanie danych do kolejnych urządzeń za pomocą Bluetooth
- Konfiguracja/kontrola modułu:
- zmiana parametrów uruchomieniowych
# Lista wymagań niefunkcjonalnych
## Komputer pokładowy:
## Komputer pokładowy
- Bezpieczny w użyciu
@ -212,7 +214,7 @@ title:
- FreeRTOS
## Elektronika naziemna (odbiornik):
## Elektronika naziemna (odbiornik)
- Bezpieczna w użyciu
@ -224,15 +226,13 @@ title:
- Z czytelnym, przejrzystym kodem
- Zintegrowana z REST API - wysyła dane telemetryczne
- Technologie:
- Arduino
- C++
## Aplikacja internetowa (frontend):
## Aplikacja internetowa (frontend)
- Wytworzona z użyciem nowoczesnych standardów
@ -248,7 +248,7 @@ title:
- Typescript
## Aplikacja desktopowa:
## Aplikacja desktopowa
- Wytworzona z użyciem nowoczesnych standardów
@ -280,9 +280,7 @@ title:
- C#
## Aplikacja serwerowa - REST API:
- Używa bazy danych NoSql
## Aplikacja serwerowa - REST API
- Zaprojektowana według najnowszych standardów .NET
@ -298,19 +296,25 @@ title:
- Docker
## Baza danych:
## Baza danych
- Szybka obsługa zapytań
- Rozszerzalna
- Niezawodna
- Technologie:
- NoSql
## Prototyp aplikacji internetowej przetestowany przez użytkowników:
## Prototyp aplikacji internetowej przetestowany przez użytkowników
- Technologie:
- Adobe XD
## Tablica projektowa - Trello:
## Tablica projektowa - Trello
- Historia wymagań funkcjonalnych (User stories)
@ -322,6 +326,12 @@ title:
## Repozytorium zawierające kod aplikacji, API oraz elektroniki
- Czytelne
- Uporządkowane
- Tworzone i utrzymywane ze sztuką
- Technologie:
- GitHub
@ -343,23 +353,20 @@ title:
- Wizytówka koła będzie oglądana przez ludzi chcących się dowiedzieć
czegoś o kole.
- System zostanie zasilony danymi z testów silników oraz rakiet.
- Przekazanie plików instalacyjnych do aplikacji desktopowej
- Na koniec drugiego semestru klient otrzyma system w wersji testowej
beta.
- Na koniec drugiego semestru klient otrzyma system w wersji beta.
# Kryteria akceptacji projektu dla I semestru prac
## Wymagane
- Ukończenie zdefiniowanych funkcjonalności z listy wymagań
funkcjonalnych na drugi semestr
funkcjonalnych na pierwszy semestr
- Brak błędów utrudniających korzystanie z aplikacji
- Czy produkt został oddany w czasie
- Produkt został oddany w czasie
## Oczekiwane
@ -376,12 +383,18 @@ title:
## Wymagane
- Ukończenie zdefiniowanych funkcjonalności z listy wymagań
funkcjonalnych na drugi semestr, przetestowanie aplikacji pod kątem
użytkowym przez testerów (klientów końcowych)
funkcjonalnych na drugi semestr
- Przetestowanie aplikacji pod kątem użytkowym przez testerów
(klientów końcowych)
- Brak błędów utrudniających korzystanie z aplikacji
- Czy produkt został oddany w czasie
- Produkt został oddany w czasie
- Produkt został wdrożony na domenę publiczną
- Produkt został przekazany klientowi
## Oczekiwane
@ -411,19 +424,21 @@ Strona zespołu projektowego:
- Projektowanie prototypu interfejsu użytkownika
- Sebastian Wawrzyn
- Sebastian Wawrzyn - DevOps
- Implementacja backendu aplikacji
- Stworzenie bazy danych na potrzeby aplikacji API
- Wdrożenie i dockeryzacja aplikacji
Praca jest wykonywana w metodyce SCRUM w tygodniowych sprintach. Kod
źródłowy trzymany jest na repozytorium na Githubie. Do podziału pracy i
śledzenia progresu używamy aplikacji Trello
# Ryzyka projektowe
## Ryzyka ze względu na zasoby:
## Ryzyka ze względu na zasoby
- Odejście członka implementującego stronę serwerową - trudności w
ukończeniu aplikacji serwerowej
@ -436,7 +451,7 @@ Praca jest wykonywana w metodyce SCRUM w tygodniowych sprintach. Kod
- Określone ramy czasowe (semestry) na stworzenie produktu
## Inne:
## Inne
- Nieporozumienia na linii zespół a klient wynikające z nieznajomości
pojęć domenowych lub nieporozumienia dotyczące funkcjonalności czy
@ -478,14 +493,15 @@ Praca jest wykonywana w metodyce SCRUM w tygodniowych sprintach. Kod
- Poddanie MVP testom funkcjonalnym
- II faza, II semestr(10.2020 - 02.2021):
- II faza, II semestr(10.2020 - 01.2021):
- Uaktualnienie dekumentacji i Trello
- Uaktualnienie dokumentacji i Trello
- Rozpoczęcie prac programistycznych nad aplikacjami
- Kontynuacja prac programistycznych nad aplikacjami
- Kontynuacje prac programistycznych nad komputerem pokładowym
oraz rozpoczecie prac nad nadajnikiem i odbiornikiem
- Rozpoczęcie prac nad nadajnikiem i odbiornikiem
- Testowanie komputera pokładowego oraz elektroniki naziemnej