Aplikacja Lotnisko || Part 2 || Procedura lądowania
🚀

Aplikacja Lotnisko || Part 2 || Procedura lądowania

notion image
 

Wprowadzenie


Zgodnie z zasadą KISS (Keep It Simple, Stupid), postanowiłem zacząć od podstaw. Zamiast od razu rzucać się na wielowątkowość, najpierw skupiłem się na jednym zadaniu: posadzeniu pojedynczego samolotu na pasie startowym. Takie podejście pozwoliło mi dokładnie zrozumieć i dopracować kluczowe elementy procesu, zanim zacznę wdrażać obsługę lądowania dla wielu samolotów jednocześnie. Poniżej znajduje się link do repozytorium:

 
Airport-Automatic-Landing-System
jakubBoneUpdated Dec 20, 2024
 
notion image

Zarządzanie ruchem powietrznym


Na lotnisku mam do dyspozycji dwa pasy startowe. W przyszłości w przestrzeni powietrznej lotniska będzie mogło znajdować się maksymalnie 100 samolotów jednocześnie. Jeżeli kolejny samolot spróbuje wejść w przestrzeń lotniska, a limit będzie już osiągnięty, otrzyma komunikat o konieczności znalezienia innego lotniska i zniknie z radaru. To kluczowa funkcjonalność, która zapobiegnie przeciążeniu lotniska. Na jej wdrożenie jednak jeszcze mam czas…

Implementacja “holding pattern”


Aby zarządzać ruchem w przestrzeni powietrznej, wykorzystuję tzw. "holding pattern". To standardowa procedura lotnicza, w której samoloty krążą wokół punktu nawigacyjnego "waypoint", czekając na możliwość lądowania. Jednak, aby dostosować tę koncepcję do specyficznych potrzeb mojego systemu, wprowadziłem kilka modyfikacji:

Zamiast typowego eliptycznego toru, który jest standardem w klasycznym holding pattern, samoloty w moim systemie poruszają się po kwadratowej trasie z punktami nawigacyjnymi (waypoints) rozmieszczonymi na krawędziach tej figury.

W tradycyjnym holding pattern samoloty utrzymują stałą wysokość, czekając na pozwolenie na lądowanie. W moim systemie samoloty stopniowo zmniejszają wysokość podczas krążenia, co pozwala na płynniejsze przejście do fazy lądowania.

Moja adaptacja "holding pattern" bardziej przypomina "STAR" (Standard Terminal Arrival Route). To procedura lądowania, która prowadzi samoloty po zdefiniowanych trasach przez punkty nawigacyjne w przestrzeni terminalnej wokół lotniska.

 
notion image

Korytarze powietrzne lotniska


Obecnie, aby uprościć zarządzanie ruchem, samolot pojawia się losowo w jednym z 40 punktów z listy holding pattern. W przyszłości planuję, by samoloty pojawiały się losowo w określonej przestrzeni na granicy lotniska. Dodałem również korytarze powietrzne, które umożliwiają bezpieczne podejście do lądowania po opuszczeniu holding pattern. Samolot krąży wokół lotnika na wysokości od 2 km do 5 km, aż jeden z pasów startowych staje się wolny, po czym “wchodzi” w korytarz prowadzący do lądowania.

Zmiany w strukturze lotniska


Na początkowym etapie projektu wykorzystałem trójwymiarową tablicę [][][] do reprezentowania przestrzeni powietrznej lotniska. Tablica ta miała początkowo sens, ponieważ pozwalała na proste zarządzanie pozycją samolotów i waypointów. Jednak szybko pojawił się problem – ujemne koordynaty zaczęły komplikować sprawę, powodując błędy w lokalizacji samolotów i trudności w zarządzaniu ruchem. Z tego powodu zdecydowałem się przekształcić tę strukturę na HashMap.

 
notion image

Dalsze plany rozbudowy


Na razie skupiam się na usprawnieniach dla jednego samolotu, aby zapewnić solidne fundamenty przed rozszerzeniem systemu na większą skalę:

🚀 Usprawnienie systemu lądowania oraz poprawa struktury lotniska

🚀 Pojawianie się samolotów losowo na granicy obszaru powietrznego

 
 
notion image