W chwili startu UAV jednostka nim sterująca zyskuje asymetryczną przewagę wywiadowczą — pod warunkiem, że informacja dociera do wszystkich odpowiednich operatorów. Typowy błąd operacyjny to nie brak pokrycia dronem: to operator drona opisujący głosem przez radio to, co widzi, podczas gdy wszyscy inni pracują w ciemno na swoich ekranach GCS lub ATAK. Integracja telemetrii drona TAK zamyka tę lukę, przesyłając pozycję UAV, kąt gimbala i strumień wideo bezpośrednio na wspólny obraz operacyjny, tak aby każdy klient ATAK w sieci widział drona jako aktywny ślad obok przyjaznych sił.

Artykuł omawia pełny potok techniczny: telemetria MAVLink z drona do stacji naziemnej (GCS), konwersja do Cursor on Target (CoT), przesyłanie do serwera TAK, przekaz wideo, kodowanie odcisku gimbala, synchronizacja punktów trasy w odwrotnym kierunku, optymalizacja przepustowości dla radia MANET i konwencje zarządzania wieloma dronami. Wszystkie opisane komponenty są otwarte lub dostępne komercyjnie — architektura jest neutralna implementacyjnie.

Dlaczego integracja dron–COP jest ważna: problem przełączania kontekstu

Typowa operacja UAV małej jednostki obejmuje co najmniej trzy odrębne role operatorów: pilot drona obserwujący strumień wideo GCS, dowódca sił naziemnych pracujący z mapą ATAK i operator czujnika monitorujący kamerę. Bez integracji każda rola działa z innego źródła danych. Pilot wie, gdzie jest dron; dowódca nie, chyba że pilot narruje. Gdy pilot skupia się na manewrze, narracja ustaje. Siły naziemne nie mają śladu — nie widzą zasięgu drona, nie mogą stwierdzić, kiedy czujnik patrzy na cel, i nie mogą wpisać nowego punktu bez znalezienia pilota i zapytania ustnie.

Integracja UAV ATAK zastępuje koordynację głosową danymi. Dron pojawia się jako ruchomy ślad powietrzny na mapie ATAK. Odcisk gimbala — wielokąt pokazujący dokładnie, co czujnik obserwuje — aktualizuje się w czasie rzeczywistym. Strumień wideo jest dostępny jednym dotknięciem w ATAK Video Receiver. Dowódca może wpisać nowy punkt zawisu z mapy bez szukania pilota. Pilot widzi zaktualizowaną misję na GCS. To nie jest poprawa wygody: w spornym terenie miejskim z egzekwowaną dyscypliną komunikacyjną to różnica między skoordynowanym ISR a zgadywaniem.

Potok telemetrii MAVLink: od drona do serwera TAK

Potok ma pięć etapów: autopilot drona → radiowe łącze danych → GCS (QGroundControl lub Mission Planner) → proces mostu MAVLink → serwer TAK.

Podstawy protokołu MAVLink. MAVLink jest dominującym protokołem telemetrii i sterowania dla małych UAS. Jest to lekki protokół binarny zaprojektowany dla łączy radiowych o niskiej przepustowości i podatnych na straty. Wersja 2 (MAVLink 2) jest aktualnym standardem i dodaje podpisywanie pakietów oraz większą przestrzeń identyfikatorów komunikatów. Strumień MAVLink z typowego autopilota (ArduPilot, PX4) zawiera GLOBAL_POSITION_INT z częstotliwością 2–10 Hz, ATTITUDE z 10–50 Hz, HEARTBEAT z 1 Hz, MOUNT_ORIENTATION z 10–25 Hz (jeśli zainstalowany jest gimbal) i MISSION_ITEM_INT na żądanie.

GCS jako router telemetrii. GCS odbiera strumień MAVLink przez radiowe łącze danych — zazwyczaj radiomodem 900 MHz lub 2,4 GHz, dongle LTE lub radio sieciowe w trybie infrastruktury. QGroundControl i Mission Planner obsługują przekazywanie MAVLink: konfiguracja drugorzędnego wyjścia UDP na localhost:14551 (lub zdalny IP) dostarcza pełny strumień do dowolnego procesu na maszynie GCS bez zakłócania podstawowego połączenia GCS.

Most MAVLink-to-CoT. Proces mostu odczytuje przekazany strumień MAVLink i konwertuje każdy raport pozycji na zdarzenie XML CoT. Kluczowe mapowanie: GLOBAL_POSITION_INT.lat / lon / alt → CoT <point> lat/lon/hae; GLOBAL_POSITION_INT.hdg → CoT <detail><track course=... />; yaw ATTITUDE → zapasowy kurs śladu. Istnieje kilka mostów open-source — MAVLink2TAK (Python), UASLINK (C++) — lub można zaimplementować lekki most w Go lub Rust dla wdrożenia produkcyjnego.

Dostarczanie do serwera TAK. Most łączy się z serwerem TAK przez TCP/TLS na porcie 8089 przy użyciu certyfikatu klienta. Wysyła zdarzenia CoT jako strumieniowy XML — jedno zdarzenie na wysyłanie TCP, bez ogranicznika ramki. Serwer TAK natychmiast federuje zdarzenia do wszystkich podłączonych klientów ATAK, WinTAK i CloudTAK subskrybujących grupę drona.

Struktura komunikatu CoT dla śladów powietrznych

Właściwy kod typu CoT jest ważny — kontroluje ikonę renderowaną przez ATAK i kolor śladu. Dla przyjaznego bezzałogowego statku powietrznego ze stałym skrzydłem typ to a-f-A-M-F-Q. Dekodowanie: a = atom (podmiot rzeczywisty), f = przyjazny, A = domena powietrzna, M = wojskowy, F = stałe skrzydło, Q = bezzałogowy. Dla przyjaznego drona ze skrzydłem wirnikowym: a-f-A-M-H-Q. Dla nieznanego kontaktu: zamień f na u.

Pole how powinno być m-g (generowane maszynowo, GPS) — informuje klientów ATAK, że pozycja to autonomiczne dane z czujnika, a nie szacunek wprowadzony przez człowieka. Czas nieaktualności (atrybut stale elementu <event>) należy ustawić 20–30 sekund przed czasem zdarzenia dla drona lecącego z typowymi prędkościami rozpoznawczymi.

Minimalne zdarzenie CoT dla raportu pozycji drona:

<event version="2.0"
      uid="DRONE-ALPHA-01"
      type="a-f-A-M-F-Q"
      how="m-g"
      time="2026-05-29T10:00:00.000Z"
      start="2026-05-29T10:00:00.000Z"
      stale="2026-05-29T10:00:25.000Z">
  <point lat="48.3794"
         lon="31.1656"
         hae="250.0"
         ce="5.0"
         le="10.0"/>
  <detail>
    <contact callsign="ALPHA-1"/>
    <track course="045.0" speed="18.5"/>
    <remarks>MAVLink sysid=1</remarks>
  </detail>
</event>

Wartości ce (błąd kołowy) i le (błąd liniowy) powinny odzwierciedlać rzeczywistą dokładność GPS z komunikatu GLOBAL_POSITION_INT autopilota — ATAK używa ich do renderowania pierścienia dokładności wokół ikony śladu.

Integracja strumieniowania wideo: RTSP do ATAK

Większość ładunków małych UAS koduje wideo w H.264 lub H.265 i udostępnia je jako strumień RTSP przez łącze danych. Ścieżka integracji: kamera drona → pokładowy koder → RTSP przez łącze danych → GCS → przekaźnik FFmpeg → ATAK Video Receiver.

Przekaźnik FFmpeg. Na maszynie GCS FFmpeg odbiera strumień RTSP z drona i reemituje go w formacie zoptymalizowanym dla dostarczania ATAK. Dla UDP multicast (dystrybucja LAN/MANET): ffmpeg -i rtsp://192.168.1.100:554/stream -c copy -f mpegts udp://239.2.3.1:1234. Dla unicast do konkretnego urządzenia ATAK: -f rtsp rtsp://localhost:8554/drone-alpha. Kluczowy parametr to -c copy — transkoduj tylko gdy musisz, bo transkodowanie dodaje opóźnienie i obciążenie CPU na GCS.

Konfiguracja ATAK Video Receiver. Klienci ATAK nie potrzebują ręcznej konfiguracji wideo, gdy potok jest poprawnie skonfigurowany. Most publikuje zdarzenie CoT typu b-i-x-i (alias wideo) zawierające adres URL strumienia, protokół, ścieżkę i czytelny dla człowieka alias. Gdy to zdarzenie dotrze do klienta ATAK, wtyczka Video Receiver automatycznie dodaje strumień do listy źródeł.

Adaptacja do zdegradowanego łącza. Gdy łącze danych jest nasycone lub ograniczone zasięgiem, jakość wideo degraduje się przed zerwaniem łącza telemetrii. Skonfiguruj FFmpeg do przyjmowania niższej jakości strumienia z kodera drona. Przy 500–800 kbps H.264 zapewnia użyteczne wideo rozpoznawcze w 720p/15fps.

Nakładenie gimbala i czujnika: kodowanie wielokąta FOV

Pozycja drona na mapie informuje operatorów, gdzie jest UAV. Wielokąt odcisku gimbala informuje ich, co obejmuje czujnik — informacja znacznie bardziej przydatna operacyjnie. Obliczenie odcisku wymaga: pozycja drona (lat/lon/HAE), kąt pan gimbala (azymut od północy), kąt tilt gimbala (depresja od poziomy), poziome i pionowe pole widzenia kamery (stopnie).

Dla kamery wskazującej w nadir na wysokości H z poziomym FOV θ_h i pionowym FOV θ_v odcisk jest prostokątem. Dla ukośnego kąta odcisk jest trapezem. Most oblicza cztery narożniki i koduje je jako wielokąt CoT GeoObject:

<event type="u-d-f" uid="DRONE-ALPHA-01-FOV" ...>
  <detail>
    <shape>
      <polyline closed="true">
        <vertex lat="48.3802" lon="31.1641"/>
        <vertex lat="48.3802" lon="31.1671"/>
        <vertex lat="48.3786" lon="31.1671"/>
        <vertex lat="48.3786" lon="31.1641"/>
      </polyline>
    </shape>
    <color argb="-2130706433"/>
    <strokeColor value="-16711936"/>
    <fillColor value="570556928"/>
    <remarks>ALPHA-1 gimbal FOV</remarks>
  </detail>
</event>

UID wielokąta FOV pochodzi od UID drona z sufiksem (-FOV), aby klienci ATAK mogli powiązać wielokąt z nadrzędnym śladem. Aktualizuj wielokąt z każdym komunikatem MOUNT_ORIENTATION — zazwyczaj 10–25 Hz. Ogranicz do 2–5 Hz przez ograniczone łącza radiowe. Ustaw czas nieaktualności na 5 sekund dla wielokąta, aby znikał po utracie telemetrii gimbala.

Synchronizacja punktów trasy: od ATAK z powrotem do GCS

Integracja dwukierunkowa — operatorzy przesyłający zadania z ATAK do drona — jest najważniejszą operacyjnie możliwością i najbardziej złożoną technicznie. Odwrotna ścieżka: operator ATAK rysuje trasę → ATAK publikuje zdarzenie CoT route na serwerze TAK → most odbiera trasę → konwertuje punkty CoT na MAVLink MISSION_ITEM_INT → przesyła misję do GCS → GCS pcha do drona.

Zdarzenia CoT route. Gdy operator ATAK rysuje trasę i wysyła ją do UID drona, ATAK publikuje zdarzenie CoT b-m-r (trasa) zawierające uporządkowaną listę elementów <point>. Most subskrybuje zdarzenia CoT z serwera TAK filtrowane według UID drona i obsługuje przychodzące zdarzenia tras.

Protokół przesyłania misji MAVLink. Przesyłanie to uścisk dłoni żądanie-odpowiedź: most wysyła MISSION_COUNT, dron ACK, dron żąda każdego MISSION_ITEM_INT według numeru sekwencji, most wysyła każdy element, dron wysyła MISSION_ACK po zakończeniu. Zaimplementuj limit czasu i ponowną próbę na każdym kroku — przerwy w łączu radiowym są powszechne.

Uwaga dotycząca układu współrzędnych. MAVLink MISSION_ITEM_INT używa domyślnie ramki MAV_FRAME_GLOBAL_RELATIVE_ALT — wysokość względem punktu domowego ustawionego podczas uzbrojenia drona, a nie absolutna HAE. CoT używa HAE (wysokość ponad elipsoidą, WGS84). Most musi konwertować: HAE → (HAE − home_HAE) = wysokość względna.

Optymalizacja niskopasmowa dla radia MANET

Radia MANET używane w operacjach pieszych — Persistent Systems MPU5, Silvus StreamCaster, Harris FALCON IV — zapewniają 1–20 Mbps wspólnej przepustowości dla wszystkich węzłów w sieci. Pojedyncza integracja drona dodająca aktualizacje pozycji 5–10 Hz, strumień wideo i aktualizacje wielokąta gimbala 10–25 Hz może zużyć nieproporcjonalną część budżetu.

Ograniczanie częstotliwości aktualizacji śladu. Przy 1 Hz dron poruszający się z prędkością 20 m/s przesuwa się o 20 m między aktualizacjami — dopuszczalne dla śladu powietrznego. Przy 0,5 Hz ślad wystarcza, by być mylący podczas zakrętów. 1 Hz to rozsądne domyślne dla większości zastosowań ISR przez ograniczone łącza.

Binarny CoT vs XML CoT. Serwer TAK 4.x i ostatnie kompilacje ATAK obsługują protobuf-kodowany CoT (binarny CoT), który zmniejsza rozmiar komunikatu o 55–65% w porównaniu z XML CoT. Dla aktualizacji pozycji ważącej ~400 bajtów w XML, binarny CoT to około 150 bajtów. Przy 1 Hz dla 4 dronów oszczędza to ~1 Mbps przepustowości radiowej.

Zarządzanie jakością wideo. Wideo jest zdecydowanie największym konsumentem. Strumień H.264 720p przy 2 Mbps dla jednego drona zużywa 40% łącza MANET 5 Mbps. Używaj RTSP unicast zamiast multicast, gdy tylko jeden lub dwóch operatorów potrzebuje wideo.

Kluczowa obserwacja: Integracja dron–COP to problem budżetu radiowego w równym stopniu co problem oprogramowania. Modeluj budżet łącza MANET przed wdrożeniem — uwzględnij telemetrię, wideo, CoT sił naziemnych, głos i narzut. Integracja drona działająca na stanowisku testowym z przełącznikiem LAN może degradować płynnie lub katastrofalnie przez radio, w zależności od tego, czy przepustowość była zaplanowana.

Obsługa wielu dronów: konwencje znaków wywoławczych i zarządzanie grupami

Jednoczesna operacja więcej niż dwóch dronów — czy to skoordynowany rój ISR, czy wiele niezależnie obsadzonych platform — wprowadza wyzwania dekonfliktacji na mapie ATAK. Bez dyscypliny wiele śladów dronów z podobnymi ikonami i bez wyraźnego oznakowania powoduje zamieszanie.

Konwencje UID CoT i znaku wywoławczego. Każdy dron musi mieć globalnie unikalny UID CoT — użyj ustrukturyzowanego schematu osadzającego jednostkę, rolę i numer seryjny: JEDNOSTKA-ROLA-NUMER (np. 3PLUT-ISR-01, 3PLUT-ISR-02). Znak wywoławczy wyświetlany na etykiecie mapy ATAK powinien podążać za tą samą konwencją i pasować do głosowych znaków wywoławczych używanych przez jednostkę.

Przypisania grup CoT. Grupy serwera TAK kontrolują, które klienty widzą które ślady i pozwalają operatorom pokazywać/ukrywać podzbiory obrazu. Przypisuj drony do tej samej grupy co jednostka naziemna, którą wspierają.

Rejestr dronów mostu MAVLink. Gdy wiele instancji GCS raportuje do tego samego serwera TAK, most na każdym GCS musi używać rejestru dronów — trwałego mapowania identyfikatorów systemów MAVLink na UID CoT — dla zapewnienia spójności.

Świadomość roju w skali. Dla operacji z więcej niż 5–6 dronami jednocześnie w powietrzu, rozważ dodanie dedykowanego nakładenia zarządzania dronami — niestandardowej wtyczki ATAK lub komponentu WinTAK wyświetlającego wszystkie ślady dronów ze stanem baterii, statusem misji i dostępnością wideo w formacie tabelarycznym.