DOCS/Kompendium Wiedzy
|

Rozdział 3: Deployment Tool, WHEP WebRTC i Protokoły Sieciowe

Ten rozdział opisuje automatyczne wdrażanie oprogramowania pokładowego oraz protokoły transmisji wideo FPV i telemetrii.


🚀 1. Automatyczne Wdrażanie (Deployment Tool)

Narzędzie wdrożeniowe znajdujące się w repozytorium pozwala na skonfigurowanie czystego mikrokomputera RPi 5 z poziomu PC za pomocą pojedynczej komendy SSH.

Skrypt wdrożeniowy automatycznie instaluje:

  • Usługę MediaMTX (serwer WHEP WebRTC dla wideo FPV z kamery CSI/USB).
  • Usługę pokładową RCSIM RPi Daemon (Python asyncio + aiortc).
  • Biblioteki mapowania LiDAR SLAM (BreezySLAM C-extensions).
  • Usługi automatycznego restartu (systemd services).

Deployment Tool Progress


📺 2. Protokół Wideo WebRTC & STUN Server (Gotcha VPN)

Do transmisji wideo o ultra-niskim opóźnieniu (<50ms) wykorzystywany jest protokół WebRTC WHEP z kodowaniem H.264.

[!IMPORTANT] WebRTC Routing over VPN Gotcha (STUN Config): Podczas korzystania z połączenia VPN (np. Tailscale), usługa MediaMTX na RPi bez skonfigurowanego zewnętrznego serwera STUN w pliku mediamtx.yml wysyła do klienta niekompatybilne lokalne adresy IP (np. klastra Docker). W efekcie uzgadnianie DTLS kończy się sukcesem, ale pakiety wideo UDP są gubione. W pliku mediamtx.yml należy bezwzględnie ustawić publiczny serwer STUN: webrtcICEServers: [stun:stun.l.google.com:19302]


📦 3. Transmisja Danych i MTU Chunking (UDP Limit)

Pakiety telemetrii, chmury punktów LiDAR oraz mapy SLAM przesyłane po protokole UDP/WebRTC przekraczające fizyczny limit MTU (1100 bajtów) ulegają fragmentacji IP, co prowadzi do odrzucania ramek.

System RCSIM implementuje dedykowany moduł Chunking (np. chunking.py), dodający nagłówek kontrolny __c: 1 i dzielący duże mapy SLAM na pod-pakiety ułatwiające bezbłędne ponowne złożenie po stronie GCS.