DOCS/Kompendium Wiedzy
|

Załączniki Techniczne: Deployment Tool Advanced, Developer Guide & Protokoły

Poniższe załączniki stanowią podręcznik inżynieryjny i referencyjny dla deweloperów, konstruktorów oraz zaawansowanych operatorów systemu RCSIM.


🗂️ Załącznik A: Zaawansowane Opcje Narzędzia Wdrożeniowego (Deployment Tool)

Narzędzie wdrożeniowe rcsim_deploy udostępnia zaawansowane flagi wiersza poleceń dla instalacji i diagnostyki:

  • --clean: Pełne czyszczenie środowiska wirtualnego Python (venv) i ponowna kompilacja modułów binarnych C (np. BreezySLAM).
  • --no-hailo: Instalacja podstawowa z pominięciem sterowników akceleratora NPU (dla jednostek Tier 4 bazowych).
  • --custom-ap: Definicja własnej nazwy sieci Wi-Fi (SSID) oraz hasła WPA2 dla wbudowanego punktu dostępowego MCS.
  • --reset-configs: Przywrócenie domyślnych plików rc_config.json oraz mediamtx.yml.

🗂️ Załącznik B: Developer Guide & Rejestr Czujników (Sensor Registry)

Dodanie nowego czujnika pokładowego (np. dalmierza laserowego ToF VL53L1X lub sonaru ultradźwiękowego) wymaga zarejestrowania klasy sterownika w systemie:

# Rejestracja nowego czujnika w RCSIM GCS / RPi Stack
class ToFSensorDriver:
    SENSOR_NAME: str = "VL53L1X_ToF"
    I2C_ADDRESSES: list[int] = [0x29]
    PRIORITY: int = 10
    
    def __init__(self, i2c_bus: int = 1) -> None:
        self.bus = i2c_bus
        self._initialized = False

    def initialize(self) -> bool:
        """Inicjalizacja rejestrów sprzętowych I2C."""
        try:
            # Konfiguracja trybu Long Range (do 4 metrów)
            self._initialized = True
            return True
        except Exception:
            return False

    def read_telemetry(self) -> dict[str, float]:
        """Pobranie odczytu z zabezpieczeniem NaN Guard."""
        raw_dist = 150.0  # mm
        return {
            "distance_mm": raw_dist if math.isfinite(raw_dist) else 0.0,
            "status_ok": 1.0 if self._initialized else 0.0
        }

🗂️ Załącznik C: Procedura Bezpiecznego Testowania AI ("Koła w Powietrzu")

Przed pierwszym uruchomieniem autonomicznych modeli AI (inferencja Hailo-8 .hef lub klonowanie behawioralne):

  1. Podstawka Testowa: Umieść podwozie pojazdu na stabilnej podstawce warsztatowej, tak aby wszystkie koła unosiły się swobodnie w powietrzu.
  2. Załączenie Zasilania Logiki: Włącz zasilanie komputera RPi 5 i upewnij się, że watchdog Failsafe jest aktywny.
  3. Weryfikacja Inferencji: Uruchom pipeline wideo i skieruj kamerę na wydrukowaną linię testową toru.
  4. Obserwacja Wychyleń Serwa: Zweryfikuj, czy serwo skrętu reaguje we właściwą stronę na zakrętach i czy przepustnica nie przekracza zadanego limitu bezpieczeństwa przed postawieniem auta na nawierzchni.

🗂️ Załącznik D: Format Ramek i Protokoły Transmisji (CSV & UDP JSON)

1. Protokół Szeregowy USB CDC (Tier 1 & RP2350 PPM Bridge)

  • Przepustowość: 115200 baud, 8N1 (wirtualny port COM CDC).
  • Format Ramki: Ciąg znaków ASCII rozdzielany przecinkami i zakończony znakiem nowej linii : $$\text{Frame} = \text{CH1},\text{CH2},\text{CH3},\text{CH4},\text{CH5},\text{CH6},\text{CH7},\text{CH8}\backslash\text{r}\backslash\text{n}$$
  • Wartości Kanałów: Zakres $1000 - 2000\text{ }\mu\text{s}$ (wartość neutralna $1500\text{ }\mu\text{s}$).
  • Failsafe Watchdog: Brak nowej ramki przez $>500\text{ ms}$ wyzwala tryb High-Z i odcięcie sygnału PPM.

2. Protokół Pakietów UDP (Tier 2 WiFi ESP32)

  • Port Sterowania (Port 12345/12346): Ramka binarna 8 kanałów PWM w milisekundach przesyłana z częstotliwością 50 Hz.
  • Port Telemetrii (Port 12347 JSON): Pakiet zwrotny z danymi żyroskopu IMU:
    {
      "imu": {"ax": 0.02, "ay": -0.05, "az": 1.01, "gx": 0.0, "gy": 0.0, "gz": 0.1},
      "rssi": -58,
      "battery_v": 7.42,
      "loop_hz": 50
    }
    

🗂️ Załącznik E: Słownik Skrótów i Pojęć Technicznych (Glossary)

Skrót / Pojęcie Pełna Nazwa / Rozwinięcie Znaczenie w Systemie RCSIM
BOM Bill of Materials Kompletna lista zakupowa części i komponentów elektronicznych.
CDC Communications Device Class Standard wirtualnego portu szeregowego USB bez potrzeby zewnętrznych konwerterów UART.
DSC / Trainer Direct Servo Control Gniazdo Jack 3.5mm w aparaturze RC przyjmujące sumacyjny sygnał PPM z komputera PC.
ELRS ExpressLRS Otwarty, ultra-szybki protokół radiowy RC o znikomym opóźnieniu i zasięgu wielokilometrowym.
ESC Electronic Speed Controller Elektroniczny regulator prędkości silnika bezszczotkowego/szczotkowego.
FFB Force Feedback Sprzężenie zwrotne na kierownicy sim-racingowej symulowane na podstawie danych inercyjnych IMU.
HEF Hailo Executable Format Skompilowany binarny model sieci neuronowej uruchamiany na akceleratorze Hailo-8 NPU.
MCS Mobile Control Station Tryb autonomicznej stacji kontroli opartej wyłącznie o RPi 5 + RP2350 z obsługą przez smartfon (bez PC).
MTU Maximum Transmission Unit Limit rozmiaru pakietu sieciowego (1100 B w RCSIM), powyżej którego stosowany jest mechanizm Chunking.
RDP Ramer-Douglas-Peucker Algorytm kompresji trajektorii redukujący punkty prostoliniowe i zachowujący wierzchołki zakrętów.
SLAM Simultaneous Localization and Mapping Jednoczesna lokalizacja i mapowanie przestrzeni przy użyciu skanera laserowego LiDAR 2D.
UBEC Universal Battery Elimination Circuit Impulsowa przetwornica napięcia zasilająca elektronikę (5V/5A) bezpośrednio z baterii głównej LiPo.
WHEP WebRTC HTTP Egress Protocol Standard strumieniowania wideo WebRTC o ultraniskim opóźnieniu ($<100\text{ ms}$) przez MediaMTX.