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ówrc_config.jsonorazmediamtx.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):
- Podstawka Testowa: Umieść podwozie pojazdu na stabilnej podstawce warsztatowej, tak aby wszystkie koła unosiły się swobodnie w powietrzu.
- Załączenie Zasilania Logiki: Włącz zasilanie komputera RPi 5 i upewnij się, że watchdog Failsafe jest aktywny.
- Weryfikacja Inferencji: Uruchom pipeline wideo i skieruj kamerę na wydrukowaną linię testową toru.
- 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. |