Rozdział 8: Monaco SLAM i Mapowanie LiDAR
Rozdział 8: SLAM 2D, Mapowanie Przestrzenne LiDAR i Blokady C-Mutex
Rozdział ten opisuje integrację czujników LiDAR 2D, algorytm budowy mapy zajętości (BreezySLAM) oraz zasady wielowątkowego bezpieczeństwa pamięci.
🗺️ 1. Algorytm BreezySLAM 2D i Blokady Pamięci (C-Mutex)
W systemie RCSIM pozycjonowanie wewnątrzpomieszczeniowe bez dostępu do sygnału GPS realizowane jest przy użyciu skanera LiDAR 2D oraz biblioteki mapowania w języku C (BreezySLAM).
[!IMPORTANT] BreezySLAM C-Extension Mutex Gotcha: Dostęp do silnika mapującego C-extensions wymaga używania blokady
threading.Lock()(SLAM Mutex) w pętli pobierającej skany. Równoczesny odczyt mapy przez wątek wizualizacji GUI oraz wątek aktualizacji pozycji z LiDARu bez blokady powoduje błąd naruszenia ochrony pamięci (Segmentation Fault).

📡 2. Przesyłanie Mapy i MTU Chunking dla SLAM
Wysokorozdzielcza mapa siatki zajętości (Occupancy Grid 800x800 px) przekracza dopuszczalny rozmiar pakietu UDP:
- Mapa jest kompresowana algorytmem zlib.
- Moduł
chunking.pydzieli dane na pakiety poniżej 1100 bajtów. - Stacja GCS odbiera pod-pakiety, weryfikuje sumę kontrolną i odtwarza pełny podgląd toru jazdy na żywo.