Problem identyfikacji RFID w obszarze
Rozważany jest model obszaru roboczego zdyskretyzowany
do postaci siatki kwadratowej przedstawionej poniżej po lewej stronie). W każdym polu siatki zaimplementowano nośnik informacji w postaci znacznika RFID (transpondera), choć dopuszczalne jest również zastosowanie technologii Bluetooth (beacony) lub kodów optycznych QR. Lokalizacja w obrębie siatki definiowana jest poprzez współrzędne kartezjańskie (X, Y), odpowiadające numerom kolumn i wierszy. W pokazanym przypadku wstępnym, system zidentyfikował jedynie znaczniki na pozycjach [0,0] (identyfikator A) oraz [0,1] (identyfikator B). Zasadniczym zadaniem jest tzw. eksploracja (rozpoznanie obszaru), polegająca na odczytaniu identyfikatorów przypisanych do pozostałych, nieodczytanych jeszcze pól siatki.
Z możliwych strategii eksploracji wybrano metodę spiralną zbiegającą do centrum układu. Procedura inicjowana jest w narożniku obszaru roboczego, a przemieszczanie odbywa się naprzemiennie wzdłuż osi X i Y. Kluczową zasadą sterowania jest wykonywanie manewrów skrętu o 90° o stałej skrętności (wyłącznie w jedną stronę).
Schemat działania przedstawiono na rysunku poniżej po prawej stronie dla wariantu prawoskrętnego z punktem startowym [0,0]. Robot kontynuuje ruch prostoliniowy do momentu osiągnięcia krawędzi siatki lub napotkania pola o statusie „zidentyfikowane”. Wówczas następuje reorientacja (obrót). Algorytm przerywa działanie (kryterium stopu), gdy weryfikacja otoczenia wykaże,
że zarówno pole na wprost, jak i to po stronie skrętu, zostały już wcześniej rozpoznane.


Architektura rozwiązania z robotem i jednostką nadrzędną
Zrealizowany system laboratoryjny funkcjonuje bez dedykowanego układu pozycjonowania (GNSS RTK). Środowisko badawcze stanowi płyta wyposażona w matrycę znaczników RFID, natomiast rolę jednostki wykonawczej pełni robot mobilny. Platforma ta utrzymuje bezprzewodową komunikację Wi-Fi z jednostką nadrzędną. Działanie systemu koncentruje się na realizacji trzech kluczowych procesów: koordynacji algorytmu eksploracji, obsłudze transmisji danych oraz sterowaniu ruchem robota.

Współpraca trzech maszyn wirtualnych
Implementacja laboratoryjna
Architektura systemu i alokacja zasobów. Zaprojektowany system opiera się na architekturze heterogenicznej (różne procesory), czyli integrującej jednostkę nadrzędną (master) i wykonawczą (slave). Jednostką nadrzędną jest mikrokomputer Raspberry Pi (SoC Broadcom BCM2711, Cortex-A72), pracujący pod kontrolą systemu operacyjnego Linux. Odpowiada on za przetwarzanie danych i generowanie sterowania. Jednostkę wykonawczą stanowi robot mobilny wyposażony w sterownik Waveshare z dwurdzeniowym mikrokontrolerem ESP32-S3 (Xtensa LX7), zarządzany przez system czasu rzeczywistego FreeRTOS.
Implementacja programowa bazuje na trzech rozszerzonych maszynach wirtualnych (MW) środowiska CPDev, których numeracja odzwierciedla sekwencję procesu eksploracji:
- CPDev1 i CPDev2 (Raspberry Pi) — uruchamiane są na izolowanych rdzeniach procesora, co uniezależnia je od procesów systemu operacyjnego. CPDev1 rejestruje mapę znaczników, a CPDev2 realizuje algorytm nawigacyjny. Komunikacja między nimi odbywa się poprzez pamięć współdzieloną (SM).
- CPDev3 (ESP32-S3) — odpowiada za bezpośrednie sterowanie napędami i akwizycję danych z czytnika RFID.
Wymiana danych między jednostkami realizowana jest bezprzewodowo (Wi-Fi) z wykorzystaniem protokołu MQTT. Zapewnia to skalowalność i możliwość zewnętrznego monitorowania. W przypadku pominięcia znacznika system wchodzi w stan oczekiwania na interwencję operatora. Dla warstwy logicznej (MW) sytuacja ta jest interpretowana jako wydłużony czas oczekiwania na daną wejściową.
