Opis projektu

Autonomiczna eksploracja pola RFID system wieloprojektowy oparty na ESP32 i Raspberry Pi

Projekt badawczy przedstawia architekturę rozproszonego systemu sterowania robotem mobilnym, opartą na dwóch jednostkach obliczeniowych, której celem jest automatyczna identyfikacja znaczników RFID rozmieszczonych na płycie w układzie siatki kwadratowej.

Architektura sprzętowa

System składa się z dwóch węzłów obliczeniowych komunikujących się bezprzewodowo:

  1. Jednostka nadrzędna (master) czterordzeniowy mikrokomputer jednopłytkowy Raspberry Pi. Odpowiada za zarządzanie procesem eksploracji płyty oraz komunikację z robotem.
  2. Jednostka wykonawcza (slave) — mały robot mobilny wyposażony w dwurdzeniowy mikrokontroler ESP32 oraz w czytnik RFID.

W przeciwieństwie do pierwotnych wersji systemu [1, 2, 3], opartych na dedykowanych mikrorobotach klasy (2,0) i oprogramowaniu C/C++, prezentowane rozwiązanie wykorzystuje powszechnie dostępne platformy sprzętowe oraz oprogramowanie napisane zgodnie z normą IEC 61131-3.

Organizacja oprogramowania i sterowania

Oprogramowanie sterujące całością systemu zostało utworzone w języku ST (Structured Text) jako jeden zintegrowany projekt w środowisku programistyczno-wykonawczym CPDev. Na etapie implementacji wydzielono z niego podprojekty przeznaczone dla poszczególnych maszyn wirtualnych (runtime) CPDev, rozszerzonych o wzajemną wymianę danych.

Podział zadań pomiędzy rdzenie procesorów przedstawia się następująco:

Raspberry Pi jednostka nadrzędna

  • Rdzenie logiczne uruchomiono na nich maszyny wirtualne CPDev1 i CPDev2. Odpowiadające za algorytmy eksploracji i generowanie komend ruchu.
  • Obsługa systemu pozostałe dwa rdzenie pracujące pod kontrolą systemu Linux obsługują interfejsy maszyn wirtualnych, realizują funkcje systemowe oraz zapewniają komunikację Wi-Fi.

ESP32 sterowanie robotem

  • Rdzeń 1 obsługuje maszynę wirtualną CPDev3, która odbiera komendy z jednostki nadrzędnej.
  • Rdzeń 2 realizuje bezpośrednie sterowanie silnikami.
    W ramach prac implementacyjnych fabryczne oprogramowanie zastąpiono rozwiązaniem własnym wykorzystującym regulatory PID i bang-bang.

Komunikacja i wymiana danych

System charakteryzuje się jednolitym mechanizmem wymiany danych, niezależnym od medium transmisyjnego.

  • Wewnątrz Raspberry Pi (CPDev1 ↔ CPDev2) wymiana zmiennych globalnych następuje poprzez pamięć współdzieloną.
  • Pomiędzy jednostkami (CPDev2/3 ↔ CPDev1) komunikacja odbywa się bezprzewodowo (Wi-Fi), przy zachowaniu tego samego mechanizmu adresowania zmiennych.

Wyniki eksperymentalne i ograniczenia

W trakcie testów laboratoryjnych zweryfikowano działanie układu sterowania. Pomimo zastosowania sprawdzonych algorytmów regulacji, napotkano na problem stopniowej degradacji precyzji pozycjonowania. Ze względu na brak systemu lokalizacji absolutnej (np. GNSS RTK), niedokładności mechaniczne i zakłócenia powodują zbaczanie robota z wyznaczonej trasy,
aż do pominięcia znacznika RFID.

Procedura obsługi pominięcia znacznika w przypadku gdy robot nie napotka oczekiwanego znacznika, zatrzymuje się sygnalizując pominięcie. Wznowienie eksploracji wymaga interwencji w formie ręcznego ustawienia robota nad ostatnim zidentyfikowanym znacznikiem i poleceniu kontynuacji.

[1] M. Hubacz; D. Mazur; B. Pawłowicz; M. Salach; M. Skoczylas; B. Trybus, Navigation and mapping of closed spaces with a mobile robot and RFID grid, Archives of Control Sciences, 2023.

[2] Ł. Gotówko; M. Hubacz; B. Pawłowicz; M. Salach; M. Skoczylas; B. Trybus, Room mapping system using RFID and mobile robots, POLSKIE TOWARZYSTWO INFORMATYCZNE, 2022.

[3] M. Hubacz; B. Pawłowicz; B. Trybus, Using multiple RFID readers in mobile robots for surface exploration, Springer, 2020.