Nauczanie przez naśladowanie robota manipulatora: generowanie trajektorii bez enkoderów
Robot manipulator z serwosilnikami MG996R bez enkoderów ma problemy z luzami, zużyciem i niedokładnością pozycjonowania. Zamiast skomplikowanej kalibracji kinematyki stosuje się nauczanie przez naśladowanie: operator ręcznie przesuwa manipulator po zadanych trajektoriach, a pozycje poszczególnych ogniw rejestruje się zewnętrznymi potencjometrami. Zebrane dane służą do wytrenowania sieci neuronowej, która potrafi odtwarzać ruch krok po kroku.
Konstrukcja obejmuje podstawę z obrotem wokół osi Z, trzy ogniwa i chwytak. Potencjometry 10 kΩ na czterech zawiasach przesyłają sygnały analogowe do Arduino Mini co 10 ms. Sterowanie serwosilnikami realizuje się za pomocą sterownika PCA9685PW. Dane zapisywane są do plików CSV do dalszej obróbki.
Montaż sprzętowy i tryby pracy
Arduino cyklicznie odczytuje wartości z potencjometrów, stosując wygładzanie sygnału w celu eliminacji zakłóceń: nowa wartość jest uśredniana z poprzednią. Sygnały w zakresie od 0 do 1023 zostają później przeliczone na kąty serwosilników w środowisku komputerowym.
System działa w dwóch trybach:
- Rejestracja trajektorii z potencjometrów.
- Sterowanie serwosilnikami.
Zasilanie serwosilników zapewniane jest osobnym źródłem. Pracownia robota ograniczona jest do wygodnej strefy roboczej — maksymalnie 34 punkty docelowe rozmieszczone siatką przypominającą szachownicę. Punkt bazowy nad tą strefą pełni rolę pośredniej bazy dla wszystkich ruchów: baza → cel → baza.
To znacznie redukuje objętość danych: wystarczy 68 trajektorii zamiast kombinacji wszystkich możliwych par punktów.
Etapy nauczania przez naśladowanie
Rejestracja trajektorii
Manipulator przesuwa się ręcznie z punktu bazowego do celu i z powrotem. Arduino rejestruje kąty zawiasów co 10 ms. Surowe dane zawierają zakłócenia oraz błędy wynikające z luzów mechanicznych.
Kalibracja punktów docelowych
Dokładne kąty dla każdego punktu docelowego są ustalane eksperymentalnie. Ostateczne pozycje trajektorii korygowane są tak, aby skompensować narastające błędy systemowe.
Trenowanie sieci neuronowej
Model przewiduje kolejny krok trajektorii na podstawie aktualnego położenia i współrzędnych celu. Wejście: aktualne kąty zawiasów + współrzędne x,y celu. Wyjście: delta kątów (zmiana kątów). Dodano mechanizm „celowania”, który wprowadza końcową korektę w ostatniej fazie ruchu.
Model manipulatora w PyBullet (oparty na pliku URDF) służy wyłącznie do wizualizacji — nie uwzględnia rzeczywistych luzów ani nieliniowości układu fizycznego.
Przygotowanie danych
Trajektorie są normalizowane i interpolowane do stałej liczby kroków. Dla każdej pary baza–cel zbiera się kilka powtórzeń, a następnie uśrednia je w celu zwiększenia stabilności i odporności na szczyty zakłóceń.
Obróbka obejmuje:
- Filtrację zakłóceń (wygładzanie metodą średniej ruchomej).
- Normalizację kątów do zakresu [0,1].
- Interpolację do 100–200 kroków.
- Dodanie współrzędnych celu jako wejścia warunkującego (conditioning input).
Architektura sieci neuronowej
Stosowana jest sieć MLP z 4 wejściami (kąty zawiasów), dwoma osadzeniami (embeddingami) celu (x,y) oraz kodowaniem kroku czasowego. Warstwy ukryte: 256 → 128 → 64 neuronów, aktywacja ReLU, dropout 0,1. Wyjście to 4 wartości delta kątów.
Trenowanie: funkcja straty MSE na deltach kątów, optymalizator Adam, szybkość uczenia 1e-3, rozmiar partii 32, 500 epok. Dane podzielono w proporcji 80/10/10 (uczenie/walidacja/test).
Kompensacja błędu: ostatnie 10% trajektorii generowane jest przez liniową interpolację do skalibrowanego punktu docelowego.
Wyniki i uogólnienie
Sieć neuronowa odtwarza trajektorie z błędem mniejszym niż 5° na poszczególnych zawiasach, a dokładność trafienia w punkt docelowy wynosi ±2 mm. Dla nieznanych punktów środkowych komórek siatki błąd uogólnienia utrzymuje się na poziomie ±4 mm.
Porównanie metod:
| Metoda | Błąd kątowy | Dokładność trafienia (mm) |
|--------|-------------|---------------------------|
| Model otwarty (kinematyka) | 12° | ±8 |
| Nauczanie przez naśladowanie | 4° | ±2 |
| Z mechanizmem celowania | 2° | ±1 |
Podejście łatwo skaluje się na inne manipulatory bez wbudowanych czujników pozycji.
Kluczowe wnioski
- Nauczanie przez naśladowanie skutecznie obejmuje brak enkoderów i precyzyjnego modelu kinematycznego.
- Zewnętrzne potencjometry zapewniają wiarygodne dane referencyjne (ground truth) dla trajektorii.
- Sieć neuronowa generuje kroki z warunkowaniem na cel oraz dodatkowym etapem precyzyjnego dopasowania.
- Wystarczyło 68 trajektorii, by osiągnąć dobre uogólnienie na nowe punkty docelowe.
- Błąd pozycjonowania spada do ±2 mm nawet przy tanim sprzęcie.
— Editorial Team
Brak komentarzy.