Enkodery w robotyce – jak robot mierzy pozycję, prędkość i obrót?

Robot musi stale wiedzieć, w jakim położeniu znajdują się jego koła, wały, ramiona i przeguby. Bez takiej informacji układ sterowania nie byłby w stanie precyzyjnie wykonać zaplanowanego ruchu, utrzymać zadanej prędkości ani skorygować różnicy pomiędzy poleceniem a rzeczywistą pozycją mechanizmu.

Jednym z podstawowych źródeł informacji zwrotnej są enkodery. Czujniki te przekształcają ruch obrotowy albo liniowy w sygnał, który może zostać odczytany przez sterownik silnika, mikrokontroler, komputer przemysłowy lub system sterowania robotem. Dzięki temu możliwe jest określanie położenia, prędkości, kierunku obrotu oraz przebytej drogi.

Enkodery znajdują się między innymi w napędach kół robotów mobilnych, przegubach manipulatorów, kończynach robotów humanoidalnych i czworonożnych, chwytakach, serwomechanizmach oraz osiach maszyn automatycznych. Ich dane są wykorzystywane w pętli regulacji ruchu, odometrii, lokalizacji, kontroli równowagi i diagnostyce pracy mechanizmów.

W artykule wyjaśniamy, jak działają enkodery w robotyce, czym różnią się modele inkrementalne i absolutne, co oznaczają kanały A, B i Z oraz jak interpretować parametry PPR, CPR i rozdzielczość bitową. Omawiamy również błędy pomiarowe, współpracę enkoderów z IMU oraz sposób wykorzystania danych o przegubach i ruchu robota w ROS 2.

Enkodery są urządzeniami sprzężenia zwrotnego używanymi do pomiaru ruchu obrotowego lub liniowego. Impulsy enkodera inkrementalnego mogą służyć do wyznaczania prędkości i śledzenia zmiany pozycji, natomiast enkodery absolutne kodują poszczególne położenia w postaci jednoznacznych wartości.

Czym jest enkoder?

Enkoder jest czujnikiem położenia, który przekształca ruch elementu mechanicznego w sygnał możliwy do odczytania przez układ sterowania. W zależności od konstrukcji może mierzyć obrót wału, położenie przegubu, przesunięcie liniowe albo zmianę pozycji względem punktu odniesienia.

W robotyce enkodery są najczęściej montowane przy silnikach, przekładniach, kołach, osiach i przegubach. Dostarczają sterownikowi informacji o tym, czy mechanizm rzeczywiście wykonał zadany ruch. Dzięki temu układ może porównać wartość zadaną z pomiarem i na bieżąco korygować pracę napędu.

Bez enkodera sterownik może wysłać do silnika polecenie ruchu, ale nie otrzymuje precyzyjnej informacji zwrotnej o rzeczywistym położeniu mechanizmu. Wystąpienie obciążenia, oporu, poślizgu albo luzu w przekładni może wtedy spowodować różnicę pomiędzy ruchem zaplanowanym a faktycznie wykonanym.

Enkoder może przekazywać pozycję jako impulsy, sygnały analogowe albo cyfrową wartość bezwzględną. Na podstawie zmiany pozycji w czasie sterownik może również obliczyć prędkość, kierunek ruchu oraz — w przypadku napędu koła — przybliżoną przebytą drogę.

Enkodery inkrementalne przekazują przede wszystkim informację o zmianie położenia, natomiast enkodery absolutne umożliwiają odczyt bieżącej pozycji jako jednoznacznej wartości. Kierunek obrotu enkodera inkrementalnego może być określany na podstawie przesunięcia fazowego kanałów A i B.

LEDIO Robotics
Szukasz robota do edukacji, badań lub wdrożenia?

Pomagamy dobrać odpowiednią platformę robotyczną, konfigurację sprzętową oraz rozwiązania przeznaczone dla szkół, uczelni, laboratoriów i firm.

Skontaktuj się z nami

Źródła i dokumentacja techniczna

Enkoder jako element sprzężenia zwrotnego

Podstawowy przepływ informacji w układzie napędowym
Sterownik wyznacza pozycję lub prędkość zadaną
Silnik wykonuje ruch mechanizmu
Enkoder mierzy rzeczywiste położenie
Sterownik koryguje błąd ruchu

Takie sprzężenie zwrotne umożliwia precyzyjne sterowanie pozycją, prędkością i dynamiką napędu robota.

Warto pamiętać, że enkoder może mierzyć położenie wału silnika, wyjścia przekładni albo bezpośrednio przegubu robota. Nie zawsze są to wartości identyczne — wpływają na nie przełożenie, luzy mechaniczne i elastyczność konstrukcji. Wrócimy do tego w dalszej części artykułu.

Jak działa enkoder w robocie?

Działanie enkodera rozpoczyna się od ruchu mechanicznego. Obrót wału silnika, koła lub przegubu powoduje zmianę położenia tarczy, pierścienia magnetycznego albo innego elementu pomiarowego. Głowica odczytowa wykrywa tę zmianę i przekształca ją w sygnał elektryczny.

Sposób odczytu zależy od technologii zastosowanej w enkoderze. W konstrukcjach optycznych światło przechodzi przez podziałkę albo odbija się od niej, a fotodetektor rejestruje zmiany jasnych i ciemnych pól. Enkodery magnetyczne wykrywają zmiany pola magnetycznego, natomiast systemy indukcyjne i pojemnościowe wykorzystują zmiany właściwości elektromagnetycznych elementu pomiarowego.

Elektronika enkodera przetwarza sygnał z czujnika na impulsy, sygnały analogowe sinus–cosinus albo cyfrową informację o pozycji. W enkoderze inkrementalnym liczba impulsów odpowiada zmianie położenia, a kolejność sygnałów kanałów A i B pozwala określić kierunek obrotu. Enkoder absolutny przekazuje natomiast kod odpowiadający aktualnej pozycji wału.

Sterownik robota odbiera sygnał enkodera i porównuje pozycję rzeczywistą z wartością zadaną. Na podstawie różnicy, nazywanej błędem regulacji, może zwiększyć lub zmniejszyć moment silnika, zmienić kierunek ruchu albo zatrzymać napęd we właściwym położeniu. Enkoder pełni więc funkcję podstawowego czujnika sprzężenia zwrotnego w układzie sterowania ruchem

Od ruchu mechanicznego do informacji o pozycji

Pięć etapów działania enkodera
  1. Ruch mechaniczny: obraca się wał silnika, koło, przekładnia lub przegub robota.
  2. Zmiana elementu pomiarowego: porusza się tarcza optyczna, skala liniowa, pierścień magnetyczny albo element indukcyjny.
  3. Odczyt czujnika: głowica wykrywa zmianę światła, pola magnetycznego, indukcyjności lub pojemności.
  4. Przetwarzanie sygnału: elektronika enkodera generuje impulsy, sygnały analogowe albo cyfrowy kod pozycji.
  5. Interpretacja przez sterownik: system oblicza położenie, kierunek i prędkość ruchu oraz koryguje pracę napędu.

Czy enkoder mierzy prędkość bezpośrednio?

Enkoder jest przede wszystkim czujnikiem położenia lub zmiany położenia. Prędkość jest zazwyczaj obliczana na podstawie liczby impulsów albo zmiany odczytanej pozycji w określonym przedziale czasu. Im większa rozdzielczość enkodera i dokładniejszy pomiar czasu, tym precyzyjniej można określić prędkość ruchu.

Przy dużych prędkościach sterownik może zliczać impulsy pojawiające się w krótkim oknie czasowym. Przy bardzo wolnym ruchu korzystniejsze bywa mierzenie czasu pomiędzy kolejnymi zboczami sygnału. Dobór metody wpływa na rozdzielczość, opóźnienie i stabilność wyniku.

W praktycznym układzie sterowania dane enkodera są często dodatkowo filtrowane. Pozwala to ograniczyć wpływ zakłóceń elektrycznych i chwilowych zmian odczytu, ale zbyt silne filtrowanie może zwiększyć opóźnienie reakcji napędu.

Enkodery inkrementalne generują impulsy odpowiadające przemieszczeniu osi, natomiast częstotliwość tych impulsów może być wykorzystana przez układ sterowania do oszacowania prędkości obrotowej.

Jakie wielkości może mierzyć enkoder?

Podstawową wielkością mierzoną przez enkoder jest położenie mechanizmu albo zmiana tego położenia. W zależności od konstrukcji może to być kąt obrotu wału, liczba wykonanych obrotów lub przesunięcie liniowe osi.

Z kolejnych pomiarów położenia sterownik może obliczyć również prędkość, kierunek ruchu, przebytą drogę, a w bardziej zaawansowanych układach także przyspieszenie. Dlatego w opisach technicznych często podaje się, że enkoder mierzy pozycję i prędkość, chociaż prędkość jest zazwyczaj wyznaczana na podstawie zmiany pozycji w czasie.

W enkoderze inkrementalnym kierunek obrotu można rozpoznać na podstawie kolejności zmian sygnałów kanałów A i B. Enkoder absolutny przekazuje natomiast jednoznaczną wartość aktualnej pozycji, a wzrost lub spadek tej wartości informuje sterownik o kierunku ruchu.

Pozycja, prędkość, kierunek i droga

Wielkość Sposób określania Znaczenie w robocie Przykład
Położenie kątowe Odczyt kąta albo zliczanie impulsów Określa aktualne ustawienie wału, osi lub przegubu. Kąt obrotu kolana robota humanoidalnego.
Przesunięcie liniowe Odczyt pozycji głowicy względem skali liniowej Pozwala kontrolować ruch osi poruszającej się po prowadnicy. Pozycja wózka robota kartezjańskiego.
Prędkość Zmiana pozycji w określonym czasie Umożliwia regulację prędkości napędu i synchronizację osi. Prędkość obrotowa koła robota mobilnego.
Kierunek ruchu Kolejność sygnałów A i B albo wzrost lub spadek pozycji absolutnej Informuje, czy mechanizm porusza się do przodu, do tyłu, zgodnie czy przeciwnie do ruchu wskazówek zegara. Rozpoznanie kierunku obrotu silnika.
Liczba obrotów Zliczanie pełnych obrotów albo odczyt wartości wieloobrotowej Pozwala śledzić pozycję mechanizmu w zakresie większym niż 360°. Położenie śruby napędowej osi liniowej.
Przebyta droga Przeliczenie obrotu koła z uwzględnieniem jego obwodu Stanowi podstawę odometrii kołowej robota mobilnego. Oszacowanie drogi przejechanej przez robota AMR.
Przyspieszenie Zmiana obliczonej prędkości w czasie Może wspierać diagnostykę ruchu i kontrolę jego dynamiki. Wykrycie gwałtownego rozpędzania lub hamowania osi.

Nie każdy enkoder przekazuje wszystkie wymienione wartości jako gotowe dane. Prosty enkoder inkrementalny może generować jedynie impulsy A i B, a pozostałe wielkości oblicza sterownik. Zaawansowane enkodery cyfrowe mogą natomiast udostępniać bezpośrednio pozycję oraz przetworzone informacje o prędkości, liczbie obrotów lub stanie urządzenia

Dokładność obliczeń zależy nie tylko od samego enkodera, lecz także od rozdzielczości pomiaru, częstotliwości odczytu, precyzji znacznika czasu oraz parametrów mechanicznych układu. W robocie mobilnym dodatkowy błąd może powstać na przykład wtedy, gdy koło obraca się, ale ślizga po podłożu.

Enkoder inkrementalny i absolutny – czym się różnią?

Podstawowy podział enkoderów wynika ze sposobu przedstawiania pozycji. Enkoder inkrementalny generuje impulsy informujące o zmianie położenia, natomiast enkoder absolutny przypisuje określonemu położeniu jednoznaczną wartość cyfrową.

W systemie inkrementalnym sterownik musi zliczać impulsy od wcześniej ustalonego punktu odniesienia. Po wyłączeniu zasilania licznik pozycji może zostać utracony, dlatego po ponownym uruchomieniu maszyna lub robot często wykonuje procedurę bazowania. Może ona polegać na dojechaniu do czujnika krańcowego albo odnalezieniu znacznika referencyjnego enkodera.

Enkoder absolutny pozwala odczytać bieżące położenie bez wcześniejszego zliczania ruchu od pozycji początkowej. Każdemu położeniu w obsługiwanym zakresie odpowiada odrębny kod. Dzięki temu sterownik może poznać pozycję osi od razu po uruchomieniu systemu, bez wykonywania pełnej procedury bazowania

Nie oznacza to, że enkoder absolutny jest zawsze dokładniejszy od inkrementalnego. Dokładność, rozdzielczość i powtarzalność zależą od konkretnej konstrukcji, podziałki pomiarowej, sposobu odczytu, elektroniki oraz montażu. Enkodery inkrementalne mogą zapewniać bardzo dużą rozdzielczość i są powszechnie stosowane w precyzyjnych układach sterowania ruchem.

Porównanie enkodera inkrementalnego i absolutnego

Cecha Enkoder inkrementalny Enkoder absolutny
Sposób przekazywania pozycji Generuje impulsy odpowiadające zmianie położenia. Przekazuje kod odpowiadający aktualnej pozycji.
Rodzaj informacji Pozycja względna względem przyjętego punktu odniesienia. Pozycja bezwzględna w obsługiwanym zakresie pomiarowym.
Zachowanie po włączeniu zasilania Sterownik może nie znać rzeczywistej pozycji osi, dopóki nie zostanie wykonane bazowanie lub odtworzony zapisany licznik. Aktualna pozycja może zostać odczytana bez wcześniejszego ruchu referencyjnego.
Określanie kierunku Na podstawie kolejności zmian kanałów A i B. Na podstawie wzrostu lub spadku wartości pozycji.
Znacznik referencyjny Może posiadać kanał Z generujący impuls raz na obrót. Nie jest wymagany do odczytu pozycji bezwzględnej.
Złożoność układu Zazwyczaj prostsza elektronika i mniejsza ilość przesyłanych danych. Bardziej rozbudowane kodowanie pozycji oraz często cyfrowy interfejs komunikacyjny.
Typowe zastosowania Pomiar prędkości silnika, obrotu kół, przesunięcia osi i względnej zmiany pozycji. Przeguby robotów, osie wymagające natychmiastowej znajomości pozycji oraz mechanizmy, których nie można bezpiecznie bazować.
Główna zaleta Prosta konstrukcja, szybki sygnał i możliwość uzyskania wysokiej rozdzielczości. Znajomość położenia od razu po uruchomieniu systemu.
Główne ograniczenie Utrata licznika lub pominięcie impulsów może spowodować błędne oszacowanie pozycji. Większa złożoność oraz zwykle wyższy koszt urządzenia i integracji.
Enkoder inkrementalny i absolutny – porównanie sposobu działania

Kierunek obrotu enkodera inkrementalnego jest określany na podstawie przesunięcia fazowego sygnałów A i B. W enkoderze absolutnym odpowiada mu wzrost albo spadek wartości kodu pozycji.

Kiedy stosuje się enkoder inkrementalny?

Enkoder inkrementalny jest dobrym rozwiązaniem, gdy układ wymaga szybkiej informacji o zmianie pozycji lub prędkości, a wykonanie procedury bazowania po uruchomieniu nie stanowi problemu. Może być stosowany między innymi w napędach kół, silnikach, przenośnikach, osiach liniowych i prostych serwomechanizmach.

Jego zaletą jest stosunkowo prosty sposób działania. Sterownik zlicza impulsy i na tej podstawie oblicza przemieszczenie. Należy jednak zapewnić niezawodny odczyt sygnałów, ponieważ pominięcie impulsu, zakłócenie elektryczne albo utrata licznika może prowadzić do błędu pozycji.

Kiedy stosuje się enkoder absolutny?

Enkoder absolutny jest szczególnie przydatny wtedy, gdy sterownik musi znać pozycję mechanizmu natychmiast po włączeniu zasilania. Ma to znaczenie w robotach, których kończyny, ramiona lub narzędzia mogą po wyłączeniu pozostać w dowolnym położeniu.

Odczyt pozycji absolutnej ogranicza potrzebę wykonywania ruchu referencyjnego, co może skrócić czas uruchamiania i zwiększyć bezpieczeństwo. Jest to ważne między innymi w przegubach robotów humanoidalnych, manipulatorach, chwytakach oraz osiach pracujących blisko przeszkód lub ograniczeń mechanicznych. Enkodery absolutne są stosowane tam, gdzie po przerwie zasilania system powinien szybko odzyskać informację o położeniu osi.

Enkoder jednoobrotowy i wieloobrotowy – na czym polega różnica?

Podział na enkodery jednoobrotowe i wieloobrotowe dotyczy przede wszystkim enkoderów absolutnych. Enkoder jednoobrotowy, określany również jako single-turn, przekazuje jednoznaczną pozycję kątową wału w zakresie jednego pełnego obrotu, czyli od 0° do 360°. Po wykonaniu kolejnego obrotu wartość pozycji ponownie przechodzi przez ten sam zakres.

Enkoder wieloobrotowy, czyli multi-turn, oprócz położenia kątowego w obrębie jednego obrotu rejestruje także liczbę wykonanych pełnych obrotów. Dzięki temu może rozróżnić identyczne ustawienie kątowe wału występujące po pierwszym, drugim albo kolejnym obrocie. Przykładowe enkodery wieloobrotowe HEIDENHAIN zapisują pozycję w zakresie do 4096 obrotów, a wybrane konstrukcje z buforowanym licznikiem obsługują do 65 536 obrotów.

Różnicę można zobrazować na przykładzie wału ustawionego pod kątem 90°. Enkoder jednoobrotowy wskaże 90° niezależnie od tego, ile pełnych obrotów wykonano wcześniej. Enkoder wieloobrotowy może natomiast przekazać informację, że wał znajduje się pod kątem 90° po wykonaniu na przykład pięciu pełnych obrotów.

Taka informacja jest ważna w mechanizmach, których zakres ruchu przekracza 360°. Dotyczy to między innymi śrub napędowych osi liniowych, kolumn podnoszących, zwijadeł, napędów linowych oraz przekładni, w których wiele obrotów silnika odpowiada niewielkiemu przesunięciu elementu robota.

Porównanie enkodera jednoobrotowego i wieloobrotowego

Cecha Enkoder jednoobrotowy Enkoder wieloobrotowy
Zakres informacji Określa pozycję kątową w obrębie jednego pełnego obrotu. Określa pozycję kątową oraz liczbę wykonanych pełnych obrotów.
Zakres podstawowy Od 0° do 360°, po czym wartość pozycji zaczyna się ponownie. Wiele kolejnych obrotów, zależnie od rozdzielczości licznika.
Pozycja po pięciu obrotach i dodatkowych 90° Przekazuje pozycję 90°. Przekazuje informację o pięciu pełnych obrotach oraz pozycji 90°.
Typowe zastosowanie Przegub lub wał wykonujący ruch w zakresie jednego obrotu. Śruba napędowa, wciągarka, kolumna podnosząca lub mechanizm wykonujący wiele obrotów.
Złożoność Prostszy pomiar pozycji absolutnej. Wymaga dodatkowego sposobu zliczania i zapamiętywania pełnych obrotów.
Główna zaleta Jednoznaczna pozycja w zakresie 360°. Jednoznaczna pozycja mechanizmu w zakresie przekraczającym 360°.

Jak enkoder wieloobrotowy zapamiętuje liczbę obrotów?

Sposób rejestrowania liczby obrotów zależy od konstrukcji enkodera. Niektóre urządzenia wykorzystują mechaniczny układ przekładni i dodatkowych tarcz kodowych. Inne stosują elektroniczny licznik obrotów, pamięć nieulotną, zasilanie buforowe albo układ pozyskujący niewielką ilość energii z ruchu wału.

Przy wyborze enkodera należy dokładnie sprawdzić, czy licznik wieloobrotowy zachowuje pozycję po zaniku głównego zasilania i czy wymaga baterii. Przykładowo wybrane enkodery HEIDENHAIN wykorzystują licznik obrotów podtrzymywany baterią, natomiast inne modele oferują funkcję wieloobrotową w określonym zakresie bez takiej samej konstrukcji zasilania buforowego.

Czy każdy przegub robota potrzebuje enkodera wieloobrotowego?

Nie. Wiele przegubów robotów pracuje w ograniczonym zakresie, na przykład od −120° do +120°. W takim przypadku wystarczający może być enkoder absolutny jednoobrotowy, ponieważ cały dopuszczalny ruch mieści się w obrębie jednego obrotu.

Enkoder wieloobrotowy jest potrzebny wtedy, gdy wał lub mechanizm może wykonać więcej niż jeden pełny obrót, a system musi rozróżniać wszystkie te położenia. Decyzja powinna więc wynikać z rzeczywistego zakresu ruchu osi, przełożenia, sposobu bazowania oraz wymagań bezpieczeństwa.

Enkodery optyczne, magnetyczne, indukcyjne i pojemnościowe

Enkodery można podzielić także według zjawiska fizycznego wykorzystywanego do odczytu położenia. W robotyce najczęściej spotyka się konstrukcje optyczne i magnetyczne, natomiast w zastosowaniach wymagających szczególnej odporności, niewielkich wymiarów albo nietypowej geometrii wykorzystuje się również enkodery indukcyjne i pojemnościowe.

Technologia odczytu nie określa automatycznie, czy enkoder jest inkrementalny, czy absolutny. Przykładowo zarówno enkoder optyczny, jak i magnetyczny może generować impulsy inkrementalne albo przekazywać cyfrową wartość pozycji absolutnej. O właściwościach urządzenia decydują wspólnie: sposób detekcji, konstrukcja podziałki, elektronika oraz interfejs wyjściowy.

Nie istnieje jedna technologia najlepsza do każdego robota. Wybór zależy między innymi od wymaganej dokładności, rozdzielczości, dostępnego miejsca, temperatury, drgań, zapylenia, wilgotności, obecności pól magnetycznych oraz dopuszczalnego kosztu układu.

Enkodery optyczne wykorzystują źródło światła, podziałkę i fotodetektor. Czujniki magnetyczne mogą określać kąt obrotu magnesu za pomocą elementów Halla i cyfrowego przetwarzania sygnału. Enkodery indukcyjne wykorzystują sprzężenie elektromagnetyczne, natomiast pojemnościowe wykrywają zmiany pojemności elektrycznej pomiędzy elementami pomiarowymi.

Porównanie technologii stosowanych w enkoderach

Technologia Zasada odczytu Najważniejsze zalety Ograniczenia i wymagania Przykładowe zastosowania
Optyczna Światło przechodzi przez podziałkę albo odbija się od jej pól, a fotodetektor rejestruje zmiany sygnału. Możliwość uzyskania bardzo dużej rozdzielczości, dokładności i powtarzalności pomiaru. Wymaga odpowiedniego ustawienia głowicy i skali. Odporność na zabrudzenia zależy od konstrukcji oraz zastosowanego układu optycznego. Precyzyjne manipulatory, osie liniowe, roboty laboratoryjne i systemy wymagające dokładnego pozycjonowania.
Magnetyczna Czujnik wykrywa zmianę pola magnesu obracającego się razem z wałem. Bezkontaktowa praca, niewielkie wymiary i dobra odporność na kurz, olej oraz typowe zabrudzenia mechaniczne. Wynik zależy od właściwego doboru, odległości i osiowania magnesu. Trzeba również uwzględnić możliwe zewnętrzne pola magnetyczne. Silniki, serwomechanizmy, przeguby robotów, koła i kompaktowe napędy.
Indukcyjna Położenie jest określane na podstawie zmian sprzężenia elektromagnetycznego pomiędzy ścieżkami nadawczymi, odbiorczymi i ruchomym elementem. Bezkontaktowy pomiar, brak toru optycznego oraz możliwość pracy w wymagających warunkach środowiskowych. Wymaga właściwej geometrii elementów, odpowiedniej elektroniki i uwzględnienia otoczenia elektromagnetycznego. Duże przeguby, roboty przemysłowe, urządzenia terenowe i mechanizmy o dużym otworze przelotowym.
Pojemnościowa Elektronika wykrywa zmianę pojemności pomiędzy nieruchomymi i obracającymi się wzorami przewodzącymi. Kompaktowa konstrukcja, możliwość programowania rozdzielczości oraz mniejsza zależność od zabrudzeń optycznych i pól magnetycznych. Wymaga prawidłowego montażu, ekranowania i zachowania parametrów geometrycznych określonych przez producenta. Kompaktowe silniki, drukarki 3D, roboty mobilne i modułowe układy napędowe.

Jak działa enkoder optyczny?

Enkoder optyczny wykorzystuje źródło światła, podziałkę pomiarową oraz fotodetektor. Podziałka może znajdować się na tarczy obracającej się razem z wałem albo na liniowej skali poruszającej się względem głowicy odczytowej. Zmieniające się jasne i ciemne pola tworzą sygnał odpowiadający kolejnym położeniom mechanizmu.

W enkoderze inkrementalnym układ optyczny generuje okresowe sygnały, które mogą być interpolowane w celu uzyskania większej liczby pozycji pomiarowych. Enkoder absolutny wykorzystuje natomiast odpowiednio zakodowaną podziałkę, umożliwiającą rozpoznanie konkretnego położenia.

Technologia optyczna jest stosowana tam, gdzie szczególnie ważne są dokładność, mały błąd położenia i wysoka rozdzielczość. Trzeba jednak przestrzegać tolerancji montażowych dotyczących odległości, kąta i ustawienia głowicy względem skali. Nowoczesne systemy mogą wykorzystywać układy filtrujące, które ograniczają wpływ lokalnych zabrudzeń i niedoskonałości podziałki.

Jak działa enkoder magnetyczny?

W typowym enkoderze magnetycznym na wale umieszcza się magnes, którego pole zmienia kierunek wraz z obrotem mechanizmu. Czujniki Halla albo elementy magnetorezystancyjne mierzą składowe tego pola, a elektronika oblicza na ich podstawie kąt.

Konstrukcja nie wymaga mechanicznego kontaktu pomiędzy magnesem i układem odczytowym. Pozwala to budować niewielkie enkodery montowane bezpośrednio w silniku, przekładni albo przegubie robota. Są one zwykle mniej podatne na kurz, olej i zabrudzenia niż podstawowe układy optyczne.

Dokładność zależy jednak od właściwego ustawienia osi magnesu względem czujnika, odległości pomiędzy elementami oraz odpowiedniej wartości pola. Zewnętrzne magnesy, przewody dużego prądu i elementy ferromagnetyczne mogą wpływać na wynik, dlatego konstrukcja urządzenia powinna uwzględniać otoczenie magnetyczne. Niektóre nowoczesne układy stosują kompensację i diagnostykę poziomu pola.

Jak działa enkoder indukcyjny?

Enkoder indukcyjny wykorzystuje zjawisko indukcji elektromagnetycznej. W jednej z konstrukcji ścieżka nadawcza umieszczona na płytce jest zasilana sygnałem zmiennym i wytwarza pole elektromagnetyczne. Ruchomy element wpływa na sprzężenie tego pola ze ścieżkami odbiorczymi.

Odpowiednio ukształtowane tory odbiorcze mogą generować sygnały sinus i cosinus zależne od położenia. Elektronika przetwarza je następnie na wartość kąta lub sygnały inkrementalne. Zasada działania jest zbliżona do resolvera, ale zamiast klasycznych uzwojeń mogą być wykorzystywane ścieżki wykonane na płytce drukowanej.

Brak elementów optycznych sprawia, że enkodery indukcyjne mogą być stosowane w środowiskach, w których występują kurz, wilgoć, drgania albo duże zmiany temperatury. Można je również wykonywać w formie pierścieni z dużym otworem centralnym, co ułatwia prowadzenie przewodów przez środek przegubu robota.

Jak działa enkoder pojemnościowy?

Enkoder pojemnościowy wykorzystuje układ przewodzących wzorów znajdujących się na nieruchomych i ruchomych elementach. Obrót wału powoduje zmianę ich wzajemnego położenia, a tym samym zmianę mierzonej pojemności elektrycznej. Elektronika przetwarza tę zmianę na informację o pozycji.

Technologia nie wymaga źródła światła ani magnesu. Dzięki temu może być wykorzystywana w niewielkich, modułowych enkoderach montowanych na silnikach i kompaktowych napędach robotycznych. W wybranych konstrukcjach rozdzielczość, kierunek zliczania lub pozycję zerową można konfigurować elektronicznie.

Enkodery pojemnościowe są mniej zależne od zabrudzeń zasłaniających tor światła i nie reagują na pola magnetyczne w taki sam sposób jak czujniki magnetyczne. Nadal wymagają jednak prawidłowego osiowania, zachowania dopuszczalnych odległości montażowych i odpowiedniej ochrony elektroniki.

Która technologia enkodera jest najlepsza do robota?

W robotach wymagających bardzo wysokiej dokładności i powtarzalności często stosuje się enkodery optyczne. W kompaktowych silnikach, napędach kół i przegubach popularne są konstrukcje magnetyczne. Enkodery indukcyjne sprawdzają się w wymagającym środowisku i przy nietypowej geometrii, natomiast pojemnościowe mogą być dobrym rozwiązaniem w modułowych i niewielkich układach napędowych.

Ostateczna decyzja nie powinna opierać się wyłącznie na nazwie technologii. Trzeba porównać parametry konkretnego modelu: dokładność, rozdzielczość, powtarzalność, opóźnienie, maksymalną prędkość, temperaturę pracy, tolerancje montażowe, interfejs komunikacyjny i odporność środowiskową.

Jak działają kanały A, B i Z w enkoderze inkrementalnym?

Enkoder inkrementalny może udostępniać jeden, dwa albo trzy podstawowe kanały wyjściowe. Najprostsza wersja generuje tylko sygnał A, który pozwala zliczać zmianę położenia i obliczać prędkość. Dodanie kanału B umożliwia określenie kierunku ruchu, natomiast kanał Z może służyć jako powtarzalny znacznik pozycji referencyjnej.

Kanały A i B mają postać okresowych sygnałów prostokątnych przesuniętych względem siebie w fazie. W typowym enkoderze kwadraturowym przesunięcie wynosi około jednej czwartej okresu, czyli 90° fazy elektrycznej. Sterownik obserwuje kolejność zmian obu sygnałów i na tej podstawie rozpoznaje kierunek obrotu wału.

Jeżeli kanał A wyprzedza kanał B, licznik może zwiększać wartość pozycji. Po odwróceniu kierunku ruchu kanał B zaczyna wyprzedzać kanał A i licznik zmniejsza wartość. Przypisanie wzrostu licznika do obrotu zgodnego albo przeciwnego do ruchu wskazówek zegara zależy jednak od sposobu montażu, okablowania i konfiguracji sterownika.

Kanał Z, nazywany również indeksem, znacznikiem lub impulsem zerowym, pojawia się zazwyczaj raz podczas pełnego obrotu enkodera. Może być wykorzystywany do wyznaczenia powtarzalnego punktu odniesienia, kontroli poprawności zliczania lub przeprowadzenia dokładniejszego bazowania osi. Oficjalna dokumentacja OMRON opisuje kanały A i B jako źródło informacji o kierunku, a fazę Z jako sygnał generowany raz na obrót, który może wyznaczać punkt początkowy w obrębie jednego obrotu.

Funkcje kanałów A, B i Z

Kanał A

Generuje serię impulsów odpowiadających kolejnym zmianom położenia wału albo osi. Może służyć do zliczania przemieszczenia oraz obliczania prędkości.

Sam kanał A nie pozwala jednoznacznie określić kierunku obrotu.

Kanał B

Generuje sygnał o tej samej częstotliwości co kanał A, ale przesunięty względem niego w fazie. Kolejność sygnałów pozwala określić kierunek ruchu.

A wyprzedza B w jednym kierunku, a B wyprzedza A po zmianie kierunku.

Kanał Z

Generuje impuls indeksowy w określonym położeniu wału, zazwyczaj jeden raz podczas pełnego obrotu enkodera.

Służy do bazowania, kontroli pozycji referencyjnej lub synchronizacji licznika.

W skrócie: kanał A informuje o zmianie położenia, kanały A i B razem umożliwiają rozpoznanie kierunku, a kanał Z wskazuje powtarzalny punkt odniesienia.

Jak sterownik rozpoznaje kierunek obrotu?

Sterownik obserwuje stany logiczne kanałów A i B oraz kolejność ich zmian. Podczas ruchu powstaje powtarzalna sekwencja czterech kombinacji stanów. Po odwróceniu kierunku obrotu ta sama sekwencja pojawia się w odwrotnej kolejności.

Dzięki temu licznik może zwiększać pozycję przy ruchu w jednym kierunku i zmniejszać ją przy ruchu przeciwnym. Nie jest potrzebny oddzielny przewód informujący o kierunku — informacja ta wynika z przesunięcia fazowego sygnałów A i B.

Układy licznikowe Rockwell Automation również opisują kierunek zliczania jako wynik relacji fazowej pomiędzy wejściami A i B.

Co oznacza zliczanie X1, X2 i X4?

Sterownik może zliczać różną liczbę zdarzeń występujących w jednym okresie sygnału. W trybie X1 zwykle wykorzystywane jest jedno wybrane zbocze kanału A. W trybie X2 można zliczać oba zbocza tego kanału, a w trybie X4 — zbocza narastające i opadające kanałów A oraz B.

Zliczanie X4 pozwala uzyskać cztery razy więcej stanów pozycji niż liczba pełnych okresów kanału A. Nie oznacza jednak, że mechaniczna dokładność enkodera automatycznie wzrasta czterokrotnie. Zwiększa się przede wszystkim rozdzielczość cyfrowego zliczania, natomiast rzeczywisty błąd nadal zależy od podziałki, jakości sygnału, elektroniki, montażu i mechaniki napędu.

Dokumentacja układów licznikowych Rockwell Automation wskazuje, że w trybie kwadraturowym X4 zliczane są zbocza narastające i opadające obu kanałów A i B.

Czy kanał Z podaje pozycję absolutną?

Nie. Pojedynczy impuls Z wskazuje powtarzalne położenie wału w obrębie jednego obrotu, ale sam nie informuje, ile pełnych obrotów zostało wykonanych. Nie zastępuje więc enkodera absolutnego ani wieloobrotowego.

Po uruchomieniu system może obracać osią do chwili wykrycia kanału Z, a następnie przypisać temu położeniu określoną wartość licznika. Jeżeli wymagane jest ustalenie właściwego obrotu w mechanizmie wieloobrotowym, potrzebny może być dodatkowy czujnik bazowy, ograniczony zakres mechaniczny albo inna informacja referencyjna.

Impuls Z może również służyć do okresowej kontroli licznika. Jeżeli w ustalonej pozycji indeksowej liczba impulsów różni się od wartości oczekiwanej, może to wskazywać na pominięte zbocza, zakłócenia sygnału albo problem mechaniczny.

PPR, CPR i rozdzielczość enkodera – jak interpretować parametry?

Rozdzielczość enkodera określa, jak małą zmianę położenia może rozróżnić układ pomiarowy. W enkoderach inkrementalnych jest ona zwykle opisywana liczbą impulsów, okresów sygnału albo zliczeń przypadających na jeden obrót wału. W enkoderach absolutnych najczęściej podaje się liczbę bitów lub liczbę jednoznacznie rozpoznawanych pozycji.

Oznaczenia PPR i CPR nie są jednak stosowane jednakowo przez wszystkich producentów. PPR może oznaczać pulses per revolution, czyli liczbę impulsów na obrót, natomiast CPR bywa rozwijane jako cycles per revolution albo counts per revolution. Z tego powodu przed wykonaniem obliczeń trzeba sprawdzić definicję zastosowaną w dokumentacji konkretnego enkodera i sterownika.

Firma OMRON definiuje rozdzielczość enkodera inkrementalnego jako liczbę impulsów wyjściowych przypadających na jeden obrót wału. Jednocześnie wskazuje, że odpowiedni układ zliczający może zwiększyć elektryczną rozdzielczość dwu- lub czterokrotnie przez wykorzystanie większej liczby zboczy sygnału.

Jeżeli enkoder generuje 1000 pełnych okresów kanału A podczas jednego obrotu, sterownik pracujący w trybie kwadraturowym X4 może rozpoznać do 4000 kolejnych zliczeń. Kąt przypadający na jedno zliczenie wynosi wtedy:

360° ÷ 4000 = 0,09°

Taki wynik opisuje rozdzielczość zliczania, ale nie gwarantuje dokładności położenia równej 0,09°. Dokładność zależy dodatkowo od błędów podziałki, nierównomierności sygnałów, montażu, bicia wału, luzów mechanicznych i elektroniki odczytowej. Rozdzielczość, dokładność i powtarzalność są odrębnymi parametrami enkodera.

Co oznaczają PPR, CPR i liczba zliczeń?

PPR
Pulses per revolution

Najczęściej oznacza liczbę impulsów albo pełnych okresów sygnału generowanych podczas jednego obrotu wału. Dokładna definicja zależy jednak od producenta.

CPR
Cycles lub counts per revolution

Może oznaczać liczbę cykli sygnału albo końcową liczbę zliczeń na obrót. Wartość nie zawsze jest więc równoważna PPR.

X1–X4
Sposób zliczania zboczy

Określa, czy sterownik wykorzystuje jedno zbocze, dwa zbocza czy wszystkie cztery zbocza kanałów A i B podczas jednego okresu.

Ważne: oznaczenia PPR i CPR nie są całkowicie ujednolicone. Przed doborem sterownika, wykonaniem obliczeń lub konfiguracją oprogramowania należy sprawdzić, czy dokumentacja podaje liczbę okresów, impulsów czy zliczeń po dekodowaniu kwadraturowym.

Jak obliczyć rozdzielczość kątową enkodera?

Rozdzielczość kątową można obliczyć, dzieląc pełny obrót przez liczbę rozpoznawanych pozycji lub zliczeń:

Rozdzielczość kątowa = 360° ÷ liczba zliczeń na obrót

Przykładowo enkoder o rozdzielczości 1024 PPR może zapewnić różną liczbę zliczeń w zależności od sposobu dekodowania:

Tryb zliczania Liczba zliczeń na obrót Rozdzielczość kątowa Wykorzystywane zdarzenia
X1 1024 około 0,3516° Jedno wybrane zbocze kanału A.
X2 2048 około 0,1758° Zbocze narastające i opadające kanału A.
X4 4096 około 0,0879° Zbocza narastające i opadające kanałów A oraz B.

Obliczenia zakładają, że wartość 1024 PPR w dokumentacji oznacza 1024 pełne okresy sygnału na jeden obrót. Jeżeli producent definiuje ten parametr inaczej, końcowa liczba zliczeń również będzie inna. OMRON potwierdza możliwość dwu- i czterokrotnego zwiększenia elektrycznej rozdzielczości przez odpowiednie przetwarzanie sygnałów enkodera.

Większa liczba zliczeń pozwala wykryć mniejszą zmianę pozycji, ale zwiększa również częstotliwość sygnału przy tej samej prędkości obrotowej. Sterownik i wejścia licznikowe muszą być wystarczająco szybkie, aby nie pomijać impulsów.

Jak rozdzielczość wpływa na maksymalną prędkość obrotową?

Im większa liczba impulsów na obrót, tym większa częstotliwość sygnału powstaje przy określonej prędkości wału. Przykładowo enkoder 5000 PPR obracający się z prędkością 3000 obr./min generuje na jednym kanale:

5000 × 3000 ÷ 60 = 250 000 okresów na sekundę

Sterownik, przewody i układ wejściowy muszą obsłużyć taką częstotliwość z odpowiednim zapasem. Przy dekodowaniu X4 liczba przetwarzanych zboczy może wzrosnąć do miliona zdarzeń na sekundę.

Maksymalna dopuszczalna prędkość może być ograniczona zarówno mechanicznie, jak i elektrycznie. OMRON wskazuje, że maksymalna elektryczna prędkość obrotowa zależy od maksymalnej częstotliwości odpowiedzi oraz liczby impulsów przypadających na obrót.

Jak określa się rozdzielczość enkodera absolutnego?

W enkoderze absolutnym rozdzielczość jednoobrotowa jest najczęściej podawana w bitach. Enkoder o rozdzielczości n bitów może teoretycznie rozróżnić:

2ⁿ pozycji podczas jednego obrotu

Przykładowo:

10 bitów to 1024 pozycje na obrót, 12 bitów to 4096 pozycji, 14 bitów to 16 384 pozycje, 16 bitów to 65 536 pozycji.

  • 10 bitów 1024 pozycje
    0,3516° na pozycję
  • 12 bitów 4096 pozycji
    0,0879° na pozycję
  • 14 bitów 16 384 pozycje
    0,0220° na pozycję
  • 16 bitów 65 536 pozycji
    0,0055° na pozycję

W enkoderze wieloobrotowym mogą być osobno podawane bity pozycji w obrębie jednego obrotu oraz bity licznika pełnych obrotów. Przykładowy zapis „16 bitów single-turn + 12 bitów multi-turn” oznacza 65 536 pozycji kątowych na obrót oraz możliwość rozróżnienia 4096 kolejnych obrotów.

Także w tym przypadku duża liczba bitów nie jest równoznaczna z identyczną dokładnością. Enkoder może raportować bardzo małe kroki cyfrowe, ale jego rzeczywisty błąd położenia może być większy od wartości najmłodszego bitu. Dynapar również rozróżnia rozdzielczość podawaną jako PPR dla enkoderów inkrementalnych i jako liczbę bitów dla enkoderów absolutnych.

Jak enkoder mierzy pozycję, prędkość i kierunek ruchu?

Enkoder dostarcza sterownikowi sygnał odpowiadający kolejnym położeniom mechanizmu. Sposób wyznaczania pozycji zależy od rodzaju czujnika. W enkoderze inkrementalnym sterownik zlicza impulsy od przyjętego punktu odniesienia, natomiast enkoder absolutny przekazuje kod odpowiadający aktualnemu położeniu osi.

Prędkość jest najczęściej obliczana na podstawie zmiany pozycji w czasie. Kierunek ruchu wynika natomiast z kolejności sygnałów A i B albo ze wzrostu lub spadku wartości pozycji absolutnej. Enkoder może więc dostarczać podstawowych danych potrzebnych do sterowania położeniem, prędkością i kierunkiem pracy napędu. OMRON opisuje enkodery obrotowe jako czujniki przetwarzające przemieszczenie mechaniczne na sygnały pozwalające wykrywać pozycję i prędkość.

Jak obliczana jest pozycja?

W enkoderze inkrementalnym sterownik zwiększa lub zmniejsza licznik po każdym rozpoznanym zdarzeniu sygnału. Jeżeli jeden pełny obrót odpowiada liczbie N zliczeń, położenie kątowe można obliczyć ze wzoru:

kąt = liczba zliczeń × 360° ÷ N

Przykładowo przy 4096 zliczeniach na obrót wartość 1024 odpowiada obrotowi o:

1024 × 360° ÷ 4096 = 90°

Wartość licznika może być dodatnia lub ujemna, zależnie od kierunku ruchu i przyjętego punktu zerowego. Jeżeli oś wykonuje wiele obrotów, licznik może nadal rosnąć, dzięki czemu system zachowuje informację o całkowitym przemieszczeniu.

Enkoder absolutny przekazuje pozycję jako kod cyfrowy. W wersji jednoobrotowej wartość zwykle powtarza się po przekroczeniu pełnego obrotu, natomiast enkoder wieloobrotowy może dodatkowo informować o liczbie wykonanych obrotów.

Jak obliczana jest prędkość?

Prędkość można wyznaczać dwiema podstawowymi metodami. Pierwsza polega na zliczeniu, ile impulsów pojawiło się w określonym przedziale czasu. Druga wykorzystuje pomiar czasu pomiędzy kolejnymi zboczami sygnału.

Przy szybkich obrotach wygodne jest zliczanie impulsów w krótkim oknie czasowym. Przy bardzo małej prędkości liczba impulsów w takim oknie może być niewielka, dlatego dokładniejszy wynik może dawać pomiar okresu pomiędzy kolejnymi zdarzeniami.

Dla enkodera inkrementalnego prędkość obrotową można obliczyć ze wzoru:

prędkość [obr./min] = liczba zliczeń × 60 ÷ (liczba zliczeń na obrót × czas pomiaru [s])

Jeżeli sterownik odczyta 400 zliczeń w czasie 0,1 sekundy, a enkoder zapewnia 4000 zliczeń na obrót, prędkość wynosi:

400 × 60 ÷ (4000 × 0,1) = 60 obr./min

Częstotliwość impulsów enkodera jest bezpośrednio związana z prędkością ruchu, a zmianę pozycji można wykorzystać również do obliczenia prędkości i przyspieszenia.

Jak określany jest kierunek ruchu?

W enkoderze kwadraturowym kierunek wynika z relacji fazowej kanałów A i B. Jeżeli w danej konfiguracji kanał A zmienia stan przed kanałem B, licznik zwiększa wartość. Po odwróceniu ruchu kolejność sygnałów zmienia się i licznik zaczyna ją zmniejszać.

To, który kierunek zostanie uznany za dodatni, zależy od montażu enkodera, okablowania i ustawień sterownika. W razie potrzeby kierunek można odwrócić programowo albo przez zamianę kanałów A i B. Moduły licznikowe Rockwell Automation również wykorzystują relację fazową tych kanałów do ustalania kierunku zliczania.

W enkoderze absolutnym kierunek można określić przez porównanie kolejnych wartości pozycji. Jeżeli kod rośnie, mechanizm porusza się w jednym kierunku, a jeżeli maleje — w przeciwnym. Trzeba przy tym uwzględnić przejście wartości przez granicę pełnego obrotu, na przykład z 4095 do 0.

Pozycja, prędkość i kierunek – przebieg obliczeń

Od sygnału enkodera do informacji o ruchu
1
Odczyt sygnału Sterownik rejestruje impulsy A i B albo cyfrową wartość pozycji absolutnej.
2
Wyznaczenie kierunku Relacja fazowa kanałów lub zmiana kodu określa znak ruchu.
3
Obliczenie pozycji Liczba zliczeń jest przeliczana na kąt, obrót albo przesunięcie liniowe.
4
Obliczenie prędkości Zmiana pozycji lub czas pomiędzy impulsami pozwala wyznaczyć prędkość ruchu.
Wynik może być następnie wykorzystany w regulatorze silnika, odometrii robota, synchronizacji osi oraz diagnostyce napędu.

Dlaczego pozycja enkodera nie zawsze odpowiada pozycji przegubu?

Jeżeli enkoder znajduje się na wale silnika przed przekładnią, jego pomiar opisuje przede wszystkim pozycję wirnika. Położenie wyjścia przekładni jest wtedy obliczane z uwzględnieniem przełożenia.

Rzeczywista pozycja przegubu może jednak różnić się od wartości obliczonej z powodu luzu przekładni, jej sprężystości, odkształcenia konstrukcji albo poślizgu sprzęgła. Z tego powodu precyzyjne przeguby mogą wykorzystywać dwa czujniki:

enkoder silnika do szybkiej regulacji napędu,

dodatkowy enkoder na wyjściu przekładni do pomiaru rzeczywistego położenia przegubu.

Taki układ pozwala lepiej wykrywać luzy, ugięcie i różnicę pomiędzy ruchem silnika a ruchem elementu robota. Do rozmieszczenia enkoderów wrócimy w następnej części.

Gdzie montuje się enkodery w robocie?

Miejsce montażu enkodera decyduje o tym, który element mechanizmu jest rzeczywiście mierzony. Czujnik może obserwować wał silnika, wyjście przekładni, oś przegubu, koło robota, ruchomy wózek albo bezpośrednio przemieszczany element.

Enkoder zamontowany na silniku zapewnia szybkie dane potrzebne do regulacji napędu, ale nie zawsze odzwierciedla dokładną pozycję elementu znajdującego się za przekładnią. Luzy, sprężystość i błędy przekładni mogą powodować różnicę pomiędzy położeniem wirnika a rzeczywistym ustawieniem przegubu lub obciążenia.

Z kolei enkoder umieszczony bezpośrednio przy przegubie albo na wyjściu przekładni mierzy pozycję bliższą rzeczywistemu ruchowi robota. W zaawansowanych konstrukcjach stosuje się oba pomiary jednocześnie: enkoder silnika wspiera szybką regulację, a drugi enkoder kontroluje rzeczywiste położenie osi. Takie rozwiązania są wykorzystywane między innymi w precyzyjnych przegubach robotycznych.

Typowe miejsca montażu enkoderów

Miejsce montażu Co mierzy enkoder? Najważniejsza zaleta Ograniczenie Przykład zastosowania
Wał silnika Pozycję i prędkość wirnika albo wału napędowego. Szybki sygnał sprzężenia zwrotnego do sterowania silnikiem. Nie mierzy bezpośrednio błędów i luzów powstających za przekładnią. Serwosilnik, napęd koła, kompaktowy moduł przegubowy.
Wyjście przekładni Pozycję wału znajdującego się za przekładnią. Uwzględnia część błędów przekładni i lepiej opisuje ruch wyjściowy. Może wymagać dodatkowego miejsca i bardziej złożonego montażu. Przegub robota humanoidalnego albo manipulatora.
Bezpośrednio na osi przegubu Rzeczywisty kąt pomiędzy członami robota. Pomiar jest blisko wielkości, którą system ma kontrolować. Czujnik musi pasować do geometrii przegubu i jego zakresu ruchu. Ramię, kolano, biodro lub nadgarstek robota.
Koło lub jego wał Obrót i prędkość koła napędowego. Umożliwia obliczanie prędkości i odometrii kołowej. Nie wykrywa bezpośrednio poślizgu koła względem podłoża. Robot mobilny AMR, AGV albo platforma różnicowa.
Oś liniowa lub wózek Bezpośrednie przesunięcie ruchomego elementu względem skali. Ogranicza wpływ luzu śruby, sprzęgła i przekładni na wynik. Wymaga miejsca na skalę oraz zachowania tolerancji montażowych. Robot kartezjański, podnośnik, wysuwany maszt lub prowadnica.
Chwytak lub narzędzie Pozycję szczęk, wału narzędzia albo mechanizmu wykonawczego. Pozwala kontrolować ruch bezpośrednio w miejscu wykonywania zadania. Przewody i czujnik muszą poruszać się razem z końcówką robota. Chwytak równoległy, obrotowe narzędzie lub podajnik.

Enkoder na wale silnika

Enkoder silnikowy jest montowany bezpośrednio na wale silnika albo zintegrowany z jego obudową. Dostarcza szybkiej informacji o pozycji i prędkości wirnika, dzięki czemu sterownik może regulować prąd, moment, prędkość oraz położenie napędu.

Takie umiejscowienie jest korzystne dla szybkiej pętli sterowania, ponieważ czujnik obserwuje ruch bezpośrednio przy źródle napędu. Firma maxon wskazuje enkoder sztywno zamontowany na wale silnika jako zalecane sprzężenie zwrotne w regulacji prędkości i położenia.

Jeżeli pomiędzy silnikiem a przegubem znajduje się przekładnia, pozycję wyjściową oblicza się na podstawie przełożenia. Wynik nie uwzględnia jednak w pełni luzu, sprężystości, zużycia i pozostałych błędów mechanicznych powstających za enkoderem.

Enkoder na wyjściu przekładni lub osi przegubu

Enkoder znajdujący się za przekładnią mierzy pozycję bliższą rzeczywistemu ustawieniu przegubu. Dzięki temu system może wykrywać różnice, których nie widać w pomiarze wału silnika, między innymi wynikające z luzu, ugięcia i błędu przekładni.

Tak zwany enkoder wtórny może zostać zamontowany na wyjściowym wale przekładni, pierścieniu przegubu albo bezpośrednio na jego osi. HEIDENHAIN opisuje takie rozwiązanie jako sposób pomiaru rzeczywistej pozycji przegubu robota za układem przekładniowym.

Taki pomiar jest szczególnie ważny w robotach wykonujących precyzyjne ruchy końcówką roboczą. Nawet niewielki błąd pojedynczego przegubu może po zsumowaniu w całym łańcuchu kinematycznym spowodować większe odchylenie pozycji chwytaka.

Podwójne sprzężenie zwrotne

Zaawansowany napęd może wykorzystywać dwa enkodery. Pierwszy znajduje się na wale silnika, a drugi na wyjściu przekładni albo bezpośrednio przy obciążeniu. Układ taki jest określany jako podwójne sprzężenie zwrotne lub sterowanie dual-loop.

Enkoder silnika dostarcza szybkich danych potrzebnych do stabilnej regulacji napędu. Drugi czujnik mierzy rzeczywiste położenie przegubu lub przesuwanego elementu i umożliwia korygowanie różnicy powstającej w przekładni oraz konstrukcji mechanicznej.

Rozwiązania tego typu mogą łączyć pomiar wału silnika i wyjścia przekładni w jednym module albo wykorzystywać dwa oddzielne czujniki. Oficjalne materiały HEIDENHAIN i maxon wskazują takie układy jako sposób na pomiar położenia zarówno po stronie silnika, jak i bezpośrednio przy przemieszczanym obciążeniu.

Enkodery kół robota mobilnego

W robocie mobilnym enkodery są zwykle połączone z silnikami napędowymi albo wałami kół. Zmierzony obrót jest przeliczany na prędkość koła i przebytą drogę z uwzględnieniem jego promienia lub obwodu.

Porównanie ruchu lewego i prawego koła umożliwia oszacowanie zmiany pozycji oraz kierunku jazdy platformy różnicowej. W ROS 2 kontroler diff_drive_controller może wykorzystywać informacje zwrotne o pozycji lub prędkości przegubów kół i na ich podstawie obliczać odometrię robota.

Pomiar enkodera informuje jednak o obrocie koła, a nie o jego rzeczywistym przesunięciu względem podłoża. Gdy koło ślizga się, obraca w miejscu albo traci kontakt z powierzchnią, odometria może wskazywać ruch, który nie został w pełni wykonany. Dlatego dane kół są często łączone z IMU, kamerą, w tym kamerą 3D, LiDAR-em lub innym źródłem lokalizacji.

Enkoder liniowy na prowadnicy

W osi liniowej można mierzyć obrót silnika lub śruby napędowej, ale można też umieścić skalę bezpośrednio wzdłuż prowadnicy. Głowica enkodera odczytuje wtedy rzeczywiste przesunięcie wózka, ramienia albo stołu roboczego.

Bezpośredni pomiar liniowy ogranicza wpływ luzu śruby, odkształceń sprzęgła i błędów przekładni pomiędzy silnikiem a przemieszczanym elementem. Enkodery liniowe składają się z głowicy odczytowej i dokładnie oznaczonej skali, względem której określana jest pozycja.

Enkodery w robotach mobilnych, humanoidalnych, czworonożnych i manipulatorach

Funkcja enkodera zależy od konstrukcji robota i miejsca montażu czujnika. W platformie mobilnej najważniejszy jest zwykle pomiar obrotu kół, natomiast w robocie humanoidalnym, czworonożnym lub manipulatorze enkodery kontrolują położenie wielu przegubów.

Dane z enkoderów są wykorzystywane zarówno w szybkich pętlach regulacji pojedynczych silników, jak i w algorytmach sterujących ruchem całego robota. Pozwalają obliczać pozycję kończyn, synchronizować osie, realizować zaplanowane trajektorie oraz sprawdzać, czy mechanizm rzeczywiście osiągnął zadane położenie.

Sam enkoder nie informuje jednak, czy koło ślizga się po podłożu, stopa robota rzeczywiście opiera się na powierzchni albo narzędzie odkształciło się pod obciążeniem. Dlatego jego pomiary są często łączone z IMU, czujnikami siły, kamerami, LiDAR-em i innymi źródłami informacji o stanie robota.

Porównanie zastosowań enkoderów w różnych robotach

Rodzaj robota Co mierzą enkodery? Do czego wykorzystywane są dane? Typowe miejsce montażu Najważniejsze ograniczenie
Robot mobilny Obrót, pozycję i prędkość kół napędowych lub skrętnych. Regulacja jazdy, obliczanie przebytej drogi, kierunku ruchu i odometrii kołowej. Wał silnika, wyjście przekładni albo bezpośrednio oś koła. Obrót koła nie zawsze odpowiada rzeczywistemu przesunięciu robota z powodu poślizgu.
Robot humanoidalny Kąty i prędkości przegubów nóg, ramion, tułowia i głowy. Sterowanie postawą, ruchem kończyn, chodem, równowagą i pozycją całego łańcucha kinematycznego. Silnik przegubu, wyjście przekładni albo bezpośrednio oś stawu. Luz i elastyczność przekładni mogą powodować różnicę pomiędzy pozycją silnika a rzeczywistym ustawieniem kończyny.
Robot czworonożny Położenie i prędkość przegubów bioder, ud oraz dolnych części nóg. Kontrola kroków, ustawienia łap, stabilizacji korpusu i realizacji zaplanowanego chodu. Zintegrowane moduły napędowe poszczególnych przegubów nóg. Enkoder nie określa samodzielnie, czy stopa opiera się na podłożu albo ślizga podczas ruchu.
Manipulator Kąty kolejnych osi obrotowych lub pozycję osi liniowych. Sterowanie trajektorią, wyznaczanie pozycji chwytaka, synchronizacja osi i dokładne pozycjonowanie. Wały silników, wyjścia przekładni oraz bezpośrednio osie przegubów. Niewielkie błędy wielu osi mogą się sumować i zwiększać odchylenie końcówki roboczej.
Chwytak i narzędzie Pozycję szczęk, palców, mechanizmu obrotowego lub osi narzędzia. Kontrola otwarcia, zamknięcia, prędkości ruchu i położenia elementu wykonawczego. Silnik chwytaka, przekładnia albo bezpośrednio ruchoma szczęka. Pozycja napędu nie zawsze informuje o sile chwytu ani o rzeczywistym kontakcie z przedmiotem.

W robotach kołowych odometria może być obliczana na podstawie sprzężenia zwrotnego z przegubów kół. Oficjalny kontroler diff_drive_controller w ROS 2 oblicza odometrię z danych sprzętowych, o ile nie pracuje w trybie otwartym opartym wyłącznie na wartościach zadanych.

Enkodery w robotach mobilnych

W robocie mobilnym enkodery mierzą najczęściej obrót kół napędowych. Znając liczbę zliczeń, przełożenie napędu oraz obwód koła, sterownik może oszacować jego prędkość i przebytą drogę.

W platformie z napędem różnicowym porównuje się ruch kół znajdujących się po lewej i prawej stronie. Jeżeli oba pokonują podobną drogę, robot porusza się w przybliżeniu prosto. Różnica pomiędzy ich ruchem powoduje zmianę orientacji platformy.

Enkodery mogą również występować w kołach skrętnych platform typu swerve, w układach Ackermanna albo w kołach pomiarowych niezależnych od napędu. W takich konstrukcjach trzeba oddzielnie znać położenie kierownicy oraz obrót koła.

Odometria enkoderowa jest jednak obciążona błędem. Koło może ślizgać się podczas przyspieszania, hamowania, skrętu albo jazdy po nierównej powierzchni. Sterownik rejestruje wtedy obrót, mimo że rzeczywiste przesunięcie robota jest mniejsze. Z tego powodu pomiar kół jest często łączony z IMU, LiDAR-em, kamerą albo innym systemem lokalizacji.

Enkodery w robotach humanoidalnych

Robot humanoidalny posiada wiele napędzanych przegubów, których położenie musi być kontrolowane jednocześnie. Enkodery mierzą ustawienie bioder, kolan, kostek, ramion, łokci, nadgarstków, tułowia oraz pozostałych osi.

Znajomość kątów przegubów pozwala obliczyć pozycję poszczególnych segmentów oraz dłoni i stóp względem korpusu. Dane te są potrzebne do realizacji trajektorii, kontrolowania postawy i wykonywania ruchów zgodnych z modelem kinematycznym robota.

Podczas chodzenia same enkodery nie wystarczają do utrzymania równowagi. System musi również wiedzieć, jak porusza się korpus, czy stopa ma kontakt z podłożem i jakie siły działają na kończyny. Dlatego pomiary przegubów są łączone z IMU oraz czujnikami siły, nacisku albo momentu.

W zaawansowanych modułach przegubowych mogą występować dwa enkodery: jeden po stronie wirnika silnika, a drugi po stronie wyjścia przekładni. Oficjalna specyfikacja robota Unitree G1 podaje podwójne enkodery przegubów, a dokumentacja rozwojowa Unitree R1 opisuje podwójne enkodery zapewniające informację zwrotną o położeniu i prędkości.

Enkodery w robotach czworonożnych

W robocie czworonożnym każde ramię nogi składa się z kilku sterowanych przegubów. Enkodery dostarczają informacji o ich aktualnych kątach i prędkościach, co pozwala obliczyć położenie łap względem korpusu.

Podczas ruchu sterownik porównuje pozycje rzeczywiste z trajektoriami zadanymi dla poszczególnych nóg. Na tej podstawie może korygować momenty silników, synchronizować kroki oraz dostosowywać ustawienie kończyn do fazy chodu.

Enkodery nie rozpoznają jednak bezpośrednio kontaktu łapy z podłożem. Gdy stopa uderza w przeszkodę, zapada się w miękką powierzchnię albo ślizga, położenie przegubów może być zgodne z oczekiwaniem, mimo że robot znajduje się w innej sytuacji mechanicznej. Potrzebne są wtedy dodatkowe informacje z IMU, czujników kontaktu, pomiaru momentu lub estymacji sił.

Przykładem wykorzystania podwójnego pomiaru w robocie czworonożnym jest Unitree A2. Producent podaje 12 silników przegubowych oraz podwójne enkodery, które mogą dostarczać dane zarówno do sterowania napędem, jak i dokładniejszej kontroli położenia wyjściowego.

Enkodery w manipulatorach robotycznych

W manipulatorze każdy napędzany przegub posiada własny pomiar położenia. Zestaw kątów wszystkich osi tworzy stan przegubowy robota, na podstawie którego obliczana jest pozycja i orientacja końcówki roboczej.

Jeżeli jedna z osi zostanie ustawiona nieprawidłowo, błąd może wpłynąć na położenie wszystkich dalszych członów. W manipulatorach o dużym zasięgu nawet mała różnica kątowa w przegubie znajdującym się blisko podstawy może spowodować zauważalne przesunięcie chwytaka.

Enkoder na wale silnika wspiera szybką regulację napędu, natomiast dodatkowy czujnik na wyjściu przekładni może poprawić informację o rzeczywistej pozycji osi. Przykładowy moduł przegubowy Unitree IM6014 wykorzystuje enkoder po stronie silnika oraz enkoder po stronie wyjściowej. Producent opisuje je jako dwa absolutne enkodery przeznaczone do wspólnej kontroli położenia.

Dane enkoderów mogą być również wykorzystywane do wykrywania nieprawidłowości. Różnica pomiędzy ruchem zadanym i zmierzonym może wskazywać na zablokowanie osi, przeciążenie, utratę napędu, nadmierny luz albo kolizję mechanizmu.

Enkodery w chwytakach i dłoniach robotycznych

W prostym chwytaku enkoder może mierzyć pozycję silnika sterującego otwarciem szczęk. Na tej podstawie system określa szerokość chwytu i może zatrzymać mechanizm w zadanym położeniu.

W dłoniach robotycznych większa liczba napędzanych palców wymaga monitorowania wielu osi jednocześnie. Pomiar pozycji może być łączony z czujnikami dotykowymi i pomiarem siły, ponieważ samo ustawienie palca nie informuje jeszcze, czy przedmiot został pewnie uchwycony.

Przykładowa dłoń Unitree Dex3-1 posiada siedem napędzanych stopni swobody i wykorzystuje sterowanie hybrydowe pozycją oraz siłą. Producent podaje również zastosowanie czujników dotykowych, dzięki którym system może uzupełniać dane o położeniu informacją o kontakcie z obiektem.

Przykłady wykorzystania enkoderów w konkretnych konstrukcjach

Robot humanoidalny
Unitree G1

Podwójne enkodery przegubów wspierają kontrolę pozycji osi oraz dokładne sterowanie ruchami kończyn robota.

Robot humanoidalny
Unitree R1

Przeguby wykorzystują podwójne enkodery zapewniające informację zwrotną o położeniu i prędkości napędów.

Robot czworonożny
Unitree A2

Dwanaście przegubów napędowych i podwójne enkodery wspierają kontrolę ułożenia nóg oraz dynamicznego ruchu robota.

Konkretna konstrukcja i sposób wykorzystania enkoderów zależą od wersji sprzętowej robota. Przy integracji należy zawsze sprawdzić aktualną dokumentację producenta i dostępne interfejsy programistyczne.

Jak enkodery współpracują z IMU?

Enkodery i IMU mierzą różne aspekty ruchu robota. Enkodery informują o położeniu oraz prędkości kół, wałów i przegubów, natomiast IMU mierzy przyspieszenie właściwe i prędkość kątową korpusu. Wybrane moduły IMU przekazują również obliczoną orientację.

Dzięki połączeniu obu źródeł system może porównywać ruch mechanizmów z ruchem całego robota. Enkodery wskazują na przykład, że koła się obracają albo nogi zmieniają położenie, natomiast IMU pozwala obserwować obrót, przechylenie i dynamikę korpusu.

Pomiary te wzajemnie się uzupełniają. Enkodery zapewniają dokładną informację o ruchu napędów, ale nie wykrywają bezpośrednio poślizgu kół ani zmiany położenia robota spowodowanej zewnętrznym uderzeniem. IMU szybko reaguje na zmianę ruchu korpusu, lecz jego wynik może być obciążony szumem, offsetem i narastającym dryftem. Konwencja ROS REP-145 opisuje dane IMU jako przyspieszenie, prędkość kątową i opcjonalną orientację wyrażone względem układu czujnika.

Połączenie danych nie usuwa automatycznie wszystkich błędów. Wymaga odpowiedniego algorytmu estymacji, prawidłowych układów współrzędnych, synchronizacji czasu oraz informacji o niepewności pomiarów.

Jakie informacje dostarczają enkodery i IMU?

Enkodery
Ruch mechanizmów robota
  • pozycja kół i przegubów,
  • prędkość wałów i osi,
  • kierunek ruchu,
  • liczba obrotów,
  • przybliżona droga kół.
IMU
Ruch korpusu robota
  • przyspieszenie właściwe,
  • prędkość kątowa,
  • przechylenie korpusu,
  • szybkie zmiany orientacji,
  • opcjonalnie orientacja.
Wspólna estymacja
Pełniejsza informacja o ruchu
  • stabilniejsza odometria,
  • wykrywanie rozbieżności pomiarów,
  • kontrola postawy i równowagi,
  • lepsza estymacja prędkości,
  • wsparcie lokalizacji robota.
Enkodery opisują przede wszystkim ruch elementów napędowych, natomiast IMU obserwuje dynamikę korpusu. Połączenie danych pozwala lepiej oszacować rzeczywisty stan robota.

Enkodery i IMU w robocie mobilnym

W robocie kołowym enkodery pozwalają obliczyć drogę pokonaną przez każde koło. Na tej podstawie system wyznacza prędkość liniową, prędkość obrotową oraz przybliżoną zmianę pozycji platformy. Kontroler diff_drive_controller w ROS 2 może obliczać odometrię na podstawie sprzężenia zwrotnego o pozycji lub prędkości przegubów kół i publikować ją jako nav_msgs/msg/Odometry.

Gdy koła obracają się zgodnie z modelem i mają dobrą przyczepność, odometria enkoderowa może poprawnie opisywać krótkotrwały ruch robota. Podczas poślizgu, jazdy po nierówności albo chwilowego oderwania koła od podłoża zmierzony obrót nie odpowiada jednak rzeczywistemu przesunięciu.

IMU dostarcza niezależnej informacji o przyspieszeniu oraz prędkości kątowej korpusu. Może więc wskazywać zmianę obrotu robota nawet wtedy, gdy odometria kół jest obciążona błędem. Z drugiej strony IMU nie zapewnia samodzielnie stabilnej, długoterminowej pozycji, dlatego korzystne jest łączenie obu źródeł.

Wynikiem fuzji może być odometria wykorzystująca szybkie zmiany ruchu z IMU oraz względne przemieszczenie wyznaczone z enkoderów. Wiadomość nav_msgs/msg/Odometry reprezentuje oszacowanie pozycji i prędkości robota w przestrzeni.

Enkodery i IMU w robotach humanoidalnych oraz czworonożnych

W robocie kroczącym enkodery określają kąty przegubów nóg i ramion. Na podstawie tych wartości oraz modelu kinematycznego można obliczyć przewidywane położenie stóp, dłoni i pozostałych segmentów względem korpusu.

IMU mierzy natomiast ruch samego korpusu. Pozwala obserwować jego przechylenie, obrót i gwałtowne zmiany dynamiki. Dzięki temu sterownik może porównywać zaplanowane ustawienie kończyn z rzeczywistym zachowaniem całej konstrukcji.

Jeżeli enkodery wskazują prawidłową realizację trajektorii nóg, ale IMU rejestruje nieoczekiwany przechył, może to oznaczać poślizg stopy, uderzenie w przeszkodę, nierówność podłoża albo utratę równowagi. Samo wykrycie przyczyny wymaga zwykle również danych z czujników siły, momentu lub kontaktu.

Enkodery i IMU pełnią więc odmienne funkcje: pierwsze opisują konfigurację mechaniczną robota, a drugie ruch jego korpusu. Dane IMU w ROS są standaryzowane jako przyspieszenie, prędkość kątowa oraz opcjonalna orientacja, natomiast dane o stanie przegubów mogą być publikowane jako sensor_msgs/msg/JointState.

Fuzja enkoderów i IMU w ROS 2

W ROS 2 dane z enkoderów kół mogą zostać przeliczone na odometrię i opublikowane jako nav_msgs/msg/Odometry. Dane jednostki inercyjnej są zwykle przekazywane jako sensor_msgs/msg/Imu.

Pakiet robot_localization może przyjmować oba rodzaje wiadomości i łączyć wybrane składowe pomiarów za pomocą estymatorów stanu, takich jak rozszerzony lub bezśladowy filtr Kalmana. Pakiet obsługuje między innymi wiadomości nav_msgs/Odometry i sensor_msgs/Imu oraz pozwala określić, które składowe danego czujnika mają zostać wykorzystane.

Przykładowy przepływ danych w ROS 2
Enkodery kół Pozycja i prędkość napędów nav_msgs/msg/Odometry
Moduł IMU Przyspieszenie i prędkość kątowa sensor_msgs/msg/Imu
Estymator stanu Połączona pozycja, orientacja i prędkość robota robot_localization

Estymator nie zastępuje prawidłowej kalibracji czujników. Jakość wyniku zależy od konfiguracji osi, czasu, układów odniesienia i niepewności poszczególnych pomiarów.

Co jest potrzebne do prawidłowego połączenia danych?

  • Poprawne znaczniki czasu umożliwiające porównywanie pomiarów wykonanych w zbliżonym momencie.
  • Prawidłowo zdefiniowane układy współrzędnych enkoderów, korpusu oraz modułu IMU.
  • Zgodne kierunki osi i znaki prędkości, obrotów oraz przemieszczeń.
  • Poprawna średnica kół, ich rozstaw, przełożenie napędu i liczba zliczeń enkodera.
  • Kalibracja offsetu żyroskopu, akcelerometru i położenia IMU względem korpusu.
  • Realistycznie określone kowariancje opisujące niepewność poszczególnych źródeł danych.
  • Częstotliwość publikacji i opóźnienie odpowiednie do dynamiki robota.
  • Testy obejmujące jazdę prostą, skręty, zatrzymania, poślizg oraz gwałtowne zmiany ruchu.

Układ współrzędnych i sposób montażu IMU muszą być opisane względem pozostałych ramek robota. REP-145 wskazuje, że frame_id wiadomości reprezentuje układ czujnika, a jego położenie i orientacja względem na przykład base_link powinny wynikać z konfiguracji transformacji.

Szczegółowe informacje o akcelerometrze, żyroskopie, dryfcie, kalibracji i fuzji sensorów znajdziesz w artykule „Jak działa IMU w robotyce? Akcelerometr, żyroskop i orientacja robota”.

Enkodery a odometria robota – jak obliczana jest przebyta droga?

Odometria jest metodą szacowania zmiany położenia robota na podstawie jego ruchu. W robocie kołowym podstawowym źródłem danych mogą być enkodery mierzące obrót kół. Po przeliczeniu liczby zliczeń na drogę system może oszacować prędkość, kierunek jazdy oraz zmianę pozycji platformy.

Aby wykonać takie obliczenia, sterownik musi znać liczbę zliczeń przypadających na jeden obrót, promień koła oraz przełożenie pomiędzy silnikiem i kołem. W napędzie różnicowym potrzebny jest również efektywny rozstaw kół, ponieważ różnica drogi pokonanej przez lewą i prawą stronę odpowiada za obrót robota.

Kontroler diff_drive_controller w ROS 2 oblicza odometrię na podstawie sprzężenia zwrotnego z napędów kół. Jego konfiguracja uwzględnia między innymi promień kół oraz ich rozstaw, które służą do przeliczania obrotów na ruch liniowy i kątowy platformy.

Odometria enkoderowa opisuje zmianę położenia względem wcześniejszego stanu. Każdy kolejny wynik powstaje przez dodanie nowego, niewielkiego przemieszczenia do pozycji obliczonej wcześniej. Z tego powodu błędy promienia koła, przełożenia, rozstawu kół i poślizgu stopniowo się kumulują.

Enkoder a odometria robota – obliczanie drogi i zmiany orientacji

Jak przeliczyć zliczenia enkodera na drogę koła?

Najpierw trzeba określić liczbę zliczeń przypadających na jeden pełny obrót koła. Wartość ta może zależeć od rozdzielczości enkodera, sposobu dekodowania sygnału oraz przełożenia pomiędzy silnikiem a kołem.

Drogę odpowiadającą jednemu pełnemu obrotowi wyznacza obwód koła.

Obwód koła
C = 2 × π × r
C – obwód koła, π – liczba pi, r – promień koła.

Po określeniu obwodu zmianę zliczeń enkodera można przeliczyć na drogę pokonaną przez koło.

Droga wynikająca z pomiaru enkodera
s = (ΔN ÷ Nobr) × 2 × π × r
s – droga koła, ΔN – zmiana liczby zliczeń, Nobr – liczba zliczeń na jeden obrót koła, r – promień koła.

Jeżeli enkoder znajduje się na wale silnika przed przekładnią, podczas określania liczby zliczeń przypadających na obrót koła trzeba uwzględnić także przełożenie napędu. Przy przełożeniu 10:1 silnik wykonuje dziesięć obrotów, gdy koło wykonuje jeden pełny obrót.

Przykład obliczenia drogi

Przyjmijmy następujące parametry:

Parametr Wartość
Promień koła 0,10 m
Liczba zliczeń na jeden obrót koła 4096
Zarejestrowana zmiana zliczeń 2048
  1. Obliczenie obwodu koła Pełny obrót koła odpowiada drodze równej jego obwodowi. 2 × π × 0,10 m ≈ 0,6283 m
  2. Obliczenie części pełnego obrotu Zarejestrowano 2048 zliczeń z 4096 przypadających na pełny obrót. 2048 ÷ 4096 = 0,5 obrotu
  3. Obliczenie drogi koła Połowę obwodu koła mnożymy przez obliczoną część obrotu. 0,5 × 0,6283 m ≈ 0,3142 m
Przy założeniu toczenia bez poślizgu koło przemieściło się o około 0,314 m, czyli 31,4 cm.

Jak działa odometria robota z napędem różnicowym?

Robot z napędem różnicowym posiada niezależnie sterowane koła albo grupy kół po lewej i prawej stronie. Na podstawie enkoderów system oblicza drogę pokonaną przez każdą stronę napędu.

  • ΔsL – droga pokonana przez lewą stronę napędu.
  • ΔsR – droga pokonana przez prawą stronę napędu.
  • b – efektywny rozstaw pomiędzy lewą i prawą stroną napędu.

Przybliżone przesunięcie środka robota jest średnią drogi lewej i prawej strony.

Przesunięcie środka robota
Δs = (ΔsR + ΔsL) ÷ 2

Zmiana orientacji robota wynika z różnicy dróg obu stron podzielonej przez ich efektywny rozstaw.

Zmiana orientacji robota
Δθ = (ΔsR − ΔsL) ÷ b
Δθ jest wyrażane w radianach, jeżeli wszystkie długości zastosowane we wzorze podano w tych samych jednostkach.
Obliczenia zakładają toczenie kół bez poślizgu oraz poprawnie określony promień i rozstaw kół. W rzeczywistym robocie błędy tych parametrów oraz utrata przyczepności powodują narastanie błędu odometrii.

Jak ruch kół wpływa na ruch robota?

Ruch robota Lewe koło Prawe koło Zmiana pozycji Zmiana orientacji
Jazda prosto Pokonuje taką samą drogę jak prawe koło. Pokonuje taką samą drogę jak lewe koło. Robot przesuwa się do przodu albo do tyłu. W idealnym modelu orientacja się nie zmienia.
Łagodny skręt Pokonuje inną drogę niż prawe koło. Pokonuje inną drogę niż lewe koło. Środek robota porusza się po łuku. Robot obraca się w stronę wolniejszego koła.
Skręt wokół jednego koła Jedno z kół pozostaje nieruchome. Drugie koło wykonuje ruch. Robot porusza się po łuku wokół nieruchomego koła. Orientacja zmienia się podczas całego ruchu.
Obrót w miejscu Obraca się w jednym kierunku. Obraca się z podobną prędkością w kierunku przeciwnym. Środek robota pozostaje w przybliżeniu w tym samym miejscu. Robot zmienia orientację bez planowanego przesunięcia liniowego.
Niespodziewana różnica kół Zmierzona droga różni się od prawej strony. Zmierzona droga różni się od lewej strony. Odometria wskazuje skręt lub łuk. Przyczyną może być rzeczywisty skręt, poślizg albo błąd parametrów.

Jak odometria wyznacza pozycję x, y i orientację?

Po obliczeniu przesunięcia i zmiany orientacji system aktualizuje wcześniejszą pozycję robota. Każdy kolejny pomiar enkoderów tworzy niewielki krok ruchu, który jest dodawany do dotychczasowego oszacowania.

Odometria przechowuje najczęściej:

pozycję x, pozycję y, orientację wokół osi pionowej, prędkość liniową, prędkość kątową

Współrzędne x i y muszą uwzględniać aktualny kierunek robota. Przesunięcie do przodu jest więc przeliczane z lokalnego układu korpusu na układ odometrii.

Wiadomość ROS 2 nav_msgs/msg/Odometry reprezentuje oszacowanie pozycji i prędkości w przestrzeni. W typowej konfiguracji pozycja korpusu jest opisywana względem ramki odom, a ruch robota względem ramki base_link.

Dlaczego odometria enkoderowa stopniowo traci dokładność?

Odometria działa metodą zliczeniową. System nie sprawdza bezpośrednio położenia robota względem ścian, mapy ani innych punktów otoczenia. Każdy błąd zostaje dodany do wcześniejszego wyniku i może narastać wraz z przebytą drogą.

Szczególnie duży wpływ mają skręty. Niewielka pomyłka orientacji zmienia kierunek, w którym odkładane są wszystkie kolejne przesunięcia. Robot może więc prawidłowo oszacować długość przejazdu, ale coraz bardziej mylić się w położeniu x i y.

  • Nieprawidłowy promień koła: powoduje błędne przeliczenie obrotu na przebytą drogę.
  • Różne średnice kół: mogą powodować stopniowe skręcanie odometrii podczas jazdy prosto.
  • Nieprawidłowy rozstaw kół: prowadzi do błędnego obliczania zmiany orientacji podczas skrętu.
  • Poślizg: enkoder rejestruje obrót koła, który nie odpowiada rzeczywistemu przesunięciu względem podłoża.
  • Nierówna lub miękka powierzchnia: zmienia efektywny promień toczenia i przyczepność kół.
  • Luz przekładni: może powodować opóźnienie lub różnicę pomiędzy ruchem silnika i koła.
  • Pominięte impulsy: zakłócenia albo zbyt wolne wejście licznikowe mogą zmienić oszacowaną pozycję koła.
  • Niedokładne znaczniki czasu: wpływają przede wszystkim na obliczenie prędkości i synchronizację z pozostałymi czujnikami.

Kalibracja promienia i rozstawu kół

Parametry geometryczne wpisane do oprogramowania powinny odpowiadać rzeczywistemu zachowaniu robota, a nie tylko wymiarom katalogowym. Efektywny promień toczenia może zmieniać się pod wpływem ugięcia opony, obciążenia, ciśnienia i rodzaju podłoża.

Promień kół można wstępnie sprawdzić podczas przejazdu po prostym odcinku o znanej długości. Jeżeli odometria systematycznie zawyża albo zaniża przebytą drogę, należy skorygować wartość promienia lub odpowiedni mnożnik.

Rozstaw kół można weryfikować podczas kontrolowanego obrotu albo przejazdu po zamkniętej trajektorii. Jeżeli odometria konsekwentnie zawyża lub zaniża kąt skrętu, przyczyną może być nieprawidłowa wartość rozstawu.

Kontroler diff_drive_controller udostępnia parametry promienia i rozstawu kół oraz oddzielne mnożniki korekcyjne dla rozstawu, lewego promienia i prawego promienia. Dokumentacja zaznacza, że błędny promień zmienia skalę ruchu, a błędny rozstaw powoduje nieprawidłowe zachowanie odometrii na zakrętach.

Czy odometria enkoderowa wystarcza do lokalizacji robota?

Odometria enkoderowa jest bardzo przydatna do obserwowania krótkotrwałych zmian ruchu, regulacji jazdy i dostarczania ciągłego oszacowania pozycji pomiędzy kolejnymi aktualizacjami innych systemów.

Nie zapewnia jednak trwałego odniesienia do otoczenia. Poślizg, zderzenie, przestawienie robota albo dłuższy przejazd mogą spowodować, że pozycja odometryczna zacznie różnić się od rzeczywistej.

Dlatego w robotach autonomicznych odometria kół jest zwykle łączona z IMU, kamerą, LiDAR-em, GNSS albo lokalizacją względem mapy. Enkodery zapewniają szybki i ciągły pomiar ruchu napędów, a pozostałe systemy mogą okresowo korygować narastający błąd położenia.

Jakie błędy wpływają na pomiar enkodera i sterowanie robotem?

Wynik enkodera może różnić się od rzeczywistego położenia mechanizmu z kilku powodów. Źródłem błędu może być sam czujnik, sposób jego montażu, mechanika napędu, zakłócenia elektryczne albo nieprawidłowe przetwarzanie danych przez sterownik.

Wysoka rozdzielczość nie gwarantuje automatycznie wysokiej dokładności. Enkoder może rozpoznawać bardzo małe kroki cyfrowe, ale jednocześnie wykazywać większy błąd położenia wynikający z niedokładności podziałki, mimośrodu, bicia wału lub niewłaściwego ustawienia głowicy.

Ważne jest również miejsce pomiaru. Enkoder znajdujący się na wale silnika może dokładnie mierzyć ruch wirnika, ale nie wykrywać luzu przekładni, elastyczności konstrukcji ani rzeczywistego położenia elementu znajdującego się po stronie wyjściowej.

W systemach inkrementalnych dodatkowym zagrożeniem jest pominięcie albo błędne zliczenie impulsów. Zakłócenia elektromagnetyczne mogą zmieniać poziomy sygnałów enkodera, szczególnie przy długich przewodach lub prowadzeniu ich blisko kabli silnikowych.

Najczęstsze źródła błędów enkodera

Źródło błędu Na czym polega? Możliwy skutek Sposób ograniczenia
Błąd podziałki Rzeczywiste położenia znaczników skali nie są idealnie zgodne z ich nominalnym rozmieszczeniem. Okresowe odchylenia od rzeczywistej pozycji. Dobór enkodera o odpowiedniej klasie dokładności i wykonanie kalibracji osi.
Mimośród Środek skali enkodera nie pokrywa się dokładnie z osią obrotu wału. Powtarzalny błąd kąta zmieniający się podczas obrotu. Dokładne centrowanie, właściwe powierzchnie montażowe i kontrola bicia wału.
Niewspółosiowość Głowica, tarcza, magnes lub wał są ustawione pod niewłaściwym kątem albo w nieprawidłowej odległości. Spadek jakości sygnału, nieliniowość lub utrata odczytu. Zachowanie tolerancji montażowych określonych przez producenta.
Luz przekładni Zmiana kierunku silnika nie powoduje natychmiastowej zmiany położenia wyjścia przekładni. Różnica pomiędzy pozycją silnika a rzeczywistą pozycją przegubu. Pomiar na wyjściu przekładni, podwójne sprzężenie zwrotne albo kompensacja luzu.
Elastyczność konstrukcji Wał, przekładnia, sprzęgło lub element robota odkształcają się pod obciążeniem. Pozycja enkodera jest prawidłowa, ale element wykonawczy znajduje się w innym położeniu. Dodatkowy pomiar przy obciążeniu, sztywniejsza konstrukcja lub modelowanie ugięcia.
Zakłócenia elektryczne Przewody silnikowe, falowniki i przełączanie dużych prądów wpływają na sygnały enkodera. Fałszywe zbocza, pominięte impulsy i błędna pozycja licznika. Przewody ekranowane, sygnały różnicowe, prawidłowe uziemienie i oddzielenie tras kablowych.
Zbyt duża częstotliwość Enkoder generuje więcej zboczy, niż wejście sterownika jest w stanie przetworzyć. Utrata części zliczeń przy dużej prędkości. Sprawdzenie maksymalnej częstotliwości wejścia i pozostawienie odpowiedniego zapasu.
Błędne parametry W sterowniku wpisano niewłaściwe PPR, przełożenie, kierunek zliczania lub tryb X1–X4. Nieprawidłowa pozycja, prędkość lub kierunek ruchu. Weryfikacja dokumentacji i test jednego pełnego obrotu osi.
Temperatura Rozszerzalność cieplna zmienia geometrię skali, wału albo elementów montażowych. Powolna zmiana wyniku wraz z nagrzewaniem urządzenia. Stabilizacja temperatury, właściwy dobór materiałów i kompensacja termiczna.
Zabrudzenie Kurz, olej, wilgoć lub opiłki wpływają na skalę albo tor odczytu czujnika. Osłabienie sygnału, chwilowe błędy lub utrata odczytu. Odpowiednia obudowa, uszczelnienie, czyszczenie i dobór odpornej technologii pomiarowej.

Rozdzielczość, dokładność i powtarzalność

Rozdzielczość określa najmniejszy krok cyfrowy, który może zostać rozpoznany przez system. Dokładność opisuje natomiast różnicę pomiędzy wskazaniem enkodera a rzeczywistym położeniem. Powtarzalność informuje, jak podobny wynik uzyskuje się podczas wielokrotnego powrotu do tej samej pozycji.

Enkoder może mieć dużą rozdzielczość, ale mniejszą dokładność. Przykładowo układ może raportować zmianę co 0,01°, mimo że jego rzeczywisty błąd położenia wynosi ±0,1°. Małe kroki odczytu nie usuwają błędów skali, montażu ani mechaniki.

Szum sygnału może również powodować przeskakiwanie odczytu pomiędzy sąsiednimi zliczeniami, szczególnie gdy mechanizm pozostaje nieruchomy blisko granicy dwóch stanów. Oficjalne materiały maxon pokazują, że szum enkodera może odpowiadać zmianie o pojedynczy stan cyfrowy mimo braku istotnego ruchu mechanicznego.

Wpływ montażu i mimośrodu

Nawet bardzo dokładny enkoder może działać słabo po nieprawidłowym zamontowaniu. Szczególnie ważne są: współosiowość, bicie wału, sztywność mocowania, odległość głowicy od skali oraz ustawienie magnesu lub tarczy.

W enkoderze obrotowym mimośród powoduje okresowy błąd pozycji, ponieważ odległość pomiędzy osią obrotu a podziałką zmienia się podczas pełnego obrotu. Renishaw wskazuje mimośród jako jedno z głównych źródeł błędu instalowanego enkodera i podkreśla znaczenie sztywnego zamocowania głowicy odczytowej.

Z tego powodu dokładność podana w karcie katalogowej nie zawsze odpowiada dokładności całego układu po zamontowaniu w robocie. Należy uwzględnić zarówno parametry czujnika, jak i tolerancje mechaniczne całego przegubu.

Zakłócenia elektryczne i utrata impulsów

Przewody enkodera mogą przebiegać w pobliżu silników, sterowników mocy i przewodów przenoszących szybko zmieniające się prądy. Powstające pole elektromagnetyczne może zakłócić sygnały A, B i Z albo transmisję cyfrową.

W enkoderze inkrementalnym fałszywe zbocze może zostać rozpoznane jako dodatkowy ruch, natomiast pominięcie zbocza powoduje utratę części przemieszczenia. Błąd pozostaje w liczniku do czasu ponownego bazowania lub korekty przy użyciu pozycji referencyjnej.

Ryzyko ogranicza się przez stosowanie ekranowanych przewodów, sygnałów różnicowych, odpowiedniego uziemienia oraz oddzielenie kabli enkodera od przewodów silnikowych. maxon zaleca również sprawdzanie dopuszczalnych poziomów sygnałów wejściowych i zwraca uwagę, że długie przewody zwiększają podatność na zakłócenia.

Błędy mechaniczne za enkoderem

Enkoder zamontowany przed przekładnią nie mierzy bezpośrednio luzu, ugięcia ani poślizgu występującego za czujnikiem. Sterownik może więc widzieć prawidłową pozycję silnika, mimo że przegub, koło lub chwytak nie osiągnęły oczekiwanego ustawienia.

Szczególnie widoczne jest to przy zmianie kierunku. Silnik może wykonać niewielki ruch potrzebny do skasowania luzu przekładni, podczas gdy element wyjściowy pozostaje jeszcze nieruchomy.

W precyzyjnych osiach problem ogranicza się przez zastosowanie drugiego enkodera na wyjściu przekładni albo bezpośrednio przy przemieszczanym elemencie. Pozwala to porównywać ruch silnika z rzeczywistym ruchem mechanizmu.

Jak wykrywać nieprawidłowości w danych enkodera?

  • Porównanie pozycji zadanej z pozycją zmierzoną przez enkoder.
  • Kontrola zgodności kierunku kanałów A i B.
  • Sprawdzenie liczby zliczeń podczas jednego pełnego obrotu.
  • Porównanie położenia indeksu Z z oczekiwaną wartością licznika.
  • Obserwacja nagłych skoków pozycji i nierealistycznych zmian prędkości.
  • Porównanie enkodera silnika z enkoderem wyjściowym.
  • Kontrola zgodności odometrii kół z pomiarem IMU lub lokalizacją robota.
  • Test działania przy maksymalnej planowanej prędkości napędu.
  • Rejestrowanie temperatury i jakości sygnału podczas długotrwałej pracy.
  • Sprawdzenie przewodów, ekranowania, złączy i ciągłości uziemienia.

Diagnostyka powinna obejmować zarówno nieruchomy mechanizm, jak i ruch z małą oraz dużą prędkością, zmianę kierunku, pracę pod obciążeniem i nagrzewanie napędu. Pozwala to oddzielić błędy czujnika od błędów przekładni, konstrukcji i instalacji elektrycznej.

Jak dane enkoderów są wykorzystywane w ROS 2?

W ROS 2 surowy sygnał enkodera jest najpierw odczytywany przez sterownik sprzętowy albo mikrokontroler. Oprogramowanie przelicza impulsy, kod absolutny lub wartość rejestru na wielkości fizyczne, takie jak pozycja przegubu, prędkość obrotowa albo przesunięcie liniowe.

Dane te mogą zostać udostępnione w systemie sterowania jako interfejsy stanu. W środowisku ros2_control przegub może posiadać między innymi interfejsy position, velocity i effort. Enkoder dostarcza przede wszystkim informacji o pozycji, z której może być również obliczana prędkość. Wartość effort nie pochodzi zwykle bezpośrednio z enkodera — może być wyznaczana z pomiaru momentu, siły, prądu silnika albo modelu napędu.

Sterowniki, regulatory, systemy wizualizacji i algorytmy planowania ruchu nie muszą znać elektrycznej postaci sygnału enkodera. Korzystają z przeliczonych wartości opisujących stan poszczególnych osi robota.

Najczęściej stosowaną wiadomością do publikowania stanu przegubów jest sensor_msgs/msg/JointState. Zawiera ona nazwy przegubów oraz odpowiadające im tablice pozycji, prędkości i wysiłku. Oficjalna definicja wymaga, aby wartości w jednej wiadomości odnosiły się do tego samego momentu pomiaru.

Od enkodera do stanu przegubu

Przykładowy przepływ danych enkodera w ROS 2
Enkoder Impulsy A/B/Z albo cyfrowy kod pozycji
Sterownik sprzętowy Zliczanie i przeliczanie sygnału read()
Interfejsy stanu Pozycja, prędkość i opcjonalnie wysiłek position / velocity / effort
ROS 2 Publikacja stanu przegubów sensor_msgs/msg/JointState

Sterownik sprzętowy odpowiada za przeliczenie surowych danych enkodera na jednostki fizyczne zgodne z modelem robota.

W ros2_control komponent sprzętowy może udostępniać interfejsy stanu przegubów, a ich wartości mogą być następnie publikowane przez joint_state_broadcaster.

Co zawiera wiadomość sensor_msgs/msg/JointState?

Wiadomość sensor_msgs/msg/JointState opisuje stan jednego lub wielu przegubów. Każdy przegub jest identyfikowany przez nazwę, a odpowiadające mu wartości znajdują się pod tym samym indeksem w tablicach position, velocity i effort.

Tablice powinny mieć taką samą długość jak tablica nazw albo pozostać puste, jeżeli dana wielkość nie jest dostępna. Przykładowo robot może publikować pozycję i prędkość, pozostawiając pustą tablicę effort.

Pole Zawartość Jednostka Związek z enkoderem
header Znacznik czasu określający moment zarejestrowania stanu przegubów. Czas systemu ROS 2 Umożliwia synchronizację danych enkoderów z innymi czujnikami.
name Nazwy przegubów, na przykład left_wheel_joint lub elbow_joint. Tekst Łączy konkretny pomiar z właściwą osią modelu robota.
position Aktualna pozycja każdego przegubu. Radiany dla osi obrotowej albo metry dla osi liniowej Najczęściej wynika bezpośrednio z przeliczonego odczytu enkodera.
velocity Aktualna prędkość ruchu każdego przegubu. rad/s dla osi obrotowej albo m/s dla osi liniowej Może być obliczana ze zmiany pozycji enkodera w czasie.
effort Moment lub siła działająca w przegubie. Nm dla osi obrotowej albo N dla osi liniowej Zwykle nie pochodzi bezpośrednio z enkodera.
Wartości o tym samym indeksie muszą odnosić się do tego samego przegubu. Jeżeli pierwszym elementem tablicy name jest left_wheel_joint, pierwsze wartości position, velocity i effort również muszą opisywać tę oś.

Jednostki i zależność pomiędzy tablicami wynikają bezpośrednio z oficjalnej definicji wiadomości JointState: pozycja jest podawana w radianach lub metrach, prędkość w radianach na sekundę lub metrach na sekundę, a wysiłek w niutonometrach lub niutonach.

Jak działa joint_state_broadcaster?

joint_state_broadcaster jest elementem pakietu ros2_controllers. Odczytuje interfejsy stanu udostępnione przez sprzęt i publikuje je standardowo na temacie /joint_states jako wiadomości sensor_msgs/msg/JointState.

Broadcaster nie wysyła poleceń do silników. Jego zadaniem jest udostępnianie informacji o aktualnym stanie przegubów innym częściom systemu. Może publikować wartości position, velocity i effort, o ile odpowiednie interfejsy są dostępne w komponencie sprzętowym.

Dzięki temu te same dane mogą być używane przez system wizualizacji, diagnostykę, regulatory, planowanie ruchu i pozostałe węzły ROS 2.

Joint State Broadcaster a Joint State Publisher

Nazwy joint_state_broadcaster i joint_state_publisher są podobne, ale oba elementy pełnią inne funkcje.

joint_state_broadcaster publikuje stan odczytany z interfejsów sprzętowych ros2_control. W rzeczywistym robocie mogą to być wartości pochodzące z enkoderów, czujników momentu i sterowników napędów.

joint_state_publisher może natomiast generować wartości przegubów na podstawie modelu URDF, ustawień początkowych lub innych tematów. Jest często używany do wizualizacji i testowania modelu, także wtedy, gdy fizyczne dane enkoderów nie są dostępne. Sama obecność wiadomości na /joint_states nie gwarantuje więc, że pochodzą one z rzeczywistych czujników robota.

Enkodery kół i odometria w ROS 2

W robocie mobilnym stan przegubów kół może być przekazywany do kontrolera napędu. diff_drive_controller wykorzystuje informacje zwrotne o pozycji albo prędkości kół do obliczania odometrii platformy.

Wynik jest publikowany jako wiadomość nav_msgs/msg/Odometry, a kontroler może również udostępniać transformację pomiędzy ramkami odom i base_link. Włączenie trybu open_loop powoduje natomiast obliczanie odometrii na podstawie poleceń ruchu, a nie rzeczywistego sprzężenia zwrotnego.

W robocie posiadającym enkodery zwykle zależy nam na odometrii obliczanej z rzeczywistych pomiarów kół. Pozwala to wykrywać różnicę pomiędzy ruchem zadanym a ruchem wykonanym, chociaż nadal nie eliminuje błędów wynikających z poślizgu.

Jak sprawdzić dane enkoderów w ROS 2?

Wyświetlenie wiadomości o stanie przegubów ros2 topic echo /joint_states Pokazuje nazwy osi oraz aktualne wartości pozycji, prędkości i wysiłku.
Sprawdzenie częstotliwości publikacji ros2 topic hz /joint_states Pozwala ocenić, jak często publikowane są dane o stanie przegubów.
Informacje o temacie i jego połączeniach ros2 topic info /joint_states --verbose Pokazuje typ wiadomości, wydawców, subskrybentów i ustawienia QoS.
Lista dostępnych interfejsów sprzętowych ros2 control list_hardware_interfaces Pomaga sprawdzić, czy przeguby udostępniają interfejsy position, velocity lub effort.
Lista aktywnych kontrolerów i broadcasterów ros2 control list_controllers Pozwala sprawdzić, czy joint_state_broadcaster jest załadowany i aktywny.

Najczęstsze błędy integracji enkodera z ROS 2

  • Nieprawidłowe jednostki: publikowanie stopni zamiast radianów albo obrotów na minutę zamiast radianów na sekundę.
  • Błędny znak kierunku: wartość pozycji rośnie w kierunku przeciwnym do osi zdefiniowanej w URDF.
  • Nieprawidłowe przełożenie: pozycja silnika jest publikowana jako pozycja przegubu bez właściwego przeliczenia przekładni.
  • Niezgodne tablice JointState: nazwy i wartości nie znajdują się pod odpowiadającymi sobie indeksami.
  • Nieaktualny znacznik czasu: utrudnia synchronizację enkoderów z IMU, kamerą i innymi czujnikami.
  • Zbyt mała częstotliwość publikacji: może powodować opóźnioną wizualizację i mniej dokładne obliczanie prędkości.
  • Brak joint_state_broadcaster: interfejsy sprzętowe istnieją, ale ich stan nie jest publikowany na standardowym temacie.
  • Mylenie danych symulowanych z pomiarem: wartości generowane przez joint_state_publisher są traktowane jak rzeczywiste odczyty enkoderów.
  • Odometryczny tryb open loop: pozycja robota jest obliczana z poleceń ruchu zamiast ze sprzężenia zwrotnego kół.

Prawidłowa integracja wymaga sprawdzenia całej ścieżki danych: od elektrycznego sygnału enkodera, przez przeliczenie przełożenia i jednostek, aż po nazwy przegubów, znaczniki czasu oraz konfigurację kontrolerów. Sam fakt, że wartości pojawiają się na temacie /joint_states, nie oznacza jeszcze, że poprawnie opisują rzeczywisty ruch robota.

Jak dobrać enkoder do robota?

Dobór enkodera należy rozpocząć od określenia, który element robota ma być mierzony i do czego zostanie wykorzystany wynik. Innych parametrów wymaga szybka regulacja silnika, innych bezpośredni pomiar kąta przegubu, a jeszcze innych obliczanie odometrii koła lub położenia osi liniowej.

Najpierw trzeba zdecydować, czy system może wykonywać procedurę bazowania po uruchomieniu. Jeżeli jest ona dopuszczalna, odpowiedni może być enkoder inkrementalny. Gdy robot musi znać położenie osi bez wykonywania ruchu referencyjnego, należy rozważyć enkoder absolutny jednoobrotowy albo wieloobrotowy.

Kolejnym krokiem jest określenie wymaganej rozdzielczości, dokładności, powtarzalności i maksymalnej prędkości. Bardzo duża liczba zliczeń nie zawsze jest korzystna. Przy wysokiej prędkości zwiększa częstotliwość sygnału, dlatego wejście sterownika musi być zdolne do rejestrowania wszystkich zboczy. Z kolei dokładne sterowanie bardzo małą prędkością może wymagać większej rozdzielczości i szybkiej pętli regulacji.

Należy również sprawdzić warunki środowiskowe, miejsce montażu, dopuszczalne odchylenia geometryczne, temperaturę, drgania, wilgotność, zabrudzenia, kompatybilność elektromagnetyczną, typ przewodu oraz interfejs sterownika. Renishaw wymienia te cechy obok dokładności, liniowości, rozdzielczości, powtarzalności, prędkości i częstotliwości wejścia kontrolera jako podstawowe kryteria wyboru systemu enkodera.

Najważniejsze kryteria doboru enkodera

Kryterium Pytanie projektowe Na co zwrócić uwagę? Przykład decyzji
Mierzony element Czy mierzymy wał silnika, wyjście przekładni, przegub, koło czy oś liniową? Czujnik powinien znajdować się możliwie blisko wielkości, którą system ma rzeczywiście kontrolować. Enkoder silnikowy do regulacji napędu, a dodatkowy enkoder wyjściowy do dokładnego pomiaru przegubu.
Rodzaj pozycji Czy po uruchomieniu można wykonać bazowanie? Enkoder inkrementalny mierzy zmianę położenia, a absolutny przekazuje bieżącą pozycję. Absolutny enkoder przegubu, którego nie można bezpiecznie przemieścić podczas uruchamiania.
Zakres ruchu Czy mechanizm obraca się w zakresie do 360°, czy wykonuje wiele pełnych obrotów? Dla ruchu przekraczającego jeden obrót może być potrzebny pomiar wieloobrotowy. Enkoder multi-turn dla śruby napędowej lub kolumny podnoszącej.
Rozdzielczość Jak małą zmianę położenia lub prędkości trzeba rozpoznać? Liczba PPR, CPR albo bitów musi odpowiadać wymaganej regulacji, ale nie powinna być dobierana bez uwzględnienia częstotliwości sygnału. Większa rozdzielczość do płynnego sterowania małą prędkością.
Dokładność Jaki maksymalny błąd pozycji jest dopuszczalny? Trzeba analizować rzeczywisty błąd położenia, a nie tylko najmniejszy krok cyfrowy. Dokładny enkoder wyjściowy w manipulatorze wykonującym precyzyjne pozycjonowanie.
Powtarzalność Czy oś musi wielokrotnie wracać do tego samego położenia? Należy sprawdzić powtarzalność jedno- i dwukierunkową oraz wpływ luzu mechanicznego. Enkoder osi chwytaka wykonującego powtarzalne operacje montażowe.
Prędkość maksymalna Jak szybko będzie obracał się wał? Trzeba sprawdzić mechaniczne ograniczenie prędkości, częstotliwość wyjściową enkodera i możliwości wejścia sterownika. Umiarkowana rozdzielczość dla silnika pracującego z bardzo dużą prędkością.
Technologia odczytu Czy priorytetem jest dokładność, odporność środowiskowa, mały rozmiar czy odporność na pole magnetyczne? Należy porównać rozwiązania optyczne, magnetyczne, indukcyjne i pojemnościowe. Enkoder magnetyczny w kompaktowym przegubie albo optyczny w precyzyjnej osi laboratoryjnej.
Warunki pracy Czy występują kurz, wilgoć, olej, drgania lub duże zmiany temperatury? Stopień ochrony, temperatura pracy, odporność na wibracje, kondensację i zabrudzenia. Uszczelniony czujnik w robocie terenowym lub przemysłowym.
Interfejs Jakie wejścia obsługuje sterownik napędu? Sygnały A/B/Z, wyjścia różnicowe, SSI, BiSS, EnDat, CAN, RS-485 albo inny interfejs cyfrowy. Enkoder zgodny bezpośrednio z wejściem używanego serwonapędu.
Opóźnienie Jak szybko pomiar musi dotrzeć do regulatora? Czas odczytu, częstotliwość aktualizacji, filtrowanie oraz opóźnienie transmisji cyfrowej. Szybki pomiar silnikowy w dynamicznym robocie kroczącym.
Geometria montażu Ile miejsca znajduje się w silniku lub przegubie? Średnica wału, otwór przelotowy, wysokość montażowa, tolerancja bicia i dopuszczalna niewspółosiowość. Enkoder pierścieniowy z otworem do przeprowadzenia przewodów.
Okablowanie Jak długa i ruchoma będzie trasa przewodu? Odporność kabla na zginanie, ekranowanie, promień gięcia, złącza i transmisja różnicowa. Przewód o dużej trwałości zmęczeniowej w ruchomym ramieniu robota.
Diagnostyka Czy system ma wykrywać osłabienie sygnału lub błąd czujnika? Alarmy, kontrola amplitudy, bity statusowe, kontrola CRC oraz informacja o temperaturze lub poziomie pola. Enkoder cyfrowy z diagnostyką w robocie przemysłowym.
Bezpieczeństwo Czy pomiar jest częścią funkcji bezpieczeństwa? Wymagana certyfikacja, redundancja, kontrola wiarygodności i zgodność z architekturą bezpieczeństwa maszyny. Redundantny pomiar pozycji w osi pracującej w pobliżu człowieka.

Interfejs enkodera musi być zgodny ze sterownikiem pod względem elektrycznym, czasowym i programowym. Przykładowo EnDat jest cyfrowym interfejsem przeznaczonym do przesyłania informacji zwrotnej z enkoderów do systemów napędowych i pętli regulacji pozycji.

Czy należy wybierać enkoder o największej rozdzielczości?

Nie. Rozdzielczość powinna wynikać z wymaganej dokładności sterowania, prędkości i częstotliwości pracy regulatora. Nadmierna liczba zliczeń może zwiększyć częstotliwość sygnału, ilość przetwarzanych danych oraz wymagania wobec sterownika.

Przy wysokiej prędkości zbyt duża rozdzielczość może spowodować przekroczenie maksymalnej częstotliwości wejścia. Przy bardzo wolnym ruchu zbyt mała rozdzielczość prowadzi natomiast do skokowego i zaszumionego pomiaru prędkości. maxon podkreśla, że zachowanie układu zależy nie tylko od enkodera, ale również od częstotliwości regulatora, bezwładności, tarcia, luzów oraz możliwości zasilania i kontrolera.

Enkoder silnikowy czy enkoder przegubu?

Enkoder silnikowy jest odpowiedni do szybkiej regulacji prędkości i położenia wirnika. Jeżeli napęd posiada przekładnię, jego pomiar nie uwzględnia jednak wszystkich luzów i odkształceń powstających po stronie wyjściowej.

Gdy ważna jest rzeczywista pozycja przegubu, chwytaka albo osi liniowej, należy rozważyć enkoder montowany bezpośrednio przy kontrolowanym elemencie. W bardzo precyzyjnych lub elastycznych napędach korzystne może być podwójne sprzężenie zwrotne.

Dobór miejsca montażu powinien wynikać z tego, czy priorytetem jest szybka regulacja silnika, dokładna pozycja elementu wyjściowego, czy jednoczesne spełnienie obu wymagań.

Lista kontrolna przed wyborem enkodera

  • Określ, który element mechanizmu ma być rzeczywiście mierzony.
  • Zdecyduj, czy system może wykonywać bazowanie po uruchomieniu.
  • Sprawdź, czy zakres ruchu przekracza jeden pełny obrót.
  • Wyznacz wymaganą rozdzielczość, dokładność i powtarzalność.
  • Oblicz maksymalną częstotliwość sygnału przy największej prędkości.
  • Sprawdź zgodność interfejsu enkodera ze sterownikiem napędu.
  • Uwzględnij przełożenie oraz miejsce montażu względem przekładni.
  • Zweryfikuj temperaturę, drgania, wilgotność, kurz i pola magnetyczne.
  • Sprawdź tolerancje osiowania, bicia, szczeliny i odległości montażowych.
  • Dobierz przewód, ekranowanie, złącza i dopuszczalny promień gięcia.
  • Określ wymagania diagnostyczne oraz sposób wykrywania utraty sygnału.
  • Przetestuj enkoder przy małej i dużej prędkości oraz pod obciążeniem.

Duża dokładność systemu zależy nie tylko od katalogowego parametru czujnika, ale także od geometrii montażu, środowiska, częstotliwości wejścia sterownika, przewodów i mechaniki całej osi.

Najczęściej zadawane pytania o enkodery w robotyce

Co to jest enkoder w robotyce?

Enkoder jest czujnikiem położenia przekształcającym ruch obrotowy albo liniowy w sygnał możliwy do odczytania przez sterownik. W robocie może mierzyć położenie wału, przegubu, koła, chwytaka lub osi liniowej.

Czym różni się enkoder inkrementalny od absolutnego?

Enkoder inkrementalny generuje impulsy odpowiadające zmianie położenia, dlatego sterownik musi zliczać ruch od przyjętego punktu odniesienia. Enkoder absolutny przekazuje kod odpowiadający aktualnej pozycji i może umożliwić jej odczyt bez wcześniejszego bazowania osi.

Czy enkoder mierzy prędkość bezpośrednio?

Enkoder mierzy przede wszystkim położenie albo zmianę położenia. Prędkość jest zwykle obliczana na podstawie liczby impulsów zarejestrowanych w określonym czasie albo czasu pomiędzy kolejnymi zmianami sygnału.

Do czego służą kanały A, B i Z?

Kanał A dostarcza impulsy odpowiadające zmianie położenia. Kanał B jest przesunięty względem A w fazie, dzięki czemu sterownik może określić kierunek obrotu. Kanał Z zazwyczaj generuje jeden impuls na obrót i służy jako powtarzalny znacznik referencyjny.

Czym różnią się PPR i CPR?

PPR najczęściej oznacza liczbę impulsów lub okresów sygnału przypadających na jeden obrót. CPR może oznaczać liczbę cykli albo końcową liczbę zliczeń. Oznaczenia nie są stosowane identycznie przez wszystkich producentów, dlatego zawsze trzeba sprawdzić ich definicję w dokumentacji konkretnego enkodera.

Czy większa rozdzielczość oznacza większą dokładność?

Nie. Rozdzielczość określa najmniejszy rozpoznawany krok cyfrowy, natomiast dokładność opisuje różnicę pomiędzy wskazaniem enkodera a rzeczywistym położeniem. Enkoder może udostępniać bardzo małe kroki odczytu, ale wykazywać większy błąd wynikający z podziałki, montażu albo mechaniki napędu.

Czy enkoder absolutny zawsze zachowuje pozycję po wyłączeniu zasilania?

Enkoder absolutny jednoobrotowy może ponownie odczytać pozycję kątową po uruchomieniu. W urządzeniach wieloobrotowych sposób zachowania liczby pełnych obrotów zależy od konstrukcji. Może być wykorzystywana przekładnia, pamięć nieulotna, bateria albo mechanizm pozyskiwania energii z ruchu wału.

Dlaczego w jednym przegubie stosuje się czasem dwa enkodery?

Enkoder po stronie silnika zapewnia szybkie sprzężenie zwrotne potrzebne do sterowania napędem. Drugi enkoder, umieszczony na wyjściu przekładni lub bezpośrednio przy przegubie, może mierzyć jego rzeczywiste położenie i ujawniać wpływ luzu, ugięcia oraz błędów przekładni.

Czy enkodery kół wykrywają poślizg robota?

Nie bezpośrednio. Enkoder informuje o obrocie koła, ale nie sprawdza, czy koło rzeczywiście przesunęło się względem podłoża. Podczas poślizgu odometria może wskazywać większy ruch niż ten wykonany przez robota. Dlatego dane kół łączy się między innymi z IMU, kamerą, LiDAR-em lub lokalizacją względem mapy.

Który enkoder jest lepszy: optyczny czy magnetyczny?

Nie ma jednej technologii najlepszej do wszystkich zastosowań. Enkodery optyczne mogą zapewniać bardzo dużą dokładność i rozdzielczość. Konstrukcje magnetyczne są często kompaktowe i odporne na typowe zabrudzenia, ale wymagają prawidłowego ustawienia magnesu i uwzględnienia zewnętrznych pól magnetycznych.

Czy każdy enkoder wymaga bazowania?

Nie. Bazowanie jest często wymagane przy enkoderach inkrementalnych, ponieważ po uruchomieniu sterownik może nie znać rzeczywistej pozycji osi. Enkoder absolutny może przekazać bieżące położenie bez ruchu referencyjnego, o ile konstrukcja i konfiguracja systemu zapewniają zachowanie wymaganej informacji o pozycji.

Jak dane enkoderów są publikowane w ROS 2?

Stan przegubów może być publikowany jako sensor_msgs/msg/JointState. Wiadomość zawiera nazwy przegubów oraz odpowiadające im wartości pozycji, prędkości i opcjonalnie wysiłku. W środowisku ros2_control publikację danych sprzętowych może realizować joint_state_broadcaster.

Opis kanałów A, B i Z oraz różnicy między enkoderami inkrementalnymi i absolutnymi jest zgodny z dokumentacją OMRON. Oficjalna definicja ROS 2 potwierdza natomiast strukturę wiadomości JointState, a joint_state_broadcaster publikuje stany przegubów odczytane z interfejsów sprzętowych.

Podsumowanie – jaką rolę pełnią enkodery w robotyce?

Enkodery są jednym z podstawowych źródeł informacji zwrotnej w systemach sterowania robotów. Pozwalają określać położenie wałów, kół, osi liniowych i przegubów, a na podstawie zmiany pozycji w czasie również prędkość oraz kierunek ruchu. Dzięki temu sterownik może porównywać ruch zadany z rzeczywiście wykonanym i na bieżąco korygować pracę napędu.

Enkodery inkrementalne przekazują przede wszystkim informację o zmianie położenia, dlatego ich sygnały muszą być zliczane względem przyjętego punktu odniesienia. Enkodery absolutne kodują aktualne położenie i mogą umożliwiać jego odczyt bez wykonywania ruchu bazującego. Wersje wieloobrotowe pozwalają dodatkowo rozróżnić pozycje występujące po wykonaniu wielu pełnych obrotów

O jakości pomiaru nie decyduje wyłącznie liczba impulsów lub bitów. Rozdzielczość określa najmniejszy rozpoznawany krok, natomiast dokładność opisuje zgodność wskazania z rzeczywistą pozycją. Na wynik wpływają również miejsce montażu, mimośród, bicie wału, przełożenie, luz przekładni, elastyczność konstrukcji, zakłócenia elektryczne oraz sposób przetwarzania sygnału.

Enkoder umieszczony na wale silnika dobrze wspiera szybką regulację napędu, ale nie zawsze opisuje rzeczywistą pozycję elementu znajdującego się za przekładnią. W wymagających konstrukcjach stosuje się dlatego dodatkowy enkoder wyjściowy, który pozwala kontrolować położenie przegubu, koła lub osi bliżej miejsca wykonywania pracy.

W robotach mobilnych enkodery kół są podstawą odometrii, lecz nie wykrywają bezpośrednio poślizgu względem podłoża. W robotach humanoidalnych, czworonożnych i manipulatorach określają konfigurację mechaniczną wielu przegubów. Ich dane są często łączone z IMU, czujnikami siły, kamerami i LiDAR-em, aby uzyskać pełniejszą informację o stanie i ruchu robota.

W ROS 2 przeliczone wartości enkoderów mogą być udostępniane jako pozycja i prędkość interfejsów sprzętowych. Stan wielu przegubów jest standardowo publikowany za pomocą wiadomości sensor_msgs/msg/JointState, która łączy nazwy osi z odpowiadającymi im wartościami pozycji, prędkości i opcjonalnie wysiłku.

Najważniejsze wnioski

Enkodery w robotyce – najważniejsze informacje
  • Enkoder jest czujnikiem położenia, który przekształca ruch obrotowy lub liniowy w sygnał odczytywany przez sterownik.
  • Prędkość jest zwykle obliczana na podstawie zmiany pozycji albo czasu pomiędzy kolejnymi impulsami.
  • Enkoder inkrementalny informuje o zmianie położenia względem przyjętego punktu odniesienia.
  • Enkoder absolutny przekazuje jednoznaczną wartość aktualnej pozycji w obsługiwanym zakresie.
  • Kanały A i B umożliwiają zliczanie ruchu i określanie jego kierunku, a kanał Z wyznacza punkt referencyjny.
  • PPR i CPR trzeba interpretować zgodnie z dokumentacją, ponieważ producenci nie zawsze stosują te oznaczenia jednakowo.
  • Rozdzielczość nie jest tym samym co dokładność ani powtarzalność pomiaru.
  • Miejsce montażu ma kluczowe znaczenie – enkoder silnika i enkoder wyjścia przekładni mierzą różne elementy napędu.
  • Enkodery kół umożliwiają obliczanie odometrii, ale nie wykrywają samodzielnie poślizgu względem podłoża.
  • W robotach kroczących i manipulatorach pomiary wielu przegubów opisują aktualną konfigurację mechaniczną robota.
  • Dane enkoderów mogą współpracować z IMU, kamerą, LiDAR-em i czujnikami siły w systemie estymacji stanu.
  • W ROS 2 stan przegubów może być publikowany jako sensor_msgs/msg/JointState.

Struktura JointState obejmuje nazwy przegubów i odpowiadające im tablice pozycji, prędkości oraz wysiłku; dane w jednej wiadomości powinny opisywać ten sam moment pomiaru.

Robotyka w praktyce

Szukasz robota do nauki programowania, sterowania i analizy ruchu?

Enkodery, odometria oraz układy sterowania ruchem mogą być poznawane nie tylko teoretycznie, lecz również podczas pracy z rzeczywistą platformą robotyczną. LEDIO Robotics pomaga szkołom, uczelniom, laboratoriom i firmom dobrać robota odpowiedniego do prowadzonych zajęć, badań oraz projektów rozwojowych.

  • Dobór odpowiedniej platformy robotycznej
  • Wsparcie przy uruchomieniu robota
  • Szkolenia z obsługi i programowania
  • Doradztwo dla szkół, uczelni i firm
Skontaktuj się z LEDIO Robotics

Pomagamy również w przygotowaniu robotów do zajęć edukacyjnych, projektów badawczych, demonstracji oraz prac rozwojowych.

Artykuł opracowano na podstawie dokumentacji technicznej producentów enkoderów, komponentów robotycznych oraz oficjalnej dokumentacji ROS 2.

Zobacz źródła wykorzystane przy opracowaniu artykułu
Podstawy działania i dobór enkoderów
  1. OMRON – Overview of Rotary Encoders Zasada działania, podział na enkodery inkrementalne i absolutne oraz sygnały faz A i B.
  2. OMRON – Multi-turn absolute encoder Wyjaśnienie działania absolutnego pomiaru wieloobrotowego.
  3. maxon – Encoder Selection: Properties Rozdzielczość, dokładność, błędy pomiarowe i właściwości enkoderów stosowanych w napędach.
  4. maxon – Which encoder resolution should be chosen? Dobór rozdzielczości enkodera do regulacji pozycji i prędkości napędu.
  5. maxon – Encoder problems with long cables Wpływ długości przewodów, spadków napięcia i parametrów elektrycznych na sygnał enkodera.
  6. Renishaw – The accuracy of rotary encoders Dokładność zainstalowanego enkodera, mimośród, bicie i wpływ geometrii montażu.
  7. HEIDENHAIN – EnDat encoder interface Cyfrowa transmisja pozycji, danych dodatkowych i informacji diagnostycznych.
ROS 2, odometria i stan przegubów
  1. ROS 2 – definicja wiadomości sensor_msgs/msg/JointState Pola name, position, velocity i effort oraz wymagania dotyczące czasu pomiaru.
  2. ros2_control – joint_state_broadcaster Publikowanie interfejsów stanu przegubów na tematach joint_states i dynamic_joint_states.
  3. ros2_control – diff_drive_controller Sterowanie platformą różnicową i obliczanie odometrii na podstawie sprzężenia zwrotnego kół.
  4. ROS REP-145 – Conventions for IMU Sensor Drivers Konwencje danych IMU, układów współrzędnych i publikowania pomiarów inercyjnych.
  5. ROS 2 – robot_localization Łączenie odometrii, IMU i innych pomiarów w systemie estymacji stanu robota.
Przykłady komponentów i robotów
  1. Unitree – robot humanoidalny G1 Oficjalne parametry techniczne robota, w tym zastosowanie podwójnych enkoderów.
  2. Unitree – robot czworonożny A2 Specyfikacja napędów przegubowych i podwójnych enkoderów.
  3. Unitree – moduł napędowy IM6014 Enkoder po stronie silnika oraz enkoder po stronie wyjścia napędu.
  4. Unitree – dłoń robotyczna Dex3-1 Sterowanie pozycją i siłą oraz wykorzystanie czujników w dłoni robotycznej.

Dokumentacja producentów może być aktualizowana wraz z kolejnymi wersjami produktów i oprogramowania. Przy projektowaniu systemu należy sprawdzić aktualną kartę techniczną konkretnego urządzenia.