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.
Źródła i dokumentacja techniczna
Enkoder jako element sprzężenia zwrotnego
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
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
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
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
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
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
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ń?
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:
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.
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ń
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
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
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
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 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.
Co jest potrzebne do prawidłowego połączenia danych?
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ą.
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.
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
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?
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
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.
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?
Najczęstsze błędy integracji enkodera z ROS 2
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
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
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
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
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.
