Przejdź do treści
Testy, poradniki i rankingi robotów sprzątającychWspółpraca dla producentów i dystrybutorów
Szukaj modelu lub problemu
Menu

Podgląd lokalnej kopii treści VacuumHub.

← Poradniki

SLAM w robotach sprzątających – jak robot tworzy mapę i wie, gdzie jest?

SLAM w robotach sprzątających – jak robot tworzy mapę i wie, gdzie jest?

Robot sprzątający potrafi w kilka minut zbudować mapę mieszkania, zaznaczyć ściany i później odnaleźć się na niej z dokładnością wystarczającą do systematycznego sprzątania. Nie robi tego jednak sam LiDAR. Za połączenie kolejnych pomiarów, ocenę ruchu robota i korygowanie narastających błędów odpowiada SLAM – jeden z najważniejszych problemów współczesnej robotyki.

W poprzednim artykule o LiDAR-ze w robotach sprzątających wyjaśniałem, że laser sam w sobie nie tworzy mapy. Wykonuje przede wszystkim serię pomiarów odległości do ścian i innych powierzchni znajdujących się wokół robota.

I tutaj pojawia się kolejne pytanie, które właściwie samo się nasuwa: skoro LiDAR podaje tylko kąty i odległości, to skąd robot wie, gdzie jest kuchnia, gdzie znajduje się korytarz i w którym miejscu mieszkania aktualnie się znajduje?

Za dużą część tej pracy odpowiada SLAM. Pod tym czteroliterowym skrótem kryje się jednak znacznie więcej niż funkcja „tworzenia mapy”. Jest to cały problem matematyczny, z którym robot musi radzić sobie podczas ruchu: jednocześnie budować model nieznanego otoczenia i ustalać własną pozycję w tym modelu.

Co ciekawe, SLAM nie powstał dla odkurzaczy. Jest jednym z podstawowych zagadnień robotyki mobilnej, wykorzystywanym w pojazdach autonomicznych, robotach przemysłowych, dronach, systemach pomiarowych i wielu innych urządzeniach. Robot sprzątający jest po prostu jednym z najbardziej powszechnych urządzeń, w których przeciętny użytkownik spotyka tę technologię każdego dnia.

Co oznacza SLAM?

SLAM to skrót od Simultaneous Localization and Mapping – jednoczesnej lokalizacji i mapowania.

W jednym zdaniu można powiedzieć:

robot próbuje jednocześnie odpowiedzieć na dwa pytania: „jak wygląda otoczenie?” oraz „gdzie ja się w nim znajduję?”.

To ważne rozróżnienie, bo samo utworzenie planu ścian byłoby stosunkowo mało użyteczne. Robot musi jeszcze wiedzieć, w którym punkcie tego planu aktualnie stoi i w którą stronę jest obrócony.

Element systemu Jaką informację może dostarczać?
LiDAR Odległości i kierunki do otaczających powierzchni
Enkodery kół Informację o obrocie kół i szacowanym przebytym dystansie
IMU / żyroskop Informację o ruchu i zmianie orientacji
SLAM Szacowanie pozycji robota i budowanie spójnej mapy
Planer trasy Decyzję, gdzie robot powinien pojechać

W praktyce poszczególne elementy są ze sobą mocno powiązane, ale nie są tym samym.

Warto przy tym pamiętać, że samo określenie „LiDAR” nie mówi jeszcze, jak zbudowany jest sensor dostarczający dane do SLAM-u. Robot może korzystać z klasycznego LDS, dToF albo bardziej rozbudowanego systemu przestrzennego. W osobnym materiale wyjaśniamy, czym różnią się LDS, dToF, 3D ToF i solid-state LiDAR.

Problem SLAM przypomina pytanie o kurę i jajko

Żeby zrozumieć, dlaczego SLAM jest trudnym problemem, wykonajmy prosty eksperyment myślowy.

Postawmy robota w całkowicie nieznanym mieszkaniu.

LiDAR wykonuje pierwszy skan i wykrywa ścianę znajdującą się dwa metry przed robotem. To łatwe.

Robot jedzie metr do przodu i ponownie widzi tę samą ścianę.

Ale żeby wykorzystać oba pomiary do stworzenia jednej mapy, komputer musi wiedzieć, o ile dokładnie robot się przesunął i jak zmieniła się jego orientacja.

I tutaj zaczyna się problem.

Robot może próbować obliczyć ruch na podstawie kół. Tyle że koła mogą się poślizgnąć. Może też porównać dwa skany LiDAR-u. Tyle że żeby je poprawnie porównać, powinien już mniej więcej wiedzieć, z jakiej pozycji wykonano drugi skan.

Dlatego lokalizacja pomaga budować mapę, a mapa pomaga poprawiać lokalizację.

Oba problemy trzeba rozwiązywać równocześnie.

SLAM nie musi przy tym korzystać z LiDAR-u. Jeżeli głównym źródłem informacji o otoczeniu jest kamera, mówimy o Visual SLAM, czyli vSLAM. Oba podejścia mają zupełnie inne mocne i słabe strony, dlatego osobno przygotowaliśmy porównanie LiDAR-u i vSLAM w robotach sprzątających.

Co dzieje się od jednego skanu LiDAR-u do mapy w aplikacji?

Dokładna architektura zależy od konkretnego systemu, ale współczesny 2D LiDAR SLAM można w uproszczeniu podzielić na kilka kolejnych etapów.

  1. robot zbiera dane z LiDAR-u i pozostałych sensorów,
  2. szacuje, jak się poruszył,
  3. dopasowuje nowe pomiary do poprzednich,
  4. buduje lokalny fragment mapy,
  5. koryguje pozycje i łączy fragmenty w większą mapę,
  6. sprawdza, czy nie wrócił do miejsca widzianego wcześniej.

W literaturze technicznej często spotkamy podział na front-end i back-end.

Front-end zajmuje się głównie przetwarzaniem bieżących pomiarów i oszacowaniem ruchu. Back-end patrzy na problem szerzej i próbuje poprawić spójność całej trajektorii oraz mapy.

Jak kolejne skany LiDAR tworzą mapę w systemie SLAM

Pojedynczy skan LiDAR pokazuje tylko fragment otoczenia z jednej pozycji. SLAM łączy kolejne pomiary wykonywane podczas ruchu robota w spójną mapę.

Pierwszy krok: LiDAR dostarcza punkty

Klasyczny 2D LiDAR wykonuje pomiary w kolejnych kierunkach.

Każdy odczyt można przedstawić jako:

kąt + odległość.

Po przeliczeniu takich pomiarów otrzymujemy zestaw punktów znajdujących się wokół robota.

Jeżeli kilkadziesiąt kolejnych punktów tworzy niemal prostą linię, prawdopodobnie odpowiadają fragmentowi ściany.

Ale komputer nadal nie musi wiedzieć, że jest to „ściana salonu”. Dla podstawowego SLAM-u jest to przede wszystkim geometria.

Drugi krok: robot próbuje oszacować własny ruch

Najprostszym źródłem informacji o ruchu są enkodery silników lub kół.

Jeżeli wiemy, ile razy obróciło się lewe i prawe koło oraz znamy ich średnicę, można wyliczyć przybliżony dystans i zmianę kierunku.

Nazywa się to odometrią.

Problem polega na tym, że odometria nie mierzy bezpośrednio przesunięcia robota względem pokoju. Mierzy przede wszystkim ruch jego napędu.

Dlaczego liczenie obrotów kół nie wystarcza?

Wyobraźmy sobie, że koło wykonało obrót odpowiadający przejechaniu 20 cm.

Na twardej podłodze robot rzeczywiście może przesunąć się prawie dokładnie o 20 cm.

Ale na:

  • grubym dywanie,
  • progu,
  • mokrej powierzchni,
  • luźnym dywaniku,
  • podczas gwałtownego skrętu

koło może częściowo się poślizgnąć.

Enkoder nadal raportuje obrót, chociaż rzeczywisty ruch urządzenia był trochę inny.

Jeden błąd wynoszący kilka milimetrów nie byłby problemem. Jeżeli jednak robot przejedzie kilkaset metrów, wykonując setki zakrętów, niewielkie błędy zaczynają się sumować.

Drift – mapa zaczyna „odpływać”

Narastający błąd oszacowania pozycji nazywany jest driftem.

Wyobraźmy sobie robota, który po każdym metrze myli się tylko o kilka milimetrów.

Po jednym metrze różnicy prawie nie zauważymy.

Po wielu przejazdach błąd może jednak stać się na tyle duży, że ściana zmierzona ponownie nie pokryje się ze ścianą zapisaną wcześniej.

Jeżeli system bezkrytycznie wierzyłby tylko odometrii, mapa stopniowo zaczęłaby się skręcać, rozciągać albo przesuwać.

Dlatego robot potrzebuje dodatkowego punktu odniesienia.

Scan matching – nowy skan musi pasować do poprzedniego

Scan matching polega na dopasowaniu danych z kolejnych skanów laserowych.

Załóżmy, że przed chwilą robot zobaczył fragment dwóch ścian tworzących narożnik.

Po przejechaniu pół metra wykonuje nowy skan i ponownie widzi ten sam narożnik, tylko z innej pozycji.

Algorytm próbuje znaleźć takie:

przesunięcie X, przesunięcie Y i obrót robota,

przy których nowy zestaw punktów najlepiej pasuje do poprzedniego skanu albo już zbudowanej mapy.

W ten sposób LiDAR może pomagać korygować błąd odometrii.

Dopasowanie dwóch kolejnych skanów LiDAR w procesie scan matching SLAM

Scan matching polega na znalezieniu takiego przesunięcia i obrotu nowego skanu, aby jego geometria możliwie najlepiej pasowała do wcześniejszych pomiarów lub istniejącej mapy.

Robot nie szuka jednej identycznej kropki

To również warto wyjaśnić.

Świat nie składa się z idealnie nieruchomych punktów, które przy każdym skanie pojawiają się dokładnie w tym samym miejscu.

Pomiar ma określoną dokładność, robot jest w ruchu, a część elementów otoczenia może się zmieniać.

Dlatego algorytmy dopasowania szukają najbardziej prawdopodobnego geometrycznego dopasowania całych zbiorów danych, a nie identyczności każdego pojedynczego punktu.

Można to porównać do nałożenia na siebie dwóch półprzezroczystych rysunków. Przesuwamy i obracamy jeden z nich tak długo, aż jak najwięcej linii zacznie się pokrywać.

Mapa robota nie musi być rysunkiem ścian

To jedna z ciekawszych różnic pomiędzy tym, co widzi użytkownik w aplikacji, a tym, czym może posługiwać się algorytm.

Jedną z klasycznych reprezentacji jest occupancy grid, czyli mapa zajętości.

Przestrzeń dzielona jest na dużą liczbę małych komórek.

Stan komórki Co oznacza?
Wolna Sensor wskazuje, że robot może znajdować się w tym miejscu
Zajęta Istnieje duże prawdopodobieństwo obecności przeszkody
Nieznana Robot nie ma wystarczających danych o tym obszarze

Co istotne, w klasycznej koncepcji occupancy grid nie musimy od razu podejmować decyzji zero-jedynkowej.

Komórka może przechowywać prawdopodobieństwo zajętości, które jest aktualizowane w miarę pojawiania się kolejnych pomiarów.

Mapa w aplikacji jest już interpretacją mapy robota

To, co widzimy na ekranie telefonu, nie musi być surowym wynikiem SLAM-u.

Producent może na dalszym etapie:

  • wygładzać kontury ścian,
  • dzielić mapę na pokoje,
  • rozpoznawać przejścia pomiędzy pomieszczeniami,
  • nakładać wykryte dywany,
  • dodawać meble i obiekty,
  • przechowywać strefy zabronione,
  • łączyć dane z kilku rodzajów sensorów.

Dlatego kolorowy plan mieszkania w aplikacji jest zwykle produktem kilku warstw oprogramowania, a nie bezpośrednim „zdjęciem wykonanym przez LiDAR”.

GMapping – zamiast jednej pozycji można rozważać wiele hipotez

Jednym z ważnych podejść w historii SLAM-u są filtry cząsteczkowe.

Dobrze znanym przykładem jest GMapping i rozwinięcia oparte na Rao-Blackwellized Particle Filter.

Idea jest bardzo ciekawa.

Zamiast powiedzieć:

„robot na pewno znajduje się dokładnie tutaj”,

algorytm może utrzymywać wiele hipotez dotyczących jego położenia.

Każda taka hipotetyczna pozycja jest nazywana cząstką.

W klasycznym podejściu Rao-Blackwellized particle filter każda cząstka może być związana z własną hipotezą mapy.

Kiedy pojawiają się nowe dane z sensora, hipotezy lepiej pasujące do obserwacji otrzymują większą wagę, a mniej prawdopodobne stopniowo zanikają.

Wyobraźmy sobie trzy możliwe pozycje robota

Robot wjechał w poślizg i system nie jest pewny, gdzie dokładnie się zatrzymał.

Może więc chwilowo rozważać:

pozycję A – najbardziej na lewo,
pozycję B – pośrodku,
pozycję C – najbardziej na prawo.

LiDAR wykonuje następny skan.

Jeżeli układ ścian widziany z pozycji B znacznie lepiej odpowiada rzeczywistemu pomiarowi, hipoteza B staje się bardziej prawdopodobna.

To oczywiście ogromne uproszczenie, ale dobrze pokazuje probabilistyczny charakter SLAM-u.

GMapping rozwiązał jeden problem, ale miał własne ograniczenia

Praca Giorgio Grisettiego, Cyrilla Stachnissa i Wolframa Burgarda rozwijała metodę Rao-Blackwellized Particle Filter tak, aby ograniczyć liczbę potrzebnych cząstek.

Autorzy wykorzystywali nie tylko model ruchu robota, ale również najnowszą obserwację sensora do tworzenia lepszych propozycji pozycji.

Pozwalało to zmniejszyć niepewność i ograniczyć problem degeneracji cząstek.

Takie algorytmy bardzo dobrze pokazują ważną zasadę SLAM-u: nie chodzi o uzyskanie jednej idealnie pewnej odpowiedzi, ale o coraz lepsze oszacowanie najbardziej prawdopodobnego stanu robota.

Hector SLAM pokazał siłę bezpośredniego scan matchingu

Inną filozofię reprezentował Hector SLAM.

System wykorzystywał szybkie dopasowywanie skanów LiDAR-u do wielorozdzielczej mapy zajętości.

Jednym z celów projektu była dobra lokalizacja również w sytuacjach, w których klasyczna odometria kołowa nie jest dostępna albo jest mało użyteczna.

Ma to sens na przykład w robotach poruszających się po trudnym terenie, gdzie poślizg kół może być znaczny.

Hector SLAM jest dobrym przykładem tego, jak bardzo dokładny i szybki sensor laserowy może stać się podstawą bezpośredniego oszacowania ruchu.

Od filtrów do grafów – robot zaczyna patrzeć na całą swoją historię

Współczesny SLAM bardzo często przedstawia problem w postaci grafu pozycji.

Można wyobrazić go sobie jak sieć punktów połączonych liniami.

Każdy punkt – węzeł – może reprezentować pozycję robota w określonym momencie.

Połączenia pomiędzy punktami oznaczają ograniczenia, na przykład:

„pomiędzy pozycją numer 120 i 121 robot przesunął się mniej więcej o 24 cm i obrócił o 3 stopnie”.

Takie ograniczenia mogą pochodzić z odometrii, LiDAR-u, IMU i innych sensorów.

Graf nie musi być idealny od początku

To bardzo ważna właściwość.

Pierwsze oszacowanie trajektorii może zawierać błędy.

Robot tworzy jednak kolejne węzły i dodaje pomiędzy nimi nowe ograniczenia.

Jeżeli później uzyska informację, że jedna ze starszych pozycji była nieco błędna, algorytm optymalizacyjny może spróbować przesunąć wiele wcześniejszych węzłów tak, żeby cała sieć stała się możliwie spójna.

To prowadzi nas do jednego z najciekawszych elementów SLAM-u.

Loop closure – robot odkrywa, że już tutaj był

Loop closure, czyli wykrywanie zamknięcia pętli, pozwala rozpoznać miejsce odwiedzone wcześniej.

Wyobraźmy sobie mieszkanie z korytarzem biegnącym wokół kilku pomieszczeń.

Robot rozpoczyna jazdę w punkcie A.

Pokonuje kolejne metry, wykonuje kilkanaście zakrętów i po dziesięciu minutach wraca w okolice punktu A.

Z powodu nagromadzonych błędów jego wewnętrzne obliczenia mogą jednak wskazywać, że znajduje się jeszcze 20 cm od miejsca startu.

LiDAR rozpoznaje charakterystyczną geometrię znaną z wcześniejszego skanu.

System może wtedy dojść do wniosku:

„to jest to samo miejsce, więc moja trajektoria po drodze musiała trochę się rozjechać”.

Mapa może nagle się poprawić

Loop closure tworzy bardzo silne nowe ograniczenie:

pozycja z początku przejazdu i bieżąca pozycja powinny znajdować się praktycznie w tym samym miejscu.

Back-end może wtedy przeprowadzić optymalizację całego fragmentu trajektorii.

W efekcie wcześniejsze pozycje zostają delikatnie przesunięte, a mapa odzyskuje spójność.

Dla użytkownika może to wyglądać dziwnie.

Fragment ściany widoczny przed chwilą pod niewłaściwym kątem może nagle przesunąć się albo wyprostować.

Nie musi to oznaczać błędu.

Może być właśnie efektem wykrycia wcześniejszego miejsca i poprawienia nagromadzonego błędu.

Drift i korekcja mapy przez loop closure w systemie SLAM robota sprzątającego

Niewielkie błędy odometrii i pomiarów mogą narastać podczas jazdy. Gdy robot rozpozna wcześniej odwiedzone miejsce, loop closure daje systemowi możliwość skorygowania trajektorii i wcześniejszych fragmentów mapy.

Google Cartographer – lokalne podmapy i globalna korekcja

Jednym z najbardziej znanych przykładów podejścia opartego na optymalizacji grafowej jest Google Cartographer.

System opisany przez Wolfganga Hessa, Damona Kohlera, Holgera Rappa i Daniela Andora buduje lokalne submaps, czyli podmapy, a następnie wykorzystuje scan-to-submap matching oraz wykrywanie pętli do tworzenia ograniczeń pozwalających poprawiać cały graf pozycji.

Autorzy pokazali możliwość wykonywania mapowania i loop closure w czasie rzeczywistym przy ograniczonych zasobach obliczeniowych.

To ważne, ponieważ SLAM nie może być tylko dokładny.

Robot musi wykonywać obliczenia w czasie, gdy jedzie.

Co to właściwie jest podmapa?

Zamiast od razu dopisywać każdy punkt do jednej gigantycznej mapy całego budynku, system może tworzyć mniejsze lokalne fragmenty.

Przez pewien czas nowe skany są dopasowywane do bieżącej podmapy.

Później powstaje następna.

Takie podejście ma kilka zalet.

Lokalne dopasowanie pozostaje stosunkowo szybkie, a back-end może później decydować, jak poszczególne podmapy powinny być ustawione względem siebie.

Jeżeli zostanie wykryte loop closure, nie trzeba udawać, że wszystkie wcześniejsze pomiary były idealne. Można odpowiednio skorygować relacje pomiędzy fragmentami.

Czy robot sprzątający korzysta z GMapping albo Cartographera?

Nie wolno tego zakładać tylko dlatego, że jego zachowanie przypomina działanie któregoś z tych systemów.

GMapping, Hector SLAM czy Cartographer są bardzo dobrymi przykładami pozwalającymi zrozumieć kolejne generacje metod SLAM.

Producenci robotów konsumenckich zwykle nie publikują jednak całego kodu i szczegółowej architektury swoich systemów nawigacyjnych.

Firma może stosować:

  • własny algorytm,
  • modyfikację znanych metod,
  • kilka podejść połączonych ze sobą,
  • dodatkowe algorytmy niedostępne publicznie.

Dlatego w tej serii będę używał GMapping, Hector SLAM i Cartographera przede wszystkim jako dobrze opisanych naukowo przykładów różnych sposobów rozwiązywania problemu SLAM, a nie jako listy systemów przypisanych do konkretnych odkurzaczy.

Co się dzieje, gdy przez mapowany pokój przejdzie człowiek?

Dla człowieka sytuacja jest oczywista.

Ściana jest elementem mieszkania.

Człowiek przechodzący przez salon nie jest.

LiDAR nie posiada jednak takiej wiedzy.

Widząc nogę człowieka, otrzymuje po prostu pomiar odległości do powierzchni.

Jeżeli osoba się przesunie, w następnym skanie punkt będzie już znajdował się gdzie indziej.

Dynamiczne otoczenie jest jednym z aktywnie badanych problemów 2D LiDAR SLAM.

Pies, krzesło i ściana to dla mapy trzy różne przypadki

Można wyróżnić trzy interesujące sytuacje.

Ściana – prawie zawsze znajduje się w tym samym miejscu.

Pies – potrafi zmienić pozycję pomiędzy dwoma kolejnymi skanami.

Krzesło – może przez tydzień stać dokładnie w tym samym miejscu, a później zostać przesunięte o metr.

Ostatni przypadek jest szczególnie ciekawy, bo pokazuje, że świat robota nie dzieli się wyłącznie na „stałe” i „ruchome”.

Istnieją również elementy półstatyczne.

Dlaczego pusty korytarz może być trudniejszy niż zagracony pokój?

Na pierwszy rzut oka powinno być odwrotnie.

W pustym korytarzu nic przecież nie przeszkadza robotowi.

Dla lokalizacji sytuacja może jednak wyglądać inaczej.

Im bardziej charakterystyczna geometria, tym łatwiej jednoznacznie dopasować skany.

Narożnik, wnęka, kilka różnych ścian i meble tworzą wiele geometrycznych wskazówek.

Długi korytarz z dwiema niemal równoległymi ścianami przez kilka metrów może wyglądać bardzo podobnie w wielu kolejnych punktach.

Algorytm nadal może świetnie określać odległość do obu ścian, ale jednoznaczne ustalenie przesunięcia wzdłuż osi korytarza może wymagać dodatkowych informacji.

To jeden z powodów, dla których fuzja LiDAR-u z odometrią, IMU i systemem wizyjnym może być tak wartościowa.

Szkło potrafi zepsuć nie tylko pojedynczy pomiar, ale cały SLAM

W poprzednim artykule wspominałem już o problemach laserów ze szkłem i lustrami.

W kontekście SLAM-u konsekwencja jest jeszcze ciekawsza.

Jeżeli część pomiarów jest błędna, problem nie kończy się na jednym źle wykrytym punkcie.

Błędne dane mogą uczestniczyć w scan matchingu i wpłynąć na oszacowanie pozycji robota.

W eksperymentach opisanych w przeglądzie badań z 2025 roku szklane ogrodzenie powodowało pojawianie się chaotycznych linii na tworzonych mapach. Autorzy wskazują transparentność szkła jako przyczynę niewystarczającego powrotu światła do LiDAR-u i nieprawidłowego pozycjonowania powierzchni.

Temu problemowi poświęcimy osobny artykuł, ponieważ fizyka luster, szkła i powierzchni refleksyjnych jest znacznie ciekawsza, niż mogłoby się wydawać.

SLAM może korygować część błędów, ale nie jest w stanie całkowicie „naprawić” danych, które od początku zostały zniekształcone przez właściwości optyczne otoczenia. Przykłady takich sytuacji pokazujemy w artykule o wpływie luster, szkła i ciemnych powierzchni na pomiary LiDAR-u.

Co dzieje się po zapisaniu pierwszej mapy?

Kiedy robot ma już zapisaną mapę mieszkania, nie zawsze musi za każdym uruchomieniem budować wszystko całkowicie od początku.

Może próbować wykonać lokalizację względem istniejącej mapy.

Po starcie wykonuje skany otoczenia i szuka miejsca, w którym aktualny układ ścian najlepiej pasuje do zapisanego modelu.

Jeżeli dopasowanie jest jednoznaczne, może ustalić:

„jestem właśnie tutaj i jestem obrócony w tę stronę”.

Dokładny sposób działania zależy jednak od producenta i trybu pracy urządzenia. Część systemów stale aktualizuje elementy mapy, inne znacznie mocniej trzymają się zapisanej reprezentacji.

Dlaczego przeniesienie robota ręką może go zdezorientować?

Załóżmy, że robot znajduje się w salonie, ale ktoś podnosi go i przenosi do sypialni.

Odometria nie zarejestrowała przejazdu pomiędzy tymi miejscami.

Z punktu widzenia napędów robot właściwie się nie poruszył.

Nowy skan laserowy przestaje jednak pasować do miejsca, w którym system spodziewał się znaleźć urządzenie.

Robot musi przeprowadzić relocalizację – znaleźć na mapie miejsce pasujące do aktualnych obserwacji.

Jeżeli pomieszczenie ma charakterystyczną geometrię, może udać się to bardzo szybko.

Jeśli kilka pomieszczeń wygląda geometrycznie podobnie, problem staje się trudniejszy.

Dlaczego robot czasem umieszcza się w złym pokoju?

Może wystąpić sytuacja, w której aktualny skan pasuje do kilku fragmentów mapy.

Wyobraźmy sobie dwa podobne pokoje:

  • zbliżony rozmiar,
  • drzwi po tej samej stronie,
  • podobny układ dużych mebli.

Jeżeli robot został przeniesiony bez informacji o ruchu, sam geometryczny obraz może nie być natychmiast wystarczający do jednoznacznego rozstrzygnięcia.

Dodatkowe kolejne pomiary, ruch robota albo dane innych czujników mogą pomóc odrzucić niepoprawną hipotezę.

Mapa może być dobra, ale trasa nadal może być zła

To kolejna rzecz często mieszana w opisach robotów.

SLAM nie jest tym samym co planowanie trasy.

SLAM może powiedzieć:

„robot znajduje się tutaj, a tutaj są przeszkody”.

Dopiero planer musi zdecydować:

„skoro chcę dojechać do kuchni, powinienem pojechać tędy”.

Jeszcze inny poziom oprogramowania może decydować:

„w tym pomieszczeniu będę jechał pasami od lewej do prawej, a później zrobię przejazd wzdłuż ścian”.

Dlatego robot może mieć bardzo dokładną mapę, a jednocześnie stosować przeciętną strategię sprzątania.

SLAM nie oznacza również sztucznej inteligencji

Marketing producentów lubi łączyć pojęcia SLAM, AI i inteligentnej nawigacji.

Technicznie nie są one synonimami.

Przez dziesięciolecia rozwijano bardzo skuteczne algorytmy SLAM wykorzystujące klasyczne metody probabilistyczne, optymalizację matematyczną i geometrię.

Uczenie głębokie jest jednym z nowszych kierunków rozwoju.

Przegląd badań z 2025 roku wyróżnia deep learning jako osobną grupę metod i pokazuje zastosowania między innymi przy dopasowywaniu skanów oraz wykrywaniu loop closure.

Nie oznacza to jednak, że każdy współczesny SLAM musi być oparty na sieci neuronowej.

Cztery główne rodziny 2D LiDAR SLAM

Podejście Główna idea Przykład
Filtry Probabilistyczne śledzenie możliwych stanów robota GMapping / RBPF
Scan matching Dopasowywanie kolejnych skanów lub skanu do mapy Hector SLAM
Optymalizacja grafowa Pozycje jako węzły, pomiary jako ograniczenia, globalna korekcja Cartographer
Deep learning Uczenie reprezentacji, dopasowań lub rozpoznawania miejsc Rozwiązania badawcze

W praktyce granice nie zawsze są ostre. Nowoczesne rozwiązania często łączą kilka metod.

Dlaczego producenci dodają coraz więcej sensorów?

Bo każdy pojedynczy sensor popełnia inne błędy.

Koła dobrze mierzą własny obrót, ale mogą się ślizgać.

LiDAR dokładnie mierzy geometrię, ale ma problemy z niektórymi powierzchniami i nie dostarcza tak bogatej informacji wizualnej jak kamera.

Kamera potrafi rozpoznawać charakterystyczne obiekty, ale zależy od warunków obrazowych.

IMU dobrze rejestruje szybkie zmiany ruchu, ale sama również akumuluje błędy.

Połączenie kilku źródeł danych może dać lepszy wynik niż bezkrytyczne zaufanie jednemu z nich.

Dlatego badania nad połączeniem LiDAR-u, kamery, IMU i odometrii są jednym z najważniejszych kierunków dalszego rozwoju SLAM.

W praktycznym robocie dane potrzebne do lokalizacji nie muszą pochodzić wyłącznie z jednego źródła. Odometria może uzupełniać LiDAR, IMU szybko reagować na zmianę ruchu, a kamera dostarczać informacji, których sam skaner laserowy nie posiada. Szczegółowo pokazujemy to w artykule o sensor fusion w robotach sprzątających.

Czy SLAM jest już rozwiązanym problemem?

Można odnieść takie wrażenie, patrząc na robota kosztującego kilkaset złotych, który po pierwszym przejeździe pokazuje całkiem sensowny plan mieszkania.

Problem SLAM jest jednak znacznie większy niż stworzenie prostej mapy jednego mieszkania.

Trudności pojawiają się między innymi w:

  • długotrwale zmieniających się środowiskach,
  • miejscach z wieloma ruchomymi obiektami,
  • dużych przestrzeniach,
  • otoczeniu z niewielką liczbą charakterystycznych cech,
  • powierzchniach transparentnych i refleksyjnych,
  • łączeniu map z różnych sesji,
  • interpretowaniu znaczenia obserwowanych obiektów.

Dlatego pomimo ogromnego postępu SLAM nadal pozostaje aktywnym obszarem badań robotycznych.

Co SLAM tłumaczy w zachowaniu zwykłego robota sprzątającego?

Po poznaniu podstaw SLAM-u wiele zachowań robotów zaczyna wyglądać znacznie mniej tajemniczo.

Zachowanie robota Możliwe wyjaśnienie od strony SLAM
Mapa lekko zmienia kształt podczas pierwszego przejazdu Kolejne skany i optymalizacja poprawiają wcześniejsze oszacowania
Po objechaniu mieszkania mapa nagle się wyrównuje Mogło zostać wykryte loop closure
Po przeniesieniu robot chwilę szuka pozycji Próbuje przeprowadzić relokalizację na zapisanej mapie
Powstają podwójne lub przesunięte ściany Kolejne skany nie zostały prawidłowo dopasowane albo lokalizacja uległa dużemu błędowi
Przy lustrze pojawia się dziwny fragment mapy LiDAR może dostarczać fałszywych pomiarów wynikających z odbić
Robot ma problem w bardzo podobnych pomieszczeniach Geometria może być niewystarczająco charakterystyczna do jednoznacznej relokalizacji

Najważniejsze: robot nie zna prawdy, tylko ją szacuje

To chyba najważniejsza rzecz, którą warto zapamiętać po przeczytaniu tego artykułu.

Robot nie posiada idealnej informacji o swoim położeniu ani perfekcyjnej mapy świata.

Posiada pomiary obarczone błędami.

Na ich podstawie cały czas tworzy coraz lepsze oszacowanie:

gdzie się znajduje,
jak się poruszył,
gdzie są przeszkody,
które miejsca widział wcześniej.

SLAM jest więc nie tyle „rysowaniem mapy”, co ciągłym procesem uzgadniania wielu niedoskonałych informacji.

LiDAR może podać odległość.

Koło może podać wykonany obrót.

IMU może zarejestrować zmianę orientacji.

Poprzednia mapa może podpowiedzieć, gdzie robot powinien się znajdować.

A SLAM próbuje z tych wszystkich informacji stworzyć jedną, możliwie spójną wersję rzeczywistości.

Co dalej?

Wiemy już, czym jest LiDAR i jak SLAM wykorzystuje jego pomiary do tworzenia mapy i lokalizacji robota.

Kolejny problem jest jeszcze bardziej namacalny dla użytkowników robotów:

dlaczego laser potrafi poprawnie zobaczyć zwykłą ścianę, a przy lustrze, szybie albo bardzo ciemnej powierzchni zaczynają dziać się rzeczy, które wyglądają jak błąd oprogramowania?

W następnej części serii przyjrzymy się właśnie fizyce odbicia światła oraz badaniom pokazującym, w jaki sposób lustra i szkło potrafią stworzyć w danych LiDAR-u powierzchnie, których w rzeczywistości wcale tam nie ma.

FAQ – SLAM w robotach sprzątających

Czy SLAM i LiDAR to to samo?

Nie. LiDAR jest sensorem mierzącym odległość do otoczenia. SLAM to zestaw metod służących do jednoczesnego tworzenia mapy i ustalania pozycji robota. LiDAR może być jednym ze źródeł danych dla SLAM-u.

Co oznacza SLAM w robocie sprzątającym?

SLAM oznacza Simultaneous Localization and Mapping. Robot podczas poruszania się jednocześnie buduje model otoczenia i określa własną pozycję względem tego modelu.

Dlaczego mapa robota czasami przesuwa się lub zmienia kształt?

Wstępne pomiary i pozycje są jedynie oszacowaniami. Kiedy robot otrzymuje więcej danych albo wykryje miejsce odwiedzone wcześniej, algorytm może poprawić wcześniejszą trajektorię i mapę.

Co to jest loop closure?

To wykrycie, że robot ponownie znalazł się w miejscu odwiedzonym wcześniej. Informacja ta pozwala ograniczyć narastający błąd pozycji i poprawić spójność mapy.

Co to jest scan matching?

To dopasowywanie kolejnych skanów LiDAR-u do wcześniejszych pomiarów lub istniejącej mapy. Na podstawie najlepszego dopasowania można oszacować przesunięcie i obrót robota.

Czy robot tworzy mapę tylko na podstawie LiDAR-u?

Niekoniecznie. Współczesne urządzenia mogą łączyć dane LiDAR-u z odometrią, IMU, kamerami, czujnikami ToF i innymi sensorami. Dokładna architektura zależy od konkretnego robota.

Czy GMapping i Cartographer są stosowane w robotach sprzątających?

Są ważnymi i dobrze udokumentowanymi systemami SLAM używanymi w robotyce i świetnie pokazują ewolucję technologii. Nie należy jednak bez dokumentacji producenta zakładać, że konkretny komercyjny robot sprzątający wykorzystuje dokładnie GMapping, Cartographer albo inny publicznie znany algorytm.

Czy SLAM to sztuczna inteligencja?

Nie jest to synonim AI. Wiele skutecznych systemów SLAM opiera się na geometrii, probabilistyce i optymalizacji. Współczesne badania wykorzystują również deep learning, między innymi do dopasowywania danych i rozpoznawania wcześniej odwiedzonych miejsc.

Źródła