🗺️ SLAM: Jednoczesna Lokalizacja i Mapowanie
Interaktywna symulacja SLAM z filtrem cząsteczkowym. Robot z zaszumionym lidarem i odometrią lokalizuje się za pomocą filtrowania cząsteczkowego Monte Carlo, jednocześnie budując bayesowską mapę siatki zajętości log-odds ukrytego labiryntu.
O tej symulacji
SLAM (jednoczesna lokalizacja i mapowanie) rozwiązuje jednocześnie dwa powiązane problemy: gdzie jest robot i jak wygląda otoczenie — bez wcześniejszej znajomości żadnego z nich. Ta symulacja modeluje robota poruszającego się przez ukryty labirynt z zaszumionymi odczytami lidaru i odometrii. Filtr cząsteczkowy Monte Carlo utrzymuje populację hipotez o pozycji robota, ważąc każdą według tego, jak dobrze jej przewidywane odczyty lidaru pasują do rzeczywistych obserwacji, podczas gdy bayesowska siatka zajętości log-odds akumuluje dowody na to, które komórki są zajęte, a które wolne, budując mapę w czasie rzeczywistym w miarę poruszania się robota.
🔬 Co przedstawia
Robota z zaszumionym lidarem i odometrią eksplorującego ukryty labirynt, chmurę cząsteczek filtra Monte Carlo reprezentującą hipotezy o pozycji, oraz stopniowo budowaną mapę siatki zajętości log-odds.
🎮 Jak korzystać
Obserwuj, jak robot porusza się przez labirynt, jak chmura cząsteczek zwęża się wokół prawdziwej pozycji robota w miarę gromadzenia dowodów z lidaru, oraz jak mapa siatki zajętości stopniowo ujawnia ściany i otwartą przestrzeń labiryntu.
💡 Czy wiesz, że?
SLAM jest fundamentalnym problemem robotyki, umożliwiającym odkurzaczom automatycznym, samochodom autonomicznym i robotom eksploracyjnym budowanie map nieznanych środowisk podczas jednoczesnego śledzenia własnej pozycji — bez tego żaden z nich nie mógłby działać bez wcześniej przygotowanej mapy.
Najczęściej zadawane pytania
Czym jest SLAM i dlaczego jest to trudny problem?
SLAM oznacza jednoczesną lokalizację i mapowanie — problem budowania mapy nieznanego środowiska przy jednoczesnym śledzeniu pozycji robota w tej mapie. Jest trudny, ponieważ oba zadania zależą od siebie nawzajem: dokładna mapa wymaga znajomości pozycji robota, a dokładna pozycja wymaga znajomości mapy, więc oba muszą być szacowane razem, zwykle za pomocą metod probabilistycznych, takich jak filtry cząsteczkowe.
Jak działa filtr cząsteczkowy w tej symulacji?
Filtr cząsteczkowy utrzymuje dużą populację cząsteczek, z których każda reprezentuje hipotetyczną pozycję i orientację robota. Gdy robot się porusza, każda cząsteczka jest aktualizowana zgodnie z zaszumionym modelem ruchu odometrii. Gdy przychodzi nowy odczyt lidaru, każda cząsteczka jest ważona na podstawie tego, jak dobrze pasuje przewidywany odczyt do rzeczywistej obserwacji, a cząsteczki o niskiej wadze są odrzucane, a te o wysokiej wadze są powielane — proces zwany resamplingiem.
Czym jest bayesowska siatka zajętości log-odds?
To reprezentacja mapy, w której świat jest podzielony na siatkę komórek, a każda komórka przechowuje logarytm szans na to, że jest zajęta. Każdy odczyt czujnika dostarcza dowodów, które są dodawane logarytmicznie do bieżącego oszacowania komórki, co pozwala na efektywne, numerycznie stabilne łączenie wielu zaszumionych obserwacji w czasie w spójną mapę.
Dlaczego lidar i odometria są zaszumione w tej symulacji?
Prawdziwe czujniki nigdy nie są idealne — lidar ma ograniczoną rozdzielczość i szum pomiarowy, a odometria (śledzenie ruchu na podstawie obrotów kół) gromadzi błąd w czasie z powodu poślizgu kół i niedoskonałej kalibracji. Symulowanie tego szumu sprawia, że problem SLAM jest realistyczny i pokazuje, dlaczego potrzebne są metody probabilistyczne, a nie zwykłe śledzenie deterministyczne.