Jak algorytmy SLAM radzą sobie ze zmieniającym się środowiskiem?

13

Robię pewne prace przygotowawcze do projektu i mam pytanie dotyczące aktualnego stanu technik SLAM.

Gdy urządzenie wyposażone w SLAM wykryje obiekt, pozycja tego obiektu jest zapisywana. Jeśli spojrzysz na chmurę punktów generowaną przez urządzenie, zobaczysz punkty dla tego obiektu, a wygenerowane z niego modele będą zawierać geometrię.

Jeśli obiekt zostanie umieszczony w uprzednio pustej przestrzeni, zostanie wykryty i dodane zostaną punkty. Kolejne modele będą miały geometrię opisującą ten nowy obiekt.

Jak reaguje urządzenie po usunięciu tego obiektu? O ile widziałem, systemy SLAM będą miały tendencję do pozostawiania punktów na miejscu, co skutkuje geometrią „ducha”. Istnieją algorytmy, które nie uwzględniają pojedynczych punktów spowodowanych przez styki przejściowe, ale obiekty, które pozostały wystarczająco długo, aby zbudować solidny model, pozostaną w pamięci urządzenia. Czy są jakieś systemy, które są w stanie wykryć, że wcześniej zajmowane miejsce jest teraz puste?

anaksymander
źródło
To pytanie nie ma wiele wspólnego z uczeniem maszynowym.
Josh Vander Hook
Może nie; Nie byłem w 100% pewien, które tagi pasują. Wydaje mi się, że aplikacja, którą mam na myśli, pasuje, ale być może bez tego kontekstu jest mniej przydatna ...
anaximander

Odpowiedzi:

5

To bardzo zależy. Ponieważ SLAM jest problemem (a przynajmniej techniką), a nie rozwiązaniem, nie ma ostatecznego algorytmu SLAM. Semantycznie musisz zdecydować, co dzieje się na „mapie” środowiska, a to określa, w jaki sposób twój algorytm powinien obsługiwać przejściowe (czyli ruchome) sygnały. Ale to jest dygresja.

Stałe mapy:

Stałe mapy powinny zawierać wystarczającą ilość informacji, aby zlokalizować się w odniesieniu do znanej geometrii. Zwykle stosowany w budynkach. Zwykle czytelny dla człowieka. Zobacz prace Willow-Garage. lub cokolwiek innego Thrada w jego dość znanym podręczniku. Jeśli zgubisz tę mapę, musisz ją z czasem odbudować.

  1. Usuwanie obiektów Tak, obiekt pojawi się na jakiś czas w mapie statycznej. Jeśli nie zostaną podjęte żadne kroki w celu usunięcia uprzednio wykrytych obiektów, będzie się utrzymywać. Typowa reprezentacja oparta na siatce 2D wykorzysta każdą komórkę siatki do przedstawienia prawdopodobieństwa obiektu, więc po pewnym czasie obiekt „zniknie”.

  2. Dodawanie obiektów. Tak samo jak powyżej.

Mapy lokalne:

W rzeczywistości SLAM jest zwykle używany do lokalizacji robota podczas ruchu, a mapa nie jest przechowywana na stałe (lub jest przechowywana na stałe, ale używane są tylko najbliższe funkcje Y). Mapy lokalne to wszystko, co robot musi wiedzieć, aby określić, w jaki sposób poruszał się w ostatnich X minutach, gdzie X zależy od aplikacji. Jeśli zgubisz mapę, nadal możesz latać dobrze, używając wszystkich widocznych funkcji.

  1. Metody wsadowe, takie jak Korekta pakietu przy użyciu funkcji wizualnych, są bardzo popularną techniką w tym kierunku. Funkcje mogą być przechowywane z czasem, a nawet ponownie odwiedzane, ale funkcja ruchoma jest po prostu niewiarygodną funkcją i zostanie zignorowana, gdy spróbujesz dowiedzieć się, gdzie jest robot.

  2. Visual SLAM jest dokładnie tym. Jest to estymator delta-P (zmiana pozycji), a nie algorytm lokalizacyjny oparty na mapie.

  3. Krótko mówiąc, dopóki większość rzeczy się nie porusza, nie ma znaczenia, czy usuniesz obiekt, gdy robot go nie „patrzy”.

Przykład

Więc zrób to. Czytając artykuł SLAM, zdecyduj, co następuje:

  1. Czy naprawdę budują mapę?

  2. Czy tylko przechowują listę funkcji i lokalizacji?

  3. Jeśli tak, jakie „funkcje” znajdują się na mapie? Linie, punkty, cechy wizualne?

  4. Czy te funkcje prawdopodobnie się poruszą?

  5. Jeśli tak, to jak sobie z tym poradzić?

  6. Wreszcie hałas czujnika często „przypomina” ruchome elementy. Jak radzą sobie z hałasem czujnika? Ponieważ to często określa, co dzieje się z ruchomymi funkcjami.

Otrzymasz inną odpowiedź dla każdego artykułu / autora / książki / aplikacji. Krótko mówiąc, zwykle są one pomijane, ponieważ nie pomagają robotowi w dużej lokalizacji, i można tego uniknąć, po prostu posiadając kilka niskopoziomowych narzędzi do planowania ścieżek, które wykorzystują tylko informacje lokalne.

Powodzenia, slam to ogromny temat.

Josh Vander Hook
źródło
Dzięki! Czy znasz jakieś techniki, które śledzą, gdzie obiekty zostały „nabyte” i „utracone”? Patrzę na zastosowania podzbioru algorytmów typu SLAM, a jednym z obszarów zainteresowania jest identyfikacja obszarów „przejściowych”, takich jak drzwi i zakryte rogi, z których mogą się pojawiać obiekty. Ta aplikacja zamienia zwykłą miarę prawdopodobieństwa zanikania na głowie - zamiast „zanikania” obiektów poza zasięgiem wzroku, niezauważone obszary powoli zwiększają swoją wartość, wskazując, że nie wiemy, co tu jest, ponieważ nie oglądaliśmy ostatnio, więc powinien być ostrożny podczas przemieszczania się w tę przestrzeń.
anaximander
O wiele trudniej. Jedynym sposobem, aby to zrobić poprawnie, jest unikalna identyfikacja obiektów. Na przykład umieść na nich kod kreskowy. W przeciwnym razie obiekt A mógł zostać przeniesiony do lokalizacji B, a może A i B zamienione itd. Czytaj dalej na mapowaniu semantycznym. Potrzebujesz algorytmu, który może „rozpoznać”, że poruszające się rzeczy to tak naprawdę „drzwi”, które powinny być przymocowane do „ścian”, ale tylko wtedy, gdy jestem „wewnątrz”, ale co w każdym razie oznacza „wnętrze” dla robota? Myślę, że powinieneś przeczytać więcej i zgłosić się.
Josh Vander Hook
Tak, chodzi tutaj o to, by ominąć problem semantyki, po prostu podkreślając: „jest to obszar, w którym wciąż widzę rzeczy, których wcześniej nie było, lub przestaję widzieć rzeczy, które tam były”. Możliwe, że ten obszar jest rodzajem przejścia - drzwi, pudełko, okno, zakryty róg. Który z tych, z którymi mamy do czynienia, jest mniej ważny; służy to wyłącznie unikaniu kolizji, dlatego chcemy uniknąć wszystkich tych obszarów. Podobnie nie musimy szczególnie wiedzieć, który obiekt jest który; tyle, że istnieje znacząca zmiana w ogólnej ilości miejsca zajmowanego przez Rzeczy.
anaximander
Przejrzeć. Literatura. Taki problem wynika z: A) przemieszczania się rzeczy. B) ruch robota. C) Robot się gubi. D) nieprawidłowe mapy. Każda z tych 4 rzeczy ma 4 różne poprawne rozwiązania. Jeśli nie poradzisz sobie ze wszystkimi 4, zbudujesz całkowicie niepoprawne mapy. Właśnie dlatego SLAM nie jest rozwiązany i nadal jest trudny. Przeczytaj i wróć z konkretnymi pytaniami związanymi z tym, czego się nauczyłeś.
Josh Vander Hook
1
To jest to co robię; im więcej czytam, tym dłuższa staje się moja lista rzeczy do przeczytania! To było pierwsze z wielu pytań, które podniosłem. Przepraszamy za nieco rozszerzenie pytania w komentarzach; Nie otrzymałem wiele odpowiedzi, a SLAM jest tak wielkim tematem ... wydawało się, że wiesz, o czym mówisz, więc miałem nadzieję, że uda mi się zdobyć kilka wskazówek. Na mojej liście znajdują się semantyczne artykuły z mapami, ale jest kilka innych, które muszę przeczytać jako podstawę do tego ... W każdym razie, myślę, że na razie wrócił do czytania.
anaximander