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?
Odpowiedzi:
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ć.
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”.
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.
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.
Visual SLAM jest dokładnie tym. Jest to estymator delta-P (zmiana pozycji), a nie algorytm lokalizacyjny oparty na mapie.
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:
Czy naprawdę budują mapę?
Czy tylko przechowują listę funkcji i lokalizacji?
Jeśli tak, jakie „funkcje” znajdują się na mapie? Linie, punkty, cechy wizualne?
Czy te funkcje prawdopodobnie się poruszą?
Jeśli tak, to jak sobie z tym poradzić?
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.
źródło