Artykuł metodologiczny

Ulepszone wizualne planowanie SLAM i ścieżki dla autonomicznej nawigacji kołowych robotów mobilnych

DOI:

10.3791/68794

3 października 2025

W tym artykule

Podsumowanie

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

W pracy przedstawiono podejście mające na celu poprawę autonomicznej nawigacji w pomieszczeniach WMR poprzez optymalizację wizualnych algorytmów SLAM i planowania ścieżek. Integruje fuzję wielu czujników, usprawnia wyodrębnianie cech i stosuje techniki optymalizacji trajektorii w celu lepszej lokalizacji, unikania przeszkód i płynniejszych ścieżek, wykazując doskonałą wydajność w rzeczywistych i symulowanych środowiskach.

Streszczenie

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Badania te koncentrują się na ważnych technologiach stosowanych w autonomicznej nawigacji za pomocą kołowych robotów mobilnych, takich jak optymalizacja planowania trasy, integracja systemów oraz postępy w technikach wizualnej jednoczesnej lokalizacji i mapowania (SLAM). Sugeruje się ulepszone podejście w celu przezwyciężenia problemów lokalizacyjnych w tradycyjnej odometrii wizualnej spowodowanych zduplikowanymi lub nierównomiernie rozmieszczonymi punktami cech. Podejście to łączy w sobie efektywne dopasowywanie funkcji Perspective-n-Point (EPNP), iteracyjną optymalizację położenia najbliższego punktu (ICP) oraz zarządzanie funkcjami oparte na quadtree. Zgodnie z wynikami eksperymentów, sugerowana metoda znacznie zwiększa dokładność i stabilność lokalizacji. Technika gęstej rekonstrukcji chmury punktów oparta na danych RGB-D została opracowana w celu poprawy kompletności i szczegółowości reprezentacji środowiska przy jednoczesnym złagodzeniu rzadkości często obserwowanej na mapach chmur punktów tworzonych przez konwencjonalne systemy SLAM. W celu poprawy jakości ścieżek i wydajności obliczeniowej przedstawiono ulepszoną metodę szybko eksplorującego drzewa losowego (RRT), która obejmuje adaptacyjne zarządzanie rozmiarem kroku, stronniczość celów i wygładzanie ścieżek oparte na splajnach. Co więcej, omijanie przeszkód w czasie rzeczywistym w dynamicznych sytuacjach jest możliwe dzięki integracji algorytmu Timed Elastic Band (TEB). Kompleksowe testy w warunkach rzeczywistych potwierdziły przydatność proponowanych rozwiązań pod względem wydajności, solidności i praktycznego zastosowania po ich wdrożeniu na eksperymentalnej platformie opartej na systemie operacyjnym robota (ROS).

Wprowadzenie

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Potencjał i wzorce zastosowań robotyki przechodzą okres szybkiej transformacji, napędzanej postępem w technologiach sztucznej inteligencji. W ostatnich latach w ramach Wizualnej Jednoczesnej Lokalizacji i Mapowania (Visual SLAM) oraz jej rozszerzenia na Systemy Nawigacji Wzrokowo-Inercyjnej (VINS) poczyniono znaczne postępy pod względem niezawodności i dokładności lokalizacji1. Aby zwiększyć niezawodność inicjalizacji w trudnych warunkach, takich jak słaba tekstura i słabe oświetlenie, Campos i in. zaproponowali ORB-SLAM3, który wprowadza system wielu map i ulepszoną inicjalizację dla systemów wizualnych i wizualno-inercyjnych2. Aby poprawić dopasowywanie cech w trudnych scenariuszach, DeTone i in. opracowali SuperPoint, samonadzorowaną metodę wykrywania i opisu punktów zainteresowania3, podczas gdy Sarlin i in. stworzyli SuperGlue, grafowe dopasowywanie cech oparte na sieciach neuronowych, które radzi sobie z trudnymi warunkami wizualnymi4. Do gęstej rekonstrukcji 3D Dai i in. zaproponowali BundleFusion, globalnie spójny system rekonstrukcji 3D w czasie rzeczywistym, który wykorzystuje reintegrację powierzchni w locie do obsługi środowisk na dużą skalę i zamknięć pętli5.

W dziedzinie planowania ścieżek, szybko eksplorujące się drzewa losowe (RRT) i ich warianty są nadal szeroko stosowane w planowaniu ruchu robotów. Podstawowy algorytm RRT został po raz pierwszy wprowadzony przez LaValle'a jako nowe narzędzie do planowania ścieżek, zapewniające wydajną metodę opartą na próbkowaniu do rozwiązywania złożonych, wielowymiarowych problemów6. Zostało to znacznie rozwinięte przez Karamana i Frazzoli, którzy opracowali algorytm RRT*, który zapewnia gwarancje asymptotycznej optymalności w planowaniu ruchu7. Opierając się na tych podstawowych algorytmach, nowoczesne badania skupiły się na podejściach hybrydowych, które łączą metody oparte na próbkowaniu z innymi technikami. Na przykład Rösmann i in. opracowali metodę Timed Elastic Band (TEB), która umożliwia generowanie lokalnie optymalnych trajektorii i została szeroko zintegrowana z globalnymi planistami8. Podobnie, Dynamic Window Approach (DWA) wprowadzone przez Foxa i in. zapewnia skuteczną metodę lokalnego unikania przeszkód w dynamicznych środowiskach9.

Na poziomie planowania lokalnego i percepcji semantycznej Chen i in. zaproponowali semantyczną strategię planowania ścieżki informacyjnej dla mikrostatków powietrznych (MAV), zwiększając zarówno skuteczność poszukiwań, jak i bezpieczeństwo podczas eksploracji celów10. Kabiri i in. zintegrowali pomiary czasu przybycia (ToA) 5G w ramy VINS, aby umożliwić globalną i lokalną fuzję SLAM, skutecznie poprawiając dokładność lokalizacji w środowiskach o ograniczonym zasięgu GNSS11. Aby ułatwić mapowanie w czasie rzeczywistym o wysokiej częstotliwości, Xu i in. opracowali FAST-LIO2, ściśle sprzężoną metodę odometrii LiDAR-IMU, zdolną do tworzenia dokładnych i gęstych map 3D12. Do planowania ścieżek w złożonych środowiskach Gammell i in. wprowadzili świadomą metodę RRT*, która obejmuje dwukierunkowy wzrost drzew i adaptacyjne pobieranie próbek, znacznie poprawiając jakość ścieżek i wydajność wyszukiwania w dynamicznych środowiskach13. Dodatkowo, w przypadku scenariuszy z wąskimi przejściami, Coleman i in. przedstawili metodę planowania ruchu opartą na próbkowaniu z próbkowaniem o zmiennym prawdopodobieństwie, która poprawia wskaźniki powodzenia planowania i wydajność obliczeniową14.

Niniejsze badanie dotyczy podstawowych wyzwań związanych z autonomiczną nawigacją w pomieszczeniach dla kołowych robotów mobilnych (WMR) poprzez poprawę zarówno strategii planowania trasy, jak i interfejsu SLAM. W szczególności proponowany system został zaprojektowany z myślą o typowych strukturalnych środowiskach wewnętrznych, takich jak laboratoria i korytarze, działających w warunkach umiarkowanego oświetlenia i minimalnego dostępu do GNSS. System nawigacji wykorzystuje przede wszystkim stereoskopową kamerę RGB-D, inercyjną jednostkę pomiarową (IMU) i enkodery kołowe, ze wszystkimi czujnikami skonfigurowanymi do próbkowania z częstotliwością nie mniejszą niż 20 Hz. Aby zapewnić niezawodne działanie systemu, maksymalna prędkość robota jest ograniczona do poziomu poniżej 1,5 m/s. Poniżej przedstawiono najważniejsze wkłady:

Opracowano wieloczujnikową, autonomiczną platformę nawigacyjną dla kołowych robotów mobilnych (WMR), której głównym czujnikiem jest kamera głębi. Aby uzyskać dokładną lokalizację i skuteczne omijanie przeszkód w typowych warunkach wewnętrznych, system integruje odometrię kół i inercyjną jednostkę pomiarową (IMU). Synergia między tymi komponentami odgrywa kluczową rolę w poprawie ogólnej wydajności nawigacji.

Połączenie algorytmów EPnP i ICP z techniką ekstrakcji cech opartą na poczwórnym drzewie pomogło udoskonalić moduł śledzenia w ORB-SLAM2. Dzięki tym zmianom wynika lepsza dokładność i solidność śledzenia.

Zaproponowano nową metodę planowania trasy, która kładzie nacisk na optymalizację trajektorii. Opiera się na ulepszonej technice RRT z odchyleniem celu i regulowanymi rozmiarami kroków oraz wykorzystuje krzywe B-splajn do wygładzania trajektorii. Algorytm TEB jest również dołączony do zarządzania unikaniem przeszkód w dynamicznych środowiskach.

Wydajność systemu została potwierdzona przez testy i symulacje w warunkach rzeczywistych. Typowe środowiska wewnętrzne umożliwiają analizę ilościową i jakościową w celu oceny dokładności mapy, jakości ścieżki i wydajności nawigacji. Pod względem solidności, przetwarzania w czasie rzeczywistym i płynności trajektorii proponowane podejście bije na głowę obecne rozwiązania.

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Protokół

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

1. Platforma sprzętowa

  1. Przygotuj dwukołową platformę robota mobilnego z napędem różnicowym odpowiednią do nawigacji w pomieszczeniach (patrz rysunek 1). Platforma ta wykorzystuje dwa niezależnie napędzane koła ustawione wzdłuż środka podwozia oraz pasywne koła samonastawne z przodu i z tyłu, aby zapewnić równowagę mechaniczną i zwrotność.
  2. Zamontuj różnicowe koła napędowe wzdłuż środkowej osi wzdłużnej podwozia. Użyj śrubokręta sześciokątnego, aby wyrównać i przymocować wały kół do piast silnika. Upewnij się, że koła są mocno zamocowane, ale obracają się swobodnie bez chybotania osiowego. Sprawdź, czy oba koła są dokładnie ustawione, aby utrzymać ruch w linii prostej i dokładną odometrię.
  3. Zamontuj przednie i tylne kółka samonastawne na obu końcach podwozia, aby zapewnić mechaniczne wsparcie podczas skręcania. Złe wyrównanie może prowadzić do niestabilności lub przechylenia podczas szybkich zmian kierunku.
  4. Zamontuj kamerę głębi ze światłem strukturalnym na górnym przednim panelu obudowy. Użyj regulowanego wspornika lub uchwytu samoprzylepnego, aby bezpiecznie przymocować kamerę. Ustaw go tak, aby pole widzenia obejmowało około 0.3 m do 3.0 m przed robotem.
  5. Podłącz moduły projektora i odbiornika podczerwieni do obudowy kamery, upewniając się, że wszystkie środki optyczne są prawidłowo wyrównane. Dostosuj kąt nachylenia kamery, aby zoptymalizować percepcję głębi.
  6. Przechyl kamerę w dół o 15°-30° za pomocą regulowanego uchwytu. Upewnij się, że żadna część obudowy nie zasłania rzutowanego wzoru podczerwieni. Ten kąt pomaga w uchwyceniu obiektów terenu w bliskim polu i unikaniu martwych punktów.
  7. Sprawdź głębię wyjściową kamery w czasie rzeczywistym za pomocą oprogramowania do wizualizacji, takiego jak RViz (wersja 1.14.1). Uruchom węzeł kamery i obserwuj strumień obrazu głębi. Podłącz kamerę głębi do jednostki mikrokontrolera (MCU) zamontowanej na środku obudowy.
    UWAGA: Upewnij się, że zasilanie jest wyłączone podczas wszystkich połączeń. Utrzymuj kable w porządku i z dala od ruchomych części, aby zapobiec splątaniu się podczas ruchu.

2. Optymalizacja ORB-SLAM2 pod kątem mapowania wnętrz

  1. Przygotuj środowisko ORB-SLAM2. Skalibruj kamerę (RGB-D) za pomocą standardowych narzędzi do kalibracji ROS. Skonfiguruj plik uruchamiania, aby określić tematy kamery, rozdzielczość (np. 640 x 480) i liczbę klatek na sekundę (np. 30 kl./s). Uruchom system SLAM za pomocą: xtark@tarkbot: $ roslaunch robot_platform slam map.launch slam _methods:=gmapping. Sprawdź obraz z kamery na żywo i komunikaty inicjalizacji SLAM w terminalu. Klatki kluczowe powinny pojawiać się po rozpoczęciu ruchu.
  2. Zmodyfikuj ORB-SLAM2, aby obsługiwał gęste mapowanie. Rozszerz domyślny moduł mapowania, aby uwzględnić gęsty wątek rekonstrukcji, który przetwarza dane o głębokości z klatek kluczowych.
  3. Dla każdej wybranej klatki kluczowej: Wyodrębnij zsynchronizowane obrazy RGB i głębi, przekonwertuj piksele głębi na punkty 3D za pomocą wewnętrznych parametrów kamery i połącz skumulowane chmury punktów w klatkach kluczowych, korzystając z informacji o ułożeniu. Rekurencyjnie podziel dowolny region z więcej niż jednym punktem kluczowym na cztery ćwiartki. Kontynuuj, aż każdy węzeł liścia będzie zawierał co najwyżej jeden dominujący punkt kluczowy lub rozmiar obszaru będzie mniejszy niż 10 x 10 pikseli.
  4. Ulepsz rozkład cech za pomocą quadtree (patrz rysunek 2). Zmodyfikuj moduł wyodrębniania cech ORB, aby uwzględnić strategię partycjonowania przestrzennego opartą na kwadracie. Podziel obraz na hierarchiczne obszary siatki, zastosuj SZYBKIE wykrywanie narożników w każdym regionie i zachowaj tylko najbardziej istotne cechy w każdym regionie, aby zapewnić jednolite pokrycie przestrzenne.
  5. Z każdego prawidłowego regionu wybierz kandydata o najwyższym poziomie istotności odpowiedzi jako funkcję reprezentatywną.
  6. Popraw szacowanie pozy dzięki EPnP. Zastąp domyślne szacowanie pozy (np. metody iteracyjne) algorytmem Efficient Perspective-n-Point (EPnP) przy użyciu solvePnP firmy OpenCV. Użyj funkcji obrazu 2D i odpowiadających im punktów mapy 3D, aby rozwiązać ułożenie kamery.
  7. Wdrażaj, wizualizuj i kontroluj robota. Przypisz statyczny adres IP do systemu pokładowego robota, aby zapewnić stabilną komunikację (np. ADRES IP ROBOTA: 172.20.10.13). Na komputerze hosta otwórz RViz (v1.14.1) i załaduj konfigurację, aby wyświetlić trajektorię robota, rzadkie i gęste mapy chmur punktów, klatki kluczowe i wykryte cechy.
  8. Ręcznie steruj robotem za pomocą strzałek na klawiaturze, aby poruszać się po przestrzeni do mapowania. Upewnij się, że linia trajektorii pojawia się w RViz, a klatki póz kamery są aktualizowane w czasie rzeczywistym.
    UWAGA: Rysunek 3 ilustruje układ klawiatury do ręcznego sterowania robotem podczas mapowania.

3. Przetwarzanie punktów cech za pomocą algorytmu Quadtree

  1. Wykonaj wyodrębnianie cech ORB zgodnie z poniższym opisem.
    1. Załaduj obraz wejściowy z tematu obrazu ROS lub lokalnego zestawu danych przy użyciu OpenCV (wersja 4.5.3).
    2. Zbuduj piramidę Gaussa z czterema poziomami, podziel obraz na jednolite komórki siatki (8 x 8 komórek na poziom). W każdej komórce zastosuj detektor FAST o progu 20, aby zidentyfikować lokalne punkty kluczowe.
  2. Skonstruuj udoskonalenie funkcji oparte na kwadracie, jak opisano poniżej.
    1. Dla każdego zestawu punktów kluczowych na danym poziomie ostrosłupa skonstruuj strukturę czworokąta: Zacznij od pełnego obrazu jako węzła głównego. Rekurencyjnie podziel dowolny region z więcej niż jednym punktem kluczowym na cztery ćwiartki. Kontynuuj, aż każdy węzeł liścia będzie zawierał co najwyżej jeden dominujący punkt kluczowy lub rozmiar obszaru będzie mniejszy niż 10 x 10 pikseli.
  3. Zastosuj ocenę istotności funkcji zgodnie z poniższym opisem.
    1. Oceń istotność każdego kandydującego punktu kluczowego w węźle za pomocą równania:
      figure-protocol-1     (1)
      gdzie Ip jest wartością intensywności środkowego piksela w sąsiedztwie lokalnym, a Ii reprezentuje wartości intensywności jego 16 sąsiednich pikseli. Absolutna różnica |Ip - Ii| Mierzy lokalny kontrast między środkowym pikselem a każdym sąsiadem. Suma wszystkich 16 sąsiadów stanowi miarę ogólnego lokalnego kontrastu lub siły tekstury wokół środkowego piksela.
    2. Uszereguj wszystkich kandydatów, korzystając z dynamicznej kolejki priorytetów posortowanej według oceny istotności. Z każdego prawidłowego regionu wybierz kandydata o najwyższym poziomie istotności odpowiedzi jako funkcję reprezentatywną.
  4. Optymalizowanie i weryfikowanie wyboru funkcji
    1. Połącz wszystkie wybrane funkcje na poziomach piramidy. Zapewnienie jednolitego pokrycia przestrzennego na całym obrazie. Przechowuj końcowe punkty funkcji i ich deskryptory za pomocą ekstraktora deskryptorów ORB, wersji zgodnej z OpenCV.
    2. Sprawdź, czy obiekty nie są zgrupowane w kilku obszarach obrazu. Punkty charakterystyczne powinny wykazywać równomierny rozkład przestrzenny, co zapewnia niezawodne śledzenie. Unikaj przetwarzania obrazu w fizycznym systemie robota w ruchu. Upewnij się, że strumień z kamery jest stabilny, a przestrzeń robocza jest wyczyszczona.

4. Szacowanie pozy za pomocą EPnP

  1. Ustanów powiązania 2D-3D, wybierając co najmniej cztery dopasowane pary punktów mapy 3D (we współrzędnych świata) i odpowiadające im punkty kluczowe obrazu 2D. Upewnij się, że te korespondencje są wyodrębniane z prawidłowych dopasowań funkcji ORB uzyskanych w wątku śledzenia.
  2. Rozwiąż początkową pozycję za pomocą EPnP. Kontynuuj, aż każdy węzeł liścia będzie zawierał co najwyżej jeden dominujący punkt kluczowy lub rozmiar obszaru będzie mniejszy niż 10 x 10 pikseli. Użyj funkcji solvePnP OpenCV z flagą cv::SOLVEPNP_EPNP, aby oszacować pozę kamery.

5. Precyzyjne udoskonalenie póz za pomocą ICP

  1. Wykonaj próbkowanie chmury punktów zgodnie z poniższym opisem.
    1. Zmniejsz próbkowanie źródłowej chmury punktów, aby zmniejszyć obciążenie obliczeniowe i usunąć nadmiarowe dane.
    2. Użyj jednolitego próbkowania, aby upewnić się, że elementy konstrukcyjne są zachowane równomiernie we wszystkich kierunkach. W razie potrzeby zastosuj filtrowanie siatki wokseli lub wybór losowy na podstawie gęstości wejściowej chmury punktów i charakterystyki szumu. Upewnij się, że przefiltrowana chmura zachowuje kontury obiektu, jednocześnie zmniejszając całkowitą liczbę punktów o co najmniej 50%.
  2. Dopasuj odpowiednie punkty, konstruując drzewo KD z docelowej chmury punktów, aby umożliwić efektywne wyszukiwanie najbliższych sąsiadów. Dla każdego punktu w źródłowej chmurze punktów próbkowanej w dół znajdź jego najbliższy punkt w chmurze docelowej za pomocą drzewa KD. Zapewnij dokładność dopasowywania punktów, ponieważ ten krok ma krytyczny wpływ na wydajność rejestracji.
  3. Oszacuj optymalną transformację zgodnie z poniższym opisem.
    1. Dopasowanych par punktów można użyć do obliczenia macierzy transformacji ciała sztywnego, obejmującej zarówno obrót, jak i translację.
    2. Oblicz optymalną sztywną transformację między dopasowanymi parami punktów, minimalizując błąd średniokwadratowy (MSE) poprzez dekompozycję wartości osobliwych (SVD) macierzy kowariancji krzyżowej, co daje bezpośrednio macierz rotacji, a następnie obliczanie wektora translacji na podstawie obróconych środków ciężkości.
  4. Zastosuj obliczoną transformację do źródłowej chmury punktów i zaktualizuj wszystkie współrzędne punktu. Powtórz iteracyjnie proces dopasowywania punktów i szacowania transformacji. Kontynuuj iterację, aż błąd rejestracji spadnie poniżej wstępnie zdefiniowanego progu lub zostanie osiągnięta maksymalna liczba iteracji.

6. Budowa gęstej mapy chmur punktów

  1. Skonstruuj gęstą mapę chmur punktów 3D, aby uzyskać dokładne i szczegółowe odwzorowanie środowisk wewnętrznych. Postępuj zgodnie z instrukcjami (patrz Rysunek 4) opisanymi poniżej.
  2. Wyodrębnij dane RGB i głębi z klatek kluczowych. Zaznaczanie klatek kluczowych na podstawie bogactwa wizualnego i pokrycia przestrzennego. Z każdej wybranej klatki kluczowej wyodrębnij zarówno obraz RGB, jak i odpowiadającą mu wyrównaną mapę głębi z czujnika RGB-D.
  3. Konwertuj piksele obrazu na współrzędne kamery 3D. Dla każdego prawidłowego piksela głębi rzutuj piksel 2D na przestrzeń 3D, korzystając z wewnętrznych parametrów kamery. Ten proces generuje współrzędne 3D w układzie współrzędnych kamery.
  4. Przekształć współrzędne kamery we współrzędne świata. Pobierz zoptymalizowaną pozycję kamery z ORB-SLAM2 dla każdej klatki kluczowej. Użyj ułożenia kamery, aby przekształcić współrzędne kamery 3D w globalny układ współrzędnych, wyrównując wszystkie chmury punktów we wspólnym globalnym odniesieniu referencyjnym.
  5. Generuj pokolorowane punkty 3D. Do każdego przekształconego punktu 3D przypisz odpowiednią wartość RGB z oryginalnego obrazu. W ten sposób powstaje pokolorowana chmura punktów, która oddaje zarówno geometrię, jak i wygląd.
  6. Scalanie chmur punktów ze wszystkich klatek kluczowych. Zgromadź wszystkie przekształcone i pokolorowane chmury punktów w ujednoliconą globalną mapę chmur punktów. Upewnij się, że ustawienie jest prawidłowe, korzystając z póz kamery skojarzonych z każdą klatką kluczową.
  7. Zarejestruj i doprecyzuj ostateczną wersję mapy za pomocą PCL. Użyj biblioteki chmur punktów (PCL), aby dopracować ostateczną wersję mapy. Zastosuj filtrowanie, aby usunąć szum i próbkowanie w dół, aby poprawić wydajność. Wykonaj rejestrację globalną (np. za pomocą ICP), aby w razie potrzeby dostroić wyrównanie między chmurami punktów (patrz rysunek 5).
    UWAGA: Jak pokazano na rysunku 6, początkowe wyrównanie chmury punktów podczas fazy inicjalizacji gęstego mapowania może wykazywać przejściowe niewspółosiowość z powodu ograniczonych danych obserwacyjnych, które szybko zbiegają się po włączeniu dodatkowych punktów obserwacji. Sterując robotem w celu przemierzania otoczenia, można uzyskać kompletny trójwymiarowy model.

7. Wygeneruj mapę siatki zajętości na podstawie chmur punktów pochodzących z VSLAM

  1. Próbkowanie w dół globalnej gęstej chmury punktów. Zastosuj filtrowanie siatki wokseli przy użyciu rozdzielczości wokseli 0,05 m, aby zmniejszyć nadmiarowość i zdefiniować rozdzielczość przestrzenną dla budowy siatki.
  2. Rzutowanie punktów 3D na siatkę zajętości 2D. Rzutuj wszystkie punkty 3D na płaszczyznę poziomą (x-y). Podziel przestrzeń na jednolite komórki siatki, z których każda reprezentuje kwadrat o wymiarach 0,05 m x 0,05 m w świecie rzeczywistym.
  3. Oszacuj prawdopodobieństwo obłożenia. Użyj odwrotnego modelu czujnika, aby obliczyć prawdopodobieństwo zajętości każdej komórki na podstawie gęstości punktów i symulowanego śledzenia promieni.
    1. Ustaw próg prawdopodobieństwa zajętości na 0,65. Ustaw bezpłatny próg prawdopodobieństwa na 0,35. Klasyfikuj komórki siatki z wartościami pośrednimi jako nieznane.
  4. Zastosuj pompowanie przeszkód. Napompuj zajęte obszary, nakładając okrągłe jądro o promieniu 0,2 m, aby uwzględnić odstęp robota i marginesy bezpieczeństwa.
  5. Wyeksportuj mapę zajętości. Zapisz wygenerowaną mapę siatki zajętości w formacie Portable GrayMap, wraz z odpowiednim plikiem metadanych m.yaml, aby zapewnić kompatybilność z systemami nawigacji opartymi na ROS.

8. Ulepszona globalna strategia planowania tras (w oparciu o algorytm RRT)

  1. Zainicjuj drzewo ścieżek. Ustaw pozycję początkową robota jako węzeł główny drzewa. Losowo próbkuj punkty w przestrzeni konfiguracji (stanu), aby eksplorować nowe obszary.
  2. Zidentyfikuj najbliższy istniejący węzeł. Dla każdego nowo próbkowanego punktu losowego oblicz odległość euklidesową do wszystkich istniejących węzłów. Wybierz węzeł o minimalnej odległości jako najbliższy węzeł, który będzie służył jako podstawa rozszerzenia.
  3. Wygeneruj nowy węzeł w kierunku próbki losowej. Utwórz wektor jednostki kierunkowej od najbliższego węzła w kierunku próbkowanego punktu. Przesuń stały krok (początkowo) wzdłuż tego kierunku, aby utworzyć nowy węzeł i połączyć go z drzewem.
  4. Zamień stały rozmiar kroku na mechanizm adaptacyjny. Zamiast używać stałego rozmiaru kroku, dynamicznie dostosuj długość kroku w oparciu o lokalną gęstość przeszkód. Używaj większych kroków w otwartych środowiskach, aby przyspieszyć rozbudowę drzewa. W zagraconych lub wąskich obszarach zmniejsz rozmiar kroku, aby poprawić kontrolę i unikanie przeszkód.
  5. Obliczanie adaptacyjnego rozmiaru kroku w czasie rzeczywistym zgodnie z poniższym opisem.
    1. Wykorzystaj dane z czujników (np. LiDAR lub kamery głębi), aby oszacować gęstość przeszkód wokół bieżącego regionu.
    2. Jeśli liczba wykrytych przeszkód jest niewielka, nieznacznie zwiększ rozmiar stopnia. Jeśli przeszkody są gęste, zmniejsz proporcjonalnie rozmiar stopnia, aby wstawić więcej węzłów pośrednich w celu bezpiecznego przechodzenia.
  6. Iteruj proces rozszerzania. Kontynuuj próbkowanie, wyszukiwanie najbliższego węzła i generowanie nowego węzła przy użyciu adaptacyjnego rozmiaru kroku.
  7. Zastosuj krzywe B-splajn do wygładzania. Zastąp segmenty polilinii na ścieżce RRT ciągłą krzywą B-splajn, aby poprawić gładkość. Wybierz punkty kontrolne wzdłuż oryginalnej ścieżki RRT, zazwyczaj w punktach zwrotnych lub kluczowych punktach trasy. Skonstruuj wielokąt kontrolny, łącząc te punkty kontrolne w sekwencji.
  8. Wygeneruj krzywą B-splajn. Użyj standardowej formuły B-splajn15:
    figure-protocol-2     (2)
    Ten wzór jest używany w krzywych B-splajn, gdzie krzywa końcowa C(u) jest ważoną kombinacją punktów kontrolnych. Wagi są określane przez funkcje bazowe B-splajnu Ni,k (u), które zapewniają, że krzywa jest gładka i podąża za ogólnym kształtem określonym przez punkty kontrolne.
  9. Ustaw stopień krzywej na 3 (sześcienny), co zapewnia ciągłość (gładka pierwsza i druga pochodna). Skorzystaj z modułu planowania ścieżek napisanego w PyCharm 2024.3.

9. Optymalizacja trajektorii lokalnej ze zmodyfikowanym TEB

  1. Wprowadź ograniczenie najkrótszej odległości, jak opisano poniżej.
    1. Aby złagodzić te wady, należy zintegrować ograniczenie najkrótszej odległości z ramą TEB.
    2. Zdefiniuj wiązanie jako odległość euklidesową między aktualnym położeniem robota St a przyszłą pozycją Si+n wzdłuż trajektorii:
      figure-protocol-3     (3)
      To ograniczenie penalizuje nieefektywne odchylenia, zachęcając ścieżkę do pozostawania blisko krawędzi globalnego korytarza ścieżki, poprawiając jakość planowania i bezpieczeństwo.
  2. Zintegruj ograniczenie z funkcją kosztu TEB, modyfikując oryginalny wykres optymalizacji TEB w celu uwzględnienia ograniczenia odległości jako dodatkowej krawędzi. Dostosuj funkcję kosztu całkowitego, aby uwzględnić ważony składnik dla kosztów ogólnych, równoważenia płynności, wykonalności i efektywności energetycznej.
  3. Zintegruj ograniczenie z funkcją kosztu TEB. Podczas optymalizacji rozwiąż punkty trajektorii, które minimalizują całkowity koszt, w tym prędkość, przyspieszenie, przewyższenie nad przeszkodami i dodany najkrótszy czas. Użyj podstawowego solvera TEB, aby iteracyjnie zoptymalizować trajektorię w N interwałach czasowych. Zoptymalizuj ścieżkę, biorąc pod uwagę ograniczenie (patrz Rysunek 7).

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Wyniki

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Ocena ulepszonego ORB-SLAM2
Eksperyment wyodrębniania cech
Aby ocenić skuteczność kamery głębi RGB-D w praktycznych scenariuszach, przeprowadzono eksperyment z wyodrębnianiem punktów charakterystycznych. Test został zaprojektowany przy użyciu dwóch odrębnych środowisk tła, z których każde różni się kolorem i jasnością obiektu, aby symulować rzeczywistą złożoność wizualną.

Zarówno proponowana ulepszona metoda ekstrakcji, jak i konwencjonalne podejście ba...

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Dyskusja

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Dwie kluczowe technologie w autonomicznych systemach nawigacji wewnętrznej dla kołowych robotów mobilnych, na których skupia się niniejsze badanie, to wizualna jednoczesna lokalizacja i mapowanie (SLAM)16,17 oraz planowanie ścieżek18. Moduł SLAM proponuje hierarchiczną metodę wyboru opartą na kwadracie w celu skorygowania nierównomiernego rozkładu punktów charakterystycznych ORB-SLAM2. Aby zwiększyć precyzję generowanej mapy, stosuje się a...

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Oświadczenia

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Autorzy deklarują brak konfliktu interesów.

Podziękowania

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Chcielibyśmy wyrazić naszą szczerą wdzięczność profesorowi nadzwyczajnemu Kok Hwa Yu z Universiti Sains Malaysia za jego nieocenione wskazówki podczas tego badania. Doceniamy również pomoc udzieloną przez naszego kolegę ze studiów Jingtao Jia z Uniwersytetu Nauki i Technologii w Kunming, którego wsparcie w znacznym stopniu przyczyniło się do sukcesu tej pracy.

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Materiały

Lista materiałów użytych w tym artykule
NazwaFirmaNumer katalogowyKomentarze
Kamera 3D Astra Pro PlusCRBBEC powiedział:ŻadenKamera 3D
TARKBOT-R20-TWDŻadenŻadenROS Robot

Bibliografia

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Qin, T., Li, P., Shen, S. VINS-Mono: a robust and versatile monocular visual-inertial state estimator. IEEE T Robot. 34 (4), 1004-1020 (2018).
  2. Campos, C., Elvira, R., Rodríguez, J. J. G., Montiel, J. M. M., Tardós, J. D. ORB-SLAM3: an accurate open-source library for visual, visual-inertial and multi-map SLAM. IEEE T Robot. 37 (6), 1874-1890 (2021).
  3. SuperPoint: self-supervised interest point detection and description. DeTone, D., Malisiewicz, T., Rabinovich, A. Proc IEEE Conf Comp Vision Pattern Recognit Workshops, , 224-236 (2018).
  4. SuperGlue: learning feature matching with graph neural networks. Sarlin, P. E., DeTone, D., Malisiewicz, T., Rabinovich, A. Proc IEEE/CVF Conf Comp Vision Pattern Recognit, , 4938-4947 (2020).
  5. Dai, A., Nießner, M., Zollhöfer, M., Izadi, S., Theobalt, C. BundleFusion: real-time globally consistent 3D reconstruction using on-the-fly surface reintegration. ACM T Graphic. 36 (4), 1(2017).
  6. LaValle, S. M. Technical Report No. 98-11. Rapidly-exploring random trees: a new tool for path planning. , Iowa State University. (1998).
  7. Karaman, S., Frazzoli, E. Sampling-based algorithms for optimal motion planning. Int J Robot Res. 30 (7), 846-894 (2011).
  8. Rösmann, C., Hoffmann, F., Bertram, T. Integrated online trajectory planning and optimization in distinctive topologies. Robot Auton Syst. 88, 142-153 (2017).
  9. Fox, D., Burgard, W., Thrun, S. The dynamic window approach to collision avoidance. IEEE Robot Autom Mag. 4 (1), 23-33 (1997).
  10. Chen, Y., Zhong, L., Liu, S. Semantic-aware informative path planning for autonomous exploration with micro aerial vehicles. IEEE T Robot. 38 (5), 3122-3138 (2022).
  11. Kabiri, M., Vos, H., Atia, M. M. 5G-enhanced visual-inertial SLAM for robust localization in GNSS-denied environments. IEEE T Intell Transp Syst. 24 (6), 6421-6435 (2023).
  12. Xu, W., Zhang, F. FAST-LIO2: fast direct LiDAR-inertial odometry. IEEE T Robot. 37 (4), 1150-1166 (2021).
  13. Gammell, J. D., Barfoot, T. D. Informed sampling for motion planning in dynamic environments. Int J Robot Res. 41 (5), 517-540 (2022).
  14. Coleman, D., Srinivasa, S. S. Variable probability sampling for motion planning in narrow passages. IEEE Robot Autom Lett. 8 (2), 1024-1031 (2023).
  15. The NURBS Book. Piegl, L., Tiller, W. , 2nd ed, Springer-Verlag. (1997).
  16. Durrant-Whyte, H., Bailey, T. Simultaneous localization and mapping: part I. IEEE Robot Autom Mag. 13 (2), 99-110 (2006).
  17. Bailey, T., Durrant-Whyte, H. Simultaneous localization and mapping: part II. IEEE Robot Autom Mag. 13 (3), 108-117 (2006).
  18. Zhang, L., Wang, X., Yang, J. Hybrid motion planning for mobile robots using enhanced RRT and dynamic window approach. IEEE T Robot. 39 (2), 1123-1137 (2023).
  19. RRT-connect: an efficient approach to single-query path planning. Kuffner, J. J., LaValle, S. M. Proc IEEE Int Conf Robotics Automat, 2, 995-1001 (2000).

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Przedruki i uprawnienia

Poproś o pozwolenie na ponowne wykorzystanie tekstu lub ilustracji tego artykułu JoVE

Poproś o pozwolenie

Tagi

Dopasowywanie cechrekonstrukcja chmury punkt wszybko rozszerzaj ce si drzewo losoweczasowa ta ma elastycznaoptymalizacja pozyRobot Operating System

Powiązane artykuły