• Nie Znaleziono Wyników

Konstruowanie mapy wielomodelowej

W dokumencie Index of /rozprawy2/10194 (Stron 85-89)

Podstawowym elementem systemu nawigacji jest agent MSA, który konstruuje i przetwa-rza model środowiska działania robotów. Opisany w rozdziale 7.3 algorytm konstruowania mapy wielomodelowej rozpoczyna swoje działanie od łączenia pokoi i obszarów w regiony wyższego rzędu. Pokoje to regiony rzędu najniższego, w których robot może bezpiecznie przemieszczać się z wykorzystaniem reaktywnej nawigacji autonomicznej. Nawigacja reak-tywna sprawdza się doskonale w środowiskach, których kształt można modelować figurą wypukłą, więc taką charakterystykę powinny mieć pokoje. Obszary to fragmenty środowi-ska, w których stosowany powinien być algorytm koordynacji ruchu.

W rozległych środowiskach ręczna realizacja podziału mapy na pokoje nie jest możliwa. Konieczne jest algorytmiczne zrealizowanie tego procesu. Wynikiem działania opisywane-go dalej alopisywane-gorytmu jest zbiór pokoi, z których każdy jest definiowany zbiorem odcinków. Odcinki opisują wypukły kształt pokoju, a każdy z nich może być ścianą lub przejściem do innego pokoju. Dane wejściowe algorytmu to zbiór odcinków opisujących wszystkie przeszkody występujące w środowisku robotów.

Na wejściowym zbiorze algorytm wykonuje następujące operacje:

• Utwórz zbiór przedłużeń odcinków opisujących przeszkody. Każdy z wejściowych od-cinków jest przedłużany do przecięcia z najbliższym innym odcinkiem. Odcinek prze-cinany jest dzielony na dwa odcinki w punkcie przecięcia.

• Usuń duplikaty, które mogą powstać w przypadku istnienia odcinków współliniowych, które nie są rozdzielone innym odcinkiem.

• Wyznacz sąsiedztwa wszystkich odcinków, czyli zbiory odcinki zaczynające się lub kończące w końcach każdego z odcinków.

• Zbuduj pokoje. Poczynając od każdego z odcinków dołączaj odcinki sąsiednie, wy-bierając zawsze odcinek pod najmniejszym kątem do bieżącego. Lista odcinków

od-wiedzonych do czasu powrócenia do odcinka wyjściowego tworzy nowy pokój. Każdy z odcinków może być ścianą pokoju tylko dwa razy.

Przykład działania algorytmu został zilustrowany na rysunku 8.1. Środowisko jest zde-finiowane przez 10 odcinków. Po etapie generowania dodatkowych odcinków zbór zawierał 30 elementów: 9 nowych oraz 21 powstałych na skutek podziału istniejących (sytuacja b.). Po usunięciu duplikatów pozostały 24 elementy, z których zbudowane zostało 6 pokoi (sytuacja c.).

Rysunek 8.1: Kolejne etapy budowania regionów najniższego poziomu na podstawie li-sty odcinków opisujących przeszkody. Sytuacja a. to układ ścian w zadanym środowisku, sytuacja b. zawiera potencjalne granice pokojów dodane przez algorytm, sytuacja c. to ostateczny podział środowiska.

Każdy z pokoi jest regionem, więc dalsza część algorytmu budowania modelu środowi-ska przebiega tak samo, jak dla wyższych poziomów modelu. Dla każdego z utworzonych pokoi konstruowany jest graf wewnętrzny regionu, który ma reprezentować możliwe drogi prowadzące przez region. Graf taki ma wierzchołki‘ w punktach, które mogą łączyć region z sąsiednimi regionami. Zrealizowano dwa algorytmy generowania krawędzi łączących n wierzchołków brzegowych:

• poprzez połączenie każdego wierzchołka z każdym – taki graf pełny ma n(n−1)2 kra-wędzi,

• poprzez utworzenie wierzchołka pośredniego – graf ma wówczas n + 1 wierzchołków i co najmniej n krawędzi.

Graf utworzony drugim sposobem jest bardziej wydajny podczas wyszukiwania tra-sy. Podczas tworzenia grafów wewnętrznych pokoi jest stosowana jego modyfikacja, która dodaje dodatkowe krawędzie łączące niektóre pary wierzchołków brzegowych (rys. 8.2 kra-wędzie AC i CD). Krakra-wędzie nie są dodawane jeżeli wierzchołki znajdują się na współlinio-wych odcinkach definiujących pokój (rys. 8.2 wierzchołki D i E) lub łącząca je krawędź ma

długość zbliżoną do innej najkrótszej ścieżki między wierzchołkami (rys. 8.2 wierzchołki A i E). Centralny wierzchołek jest umieszczany w środku masy wielokąta definiującego pokój, który dla figur wypukłych zawsze znajduje się wewnątrz figury. Wagi krawędzi są wprost proporcjonalne do euklidesowej odległości wierzchołków, co jest poprawnym oszacowaniem dla regionów najniższego poziomu.

Rysunek 8.2: Przykłady różnych kształtów środowiska i efektów zastosowania algorytmu podziału na pokoje.

Algorytm budujący pokoje ma złożoność kwadratową z względu na liczbę odcinków opisujących przeszkody. Nie można go więc stosować bezpośrednio dla bardzo rozległych i skomplikowanych środowisk. Nie ma natomiast przeciwwskazań do uruchomienia go wielo-krotnie dla różnych fragmentów środowiska, czyli dla fragmentów zbioru odcinków opisują-cych przeszkody, które są zlokalizowane blisko siebie. Wygeneruje on wtedy kilka zbiorów pokoi, które będą miały niepustą część wspólną – wykrycie i usunięcie duplikatów nie stanowi problemu.

Opisane w rozdziale 7.3 podejście przewiduje możliwość tworzenia regionów wyższego rzędu, które modelują większe fragmenty środowiska na wyższym poziomie abstrakcji. Re-gion taki łączy pewną liczbę reRe-gionów niższego rzędu, których połączone grafy wewnętrzne

tworzą graf spójny. Analogicznie do opisanej wyżej metody tworzenia grafu wewnętrznego dla pokoju, region wyższego rzędu również konstruuje graf spójny, który łączy wszystkie wierzchołki brzegowe regionu. W tym jednak przypadku nie jest możliwe wykorzystanie wierzchołka pośredniego, z którym połączone byłyby wszystkie wierzchołki brzegowe, po-nieważ wyznaczenie wag krawędzi nie byłoby możliwe. Graf wewnętrzny jest więc grafem pełnym, w którym wszystkie pary wierzchołków brzegowych są połączone krawędziami. Wagi utworzonych krawędzi są wyznaczane poprzez obliczenie długości najkrótszej ścieżki pomiędzy łączonymi wierzchołkami w grafie podregionów. Utworzona krawędź jest więc abstrakcyjnym modelem ścieżki w grafie niższego rzędu.

Sposób grupowania podregionów w regiony powinien minimalizować liczbę krawędzi w grafach wyższych poziomów, czyli minimalizować liczbę wierzchołków brzegowych. W typowych środowiskach działania grup robotów, takich jak wielopiętrowe budynki, łatwo wskazać odpowiedni podział – przykładem może być zgrupowanie wszystkich pomieszczeń na jednym piętrze, które jest połączone z innymi poziomami jedną lub dwoma windami. Tworzenie regionów wyższego rzędu jest czynnością wykonywaną jednokrotnie, jedynie w sytuacji bardzo znacznego rozszerzania środowiska działania robotów. Decyzje o optymal-nym podziale podejmować może administrator systemu.

Zmiana właściwości środowiska czy też jego rozszerzenie będzie z pewnością dość czę-stym zjawiskiem w złożonych systemach wielorobotowych. Powodować ją może udostęp-nienie dla robotów nowego piętra budynku, ale także zamknięcie lub otwarcie drzwi. Hie-rarchiczna reprezentacja grafowa modelu środowiska jest bardzo dobrze przystosowana do odwzorowywania tego typu zmian. Nie wymagają one zatrzymywania działania modułu planowania trasy, mogą być wprowadzane w biegu.

Zmiany podzielić można na trzy grupy:

• powiększające model – dodanie nowej przestrzeni działania robotów lub nowych po-łączeń pomiędzy istniejącymi pokojami,

• zmniejszające model permanentnie – usunięcie pokoi lub przejść pomiędzy pokojami, • zmniejszające model tymczasowo – czasowe usunięcie połączeń pomiędzy pokoja-mi, które może skutkować uniemożliwieniem przemieszczeniem robota do niektórych pokoi.

Pierwsze dwie modyfikacje powodują konieczność zmiany modelu. Trzeci rodzaj mo-dyfikacji powoduje oznaczenie wierzchołków lub krawędzi jako niedostępne. Przywrócenie zablokowanych połączeń jest operacją trywialną.

Rozszerzenie środowiska wymaga utworzenia nowych pokoi oraz ich grafów wewnętrz-nych. Następnie są one przyłączane do istniejących wcześniej, sąsiadujących pokoi oraz

włączane do hierarchii. Ich utworzenie nigdy nie wymaga usuwania krawędzi z grafu wyż-szego rzędu – co najwyżej konieczne jest dodanie nowych krawędzi lub zmiana wag kra-wędzi istniejących. Operacja rozszerzania modelu nie wpływa na zaplanowane wcześniej trasy robotów – są one nadal poprawne, choć mogą przestać być optymalne.

Podczas zawężania środowiska konieczne jest wyznaczenie zmian na wszystkich po-ziomach abstrakcji. Usunięcie pokoju może mieć wpływ na graf wyższego poziomu, jeżeli krawędź tego grafu była abstrakcją ścieżki zawierającej krawędzie przechodzące przez usu-wany pokój. W takiej sytuacji konieczne jest ponowne wyznaczenie kosztu modyfikowanej krawędzi. Jeżeli usuwany pokój zawierał wierzchołek będący jednocześnie wierzchołkiem grafu poziomu wyższego, konieczne jest usunięcie krawędzi z tego grafu. Podczas zawęża-nia środowiska tworzona jest lista wszystkich krawędzi grafów (na wszystkich poziomach abstrakcji), które zostały wyłączone bądź permanentnie usunięte. Następnie wszystkie za-planowane trasy robotów są przeszukiwane pod kątem zawierania elementów tej listy – jeżeli trasa zawiera usunięte krawędzie, jest w całości planowana od bieżącej pozycji robo-ta.

Tak zrealizowany algorytm konstruowania mapy pozwala agentowi MSA na zbudowanie i przetwarzanie modelu dowolnie skomplikowanych środowisk dwuwymiarowych. W dalszej części rozdziału opisana zostanie implementacja algorytmu planowania trasy z wykorzy-staniem zbudowanej mapy oraz inne zastosowania modelu.

W dokumencie Index of /rozprawy2/10194 (Stron 85-89)