Nawigacja mobilnych robotów Zgodnie z encyklopedyczną definicją, nawigacja jest to dział wiedzy zajmujący się określaniem bieżącego położenia oraz drogi do celu dla statków, pojazdów i innych przemieszczających się obiektów. Na nawigację mobilnego robota, względem pozycji, składa się sześć następujących czynności: percepcja pomiar za pomocą sensorów stanu robota i środowiska; sterowanie ruchem wyliczenie wielkości sterujących napędami robota; wykrywanie i unikanie kolizji modyfikacja ścieżki ruchu w celu uniknięcia kolizji z przeszkodami; budowanie mapy otaczającego środowiska odwzorowanie otaczającego środowiska w pewną reprezentacje wewnętrzną; samolokalizacja ustalanie pozycji robota w danym układzie odniesienia; wnioskowanie i planowanie planowanie ścieżki przejścia z punktu do punktu lub wnioskowanie następnego ruchu mobilnego robota. W skrócie, nawigacja mobilnych robotów stara się odpowiedzieć na trzy podstawowe pytania: Jak wygląda otaczający świat? Gdzie jest robot? Jak dostać się z punktu A do punktu B?
Podstawowe umiejętności sterujące Podstawowe umiejętności sterujące cechują się, brakiem potrzeby gromadzenia historii danych na temat otaczającego środowiska. Sterowanie odbywa się na podstawie bieżących pomiarów. Do podstawowych umiejętności sterujących można zaliczyć: skręcanie, jazdę na wprost, omijanie przeszkód, śledzenie toru ruchu, jazdę przy ścianie, obrót o zadany kąt, jazdę do zadanej pozycji, podążanie za obiektem (światłem, przeszkodą). Rodzaje i sposoby budowy map środowiska Zgodnie z encyklopedyczną definicją, mapa jest to dwuwymiarowy rysunek terenu oparty na ścisłych pomiarach matematycznych, na którym za pomocą umownych oznaczeń przedstawiono zmniejszony i uproszczony obraz Ziemi lub części jej powierzchni. W celu uzupełnienia i dostosowania definicji do dziedziny mobilnych robotów należy dodać, że mapa może być także trójwymiarowa, oraz odwzorowuje przestrzeń dowolnych obiektów, w obrębie których porusza się mobilny robot. Na rysunku przedstawiono podstawowe rodzaje map, tworzonych przez systemy nawigacji mobilnych robotów.
Rodzaje map: a) topologiczna Mapa topologiczna Mapa topologiczna (rys.a) jest odwzorowaniem otaczającej przestrzeni robota za pomocą struktury grafu. Wierzchołki grafu odzwierciedlają charakterystyczne miejsca (markery) w otaczającym środowisku, a krawędzie wyznaczają połączenia, drogi pomiędzy węzłami. Charakterystycznymi miejscami mogą być np.: osobne pomieszczenia, różne budynki, drzwi, skrzyżowania, zakręty, narożniki itp.. Przez krawędzie najczęściej przyjmuje się linie proste, po których robot może się przemieścić z jednego wierzchołka do drugiego. Stosuje się także inne rodzaje przejść z punktu do punktu, jak np. poruszanie się po pewnych ustalonych poziomicach lub potencjałach. Zaletą mapy topologicznej jest jej ogólność w sensie wymiarowości, ta sama architektura mapy może być zastosowana do przestrzeni i 3 wymiarowej. Nie trzeba rezerwować dużej ilości pamięci na tablice kształtu terenu, jak w przypadku mapy rastrowej. Mapa jest tworzona poprzez dodawanie lub usuwanie wierzchołków i krawędzi grafu. Duże odległości pomiędzy markerami nie wpływają na zwiększenie pamięci, jak występuje to w przypadku innych rodzajów map.
Rodzaje map: b) rastrowa Mapa rastrowa Mapa rastrowa (rys. b) jest odwzorowaniem otaczającej przestrzeni robota za pomocą kompresji pewnego podstawowego kwantu mapy, zwanego komórką, do jednej wartości oznaczającej prawdopodobieństwo istnienia w danym obszarze obiektu lub jego braku. Za podstawowe komórki przyjmuje się najczęściej kwadrat lub prostokąt, spotyka się także komórki sześciokątne, trójkątne. Ostateczna postać mapy to siatka komórek, którym przyporządkowane są pewne wartości liczbowe prezentowane graficznie np. w postaci różnych odcieni kolorów. Zaletą map rastrowych, a szczególnie o komórkach kwadratowych, jest ich architektura pokrywająca się z architekturą pamięci elektronicznych, w skutek czego zarządzanie tego typu mapą jest prostsze od innych rodzajów map. Wadą tego typu podejścia jest, przymus dokładnego wyznaczania aktualnego położenia robota, w celu dokonywania aktualizacji mapy. W przypadku dużej różnorodności terenu oraz dużej wielkości obszaru mapa zajmuje dużo miejsca, a jej efektywność jest znacznie mniejsza od efektywności mapy topologicznej i wektorowej.
Mapa wektorowa Mapa wektorowa (rys. c) jest odwzorowaniem otaczającej przestrzeni robota, za pomocą struktury składającej się z bazy figur geometrycznych oraz zbioru operacji wykonywanych na nich. Jest analogią grafiki wektorowej umożliwiającej rysowanie różnego rodzaju obiektów. Bazą mapy wektorowej mogą być linie proste lub łamane, prostokąty, elipsy, kule, prostopadłościany, ostrosłupy itp.. Operacjami wykonywanymi na bazie figur są sumy, różnice, części wspólne zbiorów, rotacje, translacje, symetrie itp. działania topologiczne. Zaletą tego typu mapy jest możliwość generalizacji i kompresji danych zebranych z otaczającego środowiska kosztem zwiększenia złożoności obliczeniowej. Wadą jest trudność doboru bazy figur i operacji dla danego środowiska, oraz zwiększona ilość obliczeń w przypadku zastosowania złożonych funkcji i dużej ilości operacji. Mapa wektorowa może być produktem aproksymacji przestrzeni otaczającej robota, która może być dokonywana w sposób rzeczywisty pod warunkiem wystarczającej mocy obliczeniowej. Rodzaje map: c) wektorowa
Samolokalizacja Samolokalizacja jest metodą określania bieżącego położenia obiektu względem ustalonego układu odniesienia. Mobilne roboty dokonują określenia swojej pozycji poprzez wykorzystanie: - pozycjonowania względnego (pomiar odometryczny, pomiar inercyjny), - znaczników, - sytemu GPS (ang. Global Positioning System), - lokalizacji za pomocą mapy. Pozycjonowanie względne Pozycjonowanie względne odbywa się poprzez pomiar odometryczny lub inercyjny. Odometria ustala aktualne położenie robota względem przyjętego układu odniesienia za pomocą informacji o obrotach tarcz enkoderów. Pomiar inercyjny wykorzystuje żyroskopy i akcelerometry, informujące o prędkości obrotu i przyspieszeniu, następnie poprzez jedno i dwukrotne całkowanie wymienionych wielkości uzyskuje się kąt obrotu i położenie robota.
Ustalenie pozycji za pomocą odometrii, daje dokładne rezultaty na krótkim dystansie. Przyczyną tego jest wzrost następujących błędów: błędu odległości - sumy obrotu kół na kolejnych odcinkach ruchu, przyczyniającego się do złego wyznaczenia położenia robota względem pozycji początkowej; błędu skrętu - różnic obrotów kół, powodującego niewłaściwe określenie orientacji robota. Przyczyny narastania powyższych błędów to: różne średnice kół, niedokładny kształt kół, dokładność przyjętego promienia kół, dokładność przyjętego rozstawu kół, brak zbieżności kół, luźne koła, rozdzielczość enkoderów, nierówna powierzchnia, poślizg. Samolokalizacja za pomocą pomiaru odometrycznego lub inercyjnego Ustalanie pozycji i orientacji za pomocą pomiaru inercyjnego, tak samo jak przy pomiarze odometrycznym, jest dokładne na krótkim dystansie. Niezależność błędów pomiędzy metodą odometryczną a inercyjną, daje możliwość ich kompensacji. Zastosowanie systemu hybrydowego tych metod, zwiększa zakres dokładnego wyznaczania położenia robota.
Znaczniki Metoda określania położenia robota poprzez znaczniki (markery), polega na umieszczeniu obiektów nawigacyjnych w pewnych punktach przestrzeni i podania ich pozycji do systemu lokalizacyjnego robota. Wyróżniamy trzy podstawowe sposoby określania położenia robota poprzez znaczniki: kontakt zbliżeniowy, trilaterację, triangulację. Kontakt zbliżeniowy - położenie pojazdu uzyskiwane jest poprzez bezpośredni lub pośredni kontakt markera z urządzeniem detekcyjnym (rys. c,d,e). Trilateracja położenie wyznaczane jest poprzez pomiar odległości do trzech lub więcej nadajników (latarni), rozmieszczonych w znanych pozycjach (rys. a). Triangulacja pozycja robota obliczana jest na podstawie pomiaru kątów do trzech lub więcej nadajników w znanych pozycjach; kąty pod którymi leżą nadajniki, wykrywane są przez obracający się czujnik (radar) (rys. b). Samolokalizacja za pomocą znaczników: a) ultradźwiękowych, b) radiolatarni, c) kodu kreskowego, d) ściennych, e) ziemnych
W procesie lokalizacji wykorzystuje się trzy wieże sygnałowe A, B i C do określenia położenia obiektu mobilnego, takiego jak robot, oznaczonego jako R, który musi znajdować się w przestrzeni roboczej rozpinanej przez wieże. Położenia wież są znane, a odległości pomiędzy nimi odpowiednio a, b i c są wartościami stałymi. Zmienne odległości pomiędzy obiektem a wieżami stanowią promienie kul odpowiednio r A, r B i r C. (uzyskiwane np. poprzez pomiar mocy sygnału radiowego). Jako, że lokalizacja odbywa się w przestrzeni dwuwymiarowej, kule są w istocie okręgami na płaszczyźnie z = 0. Wykorzystanie trzech wież jest niezbędne, aby otrzymać jednoznaczny wynik w przypadku pozycjonowania w przestrzeni dwuwymiarowej. Trilateracja W związku z powyższym, wzory definiujące kule można zapisać jako: ) ( ) ( ) ( C C C B B A r z y y x x r z y x x r z y x C C A R C C C R B B A B R y r r x x x y y x r r x x
System globalnego pozycjonowania (GPS) System globalnego pozycjonowania (GPS) - (ang. Global Positioning System) jest to metoda, wykorzystująca trilateracje omówioną wcześniej. System składa się z: 4 satelitów krążących na 6 orbitach, stacji naziemnych i odbiorników. Każdy satelita posiada zsynchronizowane ze sobą zegary atomowe, które są podstawą czasu dla generowanego przez satelity sygnału, takiego samego dla każdego satelity. Odbiornik na ziemi posiada zegar kwarcowy, niesynchronizowany z zegarami satelit, który również służy jako podstawa czasu dla generacji identycznego sygnału. Odbiornik na podstawie wiadomości o położeniach 4 satelit oraz przesunięciu w czasie pomiędzy sygnałami emitowanymi przez 4 satelity a sygnałem odbiornika naziemnego, wyznacza jednoznacznie swoje położenie. Samolokalizacja za pomocą GPS Zaletą stosowania sytemu GPS, jest możliwość określenia pozycji w każdym miejscu na ziemi. Wadą jest niewystarczająca dokładność wyznaczenia pozycji, w przypadku przestrzeni roboczej wymagającej rozdzielczości mniejszej niż kilkadziesiąt centymetrów.
Lokalizacja za pomocą mapy Lokalizacja położenia robota za pomocą mapy jest realizowana, poprzez porównywanie mapy lokalnej i globalnej otaczającego środowiska. Mapa lokalna tworzona jest przez robota na przestrzeni krótkiego ustalonego czasu. Mapa globalna jest odwzorowaniem całego znanego środowiska, znana a priori lub odkryta poprzez eksplorację terenu. W wyniku porównania dwóch map, otrzymuje się najbardziej podobny obszar mapy globalnej do mapy lokalnej. Następnie dokonywana jest translacja pozycji i orientacji lokalnej robota do otrzymanej strefy. Samolokalizacja za pomocą mapy Zaletami metody są: uniwersalność w zastosowaniu do każdego środowiska, brak potrzeby modyfikacji otaczającej przestrzeni. Wadami metody są: duże zapotrzebowanie na pamięć danych i szybkość ich przetwarzania; oraz możliwość niejednoznacznego określenia położenia robota, poprzez zbliżony kształt terenu lub słabą rozdzielczość czujników tworzących mapę.
Planowanie ścieżki Planowanie ścieżki polega na poszukiwaniu krzywej geometrycznej przejścia pomiędzy początkowym i zadanym końcowym stanem (pozycją) robota tak, aby nie występowały kolizje z przeszkodami oraz planowany ruch nie powodował naruszenia ograniczeń kinematycznych i dynamicznych robota (ścieżka była możliwa do wykonania). Ze względu na możliwości ruchowe wyróżniamy dwie grupy robotów mobilnych holonomiczne i nieholonomiczne. Holonomiczne - zmiana orientacji może następować praktycznie w miejscu. Rozpatrywane są najczęściej, jako punkty materialne. Przestrzeń, po której się poruszają, wypełniona jest przeszkodami powiększonymi o promień okręgu opisanego na robocie. Nieholonomiczne ich promień skrętu jest ograniczony. Modelowane są, jako układy sterowania, które powstają poprzez wyprowadzenie z analitycznego zapisu ograniczeń ruchu robota. Dla każdej z wymienionych poniżej grup istnieje inna specyfika metod planowania ruchu.
Planowanie ścieżki bez wiedzy o mapie globalnej Metody lokalne opierają się z reguły o nawigację w czasie rzeczywistym. Wymagają one nieustannego analizowania informacji uzyskiwanych z czujników i szybkiego reagowania na zmiany w bezpośrednim otoczeniu robota, a ścieżka przejazdu tworzona jest przyrostowo. Niewątpliwą zaletą metod lokalnych jest możliwość działania w środowisku zmiennym w czasie, nie wymagają one skomplikowanych obliczeń, lecz trasa przezeń wyznaczona z zasady jest nieoptymalna. Zdarza się również, że ścieżka może nie zostać znaleziona pomimo jej istnienia, np. gdy robot zapętla się bądź wpada w minimum lokalne. Najbardziej znane metody zaliczane do grupy metod lokalnych to: algorytm Braitenberga, algorytm BUG (pluskwy), algorytm sztucznych pól potencjałowych.
Algorytm Braitenberga Jednym z najprostszych algorytmów jazdy robota, jest jazda z omijaniem przeszkód, przy pomocy algorytmu Braitenberga. Idea tzw. pojazdu Braitenberga polega na bezpośrednim połączeniu modułów percepcji i wykonywania ruchu czyli połączenie czujników z elementami wykonawczymi (napędami). Każde takie połączenie ma przypisane wagi. W zależności od zastosowanych czujników i wag robot może wykonywać różne zadania. Na tej podstawie w każdej chwili wyznaczana jest chwilowa prędkość odpowiedniego napędu. Jednakże nie jest to algorytm służący do poruszania się pomiędzy dwoma punktami, w nieznanym otoczeniu. Niewielkie modyfikacje mogą pomóc przy takiej właśnie jeździe. Schemat ideowy działania algorytmu Braitenberga dla robota dwukołowego ilustruje poniższy rysunek.
gdzie: c 1... c n wartości pomiarów z czujników w 1... w n wartości wag dla poszczególnych czujników k, A stałe wyznaczane doświadczalnie Poszczególne wagi są osobne dla każdego koła i zwykle dobierane są także w sposób doświadczalny. Wynikiem obliczeń jest prędkość chwilowa bezpośrednio zadawana na napęd koła.
Zmodyfikowany algorytm Braitenberga Drobna modyfikacja algorytmu Braitenberga polega na dodaniu dodatkowego czynnika zależnego od kąta pomiędzy osią wyznaczoną przez kierunek robota, a prostą przechodzącą przez punkt środkowy robota i punkt końcowy (docelowy). Im większy kąt odchylenia tym większa wartość działa na robota, w celu ukierunkowania go do celu. gdzie: c 1... c n wartości pomiarów z czujników w 1... w n wartości wag dla poszczególnych czujników V suma wartości z czujników pomnożonych przez wartości wag k, A stałe wyznaczane doświadczalnie α kąt odchylenia od kierunku do celu wsp współczynnik wyznaczany doświadczalnie Współczynnik wsp różni się znakiem dla różnych kół z powodu faktu, że α (-180,180). To znaczy, dla koła, znajdującego się dalej od celu, zwiększana jest wartość prędkości chwilowej, natomiast drugiemu zmniejszana, a nawet chwilowa wartość może być ujemna, co oznacza ruch koła do tyłu. Powoduje to obrót robota w kierunku celu.
Algorytm BUG (pluskwy) Zainspirowany został przez metody poruszania się owadów. Polega na podążaniu robota przy brzegu przeszkody, w celu jej całkowitego okrążenia, po czym robot oddala się od okrążonego obiektu w punkcie, który jest najbliższy celu na torze otaczającym przeszkodę. Robot wykorzystuje aktualne (chwilowe) odczyty z czujników i przybliżone dane o kierunku celu. Algorytm prosty ale nieoptymalny. Algorytm pluskwy
Metoda pól potencjałowych W literaturze metoda ta spotykana jest także pod nazwą metoda sztucznych pól potencjalnych. Podstawowym założeniem metody jest przyjęcie, iż robot, traktowany jako punkt materialny, porusza się w wyniku sił działających na niego. Siły pochodzą od przeszkód i od punktu docelowego. Siła punktu docelowego przyciąga robota, natomiast siły od przeszkody odpychają go. Dlatego też metoda jest niewrażliwa na kształt przeszkód. Charakterystyka sił odpychających powinna być podana w taki sposób, aby wartość siły była mała, gdy robot znajduje się daleko od przeszkody i rosła praktycznie do nieskończoności na brzegach przeszkód. Siły, w formie wektorów, które działają na robota, są sumowane tworząc wektor wypadkowy w danym punkcie przestrzeni ruchu. Jest to nowy kierunek, w którym powinien się poruszać robot. Przykład takiego pola ilustruje poniższy rysunek. Rozkład wektorów wypadkowych działających na robota
Istnieje prawdopodobieństwo, że robot utknie w minimum lokalnym, tzn. wektor wypadkowy będzie równy 0, lecz robot nie znajduje się jeszcze u celu. Jest to główna wada tej metody. Klasyczny przykład takiej sytuacji ilustruje rysunek. Niemożliwe jest wyjście z minimum lokalnego robota, używając algorytmu pól potencjałowych. Można natomiast posłużyć się dodatkowymi metodami pozwalającymi kontynuować jazdę. Jedną z metod jest ruch robota wzdłuż ściany przeszkody, do czasu aż istnieje pewność ominięcia przeszkody. Kryterium to jednak nie sprawdza się w przypadku braku fizycznej możliwości dotarcia robota do przeszkody. Innym sposobem jest korzystanie z informacji globalnej, tzn., gdy robot posiada mapę i wie o rozmieszczeniu przeszkód. W takim wypadku jest możliwa zmiana kierunku ruchu robota, w momencie zbliżania się do minimum. Kolejnym sposobem jest chwilowe wyłączenie siły przyciągającej. Takie działanie nie jest działaniem idealnym, ponieważ ciężko wyznaczyć obszar atrakcji minimum lokalnego, a co za tym idzie, robot może ponownie wrócić do minimum. Najczęstszym działaniem jest chwilowe wyłączenie algorytmu pól potencjałowych i włączenie algorytmu Braitenberga, czyli omijania przeszkód i błądzenia losowego.
Matematyczny opis algorytmu wygląda następująco: U w - potencjał wypadkowy U w U p V i oi U p Voi - potencjał przyciągający - i-ty potencjał odpychający Najczęściej modelowaną postacią potencjału przyciągającego jest funkcja paraboliczna dana wzorem: U p 1 k p q r q k qr - współrzędne położenia robota qk k p - współrzędne położenia punktu końcowego - doświadczalnie dobierany współczynnik Dla tak zaproponowanego potencjału siła przyciągania wynosi F ( q r ) U p k p q r q k
Z kolei przykładem potencjału odpychającego jest: 0 0 0, 0, 1 1 1 d q q d q q d q q k U oi r oi r oi r oi oi oi q - współrzędne położenia i-tej przeszkody 0 d - minimalna odległość od przeszkody, przy której siła zaczyna działać na robota Dla tak zaproponowanego potencjału siła odpychania wynosi: 0 0 0, 0, 1 1 1 ) ( d q q d q q q q d q q k q F oi r oi r oi r oi r oi r oi Wypadkowy wektor siły dany jest wzorem i oi p w F F F Mając wszystkie wektory sił odpychających i wektor siły przyciągającej, tworzony jest wypadkowy wektor, który nadaje chwilowy kierunek jazdy robota. Korzystnie jest przemieszczać robota o stałą, stosunkowo małą wartość odległości. Pozwala to na kontrolę dynamiki zmian konfiguracji robota oraz eliminuje możliwość kolizji robota z przeszkodą.
Przykładowo, dla robota Khepera, siła przyciągania została zaimplementowana w następującej postaci: F q r q k gdzie: q r współrzędne położenia robota, q k współrzędne położenia punktu końcowego qr q k - oznacza odległość pomiędzy punktami α, β stałe dobrane eksperymentalnie W przypadku bliskiej odległości robota do celu siła przyciągania dąży do 0, a więc nie występuje już przyciąganie. Aby temu zapobiec dodano stałą β. Wskazania czujników podczerwieni nie podają bezpośrednio odległości od przeszkody. Dla powiązania ich z wartościami sił wynikającymi ze wzoru, należy je odpowiednio przeskalować. Ze względu na podobny charakter przebiegu wykresu odczytów z czujników oraz wykresu wartości siły (przy dobranych k oi oraz d o ) zastosowane zostały proste operacje arytmetyczne przekształcające odczyt z czujników do charakterystyki siły. Do krzywej dopasowana została funkcja siły, zależna od wartości pomiaru w postaci: F k i i 4095 i k i gdzie: - pomiar i-tego czujnika - stała dobrana doświadczalnie (dla wszystkich czujników) - współczynnik wzmocnienia i-tej siły
Przebieg funkcji naszkicowany został dla stałych k oi = 170000000; d o = 150. Należy zauważyć, że dobrane w trakcie programowania współczynniki k oi nie odnoszą się bezpośrednio do przeszkód, jak ma to miejsce w zagadnieniach teoretycznych, a przypisane są do czujników. Inaczej można powiedzieć, że wokół robota znajduje się zawsze 9 teoretycznych przeszkód, wytwarzających zerowe lub większe od 0 pola potencjalne, rozlokowanych zawsze pod takimi samymi kątami w stosunku do jego poziomej osi.
Planowanie ścieżki z wiedzą o mapie globalnej Planowanie ścieżki z wiedzą o mapie globalnej polega na, wygenerowaniu trajektorii ruchu poprzez wiedzę o globalnej mapie. Pod pojęciem globalnej mapy rozumie się mapę, która obejmuje swoim obszarem punkt startowy i końcowy. W metodach opartych o mapę topologiczną (sieciowo-grafowych), znalezienie ścieżki polega na, przeszukiwaniu krawędzi grafu, w celu wyznaczenia optymalnej drogi. W metodach rastrowych określanie trajektorii polega na, przeszukiwaniu komórek mapy, określonych jako wolna przestrzeń, w celu znalezienia ścieżki przejścia od konfiguracji początkowej do konfiguracji docelowej. Zaletą metody jest potencjalna możliwość odnalezienia optymalnej ścieżki. Głównymi wadami metody są, duża złożoność obliczeniowa i konieczność ponownego wyliczania trajektorii w przypadku środowiska dynamicznego (z przemieszczającymi się przeszkodami). Z powodu dużej ilości obliczeń, metody globalne zazwyczaj wykonywane są w trybie jałowym (off line), tzn. proces planowania ścieżki, odbywa się przed jego wykonaniem przez układ sterujący. Najbardziej znane metody zaliczane do tej grupy to: metoda propagacji fali, metoda diagramu Woronoia, metoda grafu widoczności, metoda A*, metoda dekompozycji komórkowej.
Metoda propagacji fali Historia tego sposobu planowania toru ruchu robota mobilnego liczy parę dziesiątek lat. Stosowana jest głównie podczas projektowania ścieżek obwodów drukowanych. Jako że jest to metoda ogólnego przeznaczenia, wykorzystuje się ją również w robotyce mobilnej. W założeniach przyjmuje się, że robot mobilny jest holonomiczny. Dwuwymiarową przestrzeń konfiguracyjną robota należy podzielić na elementarne komórki. Każdej komórce przypisuje się znacznik oraz wagę. Obszarom zajętym przez przeszkody przypisujemy wagę równą -, czyli opatrujemy znacznikiem zajęta. Pozostałym komórkom nadajemy wagę -1, oznacza ona status komórki wolnej. Aby zadanie było rozwiązywalne przestrzeń konfiguracyjna musi być jednospójna i mieć skończoną liczbę komórek elementarnych. W pierwszej fazie metody zapełniamy wagami komórki wolne i zajęte. Jest to faza przygotowująca, która generuje rozchodzącą się falę w przestrzeni konfiguracyjnej. Algorytm przebiega następująco: Krok 1. Zadanej komórce początkowej nadać wagę 0 i ustalić wartość i poszukiwanej wagi na 0. Krok. Przeglądając jednokrotnie wszystkie komórki przestrzeni konfiguracyjnej wykryć te o wadze równej i. Krok 3. Jeśli nie znaleziono komórek o takiej wadze, algorytm kończy działanie. W przeciwnym przypadku wykonujemy kolejny krok. Krok 4. Każdemu z sąsiadów znalezionej komórki, którego waga nie została uprzednio zdeterminowana przez nadanie statusu zajętej lub przypisanie wagi nieujemnej, nadać wagę (i + 1). Krok 5. Gdy przeglądnięto wszystkie komórki o wadze i, zwiększyć wartości i o jeden i kontynuować od kroku.
W drugiej fazie algorytmu, dla dowolnie wybranej komórki wolnej od przeszkód, wyznacza się drogę optymalną do komórki o wadze równej 0, czyli inicjującej działanie pierwszej fazy. Droga jest wyznaczana przez poszukiwanie wśród sąsiadów wybranej komórki, nazywanej bieżącą, takiej, która ma wagę o jeden mniejszą. Z kolei ta komórka staje się bieżąca i proces poszukiwania drogi odbywa się iteracyjnie, aż zostanie znaleziona droga do celu, czyli komórki inicjującej. Optymalna droga przebiega przez wszystkie wyznaczone komórki bieżące. W robotyce mobilnej wykorzystanie sprowadza się do wielokrotnego wyznaczania drogi pomiędzy punktem inicjującym pierwszą fazę, a dowolnym punktem przestrzeni. Stosuje się ją do środowisk stacjonarnych i zamkniętych. Poniższy rysunek przedstawia przykład działania metody.
Przeszkody Punkt początkowy Punkt końcowy
Metoda diagramu Woronoia Metoda diagramu Woronoia jest metodą planowania skrajnie bezpiecznych torów ruchu robotów mobilnych poruszających się na płaszczyźnie. Zwykle bywa wykorzystywana w środowiskach o niezbyt licznych przeszkodach stacjonarnych. Planowanie toru przebiega w dwóch fazach. Faza pierwsza Najpierw, na podstawie mapy otoczenia robota, w której znajdują się przeszkody, nanosimy krzywe równoodległe od przeszkód. Dla przeszkód w kształcie wielokątów krzywymi są odcinki lub łuki parabol. Na przecięciach krzywych znajdują się wierzchołki tworzonego grafu. Cztery dodatkowe wierzchołki to wierzchołki początkowy i końcowy toru, oraz dwa wierzchołki usytuowane w grafie w miejscach najbliższych od wierzchołka początkowego i końcowego. Łukom powstałego grafu są przypisywane wagi równe długościom toru między wierzchołkami mierzoną wzdłuż linii równoodległych od przeszkód (odległość ta jest z reguły dłuższa od odległości euklidesowej między wierzchołkami). Faza druga W drugiej fazie planowania przeszukujemy utworzony nieskierowany graf, w celu znalezienia najkrótszej drogi łączącej wierzchołek początkowy z końcowym. Pierwsza faza planowania musi być zrealizowana w trybie planowania wstępnego, ponieważ modelowanie otoczenia robota jest czasochłonne. Faza druga, dla niezbyt skomplikowanych grafów o dziesiątkach wierzchołków, może być wykonana w trybie czasu rzeczywistego.
Główną zaletą metody diagramu Woronoia jest bezpieczeństwo wynikowego toru ruchu tym bardziej, że informacja o odległościach od przeszkód (konieczna podczas tworzenia linii równoodległych od przeszkód) może podwyższać wagi niektórych łuków. Bezpieczeństwo toru jest ważne także z powodu modelowania robota, jako obiektu o nieograniczonych możliwościach ruchu w dowolnym kierunku. Dla rzeczywistych robotów mobilnych (nieholonomicznych) to założenie może nie być spełnione, jednak tor bezpieczny zapewni możliwość przeorientowania robota bez kolizji z przeszkodami. Jak łatwo zauważyć, liczba wierzchołków grafu, jako funkcja liczby przeszkód rośnie szybciej niż liniowo. Z tego powodu warto rozważyć możliwość agregacji małych przeszkód położonych blisko siebie. Ponadto tworzenie krzywych równoodległych od przeszkód jest stosunkowo łatwe dla przeszkód będących wielobokami (wypukłymi). Dla przeszkód o innych kształtach zadanie wyznaczenia tych krzywych nastręcza kłopotów obliczeniowych. Z tego powodu warto spróbować wpisywać przeszkody o nieregularnych kształtach w wieloboki wypukłe i przeprowadzić planowanie dla takiej reprezentacji przeszkód. Oczywiście przez zabieg uwypuklania przeszkód część przestrzeni wolnej od przeszkód staje się niedostępna. Do wad metody diagramu Woronoia należy zaliczyć trudność w uwzględnieniu zmian środowiska, np. w wyniku ruchu przeszkód. Czasem także najkrótsza droga w grafie niekoniecznie musi być łatwa do realizacji przez poruszającego się robota. Wiele zakrętów w wynikowym torze, a także zmiany segmentu ruchu w optymalnej drodze pod kątami ostrymi, utrudniają fizyczną realizację zaplanowanego toru.
Metoda grafu widoczności Planuje ona bardzo efektywnie optymalny tor ruchu punktowego robota mobilnego na płaszczyźnie, na której znajdują się jedynie przeszkody o kształcie wieloboków wypukłych. Tworzony graf konfiguracji powstaje przez łączenie wierzchołków, których incydencja jest określana na podstawie kryterium widoczności. Kryterium efektywności ruchu jest długość euklidesowa toru, a algorytm implementujący metodę przebiega według następującej procedury: Krok 1. Wczytać wierzchołki początkowy i końcowy ruchu i układ przeszkód będących wielobokami wypukłymi. Wierzchołkowi początkowemu nadać ocenę równą zeru. Wierzchołek docelowy jest traktowany jak wierzchołek przeszkody. Krok. Rekurencyjnie, rozpoczynając od wierzchołka początkowego, budować graf widoczności. Bieżący wierzchołek, wybrany na podstawie oceny jego jakości, jest łączony gałęziami z wierzchołkami przeszkód widocznymi z rozwijanego wierzchołka. Relacja widoczności oznacza bezkolizyjność toru między parą wierzchołków, a gałęzi je łączącej przypisywana jest waga równa długości euklidesowej toru między nimi. Gdy wierzchołek będący końcem gałęzi jest wygenerowany po raz pierwszy, uzyskuje ocenę równą sumie wagi gałęzi do niego prowadzącej i oceny wierzchołka będącego początkiem gałęzi. Jeżeli wierzchołek został wygenerowany już uprzednio, istnieje już droga (i jej ocena). Następuje porównanie ocen nowej drogi i tej istniejącej, a lepsza staje się jedyną drogą wiodącą do celu. Rysunek. Rozwinięcie wierzchołka początkowego (rysunek lewy); rozwinięcie wierzchołków oznaczonych literą A, B oraz tor wynikowy. Krok 3. Algorytm kończy działanie, gdy wierzchołek, który ma być rozwijany ma ocenę wyższą niż wierzchołek docelowy ruchu.
Metoda grafu widoczności jest na tyle efektywna czasowo, że może być stosowana nawet w trybie czasu rzeczywistego z ruchomymi przeszkodami, o ile tylko mapa otoczenia robota jest uaktualniana odpowiednio często. Pewną niedogodnością wynikowego toru ruchu generowanego przez metodę grafu widoczności jest jego incydencja z przeszkodami (zwykle w wierzchołkach), lecz czasem także wzdłuż krawędzi przeszkód. Sposobem na poprawę bezpieczeństwa wynikowego toru jest poszerzenie przeszkód.
Metoda A* Przestrzeń poszukiwań Przyjmijmy, że chcemy przejść z pkt. A do pkt. B. Przyjmijmy, że oba punkty oddziela mur. Sytuacja ta została zilustrowana poniżej. Na zielono oznaczono pkt. A, na czerwono pkt. B, a niebieskie pola oznaczają przeszkodę między nimi. Przestrzeń poszukiwań podzielona jest na siatkę kwadratowych pól. Takie uproszczenie przestrzeni poszukiwań jest pierwszym krokiem odnajdywania ścieżki. Omawiana metoda redukuje przestrzeń poszukiwań do prostej dwuwymiarowej tablicy. Każda komórka tablicy reprezentuje jedno pole siatki, a jej status został opisany jako MOŻNA lub NIE-MOŻNA przejść. Ścieżka zostanie wytyczona poprzez oznaczenie tych pól, które powinniśmy przejść by przedostać się z pkt. A do pkt. B. Kiedy ścieżka zostanie znaleziona, będzie możliwe przejście z centrum pierwszego kwadratu do centrum następnego do momentu, gdy cel zostanie osiągnięty. Centralne punkty nazywane są "węzłami". Nie nazywa się ich po prostu kwadratami, ponieważ istnieje możliwość, że przestrzeń poszukiwań zostanie podzielona inaczej niż w siatkę kwadratów. Równie dobrze to może być siatka prostokątów, sześciokątów, trójkątów lub jakichkolwiek innych kształtów, a węzły mogą być umieszczone we wnętrzu każdego kształtu. Siatka kwadratowa jest dość popularna, ponieważ jej użycie jest najprostsze.
Początek poszukiwań Po uproszczeniu pola poszukiwań do dających się zarządzać węzłów, poprzez nałożenie siatki kwadratów, następnym krokiem jest przeprowadzenie poszukiwań najkrótszej ścieżki. Robimy to rozpoczynając od punktu startowego A, sprawdzając przyległe kwadraty. Generalnie prowadzimy poszukiwania w kierunku zewnętrznym do momentu odnalezienia celu (pkt. B). Rozpoczynamy poszukiwania postępując zgodnie z następującymi krokami algorytmu: Krok 1. Zaczynamy w punkcie startowym A i dodajemy go do "Listy Otwartych" - pól oczekujących na sprawdzenie. W tym momencie jest tylko jedna pozycja na liście, ale później będzie ich więcej. Lista Otwartych zawiera pola, które mogą zawierać się w poszukiwanej ścieżce, ale nie koniecznie. Po prostu, to jest lista pól, które wymagają sprawdzenia. Krok. Szukamy wszystkich osiągalnych pól oznaczonych jako MOŻNA, przyległych do pola startowego (pkt. A), ignorując te zawierające przeszkody oznaczone jako NIE-MOŻNA. Dodajemy je do Listy Otwartych. Dla każdego z tych pól zachowujemy pkt. A jako "pole rodzica". To działanie jest ważne ze względu na możliwość podążania po wyznaczonej ścieżce. Krok 3. Usuwamy pole startowe A z Lisy Otwartych i dodajemy je do Listy Zamkniętych, by zaznaczyć, że nie musimy sprawdzać go ponownie.
Rysunek 1. Punkt startowy dodany do Listy Zamkniętych, przyległe pola umieszczone na Liście Otwartych. Wskaźniki obrazują komórkę rodzicielską. Sytuację tą obrazuje powyższy rysunek. Zielone pole w środku jest punktem startowym A. Otoczono je jasnoniebieską obwódką, co oznacza, że zostało dodane do Listy Zamkniętych. Wszystkie przyległe pola są obecnie na Liście Otwartych, oczekując na sprawdzenie, a oznaczono je jasnozieloną obwódką. Każde z pól przyległych posiada szary wskaźnik, wskazujący na kwadrat rodzicielski, którym w tym przypadku jest pkt. A. Następnie wybieramy jeden z przyległych kwadratów (ten, którego koszt F jest najniższy) z Listy Otwartych i mniej więcej powtarzamy opisany wyżej proces.
Szacowanie ścieżki Wybór pól wyznaczających poszukiwaną ścieżkę determinuje poniższe równanie: F = G + H G - koszt ruchu z punktu startu A do aktualnej pozycji, potrzebny by podążając wyznaczoną dotychczas ścieżką osiągnąć aktualną pozycję. H - szacunkowy koszt ruchu przejścia z aktualnej pozycji do celu wędrówki (pkt. B). Jest on często określany jako heurystyka. Dzieje się tak, ponieważ sposobem wyznaczania H jest szacowanie (zgadywanie). Naprawdę nie znamy aktualnego dystansu do momentu odnalezienia ścieżki, ponieważ na pozostałej do przejścia drodze mogą znajdować się najróżniejsze przeszkody. Ścieżka jest generowana przez powtarzanie przeglądania Listy Otwartych i wybieranie spośród jej zawartości pól o najniższym koszcie F. G jest kosztem przejścia z punktu startowego do aktualnego pola wygenerowaną dotychczas ścieżką. W tym przykładzie, koszt każdego poziomego lub pionowego kroku ustalony jest jako 10, a koszt każdego kroku na skos jako 14. Używamy wartości 10 i 14 dla uproszczenia. Użycie liczb całkowitych znacznie przyspiesza pracę komputera. Aby wyznaczyć koszt przejścia wytyczoną ścieżką do aktualnej pozycji G, sumujemy koszt G pola rodzica z liczbą 10 lub 14 w zależności od kierunku ruchu z pola rodzica do aktualnego pola. H może być wyznaczone na wiele sposobów. Często stosowana metoda nosi nazwę Manhattan. Polega ona na obliczeniu całkowitej ilości pól koniecznych do przejścia od aktualnej pozycji do celu (pkt. B), dla ruchu poziomego i pionowego, nie wykorzystując ruchu po skosie oraz ignorując wszelkie przeszkody, jakie mogą wystąpić na trasie. Następnie wynik mnożony jest przez 10 (koszt kroku w pionie lub poziomie). Staramy się oszacować pozostały dystans. Jeśli jednak przeszacujemy ten dystans, nie będziemy mieć gwarancji, że otrzymamy najkrótszą ścieżkę. Technicznie rzecz biorąc, w tym przypadku, metoda Manhattan jest niedopuszczalną, ponieważ przeszacowuje w niewielkim stopniu pozostały dystans. Jednakże jest prosta obliczeniowo i wystarczająca na takie potrzeby, a poza tym przeszacowuje tylko w małym stopniu.
Kilka przykładowych funkcji heurystycznych: Manhattan Diagonala Euklidesowa Euklidesowa bez pierwiastka gdzie: n aktualna pozycja. cel pozycja docelowa. D współczynnik kosztu ruchu w pionie lub poziomie.
F jest sumą G i H. Rezultaty pierwszego kroku są widoczne na poniższym rysunku. Współczynniki F, G i H są zapisane w każdym polu. Tak jak to pokazano w polu umiejscowionym na prawo od pola startu, punktacja F jest wyświetlana w lewym górnym rogu, G w lewym dolnym, a H w prawym dolnym. Rysunek. Pierwszy etap algorytmu. Pola bezpośrednio nad, pod i po lewej stronie pola startowego mają taką samą wartość G = 10, ponieważ są one tylko jedno pole od pola startowego. Pola położone na skos od pola startowego mają wartość G = 14. Wartości H są obliczane przez oszacowywanie metodą Manhattan odległości do czerwonego pola celu, przy ruchu tylko poziomym lub pionowym i ignorowaniu przeszkody stojącej na drodze. Używając tej metody, pole bezpośrednio na prawo od pola startowego jest położone 3 pola od czerwonego, co daje wartość H = 30. Pole bezpośrednio powyżej tego pola jest oddalone o 4 pola, co daje wartość H = 40. Wartość F dla każdego pola jest obliczana przez dodanie do siebie wartości G i H.
Kontynuacja poszukiwań By kontynuować poszukiwania, po prostu wybieramy pole o najniższej wartości F spośród wszystkich na Liście Otwartych. Z wybranym polem postępujemy zgodnie z poniższymi krokami algorytmu: Krok 4. Pole o najniższej wartości F spośród wszystkich na Liście Otwartych usuwamy z Listy Otwartych i dodajemy je do Listy Zamkniętych. Krok 5. Sprawdzamy wszystkie przyległe pola. Ignorując wszystkie z Listy Zamkniętych lub oznaczonych jako te których NIE-MOŻNA przejść, dodajemy pola do Listy Otwartych, jeśli jeszcze ich tam nie ma. Wybrane pole Z wskazujemy jako pole rodzica dla nowych pól na Liście Otwartych. Krok 6. Jeśli przyległe pole X było już wcześniej dodane do Listy Otwartych, sprawdzamy czy ścieżka o aktualnym przebiegu do tego pola jest lepszą. Innymi słowy, sprawdzamy czy wielkość G pola X jest mniejsza, jeśli użyjemy aktualnego pola Z by się dostać na pole X. Jeśli nie, nie wykonujemy dodatkowych działań. W przeciwnym przypadku, jeśli wielkość G dla nowej ścieżki jest mniejsza, zmieniamy wskazanie pola rodzica dla przyległego pola X na aktualne pole Z. Na koniec, przeliczamy ponownie wartości F i G dla tego pola X.
Z początkowych 9 pól, zostało 8 na Liście Otwartych, po przeniesieniu pola startowego na Listę Zamkniętych. Jedno z nich, o najniższej wartości F = 40, leży bezpośrednio na prawo od pola startowego. Więc wybieramy to pole jako następne (aktualne). Podświetlono je na niebiesko na poniższym rysunku. Rysunek 3. Wybór pola o najniższym współczynniku F Na początku usuwamy aktualne pole z Listy Otwartych i dodajemy je do Listy Zamkniętych. Następnie sprawdzamy pola przyległe. Pole bezpośrednio na prawo jest przeszkodą, więc to ignorujemy. Pole bezpośrednio na lewo jest polem startowym i znajduje się na Liście Zamkniętych, wiec też je ignorujemy. Pozostałe cztery pola są już na Liście Otwartych, więc musimy sprawdzić czy ścieżki do to tych pól będą trochę lepsze (krótsze), jeśli będą prowadzić przez aktualne pole. Robimy to używając wartości G jako wyznacznika. Pole bezpośrednio powyżej aktualnego pola - jego obecna wartość G = 14. Jeśli ścieżka do tego pola prowadziłaby przez aktualne pole, jego wartość G byłaby równa 0 (G = 10 aktualnego pola plus 10 za przejście pionowe z aktualnego pola w górę). To nie byłaby lepsza ścieżka. Lepiej (krócej) będzie dostać się tam w jednym ruchu na skos, niż w dwóch jednym w poziomie i drugim w pionie. Gdy powtórzymy proces dla 4 przyległych pól znajdujących się na Liście Otwartych, stwierdzimy, że żadna ze ścieżek nie zostałaby ulepszona gdyby przechodziła przez aktualne pole.
Przeglądamy pozostałe 7 pól znajdujących się na Liście Otwartych i wybieramy jedno z najniższą wartością F. W tym przypadku, znajdują się tam pola z wartością G = 54. Nie ma znaczenia, które wybierzemy. Mając na względzie szybkość, wybieramy ostatnie, jakie dodaliśmy do Listy Otwartych. (Tak selektywne traktowanie węzłów może być przyczyną, dla której inna wersja algorytmu A* może zwrócić inną ścieżkę o takiej samej długości.) Wybieramy pole zaraz pod spodem aktualnego i na skos w kierunku prawo-dół, jak pokazuje poniższy rysunek. Rysunek 4. Wybór kolejnego pola o najniższym współczynniku F
Tym razem, gdy sprawdzamy przyległe pola, znajdujemy jedno bezpośrednio po prawej stronie aktualnego, na którym jest mur, więc je ignorujemy. To samo robimy z polem usytuowanym na skos w górę po prawej od aktualnego, na którym również znajduje się mur. Również ignorujemy pole leżące na skos w dół po prawej od aktualnego, ponieważ nie można się dostać na to pole bezpośrednio z pola aktualnego bez ścinania narożnika muru. Aby się tam dostać, na początek należy przejść na pole bezpośrednio na dole, by następnie przejść bezpośrednio na prawo, omijając narożnik muru. Reguła dotycząca zakazu ścinania narożników jest oczywiście opcjonalna. Jej użycie zależy od tego, jak rozłożymy węzły. Pozostało pięć innych pól. Następnych dwóch pól po aktualnym nie ma jeszcze na Liście Otwartych, więc je do niej dodajemy, a aktualne pole czynimy ich polem rodzica. Z pozostałych trzech pól dwa są już na Liście Zamkniętych (pole startowe i to bezpośrednio nad aktualnym polem), więc je ignorujemy. Co do ostatniego pola (bezpośrednio na lewo od aktualnego) sprawdzamy czy jego wartość G będzie mniejsza, jeśli dostaniemy się do niego przechodząc przez aktualne pole. Tym razem tak się nie dzieje, więc kończymy z tym polem i jesteśmy gotowi do zajęcia się następnym z Listy Otwartych. Powtarzamy ten proces do momentu dodania pola docelowego do listy zamkniętych, co w tym przypadku wygląda tak, jak przedstawiono to na poniższym rysunku. Rysunek 5. Pole docelowe zostało dodane do listy zamkniętych.
Pole rodzica dla pola znajdującego się dwa pola poniżej pola startowego zostało zmienione. Przed zmianą wartość G = 8, a wskaźnik kierował do pola na skos w górę po prawej. Teraz ma wartość G = 0, a wskaźnik kieruje do pola bezpośrednio nad nim. Zmianę wykonano w trakcie poszukiwań ścieżki, kiedy wartość G została sprawdzona i poprawiona na niższą, dzięki użyciu krótszej ścieżki, efektem czego było wskazanie nowego pola rodzica oraz przeliczenie wartości G i F. Ta zmiana nie wydaje się być istotną w tym przypadku, lecz istnieje wiele możliwych sytuacji, gdzie takie stałe sprawdzanie owocuje zauważalnymi różnicami w wyznaczaniu najkrótszej ścieżki do pola docelowego. Ścieżkę wyznaczamy startując z czerwonego pola docelowego, przesuwamy się z jednego pola na drugie, będące jego polem rodzica, podążając za wskaźnikami. W taki sposób dostaniemy się z powrotem do pola startowego, poruszając się właśnie po poszukiwanej ścieżce. Przedstawiono to na poniższym rysunku. Przemieszczenie się z pola startowego A do pola docelowego B jest prostym przesuwaniem się z centrum każdego pola (węzła) do centrum następnego pola, znajdującego się na ścieżce, aż do osiągnięcia celu. Rysunek 6. Wyznaczona ścieżka.
Metoda dekompozycji komórkowej Główną ideą dekompozycji komórkowej jest podział obszaru na części zajęte przez przeszkody i wolne. Główne założenia algorytmu można przedstawić następująco: Krok 1. Podzielić obszar na spójne i proste części określane mianem komórek. Krok. Określić wolne komórki sąsiadujące ze sobą i skonstruować graf spójności pomiędzy nimi. Krok 3. Znaleźć, w których komórkach zawierają się punkt początkowy i końcowy. W grafie spójności znaleźć połączenie pomiędzy nimi. Krok 4. Wyznaczyć ścieżkę. Musi ona przechodzić po każdej komórce należącej do znalezionego połączenia. Ze względu na położenie krawędzi występujących pomiędzy komórkami wyróżniamy dwie metody podziału komórkowego: dokładną i przybliżoną. Metoda podziału dokładnego na komórki (ang. exact cell decomposition) jest bezstratna, ponieważ granice wynikają ze struktury środowiska. W metodzie przybliżonego podziału na komórki (ang. approximate cell decomposition) struktura środowiska nie wpływa na granice pomiędzy komórkami.
Przybliżony podział na komórki Jest to jedna z najczęściej stosowanych metod przy planowaniu ruchu w robotyce mobilnej. W pewnym sensie ma to swoje podłoże w popularności siatki zajętości, która służy do reprezentacji środowiska. Jej komórki mogą mieć zmienną lub stałą szerokość. Idea: Dzielimy obszar F na zbiór K rozdzielnych komórek, które sumują się odwzorowując w przybliżony sposób obszar F (komórki częściowo zajęte traktujemy jako zajęte). Charakterystyka komórek: Prosty, standardowy kształt (kwadrat, sześciokąt foremny) ułatwia przeprowadzenie dekompozycji oraz znalezienie ścieżki łączącej dwie dowolne komórki. Sprawdzenie wspólnej krawędzi dowolnych dwóch komórek musi być łatwe. Ścieżka biegnąca przez granicę pomiędzy dwoma sąsiadującymi komórkami musi być łatwa do odnalezienia.
Podział przybliżony na komórki o stałej szerokości W zależności od kształtu i rozmiaru przeszkód komórki mogą mieć różną szerokość, musi być ona jednak niezmienna dla całej siatki pokrywającej obszar.
Dulęba Ignacy : Metody i algorytmy planowania ruchu robotów mobilnych i manipulacyjnych. Akademicka Oficyna Wydawnicza EXIT, Warszawa 001. Floreano D., Godjevac J., Martinoli A, Monada F., Nicoud J-D.: Design, control and applications of autonomous mobile robots. Micro-computing Laboratory Swiss Federal Institute of Technology in Lausanne, LAMI-INF-EPFL, CH-1015 Ecublens Braitenberg, V.: Vehicles: Experiments in Synthetic Psychology. MIT, Cambridge, MA, 1984 Miguel A. Castaneda P., Savage J., Hernandez A., Cosío F. A.: Local Autonomous Robot Navigation using Potential Fields, 008, http://sciyo.com/articles/show/title/local_autonomous_robot_navigation_using_potential_fields