Planowanie ruchu robotów Metryki wykorzystywane
Transkrypt
Planowanie ruchu robotów Metryki wykorzystywane
Planowanie ruchu robotów Metryki wykorzystywane przy planowaniu ruchu robotów modularnych Zuzanna Pietrowska Monika Puchalska Tomasz Płatek 17 maja 2012 1 Roboty rekonfigurowalne Roboty rekonfigurowanle należą do klasy systemów metamorficznych. Robotyczny system metamorficzny jest zbiorem mechatronicznych modułów, w którym każdy z tych modułów ma zdolność łączenia, rozłączania oraz wspinania się nad moduły dołączone. Pojawienie się robotów rekonfigurowalnych stworzyło potrzebę zdefiniowania odpowiednich metryk, które wyznaczyłyby odległość pomiędzy dwoma konfiguracjami robota. Takie metryki przykładowo służyć mogą określaniu ilość ruchów, a tym samym potrzebnej energii dla danej rekonfiguracji. Koncepcję metryki dla robotów modularnych zaproponowali Admit Pamecha oraz Gregory Chirikjian w pracy [1]. Odległość między konfiguracjami można zdefiniować jako sumę odległości pomiędzy modułami robota w obu konfiguracjach. Dlatego też najpierw należy określić sposób mierzenia odległości pomiędzy samymi modułami. Odległość ta musi jak najdokładniej odzwierciedlać najmniejszą liczbę ruchów potrzebnych do przemieszczenia się modułu pomiędzy dwoma punktami. Jednakże muszą zostać nałożone pewne ograniczenia na ruch, gdyż, w przeciwnym wypadku, ilość możliwych kombinacji była by zbyt duża. Kinematyczne ograniczenia regulujące ruch jednego modułu są następujące [1]: • moduły mogą zostać przemieszczone tylko na wolne miejsce, • każdy moduł musi być połączony przynajmniej z jednym modułem, • przynajmniej jeden moduł musi być połączony z bazą robota, • w każdym kroku czasu pojedynczy moduł może przemieścić się o jedno miejsce, • każdy z modułów ma ograniczoną liczbę zmian. Dodatkowe warunki ograniczające robota oraz scenę: • maksymalna ilość stopni swobody robota - 6, • scena składa się z 91 sześciokątnych pól, • baza robota jest zawsze w tym samym miejscu. W ramach tych ograniczeń można zdefiniować problem planowania ruchu dla robotów modularnych: określenie minimalnej sekwencji ruchów modułów pozwalających na przemieszczenie się robota z konfiguracji początkowej do konfiguracji końcowej. 1 2 Metryki 2.1 Metryka przykrywania Metryka ta daje nam informację o ilości modułów, pomiędzy konfiguracjami A i B, które się nie pokrywają. δ(A, B) = n − |A ∩ B| (1) gdzie: n - ilość modułów, A - konfiguracja początkowa, B - konfiguracja końcowa. 2.2 Metryka najlepszego dopasowania Metryka najlepszego dopasowania pomiędzy dwoma konfiguracjami A i B daje nam optymalne dopasowanie każdego elementu ai w A do każdego elementu bj w B, f : A → B, tak, że suma odległości pomiędzy modułami jest minimalna. δ(A, B) = minQn f (A, B) gdzie: Q n f (A, B) A B - zbiór wszystkich możliwych dopasowań, funkcja kosztu, konfiguracja początkowa, konfiguracja końcowa. X f (A, B) = dij mij (2) (3) 1≤i≤n,1≤j≤n gdzie: dij = δ L (ai , bj ) 1 ai → bj mij = . 0 bj → ai 3 - odległość pomiędzy modułem ai a bj , Symulowane wyżarzanie jako algorytm planowania ruchu Symulowane wyżarzanie jest algorytmiczym podejsciem do rozwiązywania problemów optymalizacyjnych, w szczególności w przypadku, kiedy globalne ekstremum jest ukryte pomiędzy kilkoma lokalnymi ekstremami [1]. Główna idea działania algorytmu pochodzi od zjawiska wyżarzania w metalurgii, które polega na nagrzaniu elementu stalowego do odpowiedniej temperatury, a następnie powolnym schłodzeniu, ma to na celu osiągnięcie minimalnego stanu energetycznego [1]. Pseudokod algorytmu Ustaw T = Tpoczatkowe Dopóki ( (Konfiguracja końcowa nie została odnaleziona) i (ruchy wykonane < ruchy dozwolone) ) Po każdych K krokach, T = β × T Wyznacz energię E bieżącej konfiguracji przy użyciu metryki przykrywania (1) lub metryki optymalnego dopasowania (3). Znajdź wszystkie możliwe ruchy dla wszystkich modułów (oprócz bazy) Dla każdego, z możliwych, ruchu i Wyznacz różnicę energii ∆Ei (przy użyciu tej samej metryki, co powyżej), jeżeli taki ruch został by wykonany Jeżeli jest ruch/ruchy dla którego ∆E jest mniejsza od 0 Wybierz którykolwiek z nich W przeciwnym razie, jeżeli ∆E jest większa od 0 dla wszystkich możliwych ruchów Wyznacz prawdopodobieństwo pi = e−∆Ei /T Pkm −∆Ek /T k=1 e dla każdego z ruchów Wybierz ruch na podstawie wyznaczonego prawdopodobieństwa 2 4 Opis aplikacji Aplikacja ilustruje wykorzystanie metryk przy planowaniu ruchu modularnych robotów rekonfigurowalnych o ustalonej bazie. Daje ona możliwość porównania odległości między zadanymi przez użytkownika konfiguracjami początkową oraz końcową, według różnych metryk, w szczególności metryki optymalnego przypisania. Ponadto realizuje niestandardowy algorytm planowania ruchu z wykorzystaniem algorytmu symulowanego wyżarzania z możliwością zmiany temperatury początkowej, parametru chłodzenia oraz wyboru jednej z dwóch funkcji energetycznych. 5 Obsługa programu W celu łatwej obsługi aplikacja wyposażona jest w graficzny interfejs użytkownika. Przedstawione na rysunku 1 okno aplikacji składa się z następujących elementów: Rysunek 1: Podstawowe okno aplikacji 1. scena - ukazuje postać obu konfiguracji, 2. panel wyboru konfiguracji - wybór konfiguracji do zaznaczenia na scenie 3. panel wybory metryki - wybór metryki liczącej odległość między konfiguracjami, 4. panel algorytmu - ustawienie parametrów algorytmu symulowanego wyżarzania, 5. panel narzędziowy - pozwala na zapis i odczyt konfiguracji. 3 5.1 Scena Definiuje się na niej konfigurację początkową i końcową robota. Również zostaje na niej wyświetlany postęp działania algorytmiu symulowanego wyżarzania. Na rysunku 2 zostało przedstawione, co oznacza każdy z kolorów, natomiast na rysunku 3 została pokazana przykładowa konfiguracja. Pole w samym środku sceny jest polem obu konfiguracji i jest ono ustawione na stałe (rys. 1). (a) pole puste (b) pole konfigu- (c) pole konfigu- (d) pole obu konracji początkowej racji końcowej figuracji Rysunek 2: Kolory Rysunek 3: Przykładowe zestawy konfiguracji robota 5.2 Panel wyboru konfiguracji W tym panelu należy zanzaczyć którą konfiguracja będzie wprowadzana na scenie, tj. które pola będą zajmowane przez moduły robota. Przycisk wyczyść pozwala na wyczyszczenie sceny. Rysunek 4: Panel wyboru konfiguracji 5.3 Panel wyboru metryki Panel ten pozwala na wybór metryki liczącej odległość między zadanymi konfiguracjami. Do wyboru są dwie metryki: metryka przykrywania (1) i metryka optymalnego dopasowania (3). Przycisk Licz pozwala na uruchomienie wybranej metody, w polu Wynik pojawi się wartość odległości. W przypadku metryki optymalnego dopasowania, pojawi się również okno (rysunek 6) z kolejnością optymalnego dopasowania modułów. 4 UWAGA: wybór metryki w tym panelu oznacza również wybór metryki liczącej energię w algorytmie symulowanego wyżarzania. Rysunek 5: Panel wyboru metryki Rysunek 6: Optymalne przypisanie 5.4 Panel algorytmu Rysunek 7: Parametry algorytmu Parametry algorytmu symulowanego wyżarzania są następujące (rys. 7) : • Temperatura - początkowa temperatura, Temperatura ∈ (0, ∞), • Beta - współczynnik zmniejszenia temperatury po każdych K krokach, Beta ∈ (0, 1), • K - ilość kroków działania algorytmu, po których należy zmniejszyć Temperaturę, K ∈ N • Liczba kroków w iteracji - liczba kroków algorytmu po których następuje odświeżenie sceny, Kroki ∈ N • Wybór metryki - następuje w panelu wyboru metryki (rys. 5 ). Przycisk Licz pozwala na uruchomienie algorytmu. W polu Wykonana liczba kroków będzie pojawiać się wartość dotychczasowej ilości wykonanych kroków algorytmu. Po każdorazowym wykonaniu zdefiniowanej liczby kroków nastąpi odświeżenie sceny, niebieskie moduły będą określać tymczasową konfigurację, pojawi się również okno (rys. 8) z możliwością rezygnacji z dalszego działania algorytmu. 5 Rysunek 8: Kontynuacja działania algorytmu 5.5 Panel narzędzi Rysunek 9: Panel narzędzi Panel narzędzi posiada dwie funkcje: • Zapis - pozwala na zapisanie danej konfiguracji na scenie, • Wczytaj - pozwana na odczyt ostatnio zapisanej konfiguracji. 6 Szczegóły techniczne Program stworzony został w środowisku Visual Studio 2008 w oparciu o platformę programistyczną .NET. Platforma ta została wybrana w celu wykorzystania interfejsu programistycznego (API) Windows Forms, który pozwala na proste tworzenie interfejsów użytkownika w sytemach Windows. Kod źródłowy napisany został w języku C++/CLI. 6.1 Wykorzystane biblioteki W celu realizacji projektu wykorzystane zostały następujące biblioteki: • System::Windows::Forms - interfejs programistyczny (API) platformy .NET pozwalajcy m.in. na tworzenie okienkowych interfejsów użytkownika. 6.2 Kompilacja projektu Projekt aplikacji może zostać skompilowany w dwóch trybach różniących się obsługą: • “Release” (wersja produkcyjna) - finalna i stabilna wersja aplikacji pozbawiona szczegółowych komunikatów dotyczących przebiegu obliczeń. Jedyny rodzaj powiadomień to komunikaty o wyjątkach programowych pojawiąjących się w sytuacjach szczególnych lub informacje o niepoprawności danych, bilansowaniu zadania i zakończniu obliczeń. • “Debug” (wersja robocza) - oprócz powiadomień występujących w wersji “Release” w oknie konsolowym wyświetlane są komunikaty o rezultacie wczytywania danych oraz szczegółowy przebieg obliczeń. Tryb ten przeznaczony jest tylko do pracy nad rozwojem aplikacji. Na podstawie wyświetlanych komunikatów można przeanalizować tok postępowania algorytmu oraz zbadać poprawność jego implementacji. 6.3 Uruchomienie aplikacji Aplikacja wymaga systemu operacyjnego Windows XP lub wyższego z zainstalowanym pakietem Microsoft Visual C++ 2008 Redistributable. 6 Literatura [1] A. Pamecha, G. Chirikjian. A useful metric for modular robot motion planning. Proc. 1996 IEEE Int. Conf. Robot. Automat., strony 442 – 447, Minneapolis, Minnesota, 1996. 7