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