Marcin Pluciński ZASTOSOWANIE ROBOTÓW MOBILNYCH W SYMULACYJNYM BADANIU CZASU EWAKUACJI Streszczenie Pomieszczenia, w których znajdują się duże grupy ludzi można traktować jako system złożony. Wiele z własności takich systemów, w tym także czas ewakuacji, można określić jedynie na drodze badań symulacyjnych. W artykule przedstawiono wyniki symulacji ruchu dużych grup robotów mobilnych, ewakuujacych się z pomieszczeń. Symulacje umożliwiły oszacowanie czasu ewakuacji oraz określenie miejsc krytycznych, w których występowały zatory w ruchu. Słowa kluczowe: Roboty mobilne, symulacja ruchu, czas ewakuacji 1. Wprowadzenie W rozumieniu potocznym, system złożony to system zbudowany z wielu elementów składowych, pomiędzy którymi zachodzą wzajemne interakcje. Definicja ta jest intuicyjna i często wystarczająca. Z matematycznego punktu widzenia, złożoność systemu może być jednak rozumiana bardzo różnie i w literaturze można spotkać kilkanaście różnych jej definicji [4]. Z punktu widzenia teorii sterowania, definicja systemu złożonego może być podobna do podanej na początku rozdziału, z tym, że przyjmiemy jeszcze założenie, iż część elementów składowych musi być nieliniowa i w systemie występują sprzężenia zwrotne [4]. System jest nieliniowy jeśli nie zachodzi dla niego zasada superpozycji. Możemy się zatem spodziewać, że złożenie kilku nieliniowych elementów składowych jest czymś innym niż tylko prostą sumą obiektów szczególnie w przypadku występowania sprzężeń zwrotnych w systemie. Charakterystyczną i bardzo ciekawą cechą systemów złożonych jest pojawianie się w nich pewnych nowych cech i własności, które nie wynikają z cech i własności elementów składowych. Są to tak zwane cechy emergentne (ang.: emergent properties). Jeśli jako przykład systemu złożonego przyjmiemy mózg ludzki, to najciekawszym przykładem cechy emergentnej będzie inteligencja. Pojęcie cechy emergentnej jest trudne do zdefiniowania. Jest to bowiem cecha, która nie wynika wprost z budowy i zasady działania elementów składowych systemu. Jednocześnie trudno jest często jednoznacznie określić, która własność systemu może być już określona mianem emergentnej, a która jeszcze nie. Ciekawe rozwiązanie tego problemu zaproponowano w [2]. Własność systemu może być uznana za emergentną, jeśli optymalnym sposobem jej określenia jest symulacja. Jeśli jako określimy nakład obliczeń potrzebny do symulacji działania systemu w celu określenia jego pewnej cechy, a przez nakład obliczeń potrzebny do wykrycia cechy na podstawie pełnej wiedzy o budowie i sposobie działania systemu, to cecha jest emergentna jeśli: (1)
Przez rozumiemy rozmiar systemu, od którego zależy między innymi kierunek nierówności (1). Pewne własności mogą nie być emergentne dla małych wartości, a stawać się nimi dla wartości dużych. Przy rosnącej wymiarowości systemu, cechy mogą podlegać przemianie fazowej, po przejściu której, doskonała znajomość systemu nie jest skuteczniejsza niż symulacja działania [2]. System, w skład którego wchodzi wiele współpracujących ze sobą robotów mobilnych, jest dobrym przykładem systemu złożonego. Jest zbudowany z wielu nieliniowych elementów składowych, interakcje między robotami tworzą sprzężenia zwrotne oraz można dostrzec w nim cechy emergentne. Jedną z takich cech jest czas ewakuacji robotów z zamkniętych pomieszczeń. Dla niewielkich wymiarowości systemu (mała liczba robotów), można go łatwo (niewielkim nakładem obliczeń) wyznaczyć, znając mapę pomieszczenia i średnią prędkość ruchu robota. Dla dużych wymiarowości systemu jedynym skutecznym sposobem wyznaczenia tego czasu jest symulacja. Przyjmując określony model zachowań robotów, można z ich pomocą symulować zachowanie dużych grup ludzi w warunkach zagrożenia. Tym samym, za pomocą badań symulacyjnych można oszacować czas ewakuacji ludzi z pomieszczeń. 2. Model systemu Na pełny model systemu składa się: model robota, model środowiska i model zachowania robotów podczas ewakuacji. 2.1 Model robota W symulacjach wykorzystany zostanie model robota funkcjonalnie zbliżony do modelu robota Khepera [6, 7]. W porównaniu z niewielkim oryginałem, robot będzie miał średnicę 0.7 [m]. Średnia, nominalna prędkość ruchu w warunkach bezkolizyjnych, przyjęta zostanie jako 0.5 [m/s], co odpowiada prędkości ruchu człowieka w nieznanym otoczeniu przy lekko ograniczonej widoczności. Model robota wyposażony będzie w 8 czujników podczerwieni, umożliwiających wykrycie przeszkód z odległości około 1 [m] 6 rozmieszczonych z przodu i po bokach oraz 2 z tyłu. 2.2 Model środowiska W symulacjach przedstawionych w artykule, wykorzystano 2 modele środowiska. Pierwszy pozbawiony jest przeszkód (rys. 1). Jest to model pomieszczenia o wymiarach 30 na 15 [m]. W modelu tym wyznaczano czas ewakuacji w zależności od ilości robotów oraz ilości dróg ewakuacji (wyjść z pomieszczenia). Rysunek 1: Środowisko nr 1 z trzema różnymi wariantami dróg ewakuacji
Drugi model środowiska to przykład pomieszczeń biurowych (rys. 2). W modelu tym znajduje się jedno wyjście. Posiada on wymiary 37.8 na 65.8 [m], 9 pomieszczeń i zbadano dla niego czas ewakuacji w zależności od ilości robotów. Rysunek 2: Środowisko nr 2 2.3 Model zachowania robotów Roboty rozmieszczane są w środowiskach w losowy sposób (położenie i kierunek). W pierwszym kroku symulacji, dla każdego z nich wyznaczany jest tor ruchu od położenia początkowego do najbliżej znajdującego się wyjścia. W kolejnych krokach roboty obracają się i rozpoczynają swój ruch do wyjścia z prędkością nominalną. W przypadku wykrycia w bliskim sąsiedztwie przeszkody (inny robot lub ściana) ruch robota odbywa się zgodnie z algorytmem przedstawionym na rys. 3. Algorytm taki jest realizowany dopóki dalsza droga nie stanie się bezkolizyjna wtedy robot znów zaczyna się poruszać w kierunku wyjścia z prędkością nominalną. Z algorytmu wynika, że po wykryciu przeszkody robot przede wszystkim zwalnia i stara się lekko obrócić w stronę do niej przeciwną. czujnik_max = znajdz_czujnik_o_max_wartosci_sygnalu(); switch (czujnik_max) { case cz_lewy: if (wartosc > BLISKO) { silnik_lewy = 1; silnik_prawy = 0; } else { silnik_lewy = 2; silnik_prawy = 1; } case cz_lewy_skosny: if (wartosc > BLISKO) { silnik_lewy = 0; silnik_prawy = -1; } else { silnik_lewy = 1; silnik_prawy = 0; } case cz_lewy_przedni: if (wartosc > BLISKO) { silnik_lewy = 0; silnik_prawy = -1; } else { silnik_lewy = 1; silnik_prawy = 0; } case cz_prawy_przedni: if (wartosc > BLISKO) { silnik_lewy = -1; silnik_prawy = 0; } else { silnik_lewy = 0; silnik_prawy = 1; } case cz_prawy_skosny: if (wartosc > BLISKO) { silnik_lewy = -1; silnik_prawy = 0; } else { silnik_lewy = 0; silnik_prawy = 1; } case prawy: if (wartosc > BLISKO) { silnik_lewy = 0; silnik_prawy = 1; } else { silnik_lewy = 1; silnik_prawy = 2; } } Rysunek 3: Algorytm ruchu robota w sąsiedztwie przeszkody
' $ &% Przyjęty algorytm ruchu w sytuacji kolizyjnej (odpowiadający zachowaniu człowieka w tłumie) oraz nominalna prędkość ruchu robota są czynnikami, mającymi krytyczny wpływ na przebieg symulacji i tym samym na wyznaczany czas ewakuacji. 3. Wyniki badań symulacyjnych Wyniki badań czasu ewakuacji w zależności od ilości robotów w pomieszczeniu i ilości wyjść w środowisku nr 1 przedstawia rys. 4. Na rys. 5 przedstawiono przykładowy przebieg ewakuacji początkowe rozmieszczenie robotów i ich położenie w trakcie symulacji.. % -,+ * ( )$ " #$! / 0 1 2 3 4 5 6 7 0 1 2 3 4 5 8 9 0 1 2 3 4 5 8 Rysunek 4: Czas ewakuacji w zależności od ilości robotów w pomieszczeniu i ilości wyjść środowisko nr 1 Rysunek 5: Przykładowy przebieg ewakuacji środowisko nr 1 Dla małych ilości robotów liczba wzajemnych kolizji jest bardzo niewielka i czas ewakuacji praktycznie równy jest czasowi ruchu robota położonego początkowo najdalej od wyjścia. Wraz ze wzrostem ilości robotów czas ewakuacji szybko rośnie (rys. 4). Roboty w tłumie poruszają się wolniej, usiłują się omijać, przeszkadzają sobie wzajemnie i blokują
S P RQ się w wąskich przejściach. Chociaż przebieg wykresu zależy od początkowego rozmieszczenia robotów (które jest losowe), bardzo podobna tendencja rosnąca była obserwowana w wielokrotnie przeprowadzanych symulacjach. Na rys. 4 można też zauważyć jak duży wpływ na czas ewakuacji ma ilość wyjść z pomieszczenia. Czas ten, dla pomieszczenia z trzema wyjściami, był od 2 do 3 razy krótszy od czasu wyznaczonego dla pomieszczenia z jednym wyjściem. Wyniki badań czasu ewakuacji w zależności od ilości robotów w środowisku nr 2 przedstawia rys. 6. Na rys. 7 przedstawiono kolejne fazy ewakuacji.? < < Z Q YXW V T UP N OP > = ; > ; < > > ; > < < : = ; : ; < : < > <? < @ < ; < A < = < B < C < : < < : : < : > < :? < : @ < : ; < D E F G H I F J F K L M Rysunek 6: Czas ewakuacji w zależności od ilości robotów w pomieszczeniu środowisko nr 2 Obserwacja ruchu robotów w trakcie symulacji umożliwia łatwe wykrycie miejsc w środowiskach, najbardziej narażonych na występowanie zatorów w ruchu (rys. 5 i rys. 7), co jest dodatkową zaletą symulatora. Dla środowiska nr 2 takimi miejscami są wyjścia z dużych pomieszczeń, znajdujących się po prawej stronie korytarza (rys. 7) oraz główne wyjście z budynku. 4. Podsumowanie Opracowany symulator umożliwia szybkie szacowanie czasu ewakuacji z pomieszczeń, które w praktyce możliwe byłoby tylko na drodze rzeczywistych eksperymentów z udziałem ludzi. Można w nim testować różne algorytmy zachowań robotów w sytuacjach kolizyjnych oraz badać dowolnie skomplikowane środowiska z dowolnie dużą ilością robotów. Planowanym rozszerzeniem programu, będzie możliwość symulacji ruchu w pomieszczeniach wielopiętrowych takich jak budynki. Literatura 1. Cariani P.: Emergence and artificial life, Artificial Life II, pp. 775 797, ed.: C. Langton, (1992)
Rysunek 7: Kolejne fazy ewakuacji dla środowiska nr 2 2. Darley V.: Emergent Phenomena and Complexity, Artificial Life IV, Proceedings of the Fourth International Workshop on the Synthesis and Simulation of Living Systems, pp. 411 416, eds.: R. Brooks and P. Maes, MIT Press, (1994) 3. Dulęba I.: Metody i algorytmy planowania ruchu robotów mobilnych i manipulacyjnych, Akademicka Oficyna Wydawnicza EXIT, Warszawa (2001) 4. Frank P.M.: The role of unstable nonlinear feedback in complex systems, Proceedings of the Fifth International Symposium on Methods and Models in Automation and Robotics, pp. 345 357, Międzyzdroje, Poland, (1998) 5. Giergiel M., Hendzel Z., Żylski W.: Modelowanie i sterowanie mobilnych robotów kołowych, Wydawnictwo Naukowe PWN, Warszawa (2002) 6. Khepera[ user manual, K-Team S.A., Switzerland (2000) 7. Pluciński M., Korzeń M.: Zastosowanie krzywych typu Peano do generowania trajektorii ruchu robota Roczniki Informatyki Stosowanej Wydziału Informatyki Politechniki Szczecińskiej, 9, Szczecin, Poland, (2005)