• Nie Znaleziono Wyników

Agent a robot

W dokumencie Index of /rozprawy2/10194 (Stron 37-40)

4.2 Podejście agentowe do sterowania i zarządzania grupami robotów

4.2.2 Agent a robot

Zajmując się badaniami nad sterowaniem robotami mobilnymi łatwo dopatrzyć się ana-logii pomiędzy cechami urządzenia mechanicznego, jakim jest robot, a cechami charaktery-zującymi agenta. Warto w tym kontekście przeanalizować poszczególne cechy wynikające z ogólnej definicji Jenningsa:

• Robot mobilny jest osadzony w środowisku – jest to fizyczne środowisko jego dzia-łania.

• Jeżeli jest wyposażony w sensory, to może być w stanie postrzegać stan tego środo-wiska.

• Może mieć możliwość wpływania na stan środowiska, np. poprzez zmianę swojej pozycji.

• Może być mobilny, jeżeli może zmienić lokalizację w środowisku.

• Autonomię robota rozumie się najczęściej jako niezależność urządzenia mechanicz-nego od infrastruktury. Można rozważać autonomię w zakresie zasilania, zdolności percepcji oraz autonomicznego sterowania efektorami. W definicji agenta, autonomię rozumie się jako kontrolę nad własnym stanem i zdolność działania bez bezpośred-niego polecenia.

• Proaktywność agenta jest rozumiana jako zdolność samodzielnego inicjowania dzia-łania. W przypadku robota jest to możliwe dopiero w połączeniu go z odpowiednim programem sterującym.

• Robot może być wyposażony w urządzenia umożliwiające komunikację. Może postrze-gać inne roboty w swoim otoczeniu, i może przejawiać zachowania socjalne, jednak jest to efektem działania oprogramowania sterującego.

Można stwierdzić, że autonomiczny robot mobilny, rozumiany jako urządzenie mecha-niczne umieszczone w świecie rzeczywistym, nie jest agentem. Można też stwierdzić, że jeżeli taki robot zostanie wyposażony w odpowiedni program sterujący, to może być agen-tem w rozumieniu definicji Jenningsa. Program sterujący jest niezbędny do zapewnienia wszystkich powyższych cech, poza osadzeniem w środowisku.

Warto zauważyć, że jeżeli robot w połączeniu z programem sterującym jest agentem, to sam program sterujący również jest agentem. Jego środowiskiem jest robot wraz z oto-czeniem, w którym działa. Przy takim założeniu posiada wszystkie cechy ogólnej definicji. W literaturze przedmiotu pojecie agenta i systemu agentowego jest stosowane bardzo często i bardzo chętnie. Bardzo rzadko natomiast analizuje się kwestie związane z defi-niowaniem agenta, rozróżnianiem typów agentów czy rodzajów interakcji między niemi. Stosuje się często pojęcie agenta upostaciowionego czy też ucieleśnionego (ang. embodied agent) [84]. Bardzo często też pojęcie agenta i robota stosuje się wymiennie [37, 61, 10].

Można zauważyć ogólne przekonanie o tym, że każdy robot mobilny jest agentem, natomiast system agentowy to grupa robotów mobilnych działających we wspólnym śro-dowisku. Takie stwierdzenia są najczęściej prawdziwe, ale z całą pewnością nie wyczerpują możliwości i korzyści płynących z zastosowania paradygmatu agentowego.

Analizę sposobów wykorzystania agentów programowych do tworzenia programów ste-rujących robotami można znaleźć w pracy Profesora S. Ambroszkiewicza [4]. Wskazuje ona na problemy wynikające z bezpośredniego utożsamiania agenta z robotem i proponuje odmienne podejście, które jest oparte na paradygmacie SOA (ang. Service Oriented Ar-chitecture), czyli na architekturze orientowanej na usługi. Sterownik pojedynczego robota ma się składać z grupy agentów, z których każdy jest odpowiedzialny za realizację jednej funkcji robota (usługi) W ramach robota funkcjonują jeszcze inne agenty zajmujące się przekazywaniem informacji o usługach czy realizacją zadań. Takie podejście pozwala na elastyczną rozbudowę funkcjonalności robota poprzez dodawanie nowych agentów. Pro-ponowana architektura przewiduje możliwość konstruowania agentów złożonych z innych agentów, co jest całkowitym odejściem od powszechnie stosowanego powiązania agenta z pojedynczym robotem. Podejście wydaje się bardzo obiecujące, jednak ocena jego własno-ści pozafunkcjonalnych wymaga przeprowadzenia eksperymentów z wykorzystaniem wielu robotów.

Głównym celem stosowania paradygmatu agentowego jest rozwiązanie problemów poja-wiających się w złożonych systemach informatycznych, w których wiele niezależnych zadań ma być wykonywane współbieżnie. Pozwala on na rozwiązanie problemów takich jak:

• Separacja wykonania zadań, osiągana poprzez współbieżne wykonanie kodu poszcze-gólnych agentów.

• Bezpieczeństwo w dostępie do wspólnych zasobów (danych), które jest zapewnione dzięki asynchronicznej komunikacji.

• Skalowalność istniejących rozwiązań dzięki stosowaniu wirtualnej maszyny, w któ-rej uruchamiane są agenty. Moc obliczeniową można zwiększać poprzez przyłączenie do maszyny kolejnych komputerów. Wykonanie algorytmów można optymalizować poprzez przemieszczanie agentów pomiędzy komputerami.

• Możliwość modyfikacji poszczególnych modułów systemu, bez ryzyka zakłócania dzia-łania całego systemu. Poszczególne agenty nie powinny zakładać ciągłego poprawne-go funkcjonowania, a nawet istnienia innych agentów. Dlatepoprawne-go możliwe jest bezpiecz-ne usunięcie pojedynczego agenta i zastąpienie go nową implementacją.

Paradygmat agentowy umożliwia osiągnięcie powyższych właściwości systemu, ale nie gwarantuje ich. Aktualnie stosowane podejście do definiowania systemów agentowych za-rządzających robotami mobilnymi, z całą pewnością nie jest optymalnym sposobem wyko-rzystania właściwości podejścia agentowego. Utożsamienie agenta z robotem i definiowanie systemu agentowego jako grupy współistniejących robotów, tworzy często dodatkowe, po-ważne problemy:

• Skomplikowana modyfikacja funkcjonalności systemu, spowodowana rozproszeniem implementacji poszczególnych zadań systemu pomiędzy programy uruchamiane na różnych komputerach. Zmiana sposobu działania wymaga zatrzymania wszystkich robotów i zmodyfikowania działania wszystkich programów sterujących. Brak maszy-ny wirtualnej, tworzącej wspólne środowisko agentów programowych, uniemożliwia wykonywanie zmian „w biegu”.

• Złożone protokoły synchronizacji działań, które są skutkiem w pełni rozproszonego podejmowania decyzji. Protokoły muszą przewidywać wszystkie sytuacje, jakie mogą zajść podczas wykonania zadania i muszą być modyfikowane gdy przestrzeń sytuacji ulegnie zmianie.

• Kłopotliwa detekcja uszkodzeń oprogramowania i sprzętu, spowodowana bezpośred-nim powiązaniem i uzależnieniem tych dwóch elementów w każdym robocie. Uszko-dzenie mechaniczne robota często powoduje przerwanie wykonania programu steru-jącego. Analogicznie, błąd programu unieruchamia robota. Przyczyna uszkodzenia jest trudna do zdiagnozowania przez pozostałe elementy systemu, ponieważ objawy są takie same

• Wymagania dużej mocy obliczeniowej na urządzeniach mobilnych, spowodowane bra-kiem możliwości przemieszczania wykonywanych programów pomiędzy różnymi kom-puterami.

Można więc stwierdzić, że zalety, jakie mogą płynąć z zastosowania agentów progra-mowych i systemów agentowych nie zostały jeszcze w pełni wykorzystane w dziedzinie projektowania i implementowania systemów zarządzających działaniem robotów mobil-nych.

W dokumencie Index of /rozprawy2/10194 (Stron 37-40)