MODELOWANIE INŻYNIERSKIE 2018 nr 68, ISSN 1896-771X SYMULATOR ROBOTA MOBILNEGO UWZGLĘDNIAJĄCY USZKODZENIA Paweł Stęczniewski 1a, Piotr Przystałka 1b 1 Instytut Podstaw Konstrukcji Maszyn, Politechnika Śląska a p.steczniewski@gmail.com, b piotr.przystalka@polsl.pl Streszczenie Przedmiotem pracy badawczej jest symulator robota mobilnego Explorer 6WD, który uwzględnia stan pełnej zdatności oraz stany z uszkodzeniami. Omówiono elementy składowe symulatora robota oraz przedstawiono modele jego otoczenia, które zrealizowane są w środowisku V-REP. W ramach prac badawczych zaprojektowano i utworzono sieć ROS, która umożliwia integrację symulatora z modułami zewnętrznymi zrealizowanymi z wykorzystaniem środowiska MATLAB /Simulink. W tej części pracy objaśniono sposób komunikacji pomiędzy programami oraz omówiono strukturę i zawartość poszczególnych wiadomości. Scharakteryzowano modele uszkodzeń oraz przedstawiono interfejs użytkownika. W artykule zawarto również opis wybranych wyników badań weryfikacyjnych, które potwierdzają dużą przydatność opracowanego rozwiązania. Słowa kluczowe: roboty mobilne, modelowanie i symulacja uszkodzeń, MATLAB, Simulink, V-REP, ROS MOBILE ROBOT SIMULTATOR WITH FAULT MODELS Summary The focus of the paper is on the simulator of the Explorer 6WD mobile robot taking into account faultless and faulty conditions. There are discussed the components of the mobile robot simulator and environment models which are implemented in the V-REP software. As a part of the research work, a ROS network has been designed and created, which enables integration of the simulator with external modules realized using the MATLAB / Simulink environment. This part of the paper explains how to communicate between ROS nodes and discusses the structure and content of ROS messages. In the paper, fault models are characterized and a user interface is presented as well. This study also contains a description of selected results of verification tests that confirm the effectiveness of the developed approach. Keywords: mobile robots, modeling and simulation of faults, MATLAB, Simulink, V-REP, ROS 1. WSTĘP Robotyka mobilna to multidyscyplinarna dziedzina nauki i techniki, która obecnie bardzo dynamicznie jest rozwijana, co zauważalne jest w coraz nowszych zastosowaniach tego typu mobilnych urządzeń mechatronicznych [1,6]. Za pomocą robotów mobilnych można nie tylko eksplorować teren trudno dostępny dla człowieka, lecz również rozbrajać ładunki wybuchowe, poszukiwać i transportować rannych, monitorować strzeżony lub skażony teren oraz można realizować wiele innych operacji (np. bardzo nużących), w których człowiek jest mniej efektywny od maszyny [3]. Tak szybki postęp w tej dziedzinie wiąże się z potrzebą rozwoju systemów, które pozwolą robotom mobilnym stać się bardziej autonomicznymi [4,5]. Wiąże się to z koniecznością opracowywania narzędzi i metodyk ich zastosowania, które umożliwią weryfikację koncepcji rozwiązań konstrukcyjnych robotów mobilnych oraz ich systemów autonomicznego/semiautonomicznego sterowania już na wczesnym etapie procesu projektowo-konstrukcyjnego [2,8]. Szczególnego znaczenia w tym kontekście nabierają symulatory robotów mobilnych. Pozwalają one na weryfikację nowej koncepcji konstrukcji robota mobilnego oraz algorytmów sterowania w różnych warunkach pracy już na wczesnym etapie procesu projektowo-konstrukcyjnego. Istnieje wiele różnych środowisk symulacyjnych, które znajdują zastosowanie w robotyce mobilnej. ajważniejsze z nich to: DynaMechs, Gazebo, Microsoft Robotics
SYMULATOR ROBOTA MOBILNEGO UWZGLĘDNIAJĄCY USZKODZENIA Developer Studio, RoBoss, V-REP, Webots, MATLAB /Simulink, LabVIEW. Biorąc pod uwagę wyniki przeglądu literatury w zakresie oprogramowania do symulacji układów mobilnych, zdecydowano się połączyć dwa środowiska: V-REP firmy Coppelia Robotics GmbH oraz MATLAB /Simulink firmy MathWorks. Oprogramowanie V-REP pełni rolę środowiska symulacyjnego, w którym realizowana jest wizualizacja platformy oraz otoczenia z odwzorowaniem kinematyki i dynamiki oddziaływań fizycznych pomiędzy obiektami sceny. W programie V-REP został zaimplementowany model robota mobilnego Explorer 6WD uwzględniający prawa fizyki (również rozpatrywanych uszkodzeń). W tym celu zastosowano środowisko symulacyjne, które uwzględnia kinematykę i dynamikę symulowanego obiektu (bezwładności elementów robota, reakcje, kontakt z przeszkodami, opory ruchu itd.). Poprzez wpływ na te własności możliwe jest symulowanie różnych uszkodzeń (np. zmiana więzów w modelu układu przeniesienia momentu napędowego). Opracowano również interfejs użytkownika do zarządzania symulacją z wykorzystaniem środowiska MATLAB i Simulink oraz platformy ROS (ang. Robot Operating System). Taki sposób komunikacji z symulatorem umożliwia wprowadzanie uszkodzeń podczas symulacji, sterowanie ręczne lub autonomiczne (również sterowanie tolerujące uszkodzenia) oraz odczyt najważniejszych zmiennych procesowych symulacji takich jak aktualna pozycja i orientacja platformy mobilnej oraz jej odległości od przeszkód. W dalszej części pracy przedstawiono szczegóły zaproponowanego rozwiązania oraz omówiono wstępne wyniki badań, jakie przeprowadzono z wykorzystaniem powstałego środowiska. Rys. 1. Robot mobilny Explorer 6WD [7] 2.1 MODEL CAD ROBOTA W ramach badań niezbędnym krokiem było odtworzenie modelu CAD w pełni oddającego jego budowę (rys. 2). Elementem bazowym modelu jest płyta nadwozia. Na niej zamocowana jest konstrukcja obudowy robota wykonana z blachy perforowanej wraz z dodatkowymi elementami. Wykonano również modele silników DC z obudowami oraz modele felg z oponami. Dodano różnego rodzaju elementy wykończeniowe, takie jak bitmapy, wiązki kabli elektrycznych, sprężyny zawieszenia oraz modele urządzeń, w jakie robot jest wyposażony. Szczególną uwagę poświęcono zawieszeniu robota. Utworzono odpowiednie wiązania pomiędzy elementami umożliwiające ruch całego układu. 2. SYMULATOR ROBOTA EXPLORER 6WD Podstawowym zadaniem opracowanego symulatora jest symulacja pracy robota mobilnego w warunkach pełnej zdatności oraz z uwzględnieniem uszkodzeń. W jego skład wchodzą elementy takie jak: obiekt badań, modele CAD, V-REP, MATLAB, modele uszkodzeń oraz struktura sieci ROS i interfejs użytkownika. Symulator dedykowany jest dla robota Explorer 6WD (rys. 1). Jest to robot mobilny firmy Trobot przeznaczony do celów dydaktycznych [7]. Szczególną uwagę należy zwrócić na jego układ zawieszenia, który wyposażony jest w sześć niezależnie pracujących zespołów napędowych. Dzięki niemu robot pokonywać może rozmaite przeszkody. Robot wyposażony jest również w różnego rodzaju oprzyrządowanie. Do najważniejszych elementów w kontekście prezentowanej pracy należą: laserowy skaner odległości firmy Hokuyo, sonar ultradźwiękowy firmy Wobit, czujniki odległości firmy Sharp, sensor orientacji firmy ChRobotics oraz kamera wideo firmy Sony. Rys. 2. Utworzony model CAD robota Explorer 6WD 2.2 MODEL V-REP ROBOTA Jednym z głównych elementów wchodzących w skład symulatora jest model V-REP. W skład modelu V-REP wchodzą: model CAD, uproszczony model dynamiczny, model wiązań, modele czujników, skrypt symulacyjny oraz modele środowiska pracy robota. W przypadku robota Explorer 6WD modelem bazowym jest grupa elementów, składająca się na obudowę robota, natomiast modelami podrzędnymi są grupy reprezentujące koła oraz obudowy silników. Zastosowano również dedykowane 112
Paweł Stęczniewski, Piotr Przystałka wiązania w miejscach, w których występuje ruch elementów względem siebie. W przypadku robota Explorer 6WD są to mocowania silników oraz mocowania kół napędowych. Na potrzeby symulatora wykonano uproszczony model dynamiczny w pełni oddający kształt modelu CAD. Elementom, które mają za zadanie czynny udział w symulacji, nadano własności dynamiczne. W omawianych własnościach brane są pod uwagę rożnego rodzaju parametry opisujące dynamikę elementu, m. in. masa elementu, macierz momentów bezwładności oraz pozycja środka masy. Do głównej części modelu robota dodano modele czujników zbliżeniowych. W opcjach poszczególnych sensorów określono ich typ, rodzaj pola detekcji oraz pozostałe właściwości. Właściwości te przyjęto zgodnie z parametrami katalogowymi czujników, jakie posiada robot Explorer. Dodano również model czujnika wizyjnego. Ma on za zadanie symulowanie pracy kamery, w jaką wyposażony jest robot. Kolejnym modelem czujnika jest model skanera Hokuyo. Do modelu czujnika dołączony jest skrypt symulacyjny, odpowiedzialny za jego działanie. Do ostatniej grupy użytych modeli sensorów należą model żyroskopu oraz akcelerometru. Każdy z nich ma przypisany własny skrypt symulacyjny, obsługujący ich działanie oraz jeden wspólny, umożliwiający komunikacje z siecią ROS. W modelu V-REP oprócz skryptów, które odpowiedzialne są za kontrolę sensorów, utworzono skrypt skojarzony z modelem bazowym. 2.3 MODEL V-REP OTOCZENIA Do elementów składowych modelu V-REP należą również modele środowiska pracy robota. W symulatorze wyszczególnić można trzy różne modele sceny. Pierwszy model utworzony został na potrzeby prezentacji przebiegu testów weryfikacyjnych. Drugi model utworzony został z myślą o otoczeniu typu indoor. Zawiera on trzy pomieszczenia, w których umiejscowione zostały zróżnicowane elementy otoczenia. Elementy te posiadają własności dynamiczne i mogą wejść w interakcje z robotem. Trzeci model przedstawia charakterystyczne wejście do Wydziału Mechanicznego Technologicznego Politechniki Śląskiej wraz z pobliskim terenem (rys. 3). Miejsce to wybrano dlatego, że występują w nim naturalne przeszkody oraz ponieważ znane jest ono docelowej grupie użytkowników. Rys. 3. Wizualizacja modelu środowiska pracy typu outdoor 2.4 MODELE USZKODZEŃ Zbiór rozważanych uszkodzeń wybrano na podstawie przeprowadzonej klasyfikacji uszkodzeń z wykorzystaniem metody analizy rodzajów i skutków (ang. FMEA - failure mode and effects analysis). Biorąc pod uwagę uzyskane wyniki, wybrano najgroźniejsze w skutkach i najczęstsze uszkodzenia dla tego obiektu. Wyszczególnić można cztery modele uszkodzeń: 1. Utrata koła Ze względu na wadliwą konstrukcję połączeń wałów silników z kołami robot narażony jest na utratę jednego bądź wielu kół. Efekt urwanego koła otrzymano poprzez zerwanie wiązania odpowiadającego za umiejscowienie geometrii koła z geometrią robota. Za uruchomienie uszkodzenia odpowiedzialny jest dedykowany blok w modelu Simulink. Dzięki niemu użytkownik może zadać uszkodzenie jednego koła lub kilku kół. Wybór parametrów uszkodzenia tego typu przesyłany jest za pomocą sieci ROS do programu V-REP. 2. Błąd komunikacji Jest to jedno z najbardziej powszechnych uszkodzeń robotów mobilnych. W niniejszej pracy błąd komunikacji zrealizowano w trzech wariantach: całkowite zerwanie komunikacji, gdy praca robota zostaje przerwana, częściowa utrata komunikacji, kiedy wykonywane jest ostatnie polecenie, częściowa utrata komunikacji, kiedy polecenia wykonywane są z opóźnieniem. Typ uszkodzenia wybierany jest za pomocą dedykowanego bloku Simulink. Domyślnie polecenie uruchamiane jest przez blok po kilku sekundach od wybrania uszkodzenia, aby użytkownik miał czas na zasterowanie robotem. W celu całkowitego zerwania połączenia wiadomość z sygnałem sterującym zastępowana jest przez pustą wiadomość. Częściowa utrata komunikacji realizowana jest za pomocą bloku memory, w którym pamiętane jest ostatnie polecenie. Drugi sposób częściowej utraty komunikacji, który polega na wykonywaniu poleceń z opóźnieniem, zrealizowano poprzez zastosowanie bloków delay. 113
SYMULATOR ROBOTA MOBILNEGO UWZGLĘDNIAJĄCY USZKODZENIA 3. Uszkodzenie systemu wizyjnego Uszkodzenie to wywoływane jest z modelu Simulink. Uszkodzenie polega na zasłonięciu obiektywu sensora wizyjnego elementem zewnętrznym. W ten sposób uzyskano efekt porównywalny do uszkodzenia rzeczywistego systemu wizyjnego. W modelu V-REP umieszczono sześć takich elementów. Dzięki temu regulowany jest zakres uszkodzenia. Elementy zewnętrzne zamodelowane są w ten sposób, aby widoczne były tylko z poziomu sensora wizyjnego. 4. Uszkodzenie czujników Uszkodzeniu podlegają czujniki zbliżeniowe Sharp oraz Wobit. Sposób realizacji uszkodzenia opiera się na modyfikacji danych otrzymanych z programu V-REP. Uszkodzenie czujników realizowane może być w czterech wariantach: czujnik nie wykrywa przeszkód, czujnik wskazuje stałą wartość, czujnik wskazuje przeskalowaną wartość pomiaru o stały mnożnik, odczyt czujnika jest losowy. Użytkownik może wybrać zakres realizowanego uszkodzenia za pomocą przeznaczowanego mu bloku Simulink. Ustawić w nim można liczbę czujników, jakie ulec mają uszkodzeniu. Uszkodzony czujnik oraz rodzaj zadanego uszkodzenia generowane są losowo. 2.5 SKRYPT MATLAB I MODEL SIMULINK Kolejnymi elementami wchodzącymi w skład symulatora są skrypt MATLAB oraz model Simulink. W skrypcie zawarte są funkcje konfigurujące połączenie z siecią ROS oraz funkcje obsługujące działanie modelu kamery i modelu skanera Hokuyo. Natomiast model Simulink odpowiedzialny jest za sterowanie modelem robota oraz obsługę modeli czujników w środowisku V-REP. Model wykonano, posługując się elementami wchodzącymi w skład podstawowej biblioteki programu oraz pakietu dodatkowego - Robotics System Toolbox. Na rys. 4 przedstawiono widok główny modelu Simulink. Za pomocą modelu zadać można prędkość obrotową, jaką osiągnąć mają grupy silników po prawej i lewej stronie robota. W modelu wyszczególnić można trzy metody sterowania: za pomocą Simulink, za pomocą sieci ROS, za pomocą kontrolera gier video. Pierwsza metoda umożliwia sterowanie robotem z poziomu modelu Simulink i polega na zmianie wartości na dwóch suwakach widocznych na rys 4. Druga metoda umożliwia sterowanie robotem za pomocą narzędzia Turtlesim, udostępnionego za pośrednictwem platformy ROS. Ponadto w pracy wykorzystano dwa kontrolery. Pierwszym jest Sony DualSchock4v1, dedykowany dla konsoli PlayStation 4, natomiast drugi to Rumblepad2 firmy Logitech. Innym zadaniem modelu Simulink jest obsługa modeli czujników zbliżeniowych oraz modelu IMU. Dane pochodzące z modeli czujników zbliżeniowych Sharp oraz Wobit zawarte są w jednej wiadomości. Wiadomość trafia do bloku Sensors, którego celem jest przedstawienie graficznej reprezentacji sygnałów. Otrzymana jest ona dzięki wykonaniu działań arytmetycznych oraz funkcji trygonometrycznych. Model czujnika IMU obsługiwany jest przez osobny blok. Na wyjściu bloku otrzymywane są sygnały pochodzące z modeli akcelerometru oraz żyroskopu. Trafiają one do bloku, który odpowiada za ich reprezentację graficzną. Rys. 4. Schemat główny opracowanego modelu Simulink 114
Paweł Stęczniewski, Piotr Przystałka 3. STRUKTURA SIECI ROS Zastosowanie platformy ROS umożliwiło połączenie środowisk V-REP oraz MATLAB /Simulink. W celu poprawy wydajności oba programy zostały zainstalowane na dwóch różnych komputerach. Zaprojektowaną strukturę sieci ROS pokazano na rys. 5. Węzeł matlab\_global\_node powstaje jako wynik inicjalizacji połączenia programu MATLAB z platformą ROS. Węzeł ten nie posiada subskrybentów ani sam nic nie publikuje. Poza nim istnieją jeszcze dwa węzły powiązane z programem MATLAB. Pierwszy o nazwie MATLAB utworzony został na potrzeby subskrybowania dwóch tematów /vrep/scan i /image wywołanych przez skrypt MATLAB. Temat /vrep/scan zawiera wiadomość z danymi pochodzącymi z modelu skanera Hokuyo, natomiast /image wiadomość z danymi opisującymi obraz przechwycony z modelu sensora wizyjnego. Publikowane są one przez węzeł vrep wraz z tematami /vrep/imu oraz /sensors. Analogicznie do swojej nazwy temat vrep/imu zawiera wiadomości z danymi pochodzącymi z modelu czujnika IMU. W celu uproszczenia struktury ROS wartości z modeli czujników zbliżeniowych zostały zawarte w jednej tablicy, która publikowana jest za pośrednictwem wiadomości zamieszczonej na temacie /sensors. Drugim węzłem powiązanym z programem MATLAB jest SIMULINK\_Explorer... Utworzony on został przez model Simulink. Węzeł ten jest subskrybentem czterech tematów: omówionych wcześniej /sensors i /vrep/imu oraz /joy i /turtle1/cmd_vel. Do obsługi jednej z metod sterowania użyto narzędzia Turtlesim, które udostępnione jest wraz z platformę ROS. Informacje o naciśniętym klawiszu publikowane są za jego pośrednictwem na temat /turtle1/cmd_vel. Platforma ROS udostępniania również sterownik Joy. Tworzy on wiadomości zawierające dane pochodzące z dowolnego kontrolera obsługiwanego przez system Linux. Analogicznie do nazwy sterownika, wiadomości publikowane są pod tematem /joy. Węzeł utworzony przez model Simulink jest również odpowiedzialny za publikowanie wiadomości o rożnym typie. Pod tematami /rightmotor i /leftmotor publikowane są wiadomości odpowiedzialne za zadanie prędkości obrotowej, natomiast pod tematem /faults odpowiedzialne za wywołanie modeli uszkodzeń. Wiadomości te subskrybowane są przez węzeł vrep. Rys. 5. Schemat główny sieci ROS 4. INTERFEJS UŻYTKOWNIKA Kolejnym elementem wchodzącym w skład symulatora jest interfejs użytkownika. Jego zadaniem jest zapewnienie interakcji użytkownika z symulatorem. W niniejszej pracy interfejs utworzony został zarówno w programie MATLAB jak i w programie V-REP. W skład interfejsu wchodzą bloki użyte w modelu Simulink : Faults oraz Sensors oraz elementy dashboard (suwaki, pokrętło switch). W modelu V-REP interfejs użytkowania opiera się na wtyczce CustomUI. Na rys. 6 przedstawiono widok okna interfejsu użytkownika w programie V-REP. Okno to zawiera menu wyboru uszkodzeń oraz ważniejsze informacje na temat zadanych uszkodzeń. Rys. 6. Widok okna interfejsu użytkownika w programie V-REP 5. WYBRANE WYNIKI BADAŃ W ramach pracy wykonano badania weryfikacyjne, składające się z testów jednostkowych oraz analizy wybranych scenariuszy działania modelu robota. Wstępne eksperymenty polegały na przetestowaniu elementarnych funkcji realizowanych przez model symulacyjny robota. W celu wykonania testów utworzono dodatkowy model Simulink. Model ten zawierał elementy umożliwiające 115
SYMULATOR ROBOTA MOBILNEGO UWZGLĘDNIAJĄCY USZKODZENIA komunikację oraz wymianę danych z rzeczywistym obiektem badań. 1. Test prędkości Do przeprowadzania testów prędkości przygotowano scenę w programie V-REP. Umieszczono w niej dwie bramki, które wyposażone były w czujniki zbliżeniowe. Przejazd robotem przez pierwszą bramkę uruchamiał pomiar czasu, natomiast przejazd przez drugą bramkę pomiar zatrzymywał. Bramki te ustawiono w odległości 3 metrów. W celu przeprowadzenia testów wykonano przejazd pomiędzy nimi. Identyczną czynność wykonano rzeczywistym robotem. Wyniki pomiarów były następujące: robot rzeczywisty: 3.96s, model symulacyjny: 3.95s Rys. 8. Układ współrzędnych robota oraz modelu symulacyjnego 2. Testy zawieszenia Do realizacji testu wykorzystano czujnik IMU, wskazujący przechył oraz przyspieszenia robota. Dzięki porównaniu odczytów z czujnika rzeczywistego oraz modelu czujnika użytego w programie V-REP porównać można pracę zawieszenia obiektu rzeczywistego oraz modelu symulacyjnego robota. Po skalibrowaniu obu czujników przeprowadzono badania weryfikacyjne. Do ich realizacji użyto kilku przeszkód, których geometrie odtworzono również w symulatorze. Opracowany model Simulink umożliwiał prowadzenie badań równolegle, tzn. podczas przejazdu robotem rzeczywistym wykonywany był zbliżony przejazd w środowisku symulacyjnym. Test polegał na wjeździe robota na drewnianą platformę (rys. 7). Na rys. 8 pokazano układ współrzędnych rzeczywistego robota (ten sam układ zastosowano dla modelu symulacyjnego). Rys. 7. Test modelu zawieszenia Rys. 9. Przebiegi czasowe sygnałów zarejestrowane podczas testu zawieszenia (rzeczywiste Explorer, wirtualne V-REP) Dane pochodzące z wirtualnego i rzeczywistego czujnika IMU zostały podzielone na sygnały gromadzone za pomocą akcelerometru oraz żyroskopu, a następnie zestawiono je na wykresach (rys. 9). Analizując wykresy z rys. 9 stwierdzono, iż pod względem jakościowym są do siebie zbliżone. Podczas badań zaobserwować można było, iż zawieszenie modelu symulacyjnego pracuje podobnie jak 116
Paweł Stęczniewski, Piotr Przystałka to w obiekcie rzeczywistym. Zauważono również, że po włączeniu symulacji model wprawiany jest w drgania o niedużej amplitudzie. Jest to związane z błędami numerycznymi oprogramowania symulacyjnego. W trakcie symulacji, gdy na model działa siła imitująca przyciąganie ziemskie, działają również siły wiązania imitujące pracę zawieszenia. Dążą one do utrzymania zawieszenia w pozycji równowagi. Działanie przeciwstawne tych dwóch sił powodować może drgania modelu układu zawieszenia. Drugim etapem badań weryfikacyjnych było przeprowadzenie analizy działania modelu robota z uwzględnieniem uszkodzeń. Przeprowadzono następujące testy: 1. Uszkodzenie koła/kół Badanie to polegało na wykonaniu przejazdu modelem robota i zadaniu uszkodzenia w postaci zerwania wiązania pomiędzy kołem a bazą robota (platformą montażową). Analizując otrzymane wyniki, można stwierdzić, iż wprowadzenie uszkodzenia wpływa na motorykę robota. W celu oderwania koła należy zadziałać na nie siłą o określonej amplitudzie. Na rys. 10 pokazano przykład, gdy robot upada z niewielkiej wysokości. W przypadku, gdy koło po wprowadzeniu uszkodzenia pozostaje na swoim miejscu, zaobserwować można symptomy wyłączenia go z symulacji dynamicznej - koło nie obraca się oraz stawia opór. Zachowanie to jest następstwem usunięcia wiązania i występuje, dopóki koło nie zostanie całkowicie oderwane. uszkodzenia na otrzymany obraz. Badanie to wykazało, iż uszkodzenie zadawane jest poprawnie, a efekty widoczne są w obu programach. Rys. 11. Symulacja uszkodzenia sensora wizyjnego 3. Uszkodzenie czujników zbliżeniowych Na potrzeby tego testu również utworzono dedykowaną scenę (rys. 12). Umieszczono w niej model robota oraz cztery, wykrywalne przez czujniki, statyczne obiekty. Podczas symulacji model robota pozostawał nieruchomy. Uszkodzenie czujników zadawane i rejestrowane było za pośrednictwem programu MATLAB. Dzięki jednoczesnej obserwacji obu programów stwierdzono, iż uszkodzenia objawiają się w sposób zgodny z założeniami. Rys. 12. Symulacja uszkodzenia czujników zbliżeniowych 4. Uszkodzenie systemu komunikacji Rys. 10. Symulacja oderwania koła przy upadku z niewielkiej wysokości 2. Uszkodzenie sensora wizyjnego Na potrzeby tego testu utworzono scenę (rys. 11), w której umieszczony został dynamiczny model człowieka. Po włączeniu symulacji model człowieka podążał wyznaczoną ścieżką. W pewnej odległości od modelu człowieka ustawiony został model robota. Dzięki temu w łatwy sposób zaobserwować można zmiany obrazu pobranego za pomocą modelu czujnika wizyjnego. W trakcie symulacji zadawano uszkodzenie kamery. Poprzez obserwację okna odpowiedzialnego za wyświetlanie obrazu z czujnika w programie V-REP oraz okna w programie MATLAB, zaobserwować można wpływ W przypadku tego testu wykorzystano scenę, która zawierała model robota oraz zamodelowaną ścieżkę jego ruchu. Na potrzeby testu przeprowadzono cztery symulacje, w których wykonano przejazdy robotem po wytyczonej ścieżce (rys. 13). Analizując powstałe wizualizacje ścieżki pokonanej trasy, wskazać można typ zadanego uszkodzenia. W pierwszej symulacji (ścieżka robota pokazana w lewej górnej części rysunku) sterowano robotem dla stanu pełnej zdatności tak, aby otrzymana wizualizacja przebytej trasy była wzorcem dla pozostałych symulacji. Kolejne symulacje odnosiły się do trzech typów uszkodzeń systemu komunikacji. Drugi przypadek (ścieżka robota pokazana w prawej górnej części rysunku) pokazuje, jak zachowywał się robot dla stanu z częściową utratą komunikacji, kiedy polecenia wykonywane są z opóźnieniem. Trzeci przypadek (ścieżka robota pokazana w lewej dolnej części rysunku) obrazuje, jak zachowuje się robot, kiedy wykonywane jest ostatnie 117
SYMULATOR ROBOTA MOBILNEGO UWZGLĘDNIAJĄCY USZKODZENIA polecenie w wyniku częściowej utraty komunikacji. Ostatni przypadek dotyczy całkowitego braku komunikacji gdy praca robota zostaje przerwana. Uszkodzenia zostały wprowadzone na początku każdej symulacji. Jednakże, tak jak zostało to zdefiniowane, uszkodzenia były uruchamiane po kilku sekundach. Podczas sterowania robotem w trakcie symulacji zaobserwować można było, iż uszkodzenia przejawiają się w sposób zgodny z założeniami. 6. PODSUMOWANIE Wynikiem przedstawionych badań jest symulator robota Explorer 6WD. Symulator ten opracowany został z wykorzystaniem środowiska V-REP, sieci ROS i oprogramowania MATLAB /Simulink. Użycie platformy ROS umożliwiło komunikację pomiędzy wspomnianymi programami. W skład symulatora wchodzą również modele otoczenia typu indor i outdoor przedstawiające zróżnicowane scenerie. Przeprowadzono szczegółowe badania weryfikacyjne, mające na celu przetestowanie elementarnych i zaawansowanych funkcji symulatora robota. Jak pokazano w pracy, opracowany symulator pozwala na analizę działania obiektu w stanie pełnej zdatności i z wybranymi uszkodzeniami. Przedstawione w artykule wyniki badań potwierdzają poprawność zaproponowanego rozwiązania. Autorzy dostrzegają wiele nowych kierunków badań związanych z podjętym zagadnieniem. Jednym z nich będzie wykorzystanie symulatora do rozwoju algorytmów sterowania tolerujących uszkodzenia i błędy. Rys. 13. Symulacja uszkodzenia systemu komunikacji Literatura 1. Czupryniak R., Szynkarczyk P., Trojnacki M.: Tendencje rozwoju mobilnych robotów lądowych (2). Nowe kierunki w robotyce mobilnej. Pomiary Automatyka Robotyka 2008, nr 7-8, s. 10-13. 2. Giergiel M., Żylski W., Hendzel Z.: Modelowanie i sterowanie mobilnych robotów kołowych. Warszawa: PWN, 2002. ISBN: 9788301137892. 3. Moczulski W., Adamczyk M., Januszka M., Panfil W., Przystałka P., Wyleżoł M.: Team of specialized mobile robots for group inspection of large-area technical objects, Kozłowski K. (Ed.): Robot Motion and Control, LNCIS 396, Springer-Verlag, 2009, p. 411-420. ISBN 978-1-84882-985-5. 4. Moczulski W., Adamczyk M., Januszka M., Panfil W., Przystałka P., Wyleżoł M.: Autonomous mobile robots for Inspecting Industrial Objects, Mazurkiewicz A. (Ed.): Technological Innovations for Sustainable Development, ITeE-PIB, Polska-Izrael, 2009, p. 215-230. 5. Siegwart R., Nourbakhsh I.R., Scaramuzza D.: Introduction to autonomous mobile robots, 2nd Ed. MIT Press, 2011. ISBN: 9780262015356. 6. Trojnacki M., Szynkarczyk P., Andrzejuk A.: Tendencje rozwoju mobilnych robotów lądowych (1). Przegląd robotów mobilnych do zastosowań specjalnych. Pomiary Automatyka Robotyka 2008, nr 6, s. 11-14. 7. Troszyński M.: Platforma mobilna Trobot Explorer 6WD. Elektronika Praktyczna 2012, nr 3, s. 123-124. 8. Zhu X., Kim Y., Minor M., Qiu C.: Autonomous mobile robots in unknown outdoor environments. Boca Raton: CRC Press, 2017. ISBN 9781498740555. Artykuł dostępny na podstawie licencji Creative Commons Uznanie autorstwa 3.0 Polska. http://creativecommons.org/licenses/by/3.0/pl 118