article in PDF format - Zeszyty Naukowe Instytutu Pojazdów

Transkrypt

article in PDF format - Zeszyty Naukowe Instytutu Pojazdów
ZESZYTY NAUKOWE INSTYTUTU POJAZDÓW
2(98)/2014
Wojciech Moczulski1, Wawrzyniec Panfil2, Piotr Przystałka3
SYSTEM STEROWANIA GRUPY
WIELOZADANIOWYCH ROBOTÓW MOBILNYCH (2)
- IMPLEMENTACJA SYSTEMU
1. Wstęp
Obecnie kierunek praktycznych zastosowań robotyki mobilnej mocno zwrócony jest
w stronę konstruowania i wytwarzania urządzeń mechatronicznych wspomagających
człowieka w realizacji niebezpiecznych zadań [2, 5]. Z drugiej strony aktualne
zainteresowania naukowców i inżynierów pokazują [1, 6], że coraz większe znaczenie
praktyczne znajdują grupy robotów mobilnych, w tym tele-operowanych i
autonomicznych systemów wielorobotowych. Taki sposób wykorzystania robotów
mobilnych pociąga za sobą konieczność projektowania systemów informatycznych,
których jedną z funkcjonalności jest możliwość współdziałania robotów i operatorów w
grupie. Niniejsza praca jest drugą częścią publikacji „System sterowania grupy
wielozadaniowych robotów mobilnych”, która wpisuje się w cykl artykułów
poświęconych efektom realizacji trzyletniego projektu „Wielozadaniowe mobilne roboty
wykorzystujące zaawansowane technologie”. Projekt ten został zrealizowany przy
współpracy Instytutu Podstaw Konstrukcji Maszyn Politechniki Śląskiej oraz Instytutu
Technologii Eksploatacji – Państwowego Instytutu Badawczego w Radomiu w ramach
Programu Strategicznego „Innowacyjne Systemy Wspomagania Technologicznego
Zrównoważonego Rozwoju Gospodarczego”.
W pierwszej części opracowania omówiono najważniejsze elementy systemu
sterowania oraz ich wzajemne relacje opisując architekturę systemu sterowania oraz
cechy funkcjonalne z zastosowaniem notacji języka UML. Niniejsza część publikacji
przedstawia szczegóły dotyczące implementacji systemu sterowania według
opracowanego projektu. Szczególną uwagę skoncentrowano na wykorzystanej
technologii programistycznej, która umożliwiła uzyskanie zakładanych wymagań
funkcjonalnych. Podstawowym problemem w niniejszych badaniach było użycie takiej
technologii informatycznej, która pozwala na integrację elementów systemu sterowania
grupy robotów działających równolegle zarówno w przypadku robotów rzeczywistych
jak również ich wirtualnych odpowiedników w środowisku symulacyjnym. Zagadnienie
to rozwiązano dzięki użyciu środowiska developerskiego Microsoft® Robotics
Developer Studio, które oferuje odpowiednie mechanizmy programistyczne do
tworzenie aplikacji rozproszonych działających synchronicznie lub asynchronicznie oraz
stosowne narzędzia umożliwiające utworzenie środowiska symulacyjnego z
uwzględnieniem praw fizyki. Dalsza część opracowania dotyczy również warstwy
oprogramowania systemu sterowania stanowiącego graficzny interfejs użytkownika. W
1
Prof. dr hab. Wojciech Moczulski, z-ca dyrektora Instytutu Podstaw Konstrukcji Maszyn Politechniki
Śląskiej
2
Dr inż. Wawrzyniec Panfil, adiunkt w Instytucie Podstaw Konstrukcji Maszyn Politechniki Śląskiej
3
Dr inż. Piotr Przystałka, adiunkt w Instytucie Podstaw Konstrukcji Maszyn Politechniki Śląskiej
197
pracy omówiono i przedstawiono przykładowe okna aplikacji, których działanie
weryfikowano podczas testów grupy robotów w warunkach terenowych.
Głównym celem badań w niniejszej pracy jest implementacja oprogramowania
systemu sterowania dla trzech typów robotów wchodzących w skład grupy robotów do
zastosowań specjalnych – Rys. 1. Szczegółowy opis rozważanych robotów mobilnych
można znaleźć w pracy [4]. Pierwszy z robotów pokazany na Rys. 1a to robot, który
służyć może do lokalizacji osób i przedmiotów za pomocą kamery lub czujnika ruchu.
Jego zadaniem może być również nawiązanie dwukierunkowego kontaktu głosowego z
osobami, których życie jest zagrożone. Inną funkcją tego robota jest odtwarzanie drogi
dojścia do poszukiwanego obiektu. Ważną funkcjonalnością tego robota jest przedni i
tylny moduł, który może być wymienny. W ten sposób robota tego można wyposażyć w
dodatkowe czujniki. Kolejnym robotem pokazanym na Rys. 1b jest robot transportowy
wyposażony w mały i lekki manipulator oraz zestaw dwóch czujników
specjalistycznych. W przypadku zamiany tych czujników na kosz, robot ten służy do
celów transportowych np. przedmiotów niebezpiecznych. Ostatni z robotów pokazany
jest na Rys. 1c. Jego wyposażeniem jest układ do pobierania próbek gleby. Robot ten
może również zostać wyposażony (jak poprzedni) w zestaw czujników specjalistycznych
np. do detekcji różnego rodzaju zagrożeń, jak np. nadmierne stężenie gazów (CO2, CO)
w powietrzu, oraz do wykrywania zagrożenia pożarowego (wykrywanie żaru lub/i
płomieni). Współdziałanie grupy pozwala na otrzymywanie informacji o charakterze
ilościowym i jakościowym o obiekcie podlegającym monitorowaniu/inspekcji.
a) Pathfinder
b) Transporter
c) Explorer
Rys. 1. Wielozadaniowe roboty mobilne z wyposażeniem
do zastosowań w służbach mundurowych
Jak można zauważyć modułowa budowa robotów pozwala na elastyczne zmiany
wyposażenia robotów. Pociąga to za sobą konieczność utworzenia uniwersalnego
oprogramowania, które może zostać w łatwy sposób dostosowane do wybranej przez
użytkownika konfiguracji wyposażenia robotów. W dalszej części pracy opisano
utworzone oprogramowanie systemu sterowania wszystkich robotów mobilnych, które
umożliwia osiągnięcie zakładanej funkcjonalności.
2. Środowisko programistyczne do implementacji systemu sterowania robotów
współdziałających w grupie
Dokonując przeglądu istniejących narzędzi pozwalających na budowanie systemów
sterowania robotów mobilnych zdecydowano się na wykorzystanie oprogramowania
Microsoft® Robotics Developer Studio (MRDS). Wybrane środowisko [3] posiada
narzędzie Concurrency and Coordination Runtime (CCR) umożliwiające zastosowanie
programowania asynchronicznego z wykorzystaniem technologii .NET w tworzeniu
aplikacji współbieżnych oraz narzędzie Decentralized Software Services (DSS)
198
wykorzystujące również technologię .NET i łączące cechy wzorca architektury REST
(RepresentationalState Transfer) w tworzeniu aplikacji rozproszonych ze
sformalizowaną kompozycją i architekturą powiadamiania o zdarzeniach. CCR pozwala
na przesyłanie informacji pomiędzy równolegle wykonywanymi fragmentami kodu w
ramach jednego procesu, natomiast DSS rozszerza tę koncepcję o komunikację
pomiędzy różnymi procesami, a nawet jednostkami obliczeniowymi. Niniejsze cechy
środowiska (MRDS) umożliwiają tworzenie powiązanych aplikacji, charakteryzujących
się jednorodnym interfejsem oraz możliwością uruchamiania zarówno w ramach jednego
węzła jak i poprzez sieć z wykorzystaniem protokołu TCP. Tak więc MRDS jest
środowiskiem przeznaczonym do rozwoju i implementacji algorytmów i systemów
sterowania robotów mobilnych (scentralizowanych i rozproszonych). Pozwala na łatwą
instalację systemu sterowania na urządzeniach fizycznych oraz oferuje możliwość
wcześniejszego przetestowania algorytmu sterującego w środowisku symulacyjnym.
MRDS posiada bogate wzorce programowe, które można odpowiednio odstosować do
własnych potrzeb. Taka metodyka postępowania pozwala na zaliczenie tego środowiska
do oprogramowania do celów szybkiego prototypowania. Dodatkowo MRDS posiada
moduł Visual Programming Language (VPL) pozwalający programować i analizować
działanie programów w sposób graficzny. Rozwijane oprogramowanie dla danego robota
(lub grupy) przed etapem wdrożenia można przetestować w dostępnym środowisku
symulacyjnym - Visual Simulation Environment (VSE). Środowisko to udostępnia pełne
wsparcie wizualizacji 3D oraz możliwość obliczeń z uwzględnieniem praw fizyki. Takie
podejście pozwala na wyeliminowanie błędów w algorytmie sterowania jeszcze na
etapie wstępnej weryfikacji modelu robota.
3. Oprogramowanie systemu sterowania robota Pathfinder
Biorąc pod uwagę wytyczne projektowe przedstawione w pierwszej części
opracowania do sterowania robotem Pathfinder utworzono serwis MRDS oraz aplikację
operatora Pathfinder UI (Rys. 2). Aplikacja ta umożliwia sterowanie predefiniowanym
robotem rzeczywistym (Pathfinder 1, Pathfinder 2) lub robotem tego typu, który nie
został wcześniej zdefiniowany np. z poza grupy (Pathfinder N) oraz wirtualnym robotem
Pathfinder w środowisku symulacyjnym (panel DSS Node Configuration). Za pomocą
tej aplikacji możliwe jest: sterowanie silnikami robota (panel Control), podgląd obrazu z
kamery oraz obracanie automatyczne i ręczne obrazu kamery, konfigurację systemu
audio/video (panel Audio-Video), odczyt i sterowanie położeniem anteny (panel
Antenna angle), odczyt informacji z akcelerometrów (panel Location), odczyt i
wizualizację stanu czujnika temperatury (poniżej panelu Location). Sterowanie robotem
realizowane jest również za pomocą drążków analogowych kontrolera typu gamepad.
Robot jest sterowany w trybie dyferencyjnym. Wychylenie lewego oraz prawego drążka
odpowiada napięciu i polaryzacji zacisków cewek silników odpowiednio lewego i
prawego. W środkowej części aplikacji użytkownika umieszczono podgląd obrazu z
kamery robota. Obraz jest skalowany odpowiednio do szerokości okna aplikacji
testowej. Obraz możemy obracać ręcznie za pomocą przycisku Flip V
lub
automatycznie wykorzystując do tego celu informacje z osi akcelerometru. Podczas
obrotu obrazu, zostają również odpowiednio zamienione sygnały sterujące silnikami,
aby ułatwić operatorowi jazdę robotem w pozycji odwróconej. Ponadto aplikacja
operatora pozwala na: uruchomienie/zatrzymanie przesyłania dźwięku od operatora do
robota, uruchomienie/zatrzymanie przesyłania dźwięku od robota do operatora,
zapisywanie strumienia audio i video, konfigurację modułu audio/video.
199
Rys. 2. Aplikacja użytkownika do sterowania robotem Pathfinder
5. Oprogramowanie systemu sterowania robotów Transporter i Explorer
Podobnie jak poprzednio zgodnie z wytycznymi projektu utworzono aplikację
okienkową TransporteExplorer UI dla zdalnego sterowania robotami Explorer i
Transporter. Główne okno aplikacji (Rys. 3a) utworzono w tej samej konwencji co
poprzednie. Podobnie jak w przypadku robota Pathfinder tutaj użytkownik też ma
możliwość podłączenia się do robota o predefiniowanym lub niezdefiniowanym adresie
IP oraz do robota wirtualnego (panel DSS Node Configuration). Sterowanie robotem
odbywa się w podobny sposób jak w przypadku Pathindera. Różnice jakie można
zauważyć w sekcji poświęconej sterowaniu ręcznemu (panel Control) dotyczą napędu
gąsienicy pomocniczej. Operator ma możliwość wyboru pomiędzy sterowaniem w pętli
otwartej (góra, dół za pomocą przycisków UP, DOWN) lub w pętli sprzężenia
zwrotnego za pomocą kontrolki graficznej. Dodatkowo panel ten zapewnia dobór
odpowiedniej prędkości kątowej osi gąsienicy pomocniczej. W sekcji do obsługi
systemów wizyjnych (panel Video) dostępne są przyciski zarządzające kamerą tylną i
przednią. Zasadniczą różnicą tej aplikacji w stosunku do poprzedniego programu jest
pojawienie się panelu do obsługi urządzeń peryferyjnych robota (panel Peripheral
devices) oraz znacznie bardziej rozbudowana sekcja Sensors. W przypadku urządzeń
peryferyjnych operator ma możliwość uruchomienia dodatkowego okna, w którym
będzie mógł sterować manipulatorem lub układem do pobierania próbek, czy też
obserwować parametry otoczenia monitorowane za pomocą czujników
specjalistycznych. Ważną funkcjonalnością opracowanej aplikacji jest również
możliwość wizualizacja danych z systemu detekcji otoczenia (Rys. 3c), która pozwala na
sterowanie robotem nawet w przypadku braku widoczności otoczenia za pomocą kamer
robota. Aplikacja pozawala również użytkownikowi robota na określenie aktualnej
pozycji i orientacji robota w układzie globalnym oraz na przedstawienie ścieżki robota
jaką poruszał się podczas wykonywania misji (Rys. 3b).
200
a) Główne okno aplikacja użytkownika
b) wizualizacja
lokalizacji
danych
z
systemu
c) wizualizacja danych z systemu detekcji
otoczenia
d) widok kamery z symulatora
Rys. 3. Aplikacja użytkownika do sterowania robotami Transporter i Explorer
201
W przypadku gdy niezbędne jest np. przeszkolenie nowych operatorów grupy
robotów, w opracowanej aplikacji przewidziano możliwość jej podłączenia do
zaawansowanego środowiska symulacyjnego. W tedy użytkownik robota korzysta z tej
samej aplikacji co w przypadku rzeczywistego robota przy czym dane (np. widok z
kamer – Rys. 3d lub dane z czujników) pochodzą z wirtualnego środowiska
symulacyjnego.
6. Wnioski i podsumowanie
W trakcie realizacji projektu przeprowadzono badania weryfikacyjne robotów
Pathfinder, Transporter i Explorer w warunkach rzeczywistych w budynkach i w terenie
otwartym. Podczas tych badań weryfikowano poprawność opracowanego
oprogramowania. W wyniku tych badań potwierdzono wysoką wydajność i stabilność
tych aplikacji. Utworzone oprogramowania pozwala na zarządzanie całej grupy robotów
w sposób równoległy przez wielu operatorów oraz na sterowanie ich wyposażeniem tj.
manipulator lub układ pobierania próbek jednocześnie monitorując parametry otoczenia
oraz wykrywając przeszkody występujące w otoczeniu robota. Przeprowadzone testy
potwierdziły znaczące korzyści zastosowania środowiska MRDS w procesie
prototypowania systemów sterowania grup robotów.
Podziękowania
Rozważania pokazane w artykule są częścią wyników projektu „Wielozadaniowe
mobilne roboty wykorzystujące zaawansowane technologie”, który został zrealizowany
przy współpracy Instytutu Podstaw Konstrukcji Maszyn Politechniki Śląskiej oraz
Instytutu Technologii Eksploatacji – Państwowego Instytutu Badawczego w Radomiu w
ramach
Programu
Strategicznego
„Innowacyjne
Systemy
Wspomagania
Technologicznego Zrównoważonego Rozwoju Gospodarczego”.
Literatura:
[1]
Ambroszkiewicz S., Borkowski A., Cetnarowicz K., Zieliński C. (Red.).:
Inteligencja wokół nas. Współdziałanie agentów softwarowych, robotów,
inteligentnych urządzeń. W: Monografie Komitetu Automatyki i Roboty Polskiej
Akademii Nauk, Tom 15, Akademicka Oficyna Wydawnicza EXIT, Warszawa,
2010.
[2]
Czupryniak R., Szynkarczyk P., Trojnacki M.: Tendencje rozwoju mobilnych
robotów lądowych (2). Nowe kierunki w robotyce mobilnej. Pomiary Automatyka
Robotyka, 7-8/2008.
[3]
Johns K., Taylor T.: Professional Microsoft Robotics Developer Studio, Wiley
Publishing, 2008.
[4]
Moczulski W., Skarka W., Targosz W., Panfil W., Przystałka P., Wyleżoł M.,
Januszka M., Pająk D.: Wielozadaniowe mobilne roboty do inspekcji obiektów
technicznych. W: Postępy robotyki. T. 1. Pod red. K. Tchonia, C. Zielińskiego.
Warszawa : Oficyna Wydaw. Politechniki Warszawskiej, 2012, s. 199-206,
bibliogr.11 poz. (Prace Naukowe ; Politechnika Warszawska Elektronika ; z.
182).
[5]
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, 6/2008.
202
[6]
Trojnacki M., Szynkarczyk P.: Tendencje rozwoju mobilnych robotów lądowych
(3). Autonomia robotów mobilnych stan obecny i perspektywy rozwoju. Pomiary
Automatyka Robotyka, 9/2008.
Streszczenie
W artykule pokazano oprogramowanie do sterowania grupy wielozadaniowych
robotów mobilnych do zastosowań w służbach mundurowych. W pracy przedstawiono
funkcjonalność grupy robotów, jaką uzyskano dzięki zastosowaniu środowiska do
szybkiego prototypowania systemów sterowania robotów mobilnych - Microsoft®
Robotics Developer Studio. Zaprezentowane wyniki badań stosowanych są efektem
projektu „Wielozadaniowe mobilne roboty wykorzystujące zaawansowane technologie”,
który został zrealizowany przy współpracy Instytutu Podstaw Konstrukcji Maszyn
Politechniki Śląskiej oraz Instytutu Technologii Eksploatacji – Państwowego Instytutu
Badawczego w Radomiu w ramach Programu Strategicznego „Innowacyjne Systemy
Wspomagania Technologicznego Zrównoważonego Rozwoju Gospodarczego”.
Słowa kluczowe: robotyka mobilna, systemy wielorobotowe, interfejsy człowiekmaszyna, szybkie prototypowanie systemów sterowania
A CONTROL SYSTEM
FOR A GROUP OF MULTI-TASK MOBILE ROBOTS (2)
- SYSTEM IMPLEMENTATION
Abstract
The article shows a software that can be used to control a group of multi-task mobile
robots which can be applied in order to aid uniformed services. In this paper, the authors
illustrated the functionality of the multi-robot system that has been obtained with the use
of an environment for rapid control system prototyping - Microsoft® Robotics
Developer Studio. The presented results of the applied research were achieved as an
outcome of the project “High-tech multipurpose mobile robots” that has been carried
out in the framework of Strategic Programme “Innovative Systems of Technical Support
for Sustainable Development of Economy” (Innovative Economy Operational
Programme) with the collaboration between Institute of Fundamentals of Machinery
Design – Silesian University of Technology and Institute for Sustainable Technologies National Research Institute.
Keywords: mobile robotics, multi-robot systems, human-machine interfaces, rapid
prototyping of control systems
203