Wykorzystanie usług chmurowych dla sterowania robotem mobilnym na przykładzie Amazon EC2 Cloud services for mobile robot's control on example of Amazon EC2 Igor Ostrowski Autor: mgr Igor Ostrowski Instytut Maszyn Matematycznych i.ostrowski@imm.org.pl tel. 506105236 key words: Cloud robotics, automatic remote control, Streszczenie: Niniejsza praca omawia wyniki eksperymentu polegającego na uruchomieniu pakietu oprogramowania do sterowania robotem na wirtualnej maszynie w chmurze. Wynik eksperymentu wykazuje nie tylko możliwość takiej aplikacji, ale również jej prawidłowe funkcjonowanie. Eksperyment przebiegał z wykorzystaniem sieci globalnej i publicznie dostępnej usługi wynajmu instancji serwerowej. Abstract: This paper presents the results of controlling a mobile robot using a cloud service running on virtual machine. The experiment confirms proper operation of such control mean. The experiment was conducted using Internet network and publically available server renting service. Roboty badawcze charakteryzują się niewielkimi rozmiarami, a co za tym idzie małym udźwigiem. Z małego udźwigu wynikają niewielkie możliwości obliczeniowe, co jest jednym z głównych ograniczeń robotów i powoduje, że w większości przypadków mały robot jest teleoperowany przez komputer zewnętrzny. Komputer taki musi być wyposażony w odpowiednie oprogramowanie i w większości przypadków potrzebny jest jeden komputer na jednego robota. Przygotowanie komputera do pracy jest pracochłonne i wymaga instalowania oprogramowania na każdej jednostce. Można oczywiście, jeśli komputery są jednakowe zrobić kopie dysku twardego i powielać ją dla każdej pary robot-komputer. Komputer sterujący robotem może być jednostką wirtualną co pozwala na umieszczenie na jednym komputerze fizycznym kilku (w zależności od mocy obliczeniowej komputera hosta ) do kilkunastu jednostek wirtualnych z których każda może obsługiwać swojego robota. Takie rozwiązanie znacząco ułatwia również powielanie komputerów, a w przypadku zmniejszania grupy - łatwą likwidację wirtualnych komputerów. W omawianym rozwiązaniu wykorzystana jest chmura publiczna usługa Amazon EC2 polegająca na wynajmie wirtualnych serwerów w architekturze PaaS (lub IaaS jednak omawiane rozwiązanie ogranicza się do PaaS). W ramach niniejszej pracy uruchomiono bezpłatną instancję Amazon EC2 micro T1 z preinstalowanym systemem Windows Serwer 2008, na której zainstalowano następujące programy do obsługi robotów AmigoBot firmy Mobile Robots: ARIA MobileEyes ARIA (Advanced Robotics Interface for Applications ) jest interfejsem programowania robotów firmy Mobile Robots, pozwala na zdalne połączenie z robotem, pobieranie danych z sensorów robota oraz sterowanie jego efektorami (silniki napędowe, chwytaki jeśli są itd...), są to programy trybu tekstowego nie posiadające GUI (Graphic User Interface). MobileEyes jest oprogramowaniem pozwalającym na graficzne wyświetlenie danych sensorycznych z robota (np. odległość przeszkody od sonaru jako ikona w proporcjonalnej do wielkości robota odległości od ikony symbolizującej samego robota) W wirtualnej maszynie (amazon EC2) uruchomiono program serverdemo.exe komunikujący się z robotem za
pośrednictwem protokołu tcp/ip oraz udostępniający dane sensoryczne robota i umożliwiający sterowanie robotem (komenda serverdemo -rh {adresip:port}). Program ten stanowi standardową zawartość pakietu aria w niniejszej pracy został użyty bez modyfikacji. W wirtualnej maszynie uruchomiono program MobileEyes i skomunikowano z serverdemo.exe (localhost/127.0.0.1). (Ilustracja 1) Ilustracja 1: serverdemo.exe i MobileEyes połączone zdalnie z fizycznym robotem (Illustration1: serverdemo.exe and MobileEyes connected with physical robot) Robot został uruchomiony w trybie Wander polegającym na unikaniu kolizji z przeszkodami poprzez niewielkie zmiany kursu, tak aby na kursie nie było utrudnień. W tym trybie robot nie ma zdefiniowanego innego celu niż przemieszczanie się i unikanie kolizji. Tryb ten włączany jest z poziomu programu MobileEyes. Robot funkcjonował płynnie mimo iż jednostka nim sterująca znajdowała się na drugiej półkuli (wirtualne serwery z grupy us-west-2b znajdują się fizycznie w Boardman w stanie Oregon). Ping jednostki sterującej robotem, z lokalizacji robota wynosił 192 ms co nie wpływało na pracę robota. W prezentowanym przykładzie użyto sprzętu wg poniższego wykazu w następującej konfiguracji Router WIFI firmy 8level Wersja sprzętowa: Wersja oprogramowania: WRT-150(A) APR-R4A4-V1.1.694 Build(10560) -8level(WRT-150(A)),2011.10.18 14:30. W routerze zastosowano przekierowania portów wg następujących ustawień: W powyższej konfiguracji port 80 odpowiada za połączenie z sieci globalnej z interfejsem graficznym konfiguracji urządzenia Lantronix Wibox, a port 8101 jest domyślnym portem komunikacji z AmigoBot'em. Takie ustawienia pozwalają na dostęp zdalny z dowolnego komputera za pośrednictwem przeglądarki (oczywiście tylko w czasie gdy urządzenie jest włączone). Dostęp do sterowania robotem jest możliwy z wykorzystaniem uruchomionego na serwerach Amazon oprogramowania ARIA. Router ma skonfigurowany stały adres IP w sieci globalnej.
Ilustracja 2: konfiguracja routera (Illustration 2: Router configuration) Lantronix Wibox 2100 Lantronix Wibox jest to rodzina urządzeń firmy Lantronix pozwalająca na udostępnianie w sieci dostępu do portów szeregowych zgodnie ze standardami RS 232 i RS 485. Urządzenie dostarczane jest z oprogramowanie dla systemu Windows umożliwiającym wirtualizację portów com. W omawianym zastosowaniu połączenie z robotem odbywa się po protokole tcp/ip z zastosowaniem adresu IP urządzenia wibox. Urządzenie skonfigurowane zostało następująco:
Ilustracja 3 :Konfiguracja Lantronix Wibox (Illustration 3: Lantronix Wibox Configuration)
Ilustracja4:Konfiguracja Lantronix Wibox c.d. (Illustration 4: Lantronix Wibox Configuration cont.)
Ilustracja 4 :Konfiguracja Lantronix Wibox c.d. (Illustration 5: Lantronix Wibox Configuration cont.)
Amigobot Opis robota AmigoBot jest to najmniejszy robotem mobilny z firmy MobileRobot. Jest on w pełni kompatybilny z innymi robotami tej firmy, co daje możliwość przenoszenia programów napisanych dla różnych typów robotów. Wyposażenie AmigoBota 44.2368 MHz mikroprocesor Renesas SH2 32-bit RISC z 32K RAM oraz 128K pamięci FLASH dla programów. 2 porty szeregowe RS-232 oraz dwa porty SCI konfigurowalne od 9600 do 115200 8 sonarów - Port żyroskopu Panel sterowania uzytkownika z przyciskami RESET oraz MOTORS, trzema diodami led: Power, System oraz User, a także głośniczek Możliwość podłączenia wyświetlacza LCD 4 linie x 20 znaków Gniazdo rozszerzeniowe z wbudowana 8-bitowa szyna danych, analogowymi i cyfrowymi portami we/wy Interfejs RS-232 do WLAN WiBox firmy Lantronix Dostęp do serwera Dostęp do serwera realizowany jest za pośrednictwem standardowych metod połączenia jak RDP (Remote Desktop Protocol) dla systemu Windows Server lub SSH (Secure Shell). Wirtualny Server w chmurze W omawianym rozwiązaniu zastosowano standardową, darmową instancję Windows Server 2008, której szczegółowe dane wyświetlone są na Ilustracji 1 w prawym górnym rogu i stanowią element pulpitu serwera. Uruchomienie takiej instancji odbywa się z panelu administracyjnego EC2 na www.aws.amazon.com i jest niezwykle intuicyjne, zgodnie z paradygmatem Cloud Computingu o łatwości i powtarzalności uruchomionych usług. Dalsze postępowanie z serwerem jest takie samo jak w przypadku fizycznego komputera, z tą różnicą że odbywa się przez zdalny protokół dostępowy (RDP lub SSH). Podsumowanie W ramach niniejszej pracy opracowano i uruchomiono system, w którym dane sensoryczne z robota zostają wysyłane na zdalny komputer i po ich przetworzeniu wracają w postaci informacji dla elementów wykonawczych. Taki system charakteryzuje się dużym zapotrzebowaniem na wysokiej jakości połączenie sieciowe oraz wysokim poziomem elastyczności w przetwarzaniu danych. Moc obliczeniowa w takim rozwiązaniu jest na zewnątrz i jest właściwie nieograniczona, co przy skomplikowanych obliczeniach na danych sensorycznych ma kluczowe znaczenie. Podobne rozwiązanie wykorzystywane jest przy rozpoznawaniu głosu i obrazu przez smartfony i inne urządzenia mobilne, w których moc obliczeniowa na pokładzie jest stosunkowo niewielka i niewystarczająca do szybkiego przetworzenia danych. Szybszym i wydajniejszym jest odesłanie danych na serwer i po przetworzeniu odesłanie do urządzenia. Biorąc
pod uwagę dynamikę rozwoju prędkości łącz internetowych wydaje się, że ten kierunek rozwoju robotyki może w najbliższym czasie okazać się wyjątkowo obiecujący. Bibliografia: [1] RoboEarth Project. [online]. Dostępne: : http://www.roboearth.org [dostęp: 02.08.2013]. [2] D. Hunziker, M. Gajamohan, M. Waibel, and R. D Andrea, Rapyuta: The RoboEarth Cloud Engine, in Proc. IEEE Int. Conf. on Robotics and Automation (ICRA), 2013. [3] http://aws.amazon.com [online] [dostęp: 02.08.2013] [4] Lantronix WiBox2100E User Guide, Part Number 900-351; Revision K; June 2008 [5] Rajesh Arumugam et. Al DAvinCi: A Cloud Computing Framework for Service Robots 2010 IEEE International Conference on Robotics and Automation Anchorage Convention District May 3-8, 2010, Anchorage, Alaska, USA [6] 8Level instrukcja obsługi wrt 150(A) dostępne: www.8level.pl [dostęp: 02.08.2013]. [7] AmigoBot User Guide dostępne: www.mobilerobots.com [dostęp: 02.08.2013].