Projekt Zaprogramować działanie robota w narzędziu USARSim



Podobne dokumenty
Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Kl 7-8 Szkoła Podstawowa

REFERAT PRACY DYPLOMOWEJ

kodowanienaekranie.pl

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Dokumentacja końcowa projektu z ZPR

Dokumentacja projektu QUAIKE Architektura oprogramowania

Bibliotek grid została stworzona aby wykorzystywać funkcje programu R ( oraz wprowadzone do programu R) do tworzenia odwzorowań typu grid oraz siatek

D O K U M E N T A C J A

Projektowanie systemów zrobotyzowanych

Technologia Flash cieszy się coraz większą popularnością. Liczba dostępnych

Referat pracy dyplomowej

HermesEX. Dokumentacja serwisowa v

Praca Magisterska "System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu" AUTOR PROMOTOR

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Instrukcja Obsługi GigaNagrywarki. Instrukcja obsługi GigaNagrywarki

System zarządzający grami programistycznymi Meridius

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Wprowadzenie do biblioteki klas C++

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Gry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin,

Robo - instrukcja obsługi

dr inż. Tomasz Krzeszowski

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Zadanie 3: Liczenie winogron

Diagnostyka pamięci RAM

JPK Jednolity Plik Kontrolny.

Instrukcja instalatora kart mikroprocesorowych od Windows XP do Windows Wstęp 1 2. Wymagania instalacji 1 3.

OpenLaszlo. OpenLaszlo

SYSTEMY CZASU RZECZYWISTEGO (SCR)

KURSY PROGRAMOWANIA DLA DZIECI

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Programowanie na poziomie sprzętu. Programowanie w Windows API

Dokumentacja kompilacji źródeł aplikacji 1.0

REFERAT O PRACY DYPLOMOWEJ

Plan Testów Systemu SOS

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

1 Przygotował: mgr inż. Maciej Lasota

Smarty PHP. Leksykon kieszonkowy


KURSY PROGRAMOWANIA DLA DZIECI

Praca dyplomowa magisterska

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Sieciowe Sterowanie Robotem Przemysłowym KUKA KR3 Sprzężonego z Systemem Wizyjnym oraz Systemem Rozpoznawania Mowy

Stworzenie prototypu robota, pomagającego ludziom w codziennym życiu

World Wide Web? rkijanka

Terminal TR01. Terminal jest przeznaczony do montażu naściennego w czystych i suchych pomieszczeniach.

Dokument Detaliczny Projektu

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia.

Aplikacje RMI

Python wstęp. Michał Bereta

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Scenariusz lekcji Ozobot w klasie: Spacer losowy po układzie współrzędnych

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

JAVA?? to proste!! Autor: wojtekb111111

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Dalmierze firmy SHARP na przykładzie 2D120XJ100F

Zajęcia z aplikacją ScratchJr mogą zostać przeprowadzone na dwa sposoby:

JPK Jednolity Plik Kontrolny.

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

Kodu z klasą. Skarb w zatrutej wodzie, cz. 2. Scenariusz 6

Lista dwukierunkowa - przykład implementacji destruktorów

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Instrukcja klienta wideokonferencji Yealink VC Desktop dla systemów Windows 7, 8, 10

Programowanie obiektowe

Systemy mobilne. Laboratorium. Dostęp do danych GPS w Windows Phone 7

Laboratorium Systemów SCADA

Zaawansowane aplikacje WWW - laboratorium

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Warunki i sposoby realizacji podstawy programowej kształcenia ogólnego w klasie IV i VII szkoły podstawowej z informatyki.

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem

PS QUAESTIO PRO /// instrukcja instalacji komponentu klienckiego

Skrócona instrukcja korzystania z baz udostępnionych w Bibliotece SGH. na komputerach będących poza siecią SGH

IBM SPSS Statistics Version 22. Windows - Instrukcja instalacji (licencja wielokrotna)

Mirror Tool.

IBM SPSS Statistics Wersja 23. Konfigurowanie ułatwień dostępu

Automatyka i Robotyka studia stacjonarne drugiego stopnia

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

L.dz.: WETI /16/2014 Gdańsk, dn

Opis. Wykład: 30 Laboratorium: 30

Wykrywanie twarzy na zdjęciach przy pomocy kaskad

BACKUP BAZ DANYCH FIREBIRD

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Wykorzystanie szkolnych pracowni komputerowych w nauczaniu przedmiotów ogólnokształcących i zawodowych

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Jakie nowości i udogodnienia niesie za sobą przejście do Sidoma 8, część z tych różnic znajdziecie Państwo w tabeli poniżej.

JĘZYK SCRATCH Manual użytkownika

Wtyczka Crop3D. Wstęp. Implementacja. Sprawozdanie z realizacji projektu Bartłomiej Trzewiczek Kraków,

Transkrypt:

WYŻSZA SZKOŁA INFORMATYKI I ZARZĄDZANIA Z SIEDZIBĄ W RZESZOWIE Inteligentne Systemy Autonomiczne Projekt Zaprogramować działanie robota w narzędziu USARSim Prowadzący: Wykonawca: Mgr Daniel Jachyra Paweł Potoniec - 39225 Rzeszów, 2011 r.

Spis treści: Spis treści:... 2 Streszczenie... 3 Teoria... 3 USARSim... 3 USARSim a Unreal... 3 Środowisko robota... 3 Cel, opis i założenia projektu... 3 Dostępne rozwiązania... 4 Pyro... 4 USAR_UI... 4 SimpleUI... 4 MATLAB Toolbox... 4 Rozwiązanie... 5 Mapa... 5 Działanie... 5 Skrypty i implementacja... 5 Implementacja właściwa... 5 Multimedia... 6 Podsumowanie i wnioski:... 9

Streszczenie Niniejszy dokument opisuje sposób w jaki zostało zaprogramowane działanie robota w narzędziu USARSIM, problemy techniczne, analizę dostępnych rozwiązań i właściwe wybrane rozwiązanie Teoria USARSim To skrót od Unified System for Automation and Robot Simulation czyli zunifikowany system dla automatyki i symulacji robotami. Jest to narzędzie pomocne przy analizie działań, potrzeb i zachowania robotów. Opiera się na zachowaniu robotów w środowisku, fizycznej interakcji ze środowiskiem, przystosowaniem się do zmieniających się warunków. USARSim a Unreal USARSim jest narzędziem-modem do gry Unreal Tournament. W zadanym projekcie została użyta wersja 3.1.3 do gry UT 2004. Mod ten to zestaw plików implementujący jako aktorów roboty i nadający im odpowiednie cechy i funkcje. Użytkownik może w trybie widza rozglądać się po mapie, oglądać działanie robota a poprzez aplikację kliencką połączyć się z tym środowiskiem i wysyłać komunikaty do robota. Istnieje również możliwość odczytów aktualnych wskazań różnych sonarów w zależności od użytego robota. Środowisko robota Standardowymi środowiskami dla testów robotów są 3 areny: żółta, pomarańczowa i czerwona różniąca się poziomem trudności progresywnie od najprostszej żółtej do czerwonej najtrudniejszej. Areny te mają swoje odzwierciedlenie w rzeczywistości. Cel, opis i założenia projektu Celem projektu było zaprogramowanie działania robota w środowisku USARSim i to też zostało uczynione. Do realizacji projektu zostały przetestowane różne aplikacje klienckie oraz wybrano jedno z nich, a następnie przygotowano odpowiednie procedury komunikujące się ze środowiskiem Unreal'a i USARSim a konkretnie z danym robotem. Następnie zostało zaprogramowane działanie robota polegające na przejechaniu danej ścieżki unikając jednocześnie zderzenia ze ścianą. Użyty robot to P2AT czterokołowy pojazd posiadający 8 sensorów z przodu i tyle samo z tyłu korpusu.

Dostępne rozwiązania Zgodnie z opisem w dokumentacji USARSim do sterowania robotem będziemy potrzebować Kontroler. Możemy użyć tu m.in. MOAST, Pyro czy bibliotekę Player. Dodatkowo na stronie projektu USARSim znaleźć można kilka narzędzi wspomagających komunikację: USAR_UI, SimpleUI czy ImageSrv. Dla celów projektu wykorzystane zostały następujące narzędzia: Pyro, USAR_UI, SimpleUI. Pyro Pyro jest środowiskiem dla systemu linux. Jednakże Python, język w którym napisane zostało to narzędzie jest językiem wieloplatformowym również i Pyro okazało się posiadać swój port na system Windows. Zatem przystępiono do instalacji środowiska Pyro zgodnie z zamieszczoną w manualu USARSim instrukcją dla systemów Windows. Niestety okazało się, iż Pyro nie jest już więcej wspierane przez USARSim, zatem mogą występować problemy z uruchomieniem PyroBota biblioteki zewnętrznej dla środowiska Pyro integrującej USARSim z Pyro. Tak też się stało. Po próbach znalezienia błędu dalszą pracę z tym narzędziem zaniechano. USAR_UI Jest to aplikacja okienkowa łącząca się z serwerem UT za pomocą której można wysyłać różnorodne wiadomości do środowiska USARSim. Niestety w tej aplikacji nie działał podgląd z kamery ze środowiska gry, pomimo poprawnie działającej ręczniej kontroli robotem tj. ruchem do przodu i do tyłu za pomocą klawiszy nawigacyjnych. SimpleUI Kolejnym narzędziem był program SimpleUI. Jest to bardziej zaawansowana wersja prgoramu USAR_UI, niestety podobnie jak poprzednik nie rerował poprawnie obrazu. Problemem najprawdopodobnie była niezgodność jednej z bibliotek DirectX'a z plikiem dll odpowiedizalnym za wyświetlanie obrazu. Po kilku dniach szukania rozwiązania problemu program ten również został odrzucony MATLAB Toolbox Po kilku dniach straconych dni na poznawanie niedziałających aplikacji skierowano się z pomocą do Prowadzącego: Pana Mgr Daniela Jachyry. Zostało wskazane alternatywne narzędzie na podstawie którego może być oparty projekt - MATLAB Toolbox dla USARSim. Wymagało ono do pełnej pracy całego systemu MATLAB. Jest to zestaw funkcji i skryptów dla MATLABa oraz pakiet zawierający klasy Java do

połączenia się ze środowiskiem USARSim w Unrealu. Po kilku dniach testów pakiet ten został użyty do wykonania niniejszego projektu. Rozwiązanie Mapa Do celów projektu stworzona została specjalna mapa, składająca się z krętej ścieżki ograniczonej ścianami. Celem robota jest przejechanie danej ścieżki bez kolizji. Mapa została stworzona w środowisku UnrealED (dostępna w załączniku) Działanie Robot po uruchomieniu funkcji jedz() porusza się do przodu. Z przodu robota istnieje 8 sensorów, podobnie z tyłu robota. Podczas ruchu robota odczytywane są aktualne wskazania odpowiednich sonarów. Jeśli odległość pomiędzy głownymi sensorami ( o numerach 5 i 6) a wykrytym obiektem jest mniejsza niż 1 (jednostka w środowisku USARSim) zostają zczytane dane z sensorów umieszczonych po bokach pojazdu. Na podstawie tego podejmowana jest decyzja z której strony znajduje się przeszkoda oraz pojazd rozpoczyna skręcanie w odwrotnym kierunku aż nie wykryje kolizji. Następnie ruch do przodu jest wznawiany. Po dojechaniu robota do końca trasy cel zostaje osiągnięty. Skrypty i implementacja Działanie robota zostało zaimplementowane w MATLABie, natomiast za pomocą odpowiednich funkcji pomocniczych zawartych w Toolbox'ie odbywa się komunikacja ze środowiskiem. Pośredniczy tej operacji obiekt Proxy biblioteka która wstrzykuje odpowiedni kod Java do silnika Unreal. Implementacja właściwa Utworzenie nowego robota P2AT: rob = initializerobot('nazwa robota','p2at',[0-2 1.3 ], [0 0 90] ); Ruch i logika wyboru kierunku ruchu robota: skrecam = false; while true sonarreadings = getsonarreadings(rob); i = 3;

skrecam = 0; while i <= 6 if( sonarreadings.range(i) < 1) if( sonarreadings.range(1) > sonarreadings.range(7) ) skrecam = 1; else skrecam = -1; i = i + 1; if( skrecam > 0 ) sdrivecommand(rob, [-30 30] ); else if( skrecam < 0 ) sdrivecommand(rob, [30-30]); else sdrivecommand(rob, [80 80]); pause(0.2); Multimedia Oprócz przygotowania kodu implementującego odpowiednie zachowanie robota ruch po ścieżce przygotowane zostały zrzuty ekranu ze środowiska oraz film pokazujący przejazd robota i jego zachowanie. Zrzuty ekranu:

Plik wideo w załączniku. Materiały zostały przygotowane za pomocą programu Fraps oraz Windows Movie Maker. Podsumowanie i wnioski: Z uwagi na dość ogarniczoną dokumentację USARSim nie było łatwo zaprogramować działanie robota w tym środowisku. Dokumentacja ta co prawda zawierała informacje na temat rozpoznawanych komunikatów, niestety nie wspomniano o żadnych alternatywnych sposobach komunikacji ze środowiskiem np. za pomocą API. Na szczęście dzięki pomocy Prowadzącego polegającej na wskazaniu narzędzia Matlab Toolbox for USARSim projekt został ukończony z zadowalającym sukcesem, a zdobyte doświadczenie w mechanizmach programowania robota zdecydowanie powiększy zakres zainteresowań