AKADEMIA GÓRNICZO HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE

Wielkość: px
Rozpocząć pokaz od strony:

Download "AKADEMIA GÓRNICZO HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE"

Transkrypt

1 AKADEMIA GÓRNICZO HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE WYDZIAŁ ELEKTROTECHNIKI AUTOMATYKI INFORMATYKI I ELEKTRONIKI KATEDRA INFORMATYKI PRACA MAGISTERSKA MIRON PAWLIK INTERFEJSY UŻYTKOWNIKA DLA POTRZEB APLIKACJI WYKORZYSTUJĄCYCH PODEJŚCIE WZBOGACONEJ RZECZYWISTOŚCI PROMOTOR: DR INŻ. ŁUKASZ CZEKIERDA OPIEKUN: MGR INŻ. TOMASZ MASTERNAK KRAKÓW 2012

2 OŚWIADCZENIE AUTORA PRACY OŚWIADCZAM, ŚWIADOMY ODPOWIEDZIALNOŚCI KARNEJ ZA POŚWIADCZENIE NIEPRAWDY, ŻE NINIEJSZĄ PRACĘ DYPLOMOWĄ WYKONAŁEM OSOBIŚCIE I SAMODZIELNIE, I NIE KORZYSTAŁEM ZE ŹRÓDEŁ INNYCH NIŻ WYMIENIONE W PRACY... PODPIS

3 Podziękowania dla: Dr inż. Łukasza Czekierdy i mgr inż. Tomasza Masternaka za pomoc w trakcie pisania pracy i cenne wskazówki. Oraz dla tych wszystkich, którzy nieustannie przypominali mi, że jeszcze nie napisałem pracy (w szczególności Asi i rodzicom).

4

5 Spis Treści Spis Treści Wstęp Opis problemu Cel pracy Wprowadzenie Rozszerzona rzeczywistość (AR) Natural User Interface (NUI) Połączenie NUI i AR obecnie i w przyszłości Platforma rozpoznawania gestów Opis koncepcji Istniejące rozwiązania Zdefiniowanie wymagań funkcjonalnych Propozycja architektury Implementacja Algorytm rozpoznawania gestów Rozważane urządzenia peryferyjne Wykorzystane technologie Tworzenie rozszerzonej rzeczywistości Definiowanie nowych gestów Manipulowanie obiektami trójwymiarowymi Weryfikacja praktyczna Aplikacja MuseumViewer Zastosowanie w aplikacji telemedycznej Wskazania Podsumowanie Ocena przydatności Ograniczenia Kierunki rozwoju A) Instalacja oraz konfiguracja a) Instalacja wymaganych bibliotek b) Kompilacja biblioteki rozpoznającej gesty... 53

6 c) Uruchomienie aplikacji Museum Viewer d) Generowanie własnych markerów e) Stworzenie własnej kostki markera Bibliografia Spis ilustracji... 59

7 1. Wstęp W obecnych czasach coraz powszechniej odchodzi się od wykorzystywania tradycyjnych metod interakcji z komputerem, które są wypierane przez tzw. interfejsy naturalne. Jeszcze do niedawna z komputerami komunikowano się głównie przy pomocy klawiatury i myszki, urządzeń wynalezionych około 50 lat temu. Od pewnego czasu coraz powszechniejszy staje się trend użytkowania komputera za pomocą interfejsów uznawanych za bardziej naturalne. Podstawowa różnica polega na pominięciu dodatkowych urządzeń pośredników mających pomóc manipulować wyświetlaną treścią na rzecz bardziej bezpośredniego kontaktu. Innym ważnymi elementami mającymi wpływ na ewolucje interfejsów są: ciągły rozwój mocy obliczeniowych oraz miniaturyzacja układów scalonych. Zwiększanie szybkości działania układów pozwala na dużo dokładniejsze operowanie na rejestrowanych obrazach w czasie rzeczywistym. Z kolei zmniejszanie rozmiarów jednostek zwiększa ich mobilność, pozwalając na ich zastosowanie w większej ilości przypadków. Powyższe fakty przyczyniają się do wzrostu popularności rozszerzonej rzeczywistości technologii pozwalającej na modyfikację obrazu widzianego przez człowieka w czasie rzeczywistym oraz wzbogacanie go w nowe, sztuczne elementy Opis problemu Obecnie głównym kierunkiem rozwoju interfejsów użytkownika są interfejsy dla urządzeń z wyświetlaczami dotykowymi (w szczególności smartphony oraz tablety). Tego typu interfejsy doczekały się już wielu badań dotyczących funkcjonalności i użyteczności, a ich popularność ciągle rośnie, wraz ze wzrostem ilości urządzeń na których mogą być wykorzystywane. Jedną z kolejnych możliwych dróg ewolucji interfejsów mogą być interfejsy dla aplikacji wykorzystujących rozszerzoną rzeczywistość (czyli w skrócie nałożenie wirtualnych obiektów na obiekty świata rzeczywistego, patrz 2.1). Do tej pory bardzo niewiele programów w praktyce wykorzystuje tę technologię. Podstawowymi problemami jakie stanęły przed twórcami tych aplikacji były brak jednostek obliczeniowych o wystarczającej mocy oraz wysokie koszty. Obecny postęp technologii praktycznie likwiduje ten kłopot.

8 1.2 Cel pracy 8 Nadal pozostaje jednak o wiele bardziej skomplikowany problem, jakim jest brak wzorów jak taki interfejs miałby wyglądać. Aktualnie korzysta się głównie z interfejsów które są dwuwymiarowymi obrazami, a sterowanie wymaga dodatkowych urządzeń: myszki i klawiatury - w przypadku interfejsów okienkowych, czy też w przypadku interfejsów dotykowych płaskiej powierzchni, którą możemy dotknąć i która wyświetla obraz. Elementy graficzne interfejsów związanych z rozszerzoną rzeczywistością są najczęściej wyświetlane jako obrazy trójwymiarowe, a samo sterowanie jest pozbawione dodatkowych urządzeń pośredniczących. Wymaga to całkiem innego podejścia do projektowania sposobów interakcji, a co za tym idzie prawdopodobnie będzie wymagało zmiany przyzwyczajeń samych użytkowników Cel pracy Podstawowym celem pracy jest próba stworzenia platformy ułatwiającej tworzenie interfejsu użytkownika dla aplikacji wykorzystujących wzbogaconą rzeczywistość. Platforma taka ma umożliwiać przyjmowanie poleceń od użytkownika (w postaci różnego rodzaju gestów) oraz wyświetlać obrazy powiązane z wykonywanymi gestami. Kolejnym elementem pracy jest stworzenie przykładowego interfejsu wykorzystującego tą platformę. Interfejs ten musi spełniać kilka wymagań. Przede wszystkim musi być maksymalnie intuicyjny dla użytkownika. Użytkownik podczas pierwszego kontaktu z aplikacją powinien być w stanie samodzielnie wykonać proste czynności bez konieczności wcześniejszego instruktażu. Ponadto taki interfejs nie powinien wymagać dodatkowych obiektów do komunikacji z aplikacją, o ile te elementy nie przyczynią się do jej łatwiejszej obsługi.

9 2. Wprowadzenie Zdefiniowanie dwóch głównych pojęć związanych z tematem pracy, czyli rozszerzona rzeczywistość oraz interfejsy użytkownika. Przedstawiona zostanie również krótka historia rozwoju technologii stojącej za tymi hasłami oraz jej kierunki rozwoju Rozszerzona rzeczywistość (AR) Rozszerzona rzeczywistość (z angielskiego: Augmented Reality AR) jest rozszerzeniem realnego świata o elementy wirtualne, generowane komputerowo. Takie rozszerzenie może być powiązane z dowolnymi zmysłami. Najczęściej mówi się w tym przypadku o obiektach wizualnych i akustycznych, jednak oddziaływanie na zmysł dotyku czy słuchu również mieści się w ramach tej definicji. Dodatkowym warunkiem jest to, że rozszerzona rzeczywistość powinna być interaktywna w czasie rzeczywistym. Terminem powiązanym z rozszerzoną rzeczywistością, jest rzeczywistość wirtualna. Jednak w tej drugiej użytkownik jest przenoszony w otoczenie w całości wygenerowane przez komputery, nie mające większego związku z otaczającą go rzeczywistością. Paul Milgram zaproponował używaną do dziś klasyfikację, zwaną Reality-Virtuality Continuum [1]. Mieszana rzeczywistość Środowisko rzeczywiste Rozszerzona rzeczywistość Rozszerzona wirtualność Środowisko wirtualne Reality-Virtuality Continuum Rysunek 1 - Podział mieszanej rzeczywistości Lewy koniec osi na powyższym rysunku reprezentuje każde środowisko, w którym istnieją tylko obiekty z realnego świata. Prawy koniec z kolei opisuje środowisko, w którym wszystkie elementy pochodzą ze świata wirtualnego. Pomiędzy znajduje się

10 2.1 Rozszerzona rzeczywistość (AR) 10 mieszana rzeczywistość środowisko w którym istnieją elementy zarówno wirtualne jak i rzeczywiste. W przypadku rzeczywistości rozszerzonej mówimy o obiektach wirtualnych dodanych do świata rzeczywistego (np. wirtualna lampka w rzeczywistym biurze). Rzeczywistość wirtualna opisuje świat, w którym do wirtualnego środowiska są dodawane elementy świata rzeczywistego (np. rzeczywista lampka w wirtualnym biurze). Istnieją też dwie dodatkowe wariacje samej rozszerzonej rzeczywistości. Pierwsza z nich to tzw. zmniejszona rzeczywistość (Diminished Reality). W tym przypadku usuwa się obiekty ze świata realnego, i taki przedstawia użytkownikowi. Głównym zastosowaniem takiego podejścia jest usuwanie obiektów zasłaniających widoczność (np. usunięcie lub rozmycie rąk chirurga w czasie operacji, umożliwienie żołnierzom oglądanie obiektów za ścianami), czy też usunięcie głośnych dźwięków z otoczenia, żeby móc spokojnie prowadzić rozmowę [2]. Drugą odmianą jest pośrednia rzeczywistość (Mediated Reality), modyfikująca realne obiekty, np. poprzez zmianę ich koloru Sposoby generowania rozszerzonej rzeczywistości Wyróżnia się dwa podstawowe rozwiązania służące do prezentowania świata rozszerzonej rzeczywistości użytkownikowi. Pierwszy z nich opiera się na półprzeźroczystych wyświetlaczach które przepuszczają obraz świata rzeczywistego i dodatkowo wyświetlają obiekty ze świata wirtualnego. Drugie rozwiązanie opiera się na rejestrowaniu obrazu świata rzeczywistego za pomocą kamery, dodaniu do zarejestrowanego obrazu elementów wirtualnych, a następnie pokazanie takiego obrazu użytkownikowi na ekranie (lub ekranach). Oba z powyższych rozwiązań mają swoje zalety i wady. W przypadku wyświetlaczy półprzeźroczystych najważniejszą zaletą jest większa prostota. Wystarczy jedynie generować obiekty wirtualne, świat realny jest widziany przez użytkownika bezpośrednio. Zastosowana rozdzielczość może być mniejsza niż w przypadku użycia zwykłych wyświetlaczy. Kolejną zaletą pół przeźroczystości jest też bezpieczeństwo, szczególnie jeśli użytkownik wykorzystuje wyświetlacze montowane na głowie (nazywane HMD, od Head Mounted Display). Kiedy pojawią się problemy z zasilaniem, w przypadku użycia zwykłych wyświetlaczy użytkownik staje się praktycznie ślepy. Główną zaletą przemawiającą na korzyść zwykłych wyświetlaczy są większe możliwości komponowania sceny. Wyświetlacze optyczne nie umożliwiają całkowitego zasłonięcia obiektów realnych. Będą one zawsze widoczne dla użytkownika. Zwykłe wyświetlacze są pozbawione tej wady, obiekty można dowolnie zasłaniać i komponować. Nawet jeżeli w polu widzenia pojawi się bardzo jasny element, można go w całości zasłonić. Łatwiej jest też dostosować jasność obiektów rzeczywistych i wirtualnych. Ich dodatkową zaletą jest możliwość synchronizacji opóźnienia generowania obiektów wirtualnych z obserwowanym światem rzeczywistym. Generowanie obiektów wirtualnych w

11 2.1 Rozszerzona rzeczywistość (AR) 11 zależności od zjawisk otaczającego świata zawsze będzie następowało z pewnym opóźnieniem. W przypadku wyświetlaczy półprzeźroczystych takie opóźnienie jest prawie zawsze widoczne dla użytkownika. Innym sposobem podziału urządzeń wyświetlających rozszerzoną rzeczywistość jest sposób korzystanie z nich przez użytkownika. Podstawowe dwa sposoby wykorzystywane obecnie to wyświetlacze montowane na głowie i wyświetlacze zewnętrzne. Pierwsze z nich umożliwiają przeniesienie całego pola widzenia użytkownika w świat rozszerzonej rzeczywistości, drugie rozwiązanie przenosi tylko fragment pola widzenia. Analogiczny model istnieje w przypadku wrażeń słuchowych. Do dźwięków docierających do użytkownika można dodać nowe albo wytłumić docierające do niego dźwięki, a następnie odtworzyć zmiksowane dźwięki wirtualne wraz nagrywanymi na bieżąco przy użyciu mikrofonu Problemy związane z realizacją koncepcji rozszerzonej rzeczywistości Zastosowanie wirtualnej rzeczywistości niesie za sobą kilka technicznych problemów, których rozwiązanie nie zawsze jest możliwe. Najważniejszy problem związany jest z dokładnością określenia położenia obiektów rzeczywistych. Większość zastosowań wymaga dość precyzyjnej informacji o lokalizacji interesujących użytkownika obiektów. Jednym ze sposobów ominięcia tego problemu jest stosowanie specjalnych tagów. Tagami najczęściej są proste, czarnobiałe obrazki przedstawiające nieskomplikowany wzór. Odpowiednie oprogramowanie może potem dość szybko znaleźć takie obiekty w obrazie z kamery i określić ich dokładną pozycję. Kolejnym problemem jest opóźnienie wyświetlania obrazu. Każdy z elementów związanych z generowaniem wirtualnej rzeczywistości generuje pewne opóźnienie. Na początku kamera musi zarejestrować obraz, który jest następnie przesyłany do komputera, kolejnym etapem jest rozpoznanie punktów orientacyjnych na obrazie, a następnie nałożenie wirtualnych elementów, w końcu zaś przesłanie wygenerowanego obrazu na wyświetlacz i wyświetlenie. Głowa człowieka może bez problemu obrócić się o 50 stopni w ciągu sekundy, co daje obrót o jeden stopień w 20ms. Kamera rejestrująca obraz z częstotliwością 60Hz potrzebuje ok. 16ms żeby zarejestrować jedną klatkę obrazu. Podobnie wyświetlacz odświeżający obraz z częstotliwością 60 Hz potrzebuje 16ms na wyświetlenie obrazu. Same te dwa składniki mogą wygenerować opóźnienie ok. 32ms. W tym czasie głowa obróci się o 1.5 stopnia. Oznacza to, że jeżeli obserwowane obiekty będą oddalone o 2 m, ich

12 2.1 Rozszerzona rzeczywistość (AR) 12 oglądana pozycja będzie przesunięta o 5cm. Jednak po dodaniu do tego opóźnienia układu generującego obraz, przesunięcie będzie dużo większe. Takie opóźnienie można eliminować poprzez zwiększanie częstotliwości pracy kamery, monitora, optymalizacje algorytmów oraz poprzez wykorzystanie urządzeń wbudowanych Zastosowania rozszerzonej rzeczywistości Jednym z pierwszych zastosowań dla AR było wspomaganie pilotów wojskowych. Korzystają oni z półprzeźroczystych wyświetlaczy na hełmach albo nad kokpitem. Dzięki temu mają szybki dostęp do podstawowych informacji związanych z lotem i nawigacją. Dodatkowo systemy takie mogą ułatwiać celowanie z broni dostępnej w samolocie lub helikopterze. Użycie AR może być również pomocne w produkcji oraz naprawie różnego rodzaju sprzętów. Pozwala to na wyświetlanie instrukcji nie jako zwykły tekst z obrazkami, ale jako trójwymiarowa wizualizacja nad przedmiotem, pokazująca kolejne kroki potrzebne do wykonania danej czynności. W życiu codziennym AR mogłaby być często wykorzystywana do adnotacji i wizualizacji. Przechodząc obok osób czy obiektów, moglibyśmy natychmiast otrzymać informacje na ich temat 1. Przykładowo na spotkaniu towarzyskim możliwe byłoby szybkie sprawdzenie kim są osoby, z którymi przebawmy i których jeszcze nie znamy. Przechodząc koło półek z książkami, moglibyśmy otrzymać informacje na temat zawartości mijanych książek. Od kilku lat na smartphonach pojawiają się pierwsze komercyjne aplikacje które umożliwiają właśnie uzyskanie w łatwy sposób informacji na temat obiektów znajdujących się w naszym otoczeniu 2. Ostatnim, obecnie najpowszechniej wykorzystywanym zastosowaniem AR jest rozrywka. Gry posługujące się AR dostarczają nowych wrażeń dla graczy, pozwalając wykorzystywać przedmioty codziennego użytku jako elementy gier. Na przykład siedząc za kierownicą własnego (zaparkowanego) auta, można się poczuć jak za kierownicą bolidu formuły 1. Szczególnie intensywny rozwój obserwuje się na rynku urządzeń mobilnych Rozwój technologii Rozwój systemów związanych z rozszerzoną rzeczywistością jest mocno powiązany z postępem technologii. Jako pierwsze urządzenie związane z dziedziną AR uznaje się Sensorame[3]. Było to urządzenie stworzone w 1962, rozszerzające możliwości kina. Za jego pomocą można było odbyć 10 minutową przejażdżkę motocyklem Np.: 3 Np.:

13 2.2 Natural User Interface (NUI) 13 odczuwając jednocześnie wibracje, powiew wiatru, odgłosy otoczenia, a nawet zapachy. Wyprzedziło ono jednak swoje czasy i nie odniosło sukcesu. Kolejnym ważnym okresem były lata 90 XX wieku, kiedy zaawansowanie technologia osiągnęła poziom pozwalający na tworzenie pierwszych systemów z jakimi spotykamy obecnie. To w 1990 roku został ukuty termin Augmented Reality. Pierwsze urządzenia typu HMD (Head Mounted Display) były dużymi, nieporęcznymi kaskami. Dzisiaj do osiągnięcia tego samego efektu, wystarczy urządzenie, nie przekraczające rozmiarem zwykłych okularów. Trwają też prace nad soczewkami potrafiącymi wyświetlać obraz bezpośrednio przed oczami [4], eliminujące potrzebę zakładania dodatkowych elementów (jak np. okulary) na głowę. Dążenia minimalizacji obejmują również kamery, niedawno została zaprezentowana kamera mająca średnicę jednego milimetra[5]. Urządzenia odpowiedzialne za obliczenia również stają się coraz mniejsze. W chwili obecnej średniej klasy smartphone posiada większą moc obliczeniową niż przeciętne komputery kilka lat temu. Umożliwia to obróbkę obrazu z coraz większą szybkością i coraz lepszą dokładnością na coraz mniejszych urządzeniach. Stąd też ciągły wzrost zainteresowania AR w technologii urządzeń mobilnych w ostatnich latach Natural User Interface (NUI) Historia interfejsów użytkownika przed NUI Historia interfejsów umożliwiających komunikację człowieka z komputerami rozpoczęła się w momencie powstania pierwszych maszyn liczących datowaną na okres XVII wieku[6]. Od tamtego czasu nastąpił ciągły rozwój w tej dziedzinie, którego głównym celem jest ułatwianie komunikacji użytkownik - maszyna. Pierwszą maszyną, którą uznaje się za programowalny komputer ogólnego przeznaczenia była maszyna analityczna Charlesa Babbage a, zaprojektowana w 1822r, Komunikacja odbywała się tutaj za pomocą fizycznego manipulowania pokrętłami, korbami i kołami zębatymi[7]. Podobne rozwiązania w późniejszych czasach były wykorzystywane w wielu innych maszynach liczących. Jako przykład można podać wojskowe komputery odpowiedzialne za kontrolowanie dział, wykorzystywane przez amerykańską marynarkę wojenną po II wojnie światowej [8]. Kolejnym krokiem w ewolucji było wykorzystanie kart perforowanych, na których były zapisywane dane i polecenia dla komputera, które zaczęły być wykorzystywane przez firmę IBM od lat 50 XX wieku, w komputerach elektronicznych. Z kolei w latach 60 do użycia weszły pierwsze klawiatury, a wraz z nimi interfejsy tekstowe, zwane powszechnie Command Line Interface (CLI). W międzyczasie powstały jeszcze

14 2.2 Natural User Interface (NUI) 14 dwa ciekawe urządzenia. W 1952 stworzono prototyp pióra świetlnego, urządzenia w kształcie długopisu, umożliwiającego, w połączeniu z monitorem CRT, określanie pozycji pióra względem ekranu. W tym samym roku został również wymyślony manipulator kulkowy (Trackball). Urządzenia te nie zyskały nigdy większej popularności, ale oba są uważane za prekursorów myszy komputerowej. Pióro świetle znalazło zastosowanie głównie do rysowania obiektów, obecnie jednak zostało wyparte przez tablety i ekrany dotykowe. Z kolei manipulator kulkowy był głównie wykorzystywany przez wojsko w zastosowaniach militarnych, do tej pory używany jest również przez graczy komputerowych. Kolejnym ważnym urządzeniem związanym z interfejsem użytkownika jest myszka. Pierwszy jej projekt powstał w 1963r. Składała się ona wtedy z jednego przycisku i dwóch kół zębatych (co pozwalało na ruch względem jednej osi). W 1972 roku powstała mysz w której zastąpiono rolki metalową kulką, co umożliwiło poruszanie się myszki w dowolnym kierunku. Myszka optyczna została stworzona w 1980r. Pierwsze tego typu rozwiązania wymagały specjalnych czarno-białych podkładek. Do momentu pojawienia się graficznych interfejsów użytkownika (GUI) myszki te nie miały wielkiego zastosowania. Prace nad tym rozwiązaniem rozpoczęły się w latach XX wieku, ale pierwsze komercyjne komputery wykorzystujące GUI pojawiły się dopiero w latach 80. Pionierskie prace nad tego typu rozwiązaniem prowadzone były w centrum badawczym Xerox PARC. Z tej firmy też wywodzi się pierwszy komercyjny komputer z GUI Xerox Star Natomiast pierwszym komputerem przeznaczonym dla konsumentów był sprzęt firmy Apple. Historia ekranów dotykowych rozpoczęła się w 1965 kiedy to powstał pierwszy tego typu ekran. W latach 80 zaczęto powszechnie wykorzystywać ekrany dotykowe w stacjach roboczych. Szybko jednak okazało się, że praca z poziomymi wyświetlaczami dotykowymi po dłuższym czasie staje się bardzo uciążliwa. Ten dość poważny problem ergonomiczny jest wymieniany do tej pory jako jeden z klasycznych przykładów niezrozumienia potrzeb użytkownika. Zyskał on też swoją nazwę gorilla arm (goryla ręka). Ekrany dotykowe znalazły zastosowanie w dość specyficznych urządzeniach (między innymi w bankomatach czy kioskach informacyjnych). Dopiero od kilku lat technologia ta upowszechnia się wśród produktów konsumenckich. Kolejnym krokiem w rozwoju ekranów dotykowych była technologia multitouch, która narodziła się w 1984r. w laboratoriach Bell a. Umożliwiała on manipulowanie obrazem z wykorzystaniem więcej niż jednego palca. Można wyróżnić trzy czynniki które szczególnie wpływają na rozwój interfejsów użytkownika. Pierwszym z nich jest rozwój technologii, a co za tym idzie wzrost mocy obliczeniowej komputerów. Dzięki większej mocy komputer może generować bardziej skomplikowane kształty (coraz bardziej zaawansowane interfejsy graficzne)

15 2.2 Natural User Interface (NUI) 15 oraz przetwarzać więcej danych wejściowych związanych z użytkownikiem (począwszy od obsługi myszki, po rozpoznawanie ruchów ciała użytkownika). Drugim elementem mającym wpływ na rozwój jest rynek. Firmy chcąc zaproponować klientom nowe produkty, inwestują w projektowanie i tworzenie nowych metod komunikacji użytkowników z ich produktami. Jako przykłady można wymienić powstanie graficznych interfejsów jako elementy kolejnych systemów operacyjnych, czy też nowe sposoby sterowania rozgrywką we współczesnych konsolach, takie jak WiiMote 4 czy Kinnect 5. Trzecim czynnikiem jest wyobraźnia twórców. To projektanci wymyślają, w jaki sposób można wykorzystać rozwój mocy i możliwości komputerów, żeby ułatwić komunikację z maszynami, sprawiając by interakcja urządzenie użytkownik była jeszcze bardziej atrakcyjna Naturalne interfejsy użytkownika Ciężko jednoznacznie zdefiniować czym są naturalne interfejsy użytkownika - NUI (Natural User Interface). Najprostszym sposobem może być porównanie ich do innych typów interfejsów takich jak interfejs graficzny (GUI) czy interfejs tekstowy (CLI). W takim przypadku można spróbować użyć następującej definicji: Natural User Interface jest interfejsem użytkownika zaprojektowanym w celu ponownego wykorzystania istniejących umiejętności dla interakcji bezpośrednio z treścią. [9] Takie zdefiniowanie niesie ze sobą 3 ważne implikacje: NUI są projektowane. Dla konkretnych zastosowań i dla konkretnej grupy odbiorców wymagane są odmienne podejścia. Nie da się stworzyć jednego uniwersalnego szablonu interfejsu, który nadałby się dla większości zastosowań (podobnie jak to wygląda w GUI). W każdym przypadku projekt powinien uwzględniać, jakiego typu treścią będzie się operować w danym zastosowaniu. Koniecznym jest także wzięcie pod uwagę jaka jest docelowa grupa odbiorców i jak zaawansowane są ich umiejętności. NUI powinny wykorzystywać umiejętności które użytkownik już posiada. W celu korzystania z interfejsów typu GUI czy CLI należy wcześniej nauczyć się posługiwać takimi elementami jak myszka czy klawiatura oraz zrozumieć pojęcia okna (aplikacji), menu i kursora. W przypadku interfejsów naturalnych powinno się maksymalnie wykorzystywać umiejętności związane ze wzajemnym oddziaływaniem człowieka z człowiekiem, czy też z innymi przedmiotami życia codziennego. Interakcja z komputerem powinna odbywać się przez różnego rodzaju intuicyjne akcje takie jak przyciskanie,

16 2.2 Natural User Interface (NUI) 16 przesuwanie (i inne podobne gesty) lub komunikację werbalną. Same interfejsy powinny w jakiś sposób odwoływać się do elementów świata naturalnego, a nie być abstrakcyjnym bytem. Warto też wspomnieć o jeszcze jednej różnicy. GUI i CLI są definiowane m.in. poprzez używane urządzenia wejściowe, takie jak klawiatura i myszka. W przypadku NUI urządzenie wejściowe nie jest ściśle określone. Może to być zarówno ekran dotykowy (używany np. w operowania na danych dwuwymiarowych), kamera (do rozpoznawania gestów całego ciała), mikrofon czy wiele innych urządzeń. NUI operują bezpośrednio na treści. W przypadku GUI żeby móc operować treścią potrzebne są: okna, ikony, menu. Interfejsy naturalne koncentrują się na treści i na niej też skupia się interakcja. Nie oznacza to, że w takim przypadku nie są używane inne kontrolki takie jak przyciski czy ikony. W razie potrzeby są one używane (a nawet konieczne), lecz są one wtórne wobec samej treści Przyszłość obecnych interfejsów Wydawać by się mogło, że korzyści jakie niesie ze sobą NUI mogą spowodować, że w przyszłości zostanie zapomniane czym były interfejsy graficzne (GUI) i tekstowe (CLI). Jednak do tej pory pomimo pojawiania się coraz to nowszych sposób komunikacji z komputerem, starsze metody wciąż znajdowały (i znajdują) zastosowanie. Komunikacja z użytkownika z maszynami liczącymi rozpoczęła się od różnego rodzaju pokręteł i przekładni. Dziś tego typu komunikacja jest używana na przykład w urządzeniach związanych z dźwiękiem, gdzie pokrętła dalej stanowią najwygodniejszy sposób regulowania ustawień. Za pewnego rodzaju kontynuację kart perforowanych można uznać różnego rodzaju karty m.in. kredytowe, z ich pomocą przekazujemy komputerom dane (a czasem i algorytmy) pozwalające zidentyfikować użytkownika i wykonać żądane przez niego czynności. Kiedy na rynek komercyjny wchodziły pierwsze systemy z interfejsami graficznymi, wiele osób wieszczyło kres interfejsów tekstowych. Te jednak okazały się niezastąpione do wielu operacji wymagających pracy zdalnej czy szybkości działania. Naturalne interfejsy również nie nadają się do wszystkich zastosowań, gdyż nie wszystkie aplikacje mogą wykorzystywać ich możliwości. Programy wymagające dużej precyzji, narzucają konieczność zastosowania urządzeń wejściowych które taką zapewnią. Ekrany dotykowe i podobne narzędzia najczęściej przekazują ruch użytkownika w skali 1:1 w stosunku do okna aplikacji, co uniemożliwia precyzyjne wskazywanie punków czy linii. Również aplikacje wymagające wprowadzanie większych ilości tekstu zdecydowanie łatwiej obsługiwać, mając do dyspozycji fizyczną klawiaturę niż płaskie podłoże.

17 2.3 Połączenie NUI i AR obecnie i w przyszłości Połączenie NUI i AR obecnie i w przyszłości Przyszłość technologii Obecnie najpopularniejszymi urządzeniami wykorzystującymi naturalne interfejsy użytkownika, jak i idee rozszerzonej rzeczywistości są urządzenia mobilne, takie jak smartphony czy tablety. Wynika to z kilku faktów. Po pierwsze wszystkie nowe sprzęty tego typu są wyposażone w ekrany dotykowe, a większość z nich nie posiada klawiatury. W takim przypadku aplikacje oparte o klasyczne interfejsy nie sprawdzają się co powoduje, że rozwój NUI w technologii urządzeń mobilnych jest najbardziej widoczny. Producenci oprogramowania są zobligowani przez rynek do tworzenia aplikacji, których interfejsy będą jak najprostsze w obsłudze. Klasycznym przykładem może być firma Apple, która po wypuszczeniu na rynek telefonu z ekranem dotykowym i łatwym w obsłudze interfejsem, odniosła duży sukces. Wcześniej wiele firm oferowało bez większych sukcesów urządzenia z interfejsami dotykowymi, jednak pozostawiało w urządzeniach klasyczny interfejs. Poza urządzeniami mobilnymi, na rynku dostępny jest bardzo mały wybór urządzeń z ekranami dotykowymi, chociaż i na tym polu widać w perspektywie czasu dużo zmian (w 4 kwartale 2011 zostało sprzedanych ok. 149 milionów smartphonów 6, w porównaniu do sprzedanych 54 milionów tabletów za cały 2011 rok 7 ). Popularność AR na urządzeniach mobilnych wynika z tego, że posiadają one w sobie trzy najważniejsze elementy wymagane dla rozszerzenia rzeczywistości: kamerę, możliwość uruchamiania aplikacji i wyświetlacz. Również moc obliczeniowa w tego typu urządzeniach wzrosła ostatnimi czasy na tyle, że staje się możliwa coraz dokładniejsza obróbka obrazu z kamery w czasie rzeczywistym. Pomimo faktu, że rozszerzona rzeczywistość w takim przypadku jest mocno ograniczona, dla wielu zastosowań jest ona jednak w zupełności wystarczająca. Obserwując obecny rozwój technologii można się spodziewać, że wkrótce obecne urządzenia mobilne mogą zostać zastąpione przez sprzęt umożliwiający wyświetlanie obrazu bezpośrednio przed naszymi oczami. Takie podejście miałoby niewątpliwe zalety dla użytkownika, takie jak brak konieczności trzymania przed sobą przedmiotu, a co za tym idzie większy kąt widzenia modyfikowalny przez program. Wadą takiego rozwiązania jest natomiast problem komunikacji użytkownika z komputerem (o czym w następnym podpunkcie). Inne podejście sugeruje wykorzystanie już istniejących miejsc, na których można by wyświetlić dodatkowe informacje. Przykładem dla takiego rozwiązania jest projekty szyby samochodowej, która wyświetla informacje o tym gdzie kierowca ma jechać, uwzględniając widok ulicy znajdującej się przed samochodem (taki dużo

18 2.3 Połączenie NUI i AR obecnie i w przyszłości 18 wygodniejszy GPS) [10]. Innymi miejscami w których ta koncepcja może znaleźć zastosowanie są: szyby w muzeach, ogrodach zoologicznych pozwalające na pokazanie dodatkowe informacji na temat oglądanego eksponatu Rozwój interfejsów Naturalne interfejsy użytkownika dla urządzeń z ekranami dotykowymi swój najważniejszy etap rozwoju mają już za sobą. Na dzień dzisiejszy zostały już opracowane najważniejsze zasady związane z projektowaniem będące w szerokim użyciu. Od czasu do czasu pojawiają się nowe podejścia do takich interfejsów, lecz bazują one na już opracowanych zasadach, nie wprowadzając większych rewolucji. Tak więc ich dalszy rozwój będzie już właściwie tylko ewolucją poprawiającą szczegóły komunikacji pomiędzy użytkownikiem, a komputerem. Prawdziwym wyzwaniem stojącym przed wszystkimi projektantami, są trójwymiarowe interfejsy użytkownika. Pomimo wielu lat badań nad tym problemem, do tej pory nie udało się znaleźć jakiś dobrych standardów mogących mieć zastosowanie w aplikacjach przyszłości. Co więcej, na dzień dzisiejszy wszystko wskazuje na to, że interfejsy tego typu będą musiały być projektowane zawsze pod kątem aplikacji, bez specjalnej możliwości użycia podobnych schematów w aplikacjach innego typu. Podstawowym problemem pojawiającym się w przypadku takich interfejsów jest utrudniona interakcja użytkownika z fizycznymi obiektami. Obsługując aplikacje przy pomocy ekranu dotykowego, możemy poczuć kiedy wykonujemy jakąś akcje, o tyle w przypadku interfejsów 3D możemy conawyżej machać rękami w powietrzu. Jednym z rozwiązań tego problemu może być użycie specjalnych kontrolerów, które np. wibrowałyby w momencie dotknięcia wirtualnego obiektu widzianego przez użytkownika. Kolejnym problemem, jest brak pomysłów na użyteczne menu w aplikacjach. Jeśli chcielibyśmy skorzystać z aplikacji pozwalającej zaprojektować wyposażenie naszego pokoju, względnie łatwo sobie wyobrazić przesuwanie wirtualnych mebli po pomieszczeniu, gdyż jest to naturalna interakcja. Natomiast jeśli chcielibyśmy, w jakiś intuicyjny sposób wybrać nowy mebel dla pokoju pojawia się problem. Czy w takim przypadku aplikacja powinna przenieść nas w wirtualną podróż po sklepie meblowym, czy też powinniśmy zobaczyć listę dostępnych mebli i wybrać coś z tej listy, a następnie jak w intuicyjny sposób przejść z trybu przesuwania mebli do wyboru i jak łatwo wybrać interesujący nas mebel. Pomimo wielu badań w tej dziedzinie [11], w chwili obecnej nie widać większego rozwoju na rynku aplikacji związanych z rozszerzoną rzeczywistością (a także z wirtualną) i naturalnymi interfejsami użytkownika. Istnieje kilka interpretacji tego faktu. Pierwszym powodem tego zjawiska może być to, że do tej pory nie udało się odkryć fundamentalnych sposobów interakcji z interfejsami 3d, których

19 2.3 Połączenie NUI i AR obecnie i w przyszłości 19 zastosowanie umożliwiłoby stworzenie użytecznych interfejsów. Drugą interpretacją jest fakt, że firmy jeszcze nie są przekonane że tego typu aplikacje mogłyby im przynieść jakiś większy komercyjny sukces. Istnieje też możliwość, iż już odkryliśmy wszystkie najważniejsze podstawowe techniki interakcji trójwymiarowych, ale sama ta wiedza, to jeszcze za mało żeby móc stworzyć użyteczne interfejsy. Konieczne są dalsze badania nad tym, co spowoduje poprawę jakości korzystania z aplikacji tego typu. Na dzień dzisiejszy trudno j prognozować w jakim kierunku potoczą się dalsze losy takich interfejsów Możliwości zastosowań Wydaje się, że na chwilę obecną można wyróżnić trzy podstawowe kierunki rozwoju aplikacji wykorzystujących NUI i AR, takie jak: wyświetlanie informacji dotyczących otoczenia użytkownika, rozrywka i różne zastosowania specjalistyczne. Poniżej zostaną one omówione dokładniej Wyświetlanie informacji dotyczących otaczającej rzeczywistości Dzięki aplikacjom tego typu, użytkownik może na bieżąco uzyskiwać informacje o obiektach znajdujących się wokół niego. W chwili obecnej do tego typu zastosowań najczęściej używane są smartphony, ale w przyszłości rozwój technologii może przyczynić się do popularności okularów czy soczewek wyświetlających informacje bezpośrednio przed oczami, bez potrzeby trzymania przed sobą dodatkowego urządzenia. Aktualnie komercyjne aplikacje 8 tego typu wyświetlają głównie informacje o ciekawych punktach w naszym otoczeniu, takich jak np. restauracje, szczyty górskie. Pojawiają się też pierwsze aplikacje potrafiące rozpoznawać twarze a następnie wyszukiwać informacje o widocznych osobach w sieci 9. Dalszy rozwój tego typu aplikacji będzie związany z coraz lepszymi algorytmami rozpoznawania obiektów widzianych okiem kamery, a także, co bardzo ważne, z rozbudowywaniem i dokładniejszym wyszukiwaniem informacji o obiektach w bazach danych. Być może za jakiś czas idąc ulicą będziemy mogli od razu dowiedzieć się kim są mijane przez nas osoby, a przechodząc między regałami w bibliotece będziemy od razu widzieć która książka jest warta wypożyczenia. Rozrywka Jednym z ciekawych trendów wśród gier w ostatnich latach, jest coraz większa popularność rozgrywek, wymagających czegoś więcej niż tylko siedzenia przed monitorem w fotelu i sterowania za pomocą prostych kontrolerów. Przykładem jest wielki sukces konsoli Nintendo Wii wyposażonej w specjalny kontroler Wii Mote, 8 Np. 9 Np.

20 2.3 Połączenie NUI i AR obecnie i w przyszłości 20 umożliwiający granie w gry symulujące np. rozgrywki w tenisa, innym przykładem jest konsola XBOX wraz Kinnectem specjalnym urządzeniem rozpoznającym ruchy użytkownika, dzięki czemu może on grać bez użycia dodatkowych kontrolerów. Prowadzi to do przypuszczeń, iż dalszy rozwój tego typu urządzeń spowoduje m.in. powstanie gier podobnych do obecnego PaintBalla, w których gracze biegając w zwykłych ubraniach w miejscu rozgrywki, będą się czuli jakby byli w pełni uzbrojonymi żołnierzami na polu walki[12]. Podobnie osoba siedząca w zaparkowanym samochodzie, będzie mogła poczuć się częściowo jak gdyby jechała nim po torze wyścigowym. Możliwości kreacji tego typu gier są właściwie nieograniczone. Warto też wspomnieć, że już obecnie na urządzeniach mobilnych dostępne są gry pozwalające korzystać z rozszerzonej rzeczywistości. Są one jednak dość proste i jeszcze nie zyskują większej popularności. Zastosowania specjalistyczne Ostatnim podstawowym kierunkiem rozwoju tego typu aplikacji, jest szeroka gama zastosowań specjalistycznych, czyli takich gdzie program powstaje dla wąskiej grupy specjalistów, pomagając im wykonywać pracę. Przykładami takich zastosowań mogą być: aplikacja medyczna, w której lekarz ma możliwość oglądania trójwymiarowych wyników badań skaningowych, trzymając oglądany model w rękach, czy też program wspomagający przeglądanie planów dużych konstrukcji inżynierskich (np. samolotów, dużych obiektów budowlanych), w połączeniu z już istniejącymi elementami konstrukcji.

21 3. Platforma rozpoznawania gestów Opis idei stojącej za opisywaną platformą rozpoznawania gestów oraz przedstawienie stawianych jej wymagań. Propozycja architektury tego rodzaju platformy Opis koncepcji Koncepcja opisywanej platformy polega na ułatwieniu tworzenia aplikacji które wykorzystują rozszerzoną rzeczywistość i wymagają możliwości wydawania poleceń programowi bez użycia standardowych urządzeń takich jak klawiatura czy myszka. Program wykorzystujący możliwości platformy będzie otrzymywał informację o tym jakie w danym momencie są widoczne markery oraz jakie gesty zostały wykonane. Sam program powinien decydować jakie obiekty powinny się pojawić i gdzie należy je wyświetlić względem obserwowanej rzeczywistości (obiekty są nakładane na obraz rejestrowany przez kamerę). Markerami (zwanymi też tokenami) nazywamy punkty charakterystyczne widziane przez kamerę. W przypadku omawianej aplikacji będą to głównie kwadratowe obrazki z zakodowaną informacją (Rysunek 8). Pod pojęciem gestów rozumiemy sekwencje ruchów markera wykonane przez użytkownika przed kamerą. Samo rozpoznawanie gestów można wykorzystać do sterowania innymi, już istniejącymi aplikacjami. Przykładem może być systemowy Paint (gdzie odpowiednie gesty były by odpowiedzialne za wybór narzędzia do rysowania, koloru oraz momentu rozpoczęcia i kończenia trybu rysowania), czy też oglądanie różnego rodzaju map Istniejące rozwiązania Poza rozwiązaniami akademickimi 10 na chwilę obecną brakuje rozwiązań które łączą rozszerzoną rzeczywistość z bezdotykowymi interfejsami użytkownika. Samo AR jest najczęściej wykorzystywane w urządzeniach mobilnych jako źródło dodatkowych informacji o miejscu w którym się znajdujemy (patrz 2.3.4). Bezdotykowe interfejsy 10 Np.:

22 3.3 Zdefiniowanie wymagań funkcjonalnych 22 są najczęściej wykorzystywane przez gry i aplikacje powiązane z Kinnectem (patrz 4.2.2). W tym przypadku gesty ograniczają się głównie do wyboru pozycji w menu poprzez przytrzymanie ręki nad elementem który chcemy wybrać Zdefiniowanie wymagań funkcjonalnych W przyjętym modelu interakcji użytkownika z maszyną, cała komunikacja odbywać się będzie za pomocą różnego typu gestów. Dlatego też ich rozpoznawanie stanowi kluczową część projektu. Wymagania stawiane platformie można podzielić na dwie podstawowe grupy: wymagania odnoszące się do algorytmu rozpoznającego gesty, wymagania odnoszące się do architektury takiej platformy. Poniżej zostaną omówione obie grupy wymagań Wymagania odnośnie algorytmu rozpoznającego gesty Szybkość działania i minimalizacja opóźnień W przypadku naturalnych interfejsów użytkownika dość istotną cechą jest czas reakcji systemu na ruchy użytkownika. Im jest on krótszy tym łatwiejsze jak i również przyjemniejsze jest korzystanie z aplikacji dla użytkownika. Dlatego też gesty powinny być rozpoznawane jak najszybciej po ich wykonaniu (w czasie rzędu kilkudziesięciu - kilkuset milisekund). Pewne opóźnienia będą spowodowane przez elementy sprzętowe, dlatego też sam algorytm rozpoznawania gestów musi działać w sposób szybki, minimalizujący opóźnienia. Przy optymalizacji algorytmu konieczne jest również uwzględnienie możliwości jednoczesnego śledzenia wielu punktów, gdzie każdy z nich może mieć przypisane wiele gestów. Uwzględnianie sześciu stopni swobody W przypadku klasycznego rozpoznawania gestów w urządzeniach z ekranami dotykowymi (lub z użyciem kursora i myszki) wymagane jest uwzględnienie tylko dwóch stopni swobody (poruszania kursorem wzdłuż dwóch prostopadłych osi). W przypadku interfejsów uwzględniających rozszerzoną rzeczywistość konieczne jest rozpoznawanie ruchów w trzech wymiarach. Dodatkowo w zależności od używanego urządzenia peryferyjnego możliwe będzie też rozpoznawanie kątów nachylenia obiektu. W przestrzeni trójwymiarowej możliwe jest opisanie trzech kątów: rotacji względem osi kamera - obiekt, pochylenia względem osi prostopadłych względem siebie pochylenia osi pomiędzy kamerą a obiektem.

23 3.3 Zdefiniowanie wymagań funkcjonalnych 23 Istnieją też inne możliwości opisu nachylania obiektu, ale są one jednoznaczne z przyjętym powyżej. Daje nam to w sumie 6 stopni swobody - 3 stopnie związane z położeniem punktu w przestrzeni i 3 stopnie związane z jego nachyleniem. Dlatego algorytm rozpoznający gesty użytkownika powinien móc rozpoznać gesty uwzględniające wszystkie te stopnie swobody. Rozpoznawanie ruchów w mniejszej ilości kierunków również ma sens, ale znacznie ograniczy możliwości aplikacji. Możliwość uwzględniania tylko wybranych stopni swobody Pewna grupa gestów będzie mogła być definiowana tylko dla wybranych stopni swobody (np. nie uwzględniająca kątów nachylenia obiektu). W przypadku tak zdefiniowanego gestu, algorytm powinien nie brać pod uwagę zmian związanych z pomijanymi stopniami swobody w czasie wyszukiwania danego gestu. Takie ograniczenie wpłynęłoby na łatwiejsze wykonywanie prostych gestów, gdyż pewne odchylenia w nieistotnych kierunkach byłyby nie uwzględniane (np. gesty opierające się tylko na ruchu po płaszczyźnie prostopadłej względem kamery, gdzie nie jest istotny ruch do przodu lub do tyłu). Powodowałoby to, że rozpoznawanie takich gestów mogłoby być szybsze. Uwzględnienie braku jednoznacznego początku i końca gestu W przypadku interfejsów dotykowych, początek i koniec gestu jest określany od momentu przyłożenia palca do ekranu do momentu jego podniesienia. W przypadku myszki i kursora, gesty określa się najczęściej przy pomocy kliknięcia (np. prosty gest otwierający plik, składający się z dwóch kliknięć). W przypadku opisywanego interfejsu obiekt będący odpowiednikiem kursora, będzie widoczny przez większość czasu przez urządzenie rejestrujące jego położenie, co spowoduje, że nie będzie możliwości jednoznacznego zasygnalizowania początku i końca gestu. Algorytm odpowiedzialny za jego rozpoznawanie, powinien sam rozpoznać kiedy gest się zaczyna, a kiedy kończy Wymagania związane z architekturą Możliwość podmiany modułów Z uwagi na badawczy rodzaj projektu, ważnym elementem jest podział całej platformy na moduły. Taki podział umożliwi wymianę pojedynczych komponentów na inne, bez konieczności zmiany pozostałych. Dzięki temu, można w łatwy sposób przetestować różne algorytmy rozpoznające gesty oraz zmieniać urządzenia peryferyjne śledzące ruchy użytkownika. 11 Implikuje to brak możliwości tworzenia gestów zawierających w sobie inne gesty. Czyli w przypadku kiedy zdefiniowano gest polegający na ruchu kolejno: w górę, w lewo i w prawo, to inny gest zdefiniowany jako ruch kolejno: w górę, w lewo, w prawo i w dół, może nie zostać rozpoznany.

24 3.4 Propozycja architektury 24 Łatwy sposób definiowania nowych gestów Poza samym rozpoznawanie gestów, istotnym elementem jest ich definiowanie. Sposób definiowania gestów powinien umożliwiać wykorzystywanie w gestach wszystkich sześciu stopni swobody oraz dawać możliwość definiowania, które stopnie swobody powinny być uwzględniane przez algorytm w trakcie rozpoznawania gestu Propozycja architektury W celu najlepszego spełnienia wymagań stawianych platformie można z niej wydzielić rdzeń platformy oraz trzy wymienne moduły, które będzie można zastępować w razie potrzeby. Każdy z nich powinien być na swój sposób niezależny od pozostałych, tak żeby zamiana pojedynczego modułu na inny, wykorzystujący inne algorytmy lub urządzenia peryferyjne, była jak najprostsza.

25 3.4 Propozycja architektury 25 Aplikacja Rdzeń platformy Urządzenia peryferyjne Współrzędne aktualnie widocznych markerów Rozpoznany gest Współrzędne widocznych markerów Lista nasłuchiwanych gestów Lista obiektów do wyświetlenia Współrzędne obiektów Moduł przetwarzania danych z urządzeń peryferyjnych Moduł rozpoznawania gestów Moduł tworzenia rozszerzonej rzeczywistości Rysunek 2 - Schemat architektury platformy

26 3.4 Propozycja architektury 26 Moduł przetwarzania danych z urządzeń peryferyjnych Szkielet aplikacji Moduł tworzenia rozszerzonej rzeczywistości Moduł rozpoznawania gestów Lista obiektów do wyświetlenia Lista nasłuchiwanych gestów Ruch markerem Współrzędne aktualnie widocznych markerów Współrzędne obiektów Współrzędne widocznych markerów Reakcja na rozponany gest Rozpoznany gest Rysunek 3 - Opis komunikacji Opis modułów Rdzeń platformy Jest to część platformy odpowiedzialna za współpracę wszystkich pozostałych modułów. W ramach tego zadania powinny być zbierane informacje o widocznych punktach charakterystycznych (czyli takich, które są brane pod uwagę w momencie wyszukiwania gestów i nakładania obiektów na widzianą przez kamerę rzeczywistość) oraz ich dokładnym położeniu. Do zadań rdzenia platformy będzie należało odbieranie informacji o zdarzeniach związanych z rozpoznaniem zdefiniowanych gestów, a następnie podejmowanie odpowiednich akcji oraz przekazywanie danych do modułu odpowiedzialnego za tworzenie rozszerzonej rzeczywistości. Moduł ten jest również odpowiedzialny za komunikację z aplikacją wykorzystującą platformę. Taka aplikacja za pomocą dostępnego API może m.in.: zdefiniować gest i powiązać z nim zdarzenie oraz przekazać obiekt który ma być wyświetlany wraz z powiązanym markerem. Moduł przetwarzanie danych z urządzenia peryferyjnego Element platformy odpowiedzialny za pobieranie informacji o aktualnych współrzędnych punktów charakterystycznych oraz kalibracji tych współrzędnych względem współrzędnych obrazu widzianego przez kamerę. Punktami charakterystycznymi mogą być przykładowo: czarnobiałe markery, diody świecące w podczerwieni lub też wybrane części ciała użytkownika (w szczególności dłonie).

27 3.4 Propozycja architektury 27 Moduł rozpoznawanie gestów Fragment platformy, który jest odpowiedzialny za wykrycie gestów wykonanych przez użytkownika, na podstawie danych otrzymanych od modułu przetwarzania danych z urządzenia peryferyjnego. W zakres funkcji wchodzi też relatywnie prosty sposób na definiowanie gestów, które mają być nasłuchiwane przez moduł wraz z definicją akcji wykonywanej po wykryciu danego gestu. Moduł tworzenia rozszerzonej rzeczywistości Główną funkcją tego modułu jest nakładanie nowych obiektów na obraz z kamery oraz właściwe wyświetlanie nowego obrazu. Typy obiektów oraz ich współrzędne uzyskiwane są od rdzenia platformy, na podstawie pozycji markerów Opis komunikacji Współrzędne aktualnie widocznych punktów Dane wysyłane w sposób regularny, z częstotliwością odpowiadającą liczbie przetwarzanych klatek. Pojedyncza wiadomość zawiera listę tokenów które są aktualnie obserwowane przez kamerę. Pojedynczy element listy zawiera w sobie identyfikator tokenu oraz sześć liczb odpowiadających jego współrzędnym. Lista obiektów do wyświetlenia Komunikat wysyłany po wystąpieniu jakiegoś zdarzenia (np. wykonania gestu, upłynięcie zadanego czasu), które powoduje zmianę listy wyświetlanych elementów. Zawiera listę wszystkich obiektów które mogę być w danym momencie wyświetlane. Pojedynczy element takiej listy zawiera: nazwę obiektu, informacje czy obiekt posiada stałe miejsce wyświetlania na ekranie, czy też jest powiązany z jakimś tokenem, liczby opisujące jego początkowe przesunięcie oraz przeskalowanie, w przypadku obiektów 3D przesyłana jest też ścieżka do pliku z definicją modelu. Współrzędne obiektów Wiadomość wysyłana przez rdzeń platformy po otrzymaniu informacji, że co najmniej jeden z tokenów, którymi jesteśmy zainteresowani, znajduje się w polu widzenia kamery. Komunikat zawiera listę widocznych obiektów wraz z ich współrzędnymi. Lista nasłuchiwanych gestów Lista zawierająca definicję gestów które mają być nasłuchiwane w danym momencie, przez moduł rozpoznawania gestów. Komunikat jest wysyłany po wystąpieniu zdarzenia mającego wpływ na to jakie gesty są mają znaczenie.

28 3.4 Propozycja architektury 28 Pojedynczy element listy zawiera nazwę gestu, jego definicję (w postaci liczbowej) oraz zdarzenie ja ma zostać wywołane po rozpoznaniu gestu. Współrzędne widocznych tokenów Wiadomość zawierająca listę aktualnie widocznych tokenów wraz z ich współrzędnymi. Podobnie jak w punkcie 0, z tą różnicą, że lista zawiera tylko markery, z którymi są powiązane jakieś gesty. Rozpoznany gest Informacja o rozpoznaniu gestu, wraz z wywołaniem funkcji (zdarzenia) powiązanego z tym gestem.

29 4. Implementacja Przedstawienie szczegółów implementacji platformy, rodzaje wykorzystanych technologii, sposoby rozpoznawania gestów oraz tworzenia rozszerzonej rzeczywistości Algorytm rozpoznawania gestów Algorytmem rozpoznawania gestów można nazwać algorytm który na wejściu otrzymuje listę ostatnich ruchów wykonanych przez użytkownika oraz definicję gestu, a na wyjściu informuje czy użytkownik wykonał zdefiniowany gest. Podstawową ideą, na której zostało oparte rozpoznawanie gestów, jest zapisanie każdego kwantu ruchu w postaci liczby, dodanie jej do kolejki ruchów, a następnie zastosowanie algorytmu Levenshteina[13] do porównania aktualnego ciągu ruchów z listą predefiniowanych ruchów (gestów). W przypadku gdy zakolejkowany ciąg ruchów jest podobny do jednego z gestów, wywoływane jest powiązane zdarzenie Zapisywanie przesunięć obiektu Częstotliwość z jaką możemy pobierać informacje o pozycji obiektu zależy od częstotliwości z jaką funkcjonuje kamera oraz częstotliwości odświeżania obrazu na ekranie. W praktyce wystarczy pobrać pozycje obiektu około dwóch razy na sekundę (zbyt częste zapisywanie ruchów zwiększa ilość danych które muszą zostać przetworzone, z rzadsze zapisywanie obniża dokładność obserwacji ruchów). Jednak interesująca jest nie tyle sama aktualna pozycja markera, ile jego przesunięcie względem poprzedniej pozycji czyli informacja o tym jaki ruch został wykonany od poprzedniego pomiaru. Pełne przesunięcie obiektu jest zapisywane na 12 bitach, co przedstawia Rysunek 4.

30 4.1 Algorytm rozpoznawania gestów 30 longitiude latitiude rotacja Z X i Y Rysunek 4 - Ułożenie bitów w wektorze przesunięcia Znaczenie poszczególnych składowych wektora: X i Y ruch po płaszczyźnie XY, czyli tej prostopadłej względem kamery, Z ruch po osi Z, czyli przybliżanie i oddalanie obiektu względem kamery, rotacja rotacja obiektu względem osi Z, latitiude i longitiude odpowiednio rotacja obiektu względem osi X i Y. Rysunek 5 Kamera wraz z opisem osi i płaszczyzn Dla opisu ruchu na płaszczyźnie XY są użyte 4 bity. Pierwszy z nich informuje czy obiekt w ogóle poruszył się na tej płaszczyźnie. Pozostałe 3 zapisują liczbę z przedziału od 0 do 7. Każda z tych liczb odpowiada jednemu z kierunków ruchu przedstawionemu na Rysunek 6. Program liczy kąt nachylenia wektora ruchu markera po płaszczyźnie XY, a następnie wybiera jeden z ośmiu wektorów, który jest mu najbliższy. Dla pozostałych wartości, wykorzystywane są już tylko dwa bity. Pierwszy z nich informuje o tym, czy ruch dla tego kierunku nastąpił, a drugi w jaką stronę.

31 4.1 Algorytm rozpoznawania gestów Rysunek 6 - Kierunki ruchu, wraz z odpowiadającymi im numerami Przy porównywaniu dwóch kolejnych ruchów jest też sprawdzane, czy ruch jest większy niż zadana minimalna wartość. Eliminuje to zakłócenia jakimi mogą być lekkie drgnięcia ręki, niedokładne wykonanie gestu. W praktyce te 12 bitów jest zapisywanych jako 16 bitowa liczba całkowita (Int16), gdzie 4 ostatnie bity nie mają żadnego znaczenia (są ustawione na 0) Kolejkowanie przesunięć Lista kilku ostatnich przesunięć jest dodawana do kolejki. Nowy element jest dodawany do kolejki tylko, jeśli poprzednio dodany element opisuje ruch w innym kierunku. Ilość zapisywanych w kolejce elementów powinna być dłuższa niż długość najdłuższego definiowanego gestu, powiększona o 3 (choć dokładna wartość może też zależeć od parametrów wyszukiwania gestów). Jako, że gesty mogą uwzględniać ruch w tylko wybranych kierunkach (patrz 4.5), możliwe jest stworzenie kolejki dla każdego gestu osobno. W tym momencie do kolejki byłyby dodawane tylko te elementy, w których nastąpiła zmiana ruchu w kierunkach uwzględnianych przez gest. Takie rozwiązanie poprawia jakość wykrywania gestów, poprzez eliminację ruchów które nie mają większego znaczenia dla danego gestu Rozpoznawanie gestu za pomocą algorytmu Levenstheina Podstawą rozpoznawania gestów jest algorytm Levenstheina funkcja służąca do liczenia odległości redakcyjnej pomiędzy dwoma słowami. W tym przypadku liczy ona odległość pomiędzy ostatnio wykonanymi ruchami użytkownika, a zdefiniowanymi i aktywnymi gestami.

32 4.1 Algorytm rozpoznawania gestów 32 bool IsThisIt(List<Mask> movementqueue, Coordinates currentposition, List<Mask> gesture) //skopiuj globalną kolejkę do zmiennej List<Mask> queue = movementqueue.copy() //sprawdź czy długość kolejki jest dłuższa niż //długość gestu if queue.length < gesture.length then return false; endif while queue.length >= this.gesturelength do //sprawdź czy ostatni element kolejki jest //równy ostatniemu elementowi gestu if queue.last() == gesture.last() then //sprawdź czy aktualna odległość redakcyjna, jest //mniejsza niż dopuszczalna różnica if LevenstheinDistance(queue, gesture) < maxdifference then //czyszczenie kolejki, żeby znaleziony właśnie //gest nie został znaleziony ponownie movementqueue.clear() //wykonaj zdarzenia przypisane do gestu OnGestFound() return true endif endif //usuń ostatni element z kopii kolejki ruchów queue.removelast() //zmniejsz wartość długości kolejki o jeden queuecount-- endwhile return false; endfunction Listning 1 - Pseudokod funkcji porównującej zdefiniowany gest z danymi w kolejce ruchów Sprawdzenie czy użytkownik wykonał gest, następuje za każdym razem, kiedy nowy ruch jest dodawany do kolejki ruchów. Takie porównywanie jest wykonywane osobno dla każdego gestu. Funkcja wyszukująca, na początku sprawdza czy długość kolejki jest co najmniej tak długa, jak gest. Jeżeli nie, wyszukiwanie nie jest kontynuowane. Warunek ten wynika z dwóch faktów po pierwsze kolejka ruchów jest czyszczona po każdym znalezieniu gestu, a po drugie, jeśli poczekamy aż kolejka będzie odpowiedniej długości, to jeśli w międzyczasie zaczął być wykonywany interesujący nas gest, to i tak go znajdziemy w odpowiednim czasie, a przynajmniej unikamy szukania go zbyt wcześnie.

33 4.1 Algorytm rozpoznawania gestów 33 Kiedy ilość zapamiętanych ruchów jest już równa lub większa od długości gestu, następuje porównanie najstarszego elementu kolejki z pierwszym elementem zdefiniowanego gestu. Jeśli są one różne, usuwany jest najstarszy element z kolejki i porównanie jest wykonywane ponownie. Aż do czasu kiedy kopia kolejki osiągnie rozmiar mniejszy niż długość gestu. Dopiero gdy, najstarszy element kolejki będzie identyczny z pierwszym elementem gestu, rozpoczynane jest liczenie odległości redakcyjnej. Główne modyfikacje jakimi został poddany algorytm Levenstheina: operowanie na słowach zbudowanych z 16 bitowych liczb, predefiniowanie wymaganych przez algorytm tablic i części zmiennych (definiowane są one na początku działania programu, potem nie ma konieczności ich tworzenia na nowo) modyfikacja wielkości wag przyznawanych w przypadku dodania/usunięcia/zamiany znaku. W zwykłym algorytmie Levenstheina każda różnica (dodanie, usunięcie lub zamiana) pomiędzy dwoma słowami zwiększa odległość o 1. W wersji wykorzystanej w pracy wagi są liczone następująco: Usunięcie znaku - 10 (brak fragmentu gestu najczęściej sugeruje że kolejny ruch został wykonany w innym kierunku niż w rozpoznawanym geście). Dodanie znaku - 5 (pojawienie się nowego znaku często jest spowodowane przez np. drgnięcie ręki użytkownika i rozpoznanie ruchu w innym kierunku). Zamiana znaku - 3 lub 7 (mniejsza waga jest przyznawana jeśli liczba odpowiadająca kierunkowi ruchu różni się o 1 od spodziewanej, większa waga w przeciwnym przypadku). Wagi zostały dobrane ręcznie. Mniejsza waga oznacza, że taka różnica może łatwo pojawić się w sposób przypadkowy w czasie wykonywania gestu. Większa została użyta kiedy różnica wynika najprawdopodobniej z faktu iż użytkownik wykonuje właśnie inny gest (lub nie wykonuje żadnego, a jedynie przemieszcza marker). Dają lepsze rezultaty niż w przypadku zastosowania jednolitej wagi dla wszystkich ruchów. Ciężko jest natomiast ustalić parametry dające najlepsze wyniki wprowadzając drobne różnice do podanych wartości ruchu ręki są niepowtarzalne i przy każdym pomiarze otrzymuje się inne rezultaty. Dodatkową modyfikacją jest uwzględnianie różnic tylko w kierunkach ruchu ważnych dla danego gestu (patrz 4.5).

34 4.1 Algorytm rozpoznawania gestów Gesty związane z obsługą klasycznych interfejsów Częściowo osobną kategorią gestów, są gesty odpowiedzialne za obsługę interfejsów zbliżonych do klasycznych. W porównaniu do innych gestów takie gesty działają tylko na ograniczonym obszarze. Sprawdzanie odbywa się tutaj prawie identycznie, jak w przypadku zwykłych gestów. Dodany jest tylko warunek sprawdzający, czy ruch odpowiadający za początek gestu został wykonany w odpowiednim obszarze. Przykładem może być tutaj stworzenie komponentu przycisku. Taki komponent posiada predefiniowany sposób rysowania go na ekranie oraz gest wywołujący akcje związaną z kliknięciem w przycisk. Jeśli chcemy utworzyć taki gest, wystarczy tylko podać tekst wyświetlany na przycisku, jego położenie i rozmiar (co również odpowiada miejscu w którym gest będzie musiał być wykony) oraz zdarzenie powiązane z kliknięciem. Bardziej zaawansowane komponenty mogą mieć dodatkowo zdefiniowane gesty związane z obsługą samych siebie. Na przykład lista wyboru elementów wymaga gestu zatwierdzającego wybranie jednej z pozycji oraz gestów umożliwiających przewijanie listy w górę i w dół (jeśli lista elementów nie zmieści się na ekranie). Rysunek 7 - Przykładowe GUI Na Rysunek 7 został pokazany przykładowy interfejs klasyczny z jednym przyciskiem oraz jedną listą elementów.

35 4.2 Rozważane urządzenia peryferyjne Rozważane urządzenia peryferyjne W czasie prac związanych z tworzeniem projektu, zostały wzięte pod uwagę trzy urządzenia peryferyjne, umożliwiające śledzenie ruchów użytkownika. Każde z nich posiada pewne zalety jak i wady. Ostatecznie do dalszych prac zostało wybrane rozwiązanie wykorzystujące bibliotekę GoblinXNA oraz zwykłą kamerę Wii Remote Wii Remote (zwany też WiiMote) jest kontrolerem współpracującym z konsolą Wii firmy Nintendo. Głównymi cechami przydatnymi z punktu widzenia tego projektu: są wbudowana kamera reagująca na podczerwień wraz z elektronicznym układem przetwarzającym obraz na współrzędne widocznych źródeł światła podczerwonego oraz żyroskop. Ze komputerem można go połączyć za pomocą Bluetooth, jako standardowe urządzenie HID 12, więc nie wymaga dodatkowych sterowników. Za pomocą Wii Remote uzyskać uzyskuje się informację o kierunku wskazywanym przez kontroler (o ile w polu widzenia zainstalowanej w kontrolerze kamery będzie znajdowało się źródło podczerwieni) oraz jego kącie nachylenia względem wektora grawitacji (za pomocą umieszczonego żyroskopu). Używając tych informacji można łatwo zbudować wirtualny wskaźnik, który pozwalałby sterować kursorem na obrazie wyświetlanym przez np. projektor. W przypadku obiektów trójwymiarowych w rzeczywistości rozszerzonej, mógłby on posłużyć za informację o żądanym przez użytkownika kącie nachylenia wirtualnego obiektu. Niestety urządzenie to posiadało kilka istotnych wad. Po pierwsze zainstalowana kamera charakteryzowała się niską rozdzielczością (128px na 96px)[14]. Skutkowało to małą dokładnością we wskazywaniu na obiekty. Dodatkowo przy wyświetlanym obrazie, koniecznym byłoby zainstalowanie odpowiednich źródeł podczerwieni, zaś w przypadku jakiejkolwiek zmiany ich ustawień ponowna kalibracja. Sam żyroskop również posiadał dość małą rozdzielczość kątową, co przekładałoby się na słabą dokładność odczytów. Dodatkowo sama specyfika żyroskopu umożliwia odczyt tylko kąta nachylenia względem dwóch osi (prostopadłych do osi grawitacji). Uzyskanie trzeciego kąta, potrzebnego do dokładniejszego opisania rotacji urządzenia, było niemożliwe Kinnect Kinnect jest z kolei kontrolerem współpracującym z konsolą Xbox firmy Microsoft. Urządzenie to składa się głównie z kamery i odpowiedniego układu, dzięki czemu 12 Human Interface Device

36 4.2 Rozważane urządzenia peryferyjne 36 jest w stanie widzieć trójwymiarowy obraz otoczenia i rozpoznawać na nim poszczególne obiekty, a w szczególności sylwetki ludzi. Dzięki niemu można uzyskać względnie dokładną informację o położeniu poszczególnych części ciała osób w polu widzenia. Korzystając z tych informacji, można tworzyć aplikację (w tym gry), które do sterowania wykorzystują ruchy całego ciała użytkownika. Niestety przy tworzeniu aplikacji mających za zadanie sterować wirtualną rzeczywistością kontroler ten posiada kilka istotnych wad. Umie on rozpoznać tylko położenie dłoni w przestrzeni, ale bez informacji o obrocie samej dłoni oraz ruchach wykonywanych przez poszczególne palce. W przypadku potrzeby bardziej szczegółowego manipulowania obiektami, może to tworzyć dość istotny problem. Kolejną wadą jest konieczność posiadania w polu widzenia całego (lub przynajmniej większości) ciała. Wymaga to ustawienie kontrolera z dala od użytkownika. Jednak nawet wtedy, może nie dostrzec wszystkich ruchów, jeśli osoba jest odwrócona bokiem lub tyłem do kontrolera. Może to powodować znaczące ograniczenie dla sterowania obiektami wirtualnymi Goblin XNA GoblinXNA jest platformą do badań i rozwoju interfejsów trójwymiarowych, włączając w to rozszerzoną i wirtualną rzeczywistość. Powstała głównie z myślą o grach, ale można ją wykorzystywać również do aplikacji innego typu. Bazuje ona na XNA Studio platformie do tworzenia gier stworzonej przez firmę Microsoft. Korzystanie z tego połączenia nie wymaga żadnych specjalnych urządzeń peryferyjnych, tak jak to ma miejsce w przypadku Wii Remote i Kinnecta. Wystarczy zwykła kamera oraz specjalne markery (zwane też tokenami) proste czarnobiałe obrazki, które są następnie rozpoznawane na obrazie z kamery przez odpowiednie biblioteki (Rysunek 8). Wykorzystanie tego rozwiązania pozwala uzyskiwać dokładną pozycję tokena względem kamery rozpoznawane jest sześć stopni swobody (trzy współrzędne związane z położeniem w przestrzeni oraz trzy współrzędne związane z nachyleniem obiektu w przestrzeni). Użycie kilku markerów i przymocowanie ich do wybranego obiektu (np. kostki) umożliwia śledzenie jego pozycji, dzięki czemu możliwe jest np. śledzenie pozycji w przestrzeni i rotacji obiektu. Główną wadą tego rozwiązania jest konieczność stosowania markerów. Teoretycznie istnieje możliwość podmiany biblioteki odpowiedzialnej za rozpoznawanie obiektów dla GoblinXNA, ale na chwilę obecną brakuje wsparcia dla bibliotek które działają bez użycia tokenów.

37 4.3 Wykorzystane technologie Wykorzystane technologie NET Platforma programistyczna opracowana prze firmę Microsoft, obejmująca środowisko uruchomieniowe oraz bibliotekę klas zawierającą standardowe funkcjonalności dla aplikacji. Umożliwia wykorzystanie wielu różnych języków programistycznych, pod warunkiem że posiadają one kompilator kompilujący kod do postaci kodu uniwersalnego, zwanego CIL. 13 Technologia ta została wybrana głównie ze względu na duży wybór bibliotek umożliwiających wykorzystanie różnego typu urządzeń peryferyjnych opisanych w poprzednim rozdziale XNA Zbiór narzędzi stworzonych przez Microsoft, ułatwiających tworzenie gier dla systemu Windows, konsoli Xbox oraz telefonów z systemem Windows Phone. Poza grami, narzędzia te ułatwiają tworzenie innych aplikacji, które wymagają generowania obiektów na ekranie, w tym programów związanych z rozszerzoną rzeczywistością Biblioteka Goblin XNA Platforma do prowadzenia badań nad trójwymiarowi interfejsami użytkownika, włączając w to rzeczywistość rozszerzoną oraz wirtualną. Została napisana z wykorzystaniem technologii.net oraz XNA. Rozwijana jest przez Columbia University, przy wsparciu firmy Microsoft Biblioteka ALVAR Alvar jest biblioteką stworzoną do wykorzystywania w aplikacjach tworzących wirtualną i rozszerzoną rzeczywistość. W przypadku tego projektu, jest ona wykorzystywana przez GoblinXNA do wyszukiwania markerów na obrazie z kamery oraz podawania ich współrzędnych. Biblioteka jest rozwijana przez VTT Technical Research Centre of Finland Tworzenie rozszerzonej rzeczywistości Tworzenie rozszerzonej rzeczywistości na ekranie można rozłożyć na dwie części. Najpierw należy znaleźć na rejestrowanym obrazie punkty, które uznaje się za

38 4.4 Tworzenie rozszerzonej rzeczywistości 38 charakterystyczne, a następnie nałożyć na ten obraz dodatkowe elementy, których ilość i pozycja zależą od ilości i pozycji znalezionych punktów. Zostanie to dokładniej opisane w poniższych podpunktach. Obsługą rejestracji obrazu i jego wyświetlania zajmuje się GoblinXNA. Do rozpoznawania obiektów na obrazie korzysta z innych bibliotek. W tym przypadku była to bibliotek Alvar Definiowanie i rozpoznawanie markerów Biblioteki z których korzystano umożliwiają wyszukiwanie na obrazie tylko specjalnych markerów, którego przykład znajduje się na Rysunek 8. Każdy z nich posiada zakodowany w sobie numer lub ciąg znaków, który mu odpowiada. Dlatego też każdy z nich może być jednoznacznie zidentyfikowany przez identyfikator (dwa tokeny o takim samym wzorze, uznajemy za takie same). Aby móc wyszukiwać markery na obrazie, należy wcześniej zdefiniować, które z nich w danym momencie są interesujące. Dodatkowo można podać jaka jest ich pierwotna orientacja w przestrzeni, tj. jaka jest ich wielkość oraz pierwotny kąt nachylenia względem kamery. Można również definiować zbiór markerów, które mają być traktowane jako pojedynczy zwany wtedy multimarkerem. Rozwiązuje to problem, jakim jest konieczność widzenia przez kamerę całości markera, żeby mógł być rozpoznany. W takim przypadku, jeśli zdefiniuje się zbiór tokenów, to nawet po zasłonięciu jednego lub kilku ręką, nadal jest on poprawnie rozpoznawany. Kolejnym problemem jest brak możliwości obrotu płaszczyzny tokenu o więcej niż 90 stopni względem płaszczyzny obrazu z kamery, gdyż wtedy powierzchnia markera zniknie z pola widzenia. Dlatego korzystając z możliwości definiowania zbioru tokenów i definiowania ich pierwotnych kątów, możliwe jest stworzenie trójwymiarowych brył, które na każdej ścianie miałyby jeden lub kilka tokenów, które można swobodnie obracać. Rysunek 8 - Przykładowy marker wykorzystywany przez bibliotekę Alvar Chcąc zdefiniować prosty marker składający się z jednego obrazka, wystarczy podać jego identyfikator. W przypadku kiedy marker ma składać się z więcej niż jednego obrazka lub ma on posiadać inną orientację niż domyślna, należy do tego celu stworzyć specjalny plik XML zawierający kompletną definicję wszystkich parametrów. Plik ten zawiera listę wszystkich pojedynczych markerów, wraz z ich identyfikatorami i podanymi współrzędnymi wszystkich czterech rogów obrazka.

Mobilne Aplikacje Multimedialne

Mobilne Aplikacje Multimedialne Mobilne Aplikacje Multimedialne Technologie rozszerzonej rzeczywistości Krzysztof Bruniecki Rozszerzona rzeczywistość W odróżnieniu od rzeczywistości wirtualnej użytkownik NIE jest całkowicie zanurzony

Bardziej szczegółowo

Rzeczywistość rozszerzona w praktyce muzealnej

Rzeczywistość rozszerzona w praktyce muzealnej OPRACOWANIE ZAŁOŻEŃ WYKONANIA INSTALACJI MULTIMEDIALNEJ Muzeum X Pawilonu Rzeczywistość rozszerzona w praktyce muzealnej Opracowanie przedstawia zastosowanie rzeczywistości rozszerzonej (ang. Augmented

Bardziej szczegółowo

Kinect vs VR, czyli technologie sensoryczne stosowane w konsolach do gier.

Kinect vs VR, czyli technologie sensoryczne stosowane w konsolach do gier. Kinect vs VR, czyli technologie sensoryczne stosowane w konsolach do gier. Miłosz Sułtanowski XBOX Kinect Źródło: https://img1.cgtrader.com/items/729760/29a0dd3746/xbox-360-kinect-3d-model-max-obj-3ds-fbx-dwg-mtl.jpg

Bardziej szczegółowo

5.4. Efekty specjalne

5.4. Efekty specjalne 5.4. Efekty specjalne Przedstawiliśmy już sobie sporo kwestii związanych z dodawaniem, edytowaniem czy usuwaniem elementów, które możemy zamieścić w prezentacji. Ale pomyłką było by stwierdzenie, że więcej

Bardziej szczegółowo

WIRTUALNE WIZUALIZACJE. Poznaj nowy wymiar wizualizacji dzięki wirtualnej rzeczywistości.

WIRTUALNE WIZUALIZACJE. Poznaj nowy wymiar wizualizacji dzięki wirtualnej rzeczywistości. WIRTUALNE WIZUALIZACJE Poznaj nowy wymiar wizualizacji dzięki wirtualnej rzeczywistości. Potencjał wirtualnej rzeczywistości jest ogromy. Załóż gogle i nie ruszając Załóż gogle i przenieś nigdzie nie się

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski -

SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski - S t r o n a 2 SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski - Copyright by Artur Niewiarowski 2013 ISBN: 978-83-937802-0-4 - Artur Niewiarowski Self-Publishing - All rights reserved. Wszelkie prawa

Bardziej szczegółowo

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

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania Autor: Anna Nowak Promotor: dr inż. Jan Kowalski Kategorie: gra logiczna Słowa kluczowe: Sudoku, generowanie plansz, algorytmy,

Bardziej szczegółowo

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych autor: Robert Drab opiekun naukowy: dr inż. Paweł Rotter 1. Wstęp Zagadnienie generowania trójwymiarowego

Bardziej szczegółowo

Komunikujemy się z komputerem.

Komunikujemy się z komputerem. Wiemy już dużo o tym jak komputer liczy i zachowuje informacje. Ale w jaki sposób komunikuje się on ze światem zewnętrznym? Jeśli popatrzysz na swój komputer składa się on z jednostki centralnej, dużego

Bardziej szczegółowo

Podstawy technologii cyfrowej i komputerów

Podstawy technologii cyfrowej i komputerów BESKIDZKIE TOWARZYSTWO EDUKACYJNE Podstawy technologii cyfrowej i komputerów Budowa komputerów cz. 2 systemy operacyjne mgr inż. Radosław Wylon 2010 1 Spis treści: Rozdział I 3 1. Systemy operacyjne 3

Bardziej szczegółowo

Program V-SIM tworzenie plików video z przebiegu symulacji

Program V-SIM tworzenie plików video z przebiegu symulacji Program V-SIM tworzenie plików video z przebiegu symulacji 1. Wprowadzenie Coraz częściej zdarza się, że zleceniodawca opinii prosi o dołączenie do opracowania pliku/ów Video z zarejestrowanym przebiegiem

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką Autor: Paweł Konieczny Promotor: dr Jadwigi Bakonyi Kategorie: aplikacja www Słowa kluczowe: Serwis

Bardziej szczegółowo

6.4. Efekty specjalne

6.4. Efekty specjalne 6.4. Efekty specjalne W programie MS PowerPoint 2010 znajdziemy coś takiego jak efekty specjalne. Służą one po to by prezentacja nie stała się monotonna i zachęcała widzów do uwagi poprzez zastosowane

Bardziej szczegółowo

Spis treści Szybki start... 4 Podstawowe informacje opis okien... 6 Tworzenie, zapisywanie oraz otwieranie pliku... 23

Spis treści Szybki start... 4 Podstawowe informacje opis okien... 6 Tworzenie, zapisywanie oraz otwieranie pliku... 23 Spis treści Szybki start... 4 Podstawowe informacje opis okien... 6 Plik... 7 Okna... 8 Aktywny scenariusz... 9 Oblicz scenariusz... 10 Lista zmiennych... 11 Wartości zmiennych... 12 Lista scenariuszy/lista

Bardziej szczegółowo

Obsługa Panelu Menadżera

Obsługa Panelu Menadżera Obsługa Panelu Menadżera Wersja 3.59.305 4.04.2013 r. Panel Menadżera pozwala na dostęp do wybranych informacji systemu Streamsoft Prestiż, poprzez przeglądarkę internetową. Ponadto panel ten można obsługiwać

Bardziej szczegółowo

Voicer. SPIKON Aplikacja Voicer V100

Voicer. SPIKON Aplikacja Voicer V100 Voicer SPIKON Aplikacja Voicer V100 SPIKON Voicer Aplikacja Voicer w platformie SPIKON dedykowana jest przede wszystkim konsultantom kampanii wirtualnego Call Center. Dając łatwy dostęp do najważniejszych

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM

Bardziej szczegółowo

Aplikacja projektu Program wycinki drzew i krzewów dla RZGW we Wrocławiu

Aplikacja projektu Program wycinki drzew i krzewów dla RZGW we Wrocławiu Aplikacja projektu Program wycinki drzew i krzewów dla RZGW we Wrocławiu Instrukcja obsługi Aplikacja wizualizuje obszar projektu tj. Dorzecze Środkowej Odry będące w administracji Regionalnego Zarządu

Bardziej szczegółowo

ArCADia-3D MAKER. Podręcznik użytkownika dla programu ArCADia- 3D MAKER

ArCADia-3D MAKER. Podręcznik użytkownika dla programu ArCADia- 3D MAKER ArCADia-3D MAKER Podręcznik użytkownika dla programu ArCADia- 3D MAKER 2019-03-07 Podstawowe informacje o programie Spis treści 1. PODSTAWOWE INFORMACJE O PROGRAMIE... 2 1.1. DOSTĘPNE OPCJE ARCADIA-3D

Bardziej szczegółowo

GPS NAVIGATION SYSTEM QUICK START USER MANUAL

GPS NAVIGATION SYSTEM QUICK START USER MANUAL GPS NAVIGATION SYSTEM QUICK START USER MANUAL POLISH Rozpoczynanie pracy Gdy uruchamiasz program nawigacyjny po raz pierwszy, zostanie automatycznie uruchomiony początkowy proces konfiguracji. Wykonaj

Bardziej szczegółowo

Wykresy statystyczne w PyroSim, jako narzędzie do prezentacji i weryfikacji symulacji scenariuszy pożarowych

Wykresy statystyczne w PyroSim, jako narzędzie do prezentacji i weryfikacji symulacji scenariuszy pożarowych Wykresy statystyczne w PyroSim, jako narzędzie do prezentacji i weryfikacji symulacji scenariuszy pożarowych 1. Wstęp: Program PyroSim posiada wiele narzędzi służących do prezentacji i weryfikacji wyników

Bardziej szczegółowo

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Aplikacja bazodanowa: Cz. II Rzeszów, 2010 Strona 1 z 11 APLIKACJA BAZODANOWA MICROSOFT ACCESS

Bardziej szczegółowo

ArCADia-3D MAKER. Podręcznik użytkownika dla programu ArCADia- 3D MAKER

ArCADia-3D MAKER. Podręcznik użytkownika dla programu ArCADia- 3D MAKER ArCADia-3D MAKER Podręcznik użytkownika dla programu ArCADia- 3D MAKER 2018-03-22 Spis treści 1. SPIS TREŚCI 1 Spis treści 1. SPIS TREŚCI... 1 2. ZAPIS PREZENTACJI PROJEKTU... 3 2.1. ZAPIS PREZENTACJI

Bardziej szczegółowo

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM 1.1. PODSTAWOWE INFORMACJE PC to skrót od nazwy Komputer Osobisty (z ang. personal computer). Elementy komputera można podzielić na dwie ogólne kategorie: sprzęt - fizyczne

Bardziej szczegółowo

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury Obsługa za pomocą klawiatury Różnego typu interfejsy wykorzystują różne metody reagowania i wydawania poleceń przez użytkownika. W środowisku graficznym najpopularniejsza jest niewątpliwie mysz i inne

Bardziej szczegółowo

HURTOWNIE DANYCH I BUSINESS INTELLIGENCE

HURTOWNIE DANYCH I BUSINESS INTELLIGENCE BAZY DANYCH HURTOWNIE DANYCH I BUSINESS INTELLIGENCE Akademia Górniczo-Hutnicza w Krakowie Adrian Horzyk horzyk@agh.edu.pl Google: Horzyk HURTOWNIE DANYCH Hurtownia danych (Data Warehouse) to najczęściej

Bardziej szczegółowo

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ ELEMETY ELEKTRONIKI LABORATORIUM Kierunek NAWIGACJA Specjalność Transport morski Semestr II Ćw. 1 Poznawanie i posługiwanie się programem Multisim 2001 Wersja

Bardziej szczegółowo

5.4. Tworzymy formularze

5.4. Tworzymy formularze 5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania

Bardziej szczegółowo

Komputery I (2) Panel sterowania:

Komputery I (2) Panel sterowania: Komputery I (2) Paweł Jamer Panel sterowania: Podstawowym miejscem z którego zarządzamy ustawieniami systemu Windows jest panel sterowania. Znaleźć tam możemy wszelkiego rodzaju narzędzia umożliwiające

Bardziej szczegółowo

KONSTRUKCJA TRÓJKĄTA 1 KONSTRUKCJA TRÓJKĄTA 2 KONSTRUKCJA CZWOROKĄTA KONSTRUKCJA OKRĘGU KONSTRUKCJA STYCZNYCH

KONSTRUKCJA TRÓJKĄTA 1 KONSTRUKCJA TRÓJKĄTA 2 KONSTRUKCJA CZWOROKĄTA KONSTRUKCJA OKRĘGU KONSTRUKCJA STYCZNYCH Wstęp Ten multimedialny program edukacyjny zawiera zadania konstrukcyjne pozwalające na samodzielne ćwiczenie i sprawdzenie wiadomości w zakresie konstrukcji podstawowych figur geometrycznych. Jest przeznaczony

Bardziej szczegółowo

Po wstawieniu tabeli (i zawsze wtedy, gdy w tabeli jest kursor) pojawia się na wstążce nowa grupa zakładek o nazwie Narzędzia tabel.

Po wstawieniu tabeli (i zawsze wtedy, gdy w tabeli jest kursor) pojawia się na wstążce nowa grupa zakładek o nazwie Narzędzia tabel. Tabelę można szybko wstawić do dokumentu, korzystając z przycisku Tabela w zakładce Wstawianie na wstążce. Komputer umożliwia zakreślenie myszką, ile wierszy i kolumn ma mieć tabela. Można też skorzystać

Bardziej szczegółowo

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

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

wersja 1.0 ośrodek komputerowy uj cm ul. mikołaja kopernika 7e, Kraków tel

wersja 1.0 ośrodek komputerowy uj cm ul. mikołaja kopernika 7e, Kraków tel S Y S T E M B A D A Ń A N K I E T O W Y C H wersja 1.0 uj cm, 31-034 Kraków tel. 12 422 99 63 Opis konfiguracji Tworzenie ankiety rozpoczynamy ikoną znajdującą się w prawym górnym rogu ekranu. Ilustracja

Bardziej szczegółowo

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,

Bardziej szczegółowo

1) Naciśnij i przytrzymaj przez 2 sekundy ikonę z menu głównego, następnie naciśnij Potwierdź.

1) Naciśnij i przytrzymaj przez 2 sekundy ikonę z menu głównego, następnie naciśnij Potwierdź. Instrukcja obsługi aplikacji do projekcji I. Uruchom/zatrzymaj projekcję Są trzy sposoby uruchamiania/zatrzymywania projekcji: 1) Naciśnij i przytrzymaj przez 2 sekundy ikonę z menu głównego, następnie

Bardziej szczegółowo

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4 Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Agnieszka Holka Nr albumu: 187396 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ ELEKTRONICZNA KSIĄŻKA ZDARZEŃ Instrukcja obsługi 1. WSTĘP... 2 2. LOGOWANIE DO SYSTEMU... 2 3. STRONA GŁÓWNA... 3 4. EWIDENCJA RUCHU... 4 4.1. Dodanie osoby wchodzącej na teren obiektu... 4 4.2. Dodanie

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło LATO 2007 Projektowanie Graficznych Interfejsów Użytkownika 1 UCD - User Centered Design 1) User Centered Design Projekt Skoncentrowany

Bardziej szczegółowo

Instrukcja modułu BKD - Wykonawca

Instrukcja modułu BKD - Wykonawca Instrukcja modułu BKD - Wykonawca 1 Autor Izabela Kaniewska Projekt Platforma zakupowa GPP Manager Wioleta Tymorek Data utworzony 2014-04-28 Data modyfikacji 2014-12-03 19:34:00 Wersja 1.0 Ilość stron

Bardziej szczegółowo

Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D

Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D autorzy: Michał Dajda, Łojek Grzegorz opiekun naukowy: dr inż. Paweł Rotter I. O projekcie. 1. Celem projektu było stworzenie

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

Na komputerach z systemem Windows XP zdarzenia są rejestrowane w trzech następujących dziennikach: Dziennik aplikacji

Na komputerach z systemem Windows XP zdarzenia są rejestrowane w trzech następujących dziennikach: Dziennik aplikacji Podgląd zdarzeń W systemie Windows XP zdarzenie to każde istotne wystąpienie w systemie lub programie, które wymaga powiadomienia użytkownika lub dodania wpisu do dziennika. Usługa Dziennik zdarzeń rejestruje

Bardziej szczegółowo

e-podręcznik dla seniora... i nie tylko.

e-podręcznik dla seniora... i nie tylko. Pliki i foldery Czym są pliki? Plik to w komputerowej terminologii pewien zbiór danych. W zależności od TYPU pliku może to być: obraz (np. zdjęcie z imienin, rysunek) tekst (np. opowiadanie) dźwięk (np.

Bardziej szczegółowo

Tworzenie zespołu. Laboratorium Technik Komputerowych I, Inventor, ćw. 4. Wstawianie komponentów i tworzenie wiązań między nimi.

Tworzenie zespołu. Laboratorium Technik Komputerowych I, Inventor, ćw. 4. Wstawianie komponentów i tworzenie wiązań między nimi. Tworzenie zespołu Wstawianie komponentów i tworzenie wiązań między nimi. 0. Ustalenie aktualnego projektu Projekt, w Inventorze, to plik tekstowy z rozszerzeniem.ipj, definiujący foldery zawierające pliki

Bardziej szczegółowo

Platforma e-learningowa

Platforma e-learningowa Platforma e-learningowa skrócona instrukcja obsługi. Aby uruchomić platformę e-learningową, należy otworzyć przeglądarkę internetową, a następnie wpisać adres http://aok.learnway.eu/ - wyświetlony zostanie

Bardziej szczegółowo

OpenOfficePL. Zestaw szablonów magazynowych. Instrukcja obsługi

OpenOfficePL. Zestaw szablonów magazynowych. Instrukcja obsługi OpenOfficePL Zestaw szablonów magazynowych Instrukcja obsługi Spis treści : 1. Informacje ogólne 2. Instalacja zestawu a) konfiguracja połączenia z bazą danych b) import danych z poprzedniej wersji faktur

Bardziej szczegółowo

GUI - projektowanie interfejsów

GUI - projektowanie interfejsów Katedra Inżynierii Wiedzy Wykład 4 O czym dzisiaj? Natural User Interface; Virtual Reality (VR); Augmented Reality (AR); UI - User Interface działanie bezpośrednie - użytkownik porozumiewa się bezpośrednio

Bardziej szczegółowo

6.4. Efekty specjalne

6.4. Efekty specjalne 6.4. Efekty specjalne Ile wart byłby porządny film bez efektów specjalnych. Przecież to właśnie one nadają charakter dla filmu i przykuwają uwagę widza. Dlaczego nie wykorzystać by tego w prezentacjach?

Bardziej szczegółowo

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D Wprowadzenie do rysowania w 3D 13 Praca w środowisku 3D Pierwszym krokiem niezbędnym do rozpoczęcia pracy w środowisku 3D programu AutoCad 2010 jest wybór odpowiedniego obszaru roboczego. Można tego dokonać

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

Symulator tabletu z systemem Windows 8.

Symulator tabletu z systemem Windows 8. Symulator tabletu z systemem Windows 8. Witam w mojej kolejnej publikacji, tym razem dowiesz się: - Jak uruchomić symulator tabletu z w pełni funkcjonalnym systemem operacyjnym Windows 8; - Jak wykorzystać

Bardziej szczegółowo

- odczytuje sygnały z analizatora sygnałów (siła, przyspieszenie, prędkość obrotowa) i obrazuje je w formie graficznej

- odczytuje sygnały z analizatora sygnałów (siła, przyspieszenie, prędkość obrotowa) i obrazuje je w formie graficznej Opis funkcjonalności OPROGRAMOWANIA Oprogramowanie powinno posiadać następujące funkcje: - działać pod systemem operacyjnych Win 7, 64 bit - odczytuje sygnały z analizatora sygnałów (siła, przyspieszenie,

Bardziej szczegółowo

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

Pracownia internetowa w każdej szkole (edycja Jesień 2007) Instrukcja numer D1/04_01/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 (D1) Tworzenie kopii zapasowej ustawień systemowych serwera - Zadania do wykonania

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

Bardziej szczegółowo

1. Opis okna podstawowego programu TPrezenter.

1. Opis okna podstawowego programu TPrezenter. OPIS PROGRAMU TPREZENTER. Program TPrezenter przeznaczony jest do pełnej graficznej prezentacji danych bieżących lub archiwalnych dla systemów serii AL154. Umożliwia wygodną i dokładną analizę na monitorze

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI DIODOWEGO WYŚWIETLACZA TEKSTÓW PIEŚNI STEROWANEGO Z TABLETU 10,1 '

INSTRUKCJA OBSŁUGI DIODOWEGO WYŚWIETLACZA TEKSTÓW PIEŚNI STEROWANEGO Z TABLETU 10,1 ' INSTRUKCJA OBSŁUGI DIODOWEGO WYŚWIETLACZA TEKSTÓW PIEŚNI STEROWANEGO Z TABLETU 10,1 ' -1- Spis treści - 1. O programie... 3 2. Uruchomienie programu... 3 3. Przygotowanie urządzenia do pracy... 4 4. Wyświetlanie

Bardziej szczegółowo

ZINTEGROWANY SYSTEM ZARZĄDZANIA TREŚCIĄ

ZINTEGROWANY SYSTEM ZARZĄDZANIA TREŚCIĄ ZINTEGROWANY SYSTEM ZARZĄDZANIA TREŚCIĄ INSTRUKCJA UŻYTKOWNIKA DLA REDAKTORÓW Modułu ANKIETY v 3.0 WWW.CONCEPTINTERMEDIA.PL 1 1. WPROWADZENIE Rys. 1 Widok modułu ankiet od strony Internauty (pytanie) Rys.

Bardziej szczegółowo

Stawiamy pierwsze kroki

Stawiamy pierwsze kroki Stawiamy pierwsze kroki 3.1. Stawiamy pierwsze kroki Edytory tekstu to najbardziej popularna odmiana programów służących do wprowadzania i zmieniania (czyli edytowania) tekstów. Zalicza się je do programów

Bardziej szczegółowo

Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody.

Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody. Załącznik nr 1 Specyfikacja przedmiotu zamówienia Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody. Słowniczek pojęć Badanie

Bardziej szczegółowo

Instrukcja instalacji i obsługi systemu AR4vision (wersja 1.0.0)

Instrukcja instalacji i obsługi systemu AR4vision (wersja 1.0.0) Instrukcja instalacji i obsługi systemu AR4vision (wersja 1.0.0) Wymagania techniczne: Aplikacja Desktop: System operacyjny Windows 10 Kamera internetowa oraz mikrofon Aplikacja Hololens: System operacyjny

Bardziej szczegółowo

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa Instalacja roli kontrolera domeny, Aby zainstalować rolę kontrolera domeny, należy uruchomić Zarządzenie tym serwerem, po czym wybrać przycisk

Bardziej szczegółowo

Transformacja współrzędnych geodezyjnych mapy w programie GEOPLAN

Transformacja współrzędnych geodezyjnych mapy w programie GEOPLAN Transformacja współrzędnych geodezyjnych mapy w programie GEOPLAN Program GEOPLAN umożliwia zmianę układu współrzędnych geodezyjnych mapy. Można tego dokonać przy udziale oprogramowania przeliczającego

Bardziej szczegółowo

Skrócona instrukcja. DriveConfigurator Konfigurator produktu firmy SEW-EURODRIVE

Skrócona instrukcja. DriveConfigurator Konfigurator produktu firmy SEW-EURODRIVE Technika napędowa \ Automatyzacja napędów \ Integracja systemowa \ Usługi Skrócona instrukcja DriveConfigurator Konfigurator produktu firmy SEW-EURODRIVE Wydanie 11/2014 20089333/PL SEW-EURODRIVE Driving

Bardziej szczegółowo

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup Baltie 3 Podręcznik do nauki programowania dla klas I III gimnazjum Tadeusz Sołtys, Bohumír Soukup Czytanie klawisza lub przycisku myszy Czytaj klawisz lub przycisk myszy - czekaj na naciśnięcie Polecenie

Bardziej szczegółowo

Wydział Informatyki, Elektroniki i Telekomunikacji. Katedra Informatyki

Wydział Informatyki, Elektroniki i Telekomunikacji. Katedra Informatyki Wydział Informatyki, Elektroniki i Telekomunikacji Katedra Informatyki Pastebin w wersji zorientowanej na środowisko mobilne z klientem pozwalającym na oba kierunki przeklejania. Dokumentacja deweloperska

Bardziej szczegółowo

WASTE MANAGEMENT SYSTEM PODRĘCZNIK UŻYTKOWNIKA SERWISU WWW

WASTE MANAGEMENT SYSTEM PODRĘCZNIK UŻYTKOWNIKA SERWISU WWW WASTE MANAGEMENT SYSTEM PODRĘCZNIK UŻYTKOWNIKA SERWISU WWW grudzień 2009 Waste Management System Podręcznik użytkownika Serwisu WWW SPIS TREŚCI 1. URUCHOMIENIE SERWISU WWW WASTE MANAGEMENT SYSTEM... 4

Bardziej szczegółowo

Konfiguracja i obsługa modułu Service Desk

Konfiguracja i obsługa modułu Service Desk Konfiguracja i obsługa modułu Service Desk wersja 07.03.2017 1. Wstęp Moduł Service Desk w BeeOffice pozwala na obsługę zgłoszeń serwisowych w ramach pojedynczej organizacji (np. użytkownicy IT i helpdesk

Bardziej szczegółowo

Oprogramowanie powiększające obraz na ekranie, zmniejszające zmęczenie wzroku. Podręcznik Szybkiego Startu

Oprogramowanie powiększające obraz na ekranie, zmniejszające zmęczenie wzroku. Podręcznik Szybkiego Startu Oprogramowanie powiększające obraz na ekranie, zmniejszające zmęczenie wzroku. Podręcznik Szybkiego Startu Witaj w ZoomText Express ZoomText Express to niedrogi i łatwy program powiększający obraz komputerowy.

Bardziej szczegółowo

Zad. 1: Sterowanie mimika

Zad. 1: Sterowanie mimika 1 Cel ćwiczenia Zad. 1: Sterowanie mimika twarzy Wykształcenie umiejętności posługiwania się złożonymi makrami preprocesora języka C. Stworzenie podstawowej struktury wizualizacji twarzy robota, która

Bardziej szczegółowo

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Dr inż. Michał Bednarczyk Uniwersytet Warmińsko-Mazurski w Olsztynie Wydział Geodezji i Gospodarki Przestrzennej Katedra Geodezji

Bardziej szczegółowo

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości

Bardziej szczegółowo

Spis treści 1. Oprogramowanie wizualizacyjne IFTER EQU Dodanie integracji CKD Wprowadzanie konfiguracji do programu EQU... 6 a.

Spis treści 1. Oprogramowanie wizualizacyjne IFTER EQU Dodanie integracji CKD Wprowadzanie konfiguracji do programu EQU... 6 a. Spis treści 1. Oprogramowanie wizualizacyjne IFTER EQU... 3 2. Dodanie integracji CKD-500... 6 3. Wprowadzanie konfiguracji do programu EQU... 6 a. Wprowadzanie kontrolerów... 6 b. Wprowadzenie przejść...

Bardziej szczegółowo

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Modułowy programowalny przekaźnik czasowy firmy Aniro. Modułowy programowalny przekaźnik czasowy firmy Aniro. Rynek sterowników programowalnych Sterowniki programowalne PLC od wielu lat są podstawowymi systemami stosowanymi w praktyce przemysłowej i stały

Bardziej szczegółowo

Lokalna Platforma GIS w Gminie Nowe Miasto Lubawskie

Lokalna Platforma GIS w Gminie Nowe Miasto Lubawskie Lokalna Platforma GIS w Gminie Nowe Miasto Lubawskie 1 Spis treści 1. Interfejs użytkownika podstawowe funkcje i narzędzia mapy... 3 1.1. Drukowanie... 4 1.2. Zapisz do pdf... 5 1.3. Przesuwanie... 5 1.4.

Bardziej szczegółowo

Monitory Avtek i system Windows 10

Monitory Avtek i system Windows 10 Monitory Avtek i system Windows 10 Opis W tym poradniku znajdują się wskazówki dotyczące wykorzystania funkcji dotykowych monitorów Avtek wraz z systemem operacyjnym Windows 10. Najnowszy system Microsoftu

Bardziej szczegółowo

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

D O K U M E N T A C J A Państwowa Wyższa Szkoła Zawodowa w Tarnowie Instytut Politechniczny Informatyka Stosowana III r. D O K U M E N T A C J A Snake 3D Piotr Gębiś Paweł Gładysz Dokumentacja do projektu Snake 3D. W dokumencie

Bardziej szczegółowo

Instrukcja obsługi programu Do-Exp

Instrukcja obsługi programu Do-Exp Instrukcja obsługi programu Do-Exp Autor: Wojciech Stark. Program został utworzony w ramach pracy dyplomowej na Wydziale Chemicznym Politechniki Warszawskiej. Instrukcja dotyczy programu Do-Exp w wersji

Bardziej szczegółowo

POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRYCZNY KATEDRA ENERGOELEKTRYKI LABORATORIUM INTELIGENTNYCH INSTALACJI ELEKTRYCZNYCH

POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRYCZNY KATEDRA ENERGOELEKTRYKI LABORATORIUM INTELIGENTNYCH INSTALACJI ELEKTRYCZNYCH POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRYCZNY KATEDRA ENERGOELEKTRYKI LABORATORIUM INTELIGENTNYCH INSTALACJI ELEKTRYCZNYCH Wprowadzenie do oprogramowania firmowego Eaton RF-System (na podstawie dokumentacji

Bardziej szczegółowo

R o g e r A c c e s s C o n t r o l S y s t e m 5

R o g e r A c c e s s C o n t r o l S y s t e m 5 R o g e r A c c e s s C o n t r o l S y s t e m 5 Nota aplikacyjna nr 003 Wersja dokumentu: Rev. B Uprawnienia Uwaga: Niniejszy dokument dotyczy RACS v5.2 (VISO 1.2.2 lub nowszy) Wprowadzenie W systemie

Bardziej szczegółowo

Rozdział II. Praca z systemem operacyjnym

Rozdział II. Praca z systemem operacyjnym Rozdział II Praca z systemem operacyjnym 55 Rozdział III - System operacyjny i jego hierarchia 2.2. System operacyjny i jego życie Jak już wiesz, wyróżniamy wiele odmian systemów operacyjnych, które różnią

Bardziej szczegółowo

Instrukcja programu OKEYE. LOCIN Sp. z o.o.

Instrukcja programu OKEYE. LOCIN Sp. z o.o. Instrukcja programu OKEYE LOCIN Sp. z o.o. OKEYE to profesjonalne urządzenie, które wesprze Państwa sprzedaż, OKEYE to wspomaganie procesu doboru opraw okularowych dla każdego użytkownika, OKEYE istotny

Bardziej szczegółowo

4.2. Ustawienia programu

4.2. Ustawienia programu 4.2. Ustawienia programu Zmiana wielkości dokumentu Pracując w programie MS Excel 2010 niejednokrotnie doświadczysz sytuacji, w której otwarty przez Ciebie arkusz nie będzie mieścił się na ekranie monitora.

Bardziej szczegółowo

PORTAL MAPOWY. 1 z , 07:41. DokuWiki. Elementy menu podstawowego. Warstwy mapy

PORTAL MAPOWY. 1 z , 07:41. DokuWiki. Elementy menu podstawowego. Warstwy mapy 1 z 5 2018-10-03, 07:41 DokuWiki PORTAL MAPOWY Portal Mapowy jest jednym z modułów aplikacji WebEWID. Aplikacja internetowa pozwala na przeglądanie danych przestrzennych. Przeglądarka map umożliwia użytkownikom

Bardziej szczegółowo

Te i wiele innych cech sprawia, że program mimo swej prostoty jest bardzo funkcjonalny i spełnia oczekiwania większości klientów.

Te i wiele innych cech sprawia, że program mimo swej prostoty jest bardzo funkcjonalny i spełnia oczekiwania większości klientów. Instrukcja użytkownika OFERTOWANIE 3.0 Program OFERTOWANIE 3.0 to intuicyjne i łatwe w użyciu narzędzie do szybkiego przygotowania i wydrukowania profesjonalnie wyglądającej oferty dla klienta, Program

Bardziej szczegółowo

Podręcznik użytkownika programu. Ceremonia 3.1

Podręcznik użytkownika programu. Ceremonia 3.1 Podręcznik użytkownika programu Ceremonia 3.1 1 Spis treści O programie...3 Główne okno programu...4 Edytor pieśni...7 Okno ustawień programu...8 Edycja kategorii pieśni...9 Edytor schematów slajdów...10

Bardziej szczegółowo

WACOM MULTI-TOUCH: UŻYWANIE FUNKCJI DOTYKOWYCH W PRODUKTACH WACOM

WACOM MULTI-TOUCH: UŻYWANIE FUNKCJI DOTYKOWYCH W PRODUKTACH WACOM 1 WACOM MULTI-TOUCH: UŻYWANIE FUNKCJI DOTYKOWYCH W PRODUKTACH WACOM Obsługiwane dotykowo produkty firmy Wacom zostały zaprojektowane w celu zwiększenia wydajności pracy. Obsługa dotykowa umożliwia interakcję

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

Manipulator OOO z systemem wizyjnym

Manipulator OOO z systemem wizyjnym Studenckie Koło Naukowe Robotyki Encoder Wydział Automatyki, Elektroniki i Informatyki Politechnika Śląska Manipulator OOO z systemem wizyjnym Raport z realizacji projektu Daniel Dreszer Kamil Gnacik Paweł

Bardziej szczegółowo

Wyszukiwanie binarne

Wyszukiwanie binarne Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie

Bardziej szczegółowo

Aparaty słuchowe Hi-Fi z Multiphysics Modeling

Aparaty słuchowe Hi-Fi z Multiphysics Modeling Aparaty słuchowe Hi-Fi z Multiphysics Modeling POLITECHNIKA POZNAŃSKA Wydział Budowy Maszyn i Zarządzania Mechanika i Budowa Maszyn Technologia Przetwarzania Materiałów Prowadzący: dr hab. Tomasz Stręk

Bardziej szczegółowo

PORTAL LOKALNY. Częstochowa- miejski system informacji turystycznej. Przygotowała: Monika Szymczyk

PORTAL LOKALNY. Częstochowa- miejski system informacji turystycznej. Przygotowała: Monika Szymczyk PORTAL LOKALNY Częstochowa- miejski system informacji turystycznej Przygotowała: Monika Szymczyk Strona tytułowa portalu wygląda przystępnie i czytelnie. Czas otwierania strony to około 3 s. Elementy na

Bardziej szczegółowo