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 1 2 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, 4 5

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 6 7

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

Instrukcja obsługi programu. BlazeVideo HDTV Player v6

Instrukcja obsługi programu. BlazeVideo HDTV Player v6 Instrukcja obsługi programu BlazeVideo HDTV Player v6 Spis treści 1. Opis programu...3 1.1 Wprowadzenie...3 1.2 Funkcje programu...3 1.3 Wymagania sprzętowe...4 2. Wygląd interfejsu...4 3. Obsługa programu...6

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

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

Ćwiczenie 1: Pierwsze kroki

Ćwiczenie 1: Pierwsze kroki Ćwiczenie 1: Pierwsze kroki z programem AutoCAD 2010 1 Przeznaczone dla: nowych użytkowników programu AutoCAD Wymagania wstępne: brak Czas wymagany do wykonania: 15 minut W tym ćwiczeniu Lekcje zawarte

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

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

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

Nasz cel: zapewnienie całodobowego dostępu zdalnego i sterowania kamerami. Dynamic Transcoding

Nasz cel: zapewnienie całodobowego dostępu zdalnego i sterowania kamerami. Dynamic Transcoding Nasz cel: zapewnienie całodobowego dostępu zdalnego i sterowania kamerami Dynamic Transcoding 2 Dynamic Transcoding Całodobowy dostęp zdalny i zdalne sterowanie w dowolnym miejscu i czasie Do tej pory

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

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

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

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

Procesowa specyfikacja systemów IT

Procesowa specyfikacja systemów IT Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

1 Moduł Inteligentnego Głośnika 3

1 Moduł Inteligentnego Głośnika 3 Spis treści 1 Moduł Inteligentnego Głośnika 3 1.1 Konfigurowanie Modułu Inteligentnego Głośnika........... 3 1.1.1 Lista elementów Modułu Inteligentnego Głośnika....... 3 1.1.2 Konfigurowanie elementu

Bardziej szczegółowo

Instrukcja obsługi aplikacji GEOLOCATOR

Instrukcja obsługi aplikacji GEOLOCATOR Instrukcja obsługi aplikacji GEOLOCATOR Spis treści Wstęp... 3 Logowanie do systemu... 3 Opis menu... 4 Okno pojazdów... 5 Okno szczegóły pojazdu... 6 Okno dane kierowcy... 7 Zakładka monitoring... 7 Zakładka

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

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

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

Programowanie na poziomie sprzętu. Programowanie w Windows API

Programowanie na poziomie sprzętu. Programowanie w Windows API Programowanie w Windows API Windows API Windows Application Programming Interface (API) to zestaw funkcji systemu operacyjnego Windows, które umożliwiają aplikacjom korzystanie z wszystkich usług systemu.

Bardziej szczegółowo

Procedura zgłaszania problemów z obsługą oraz nieprawidłowości w funkcjonowaniu systemu PEFS 2007 w zakresie Programu Operacyjnego Kapitał Ludzki

Procedura zgłaszania problemów z obsługą oraz nieprawidłowości w funkcjonowaniu systemu PEFS 2007 w zakresie Programu Operacyjnego Kapitał Ludzki Procedura zgłaszania problemów z obsługą oraz nieprawidłowości w funkcjonowaniu systemu PEFS 2007 w zakresie Programu Operacyjnego Kapitał Ludzki (Wsparcie techniczne dla użytkowników Help Desk) Wersja

Bardziej szczegółowo

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1 Viatoll Calc Instrukcja użytkownika Strona 1 Spis treści 1 Wstęp...3 2 Opis panelu głównego...3 2.1 Menu aplikacji...4 2.2 Tabela z trasami...5 2.3 Strona kalkulatora viatoll...6 2.4 Pasek statusu...7

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

Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink.

Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink. Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink. Celem ćwiczenia jest symulacja działania (w środowisku Matlab/Simulink) sterownika dla dwuosiowego robota

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

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

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

Ogranicz listę klasyfikacji budżetowych do powiązanych z danym kontem księgowym

Ogranicz listę klasyfikacji budżetowych do powiązanych z danym kontem księgowym Zależności i kontrola danych budżetowych w systemie Sz@rk FK 1. Wstęp Począwszy od wersji Sz@rk FK 2011 (11.03.30) wprowadzono do programu finansowoksięgowego nowe możliwości dotyczące kontrolowania poprawności

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

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

SigmaTUBE moduł do cięcia rur i kształtowników część 1

SigmaTUBE moduł do cięcia rur i kształtowników część 1 SigmaTUBE moduł do cięcia rur i kształtowników część 1 Wstęp SigmaTUBE to nowy produkt do cięcia rur i kształtowników, zaprojektowany z myślą o klientach dysponujących maszynami 4-o i 5- cio osiowymi do

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

Poradnik zetula.pl. Jak założyć konto na zetula.pl. i zabezpieczyć dane na swoim komputerze?

Poradnik zetula.pl. Jak założyć konto na zetula.pl. i zabezpieczyć dane na swoim komputerze? Poradnik zetula.pl Jak założyć konto na zetula.pl i zabezpieczyć dane na swoim komputerze? 1.Wejdź na stronę www.zetula.pl 2.Kliknij na odnośniku Utwórz nowe konto 3.Wypełnij formularz rejestracyjny. Pola

Bardziej szczegółowo

Centrala Vista 120 CMS

Centrala Vista 120 CMS Centrala Vista 120 CMS W dzisiejszych czasach szpitale szukają sposobu na podniesienie jednocześnie jakości leczenia i wydajności. Łatwa w użyciu centrala Vista 120 CMS umożliwia centralne monitorowanie

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

Integracja systemu RACS 4 z generatorem obrazu CCTV

Integracja systemu RACS 4 z generatorem obrazu CCTV Roger Access Control System Integracja systemu RACS 4 z generatorem obrazu CCTV Rev. A Terminy i pojęcia System CCTV (ang. Closed Circuit Tele Vision) System telewizji przemysłowej, służący do przekazywania

Bardziej szczegółowo

Opracował: Jan Front

Opracował: Jan Front Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny

Bardziej szczegółowo

I. Interfejs użytkownika.

I. Interfejs użytkownika. Ćwiczenia z użytkowania systemu MFG/PRO 1 I. Interfejs użytkownika. MFG/PRO w wersji eb2 umożliwia wybór użytkownikowi jednego z trzech dostępnych interfejsów graficznych: a) tekstowego (wybór z menu:

Bardziej szczegółowo

Nabór Bursy/CKU. Do korzystania ze strony elektronicznej rekrutacji zalecamy następujące wersje przeglądarek internetowych:

Nabór Bursy/CKU. Do korzystania ze strony elektronicznej rekrutacji zalecamy następujące wersje przeglądarek internetowych: Nabór Bursy/CKU Przeglądanie oferty i rejestracja kandydata Informacje ogólne Do korzystania ze strony elektronicznej rekrutacji zalecamy następujące wersje przeglądarek internetowych: Internet Explorer

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

Załącznik techniczny przedmiotu zamówienia komponentu

Załącznik techniczny przedmiotu zamówienia komponentu Załącznik nr 1 mapowego dla portalu WWW Załącznik techniczny przedmiotu zamówienia komponentu 1.1 Komponent mapowy Zleceniodawcy pozostawia się wolną rękę w wyborze technologii w jakiej zostanie stworzony

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

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Pomoc. BIP strona portalu

Pomoc. BIP strona portalu Pomoc BIP strona portalu Biuletyn Informacji Publicznej powstał w celu powszechnego udostępnienia informacji publicznej w postaci elektronicznej. Głównym zadaniem portalu jest przekazywanie informacji

Bardziej szczegółowo

Spis treści. 1 Moduł RFID (APA) 3

Spis treści. 1 Moduł RFID (APA) 3 Spis treści 1 Moduł RFID (APA) 3 1.1 Konfigurowanie Modułu RFID..................... 3 1.1.1 Lista elementów Modułu RFID................. 3 1.1.2 Konfiguracja Modułu RFID (APA)............... 4 1.1.2.1

Bardziej szczegółowo

Windows XP - lekcja 3 Praca z plikami i folderami Ćwiczenia zawarte w tym rozdziale pozwolą na tworzenie, usuwanie i zarządzanie plikami oraz folderami znajdującymi się na dysku twardym. Jedną z nowości

Bardziej szczegółowo

Operacje na gotowych projektach.

Operacje na gotowych projektach. 1 Operacje na gotowych projektach. I. Informacje wstępne. -Wiele firm udostępnia swoje produkty w postaci katalogów wykonanych w środowisku projektowania AutoCad. Podstawowym rozszerzeniem projektów stworzonych

Bardziej szczegółowo

Instrukcja zgłaszania błędu

Instrukcja zgłaszania błędu Instrukcja zgłaszania błędu 1 Kanały zgłaszania Do dyspozycji są trzy kanały zgłoszeń: A. AnswerTrack 2 aby skorzystać z tego kanału należy posiadać założone konto użytkowania AT2 (pkt.3), wypełnić formularz

Bardziej szczegółowo

Instrukcja instalacji i obsługi oprogramowania OPTIVA VIEWER

Instrukcja instalacji i obsługi oprogramowania OPTIVA VIEWER Instrukcja instalacji i obsługi oprogramowania OPTIVA VIEWER Volta Sp. z o.o., ul. Jutrzenki 94, 02-230 Warszawa v. 1.0 tel. 22 572 90 20, fax. 22 572 90 30, www.volta.com.pl, volta@volta.com.pl Spis treści:

Bardziej szczegółowo

Innowacyjny elektroniczny dziennik lekcyjny

Innowacyjny elektroniczny dziennik lekcyjny Innowacyjny elektroniczny dziennik lekcyjny Marcin Tomana (www.tomana.net) marcin@tomana.net XXI Górska Szkoła PTI - Szczyrk 2010 Streszczenie Innowacje wkraczają do szkoły wszelkimi możliwymi sposobami.

Bardziej szczegółowo

S P I S T R E Ś C I. Instrukcja obsługi

S P I S T R E Ś C I. Instrukcja obsługi S P I S T R E Ś C I Instrukcja obsługi 1. Podstawowe informacje o programie.................................................................................... 2 2. Instalacja programu.....................................................................................................

Bardziej szczegółowo

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

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS PROBLEMY TECHNICZNE Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS Jeżeli stwierdziłeś występowanie błędów lub problemów podczas pracy z programem DYSONANS możesz skorzystać

Bardziej szczegółowo

ERGODESIGN - Podręcznik użytkownika. Wersja 1.0 Warszawa 2010

ERGODESIGN - Podręcznik użytkownika. Wersja 1.0 Warszawa 2010 ERGODESIGN - Podręcznik użytkownika Wersja 1.0 Warszawa 2010 Spis treści Wstęp...3 Organizacja menu nawigacja...3 Górne menu nawigacyjne...3 Lewe menu robocze...4 Przestrzeń robocza...5 Stopka...5 Obsługa

Bardziej szczegółowo

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego 2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego produktu. 23 czerwca 2014 Spis treści 3 Spis treści...5

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

Wykład 9. Projektowanie interfejsu użytkownika

Wykład 9. Projektowanie interfejsu użytkownika Wykład 9 Projektowanie interfejsu użytkownika Treść wykładu generacje w rozwoju interfejsu użytkownika tryb wsadowy graficzny interfejs użytkownika interfejs znakowy język poleceń metafory technika okien

Bardziej szczegółowo

6.4. Efekty specjalne

6.4. Efekty specjalne 6.4. Efekty specjalne Rozdział ten będzie poświęcony efektom specjalnym, które również znalazły swoje zastosowanie w programie MS PowerPoint 2007. Pierwszym typem efektów jaki zostanie poddany naszej analizie

Bardziej szczegółowo

Obróbka po realnej powierzchni o Bez siatki trójkątów o Lepsza jakość po obróbce wykańczającej o Tylko jedna tolerancja jakości powierzchni

Obróbka po realnej powierzchni o Bez siatki trójkątów o Lepsza jakość po obróbce wykańczającej o Tylko jedna tolerancja jakości powierzchni TEBIS Wszechstronny o Duża elastyczność programowania o Wysoka interaktywność Delikatne ścieżki o Nie potrzebny dodatkowy moduł HSC o Mniejsze zużycie narzędzi o Mniejsze zużycie obrabiarki Zarządzanie

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

opracował Adam Nowiński

opracował Adam Nowiński opracował Adam Nowiński Projekt Glass, czyli? projekt rozwijany przez firmę Google mający na celu stworzenie okularów rozszerzonej rzeczywistości. Okulary te mają docelowo mieć funkcje standardowego smartfona,

Bardziej szczegółowo

Obsługa poczty internetowej przez stronę internetową (www)

Obsługa poczty internetowej przez stronę internetową (www) Obsługa poczty internetowej przez stronę internetową (www) Konta poczty elektronicznej w ramach domeny introl.pl mogą być obsługiwane poprzez stronę www pod adresem internetowym http://www.introl.pl/wwwmail

Bardziej szczegółowo

OPIEKUN DORADCY: KONTO FIRMY ZARZĄDZANIE KLIENTAMI

OPIEKUN DORADCY: KONTO FIRMY ZARZĄDZANIE KLIENTAMI Portalami Opiekun Doradcy / Opiekun Zysku zarządza firma Opiekun Inwestora z siedzibą w Poznaniu, NIP: 972 117 04 29 KONTAKT W SPRAWIE WSPÓŁPRACY W RAMACH PROJEKTU OPIEKUN DORADCY pomoc@opiekundoradcy.pl,

Bardziej szczegółowo

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

Kodu z klasą. Skarb w zatrutej wodzie, cz. 2. Scenariusz 6 W scenariuszu nr 6 kontynuujemy pracę rozpoczętą na poprzednich zajęciach i ukończymy cały scenariusz. Dzisiaj przygotujemy zdarzenia, gdzie fabryka zatruwa wodę i zwierzęta stają się agresywne oraz zaprogramujemy

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

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Dział Zagadnienia Wymagania podstawowe Wymagania ponadpodstawowe Arkusz kalkulacyjny (Microsoft Excel i OpenOffice) Uruchomienie

Bardziej szczegółowo

Jak przygotować pliki gotowe do publikacji w sieci za pomocą DigitLabu?

Jak przygotować pliki gotowe do publikacji w sieci za pomocą DigitLabu? Jak przygotować pliki gotowe do publikacji w sieci za pomocą DigitLabu? Po zainstalowaniu DigitLabu na komputerze otrzymujemy pakiet programów niezbędnych do przygotowania cyfrowych wersji obiektów tekstowych.

Bardziej szczegółowo

Rysunek 1: Okno z lista

Rysunek 1: Okno z lista 1 Urzadzenie RFID Urządzenie RFID, umożliwia użytkownikom systemu kontrolę dostępu do wydzielonych przez system stref, na podstawie odczytywanych TAG ów (identyfikatora przypisanego do użytkownika) z czytników

Bardziej szczegółowo

www.plansoft.org plansoft.org Zmiany w Plansoft.org Panel wyszukiwania PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW

www.plansoft.org plansoft.org Zmiany w Plansoft.org Panel wyszukiwania PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW Zmiany w Plansoft.org Panel wyszukiwania... 1 Uruchamianie panelu wyszukiwania... 2 Wyszukiwanie poleceń menu... 2 Wyszukiwanie rozkładów zajęć wykładowców... 3 Wyszukiwanie rozkładów zajęć grup i użycia

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt o implementacja pakietu gier planszowych realizowany na platformie Android Autor: Paweł Piechociński Promotor: dr Jadwiga Bakonyi Kategorie: gra planszowa

Bardziej szczegółowo

System JFox-Storekeeper. Instrukcja użytkownika

System JFox-Storekeeper. Instrukcja użytkownika System JFox-Storekeeper Instrukcja użytkownika Spis treści 1. Wstęp...2 2. Aplikacja webowa JFox-Storekeeper...3 2.1. Funkcje administracyjne...3 2.2. Administracja - Grupy towarowe...3 2.2.1. Dodawanie

Bardziej szczegółowo

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

Prezentacja multimedialna MS PowerPoint 2010 (podstawy) Prezentacja multimedialna MS PowerPoint 2010 (podstawy) Cz. 4. Animacje, przejścia, pokaz slajdów Dzięki animacjom nasza prezentacja może stać się bardziej dynamiczna, a informacje, które chcemy przekazać,

Bardziej szczegółowo

Padlet wirtualna tablica lub papier w Internecie

Padlet wirtualna tablica lub papier w Internecie Padlet wirtualna tablica lub papier w Internecie Umiejętność gromadzenia, a potem przetwarzania, wykorzystania i zastosowania informacji w celu rozwiązania jakiegoś problemu, jest uważana za jedną z kluczowych,

Bardziej szczegółowo

System imed24 Instrukcja Moduł Analizy i raporty

System imed24 Instrukcja Moduł Analizy i raporty System imed24 Instrukcja Moduł Analizy i raporty Instrukcja obowiązująca do wersji 1.8.0 Spis treści 1. Moduł Analizy i Raporty... 3 1.1. Okno główne modułu Analizy i raporty... 3 1.1.1. Lista szablonów

Bardziej szczegółowo

PODRĘCZNIK UŻYTKOWNIKA SYSTEMU MaxeBiznes MODUŁ KANCELARIA-Elektroniczny obieg faktury

PODRĘCZNIK UŻYTKOWNIKA SYSTEMU MaxeBiznes MODUŁ KANCELARIA-Elektroniczny obieg faktury PODRĘCZNIK UŻYTKOWNIKA SYSTEMU MaxeBiznes MODUŁ KANCELARIA-Elektroniczny obieg faktury 1.1. Uruchomienie aplikacji Aplikacja uruchamiana jest przez uruchomienie skrótu umieszczonego na pulpicie ekranu

Bardziej szczegółowo