Mobilne technologie geoprzestrzenne z uwzględnieniem aplikacji w systemie Android Łukasz Markiewicz Katedra Systemów Geoinformatycznych Wydział Elektroniki, Telekomunikacji i Informatyki
Plan prezentacji GIS i GPS Platformy mobilne (Android, ios, Unity 3D) Android ios Unity 3D Stworzenie Android prostej aplikacji mobilnej na platformie Wykorzystanie platformy Android do tworzenia złożonych projektów geoinformatycznych na przykładzie systemu nawigacji dla niewidomych Mówiące Mapy (w tym zagadnienia geoinformatyczne)
GIS i GPS GIS (Geographic Information System): system informacji geograficznej rozległy termin, wiele różnych zastosowań system łączący dane i atrybuty geograficzne z innymi danymi w celu wizualizacji map, dokonywania analiz przestrzennych,... GPS (Global Positioning System): globalny system pozycjonowania na lądzie, wodzie i w powietrzu aktualna pozycja, prędkość i czas w popularnych urządzeniach mobilnych wspomagany przez sieć GSM, kompas cyfrowy dokładność zależna od: warunki pogodowe, jakość odbiornika,...
GIS i GPS Wyzwania w wykorzystaniu GIS i GPS w aplikacjach mobilnych: (GIS) potrzeba pozyskania specjalizowanych danych przestrzennych (GIS) mnogość danych i meta-danych (GIS) dokładność danych (GPS) dokładność pozycjonowania (GPS) błędy wyznaczania pozycji (GPS) odbiorniki wbudowane i zewnętrzne...
Platformy mobilne (przenośność aplikacji) Ta sama aplikacja mobilna na różnych urządzeniach: dawniej JavaME i Symbian aktualnie Android, ios, Windows Phone, BlackBerry,... wybór: popularność, możliwości udostępnione wytwórcom oprogramowania, sprawdzona platforma, cena urządzeń,...
Platformy mobilne mobilne urządzenia i systemy operacyjne znaczący i rosnący trend w wytwarzaniu oprogramowania zmiany w przemyśle sprzętowym urządzenia mobilne pojawiły się na rynku razem z rozwojem komputerów osobistych w latach 90. ubiegłego wieku usługi mobilne stały się szeroko dostępne i popularne (telefony komórkowe, pagery) w latach 2000-2008 nowoczesne smartfony wytwarzane przez RIM, Nokia, Apple i Google, potem przez wiele firm zwiększające się możliwości sprzętowe urządzeń mobilnych coraz bliższe komputerom osobistym od roku 2010 duża popularność tabletów
Android w roku 2008 premiera systemu operacyjnego Android oraz smartfonu Google G1 w odpowiedzi na ogromny sukces urządzeń mobilnych firmy Apple (iphone, ipod) stworzony przez Google we współpracy z wieloma firmami zrzeszonymi w OHA (Open Handset Alliance) aktualnie w OHA ponad 80 korporacji z różnych gałęzi przemysłu (producenci sprzętu, oprogramowania, operatorzy sieci,...) główny cel OHA utworzenie systemu operacyjnego (opensource) opierającego się o Linux oraz stworzenie listy wytycznych dla kompatybilnych urządzeń mobilnych system zdobył silną pozycję na rynku - nadal jest rozwijany oraz rozbudowywany z roku na rok nieustannie rosnąca ilość sprzedawanych kompatybilnych urządzeń
Android język programowania - zmodyfikowana wersja Java maszyna wirtualna Dalvik (DVM) - mniej wymagająca sprzętowo i zajmująca mniej pamięci niż maszyna wirtualna Java (JVM) API Androida używa dodatkowych bibliotek i modułów (brak ich w API Javy) wsparcie dla ekranów dotykowych i sensorów urządzeń mobilnych projekty mogą być tworzone w wielu środowiskach: m.in. w Eclipse lub Netbeans (poprzez dodatkowe wtyczki) oficjalnym środowiskiem jest ADT (Android Development Tools - oparte o Eclipse) zawiera obraz systemu urządzenia mobilnego operacyjnego oraz emulator parametry urządzenia i jego możliwości są konfigurowalne
Android ADT (Eclipse) Cechy ADT: moduł tworzenia projektu, edytor kodu źródłowego, edytor GUI DDMS (Dalvik Debug Monitor Server) zestaw narzędzi używanych do kontroli stanu urządzenia i jego maszyny wirtualnej (podgląd wątków i pamięci, explorator plików itp.) tworzona aplikacja może również zostać uruchomiona poprzez ADT na fizycznym urządzeniu podłączonym do komputera
Apple ios mobilny system ios firmy Apple (system na komputery stacjonarne to Mac OS X) od 2007 roku na rynku urządzenia iphone, ipod, ipad duży wpływ na rynek, jeden z dwóch najbardziej popularnych systemów mobilnych język programowania: Objective-C znacznie poszerzone możliwości) (oparty o język C, zaprojektowany aby dodać metody programowania obiektowego do języka C, kod w języku C może być używany w plikach języka Objective-C oferuje odmienne podejście do wywoływania metod oraz dostępu do parametrów
Apple ios zamiast operatora. pojawiają się znane z języka Smalltalk kwadratowe nawiasy w późniejszych wersjach Objective-C dodano operator. wywołanie metod w Objective-C: obiekt.metoda(); [obiekt methoda]; obiekt.metoda(parametr); [obiekt method: parametr];
Apple ios - Xcode Cechy Xcode IDE: wspólne srodowisko programowania dla ios i Mac OS X moduły do budowy projektów, GUI i edycji kodu źródłowego zestaw narzędzi Instruments do testowania sprawdzenia wydajności i wyszukiwania błędów aplikacji,
Unity 3D
Unity 3D Unity3D: środowisko do wytwarzania gier (również wizualizacji geoprzestrzennych) na wiele platform pierwsza wersja w 2005 roku jedynie na MAC OS X obecnie wytwarzanie projektów na wiele stacjonarnych, mobilnych i sieciowych platform: Windows, ios, Android, Mac OS X, XBox 360, PS3, Wii i Adobe Flash zawiera wiele gotowych elementów, które upraszczają proces tworzenia gier i aplikacji (silnik, fizyka, kolidowanie obiektów itp.) silnik do wyświetlania grafiki (rendering), zarządzanie i edycja zasobów (grafiki, modele), obsługa skryptów i wielu języków programowania oraz multimediów silnik graficzny używa wielu API (Direct3D, OpenGL, OpenGL ES, etc.) w zależności od wybranej platformy wynikowej wizualizacja sceny (ekranu), możliwa edycja kodu w trakcie
Unity 3D skrypty mogą być pisane w językach C# i JavaScript udostępniane biblioteki edytorów i narzędzi umożliwiają tworzenie własnych wbudowany moduł wizualizacyjny umożliwia testowanie działanie aplikacji podczas każdego etapu wytwarzania (zmiana parametrów obiektów lub wartości zmiennych podczas uruchomienia moduł Inspection ) zmiana platformy wynikowej prawie jednym kliknięciem, wymagane drobne zmiany w kodzie źródłowym projektu (np. obsługa innego systemu plików, obsługa odmiennych API, różne sposoby sterowania) np. aplikacja została początkowo zaimplementowana na stacjonarną platformę (np. Windows), a następnie zostaje dostosowana do platform mobilnych (pojawia się konieczność obsługi ekranu dotykowego oraz potrzeba innego sposobu sterowania)
Platformy mobilne - podsumowanie ogromny wzrost rynku platform mobilnych w ostatnich latach nieustanny rozwój sprzętowych platform mobilnych i możliwości konsumenci oraz wytwórcy oprogramowania mogą wybrać platformę, która spełnia ich oczekiwania i potrzeby urządzenia mobilne stały się czymś więcej niż urządzeniami używanymi do bezprzewodowej komunikacji (kalendarz, notatnik, aparat fotograficzny, kamera, narzędzie do przeglądania internetu, rozrywka, narzędzie pomiarowe,...) duże zapotrzebowanie - powstają mniejsze i większe firmy nastawione na tworzenie mobilnego oprogramowania istniejące firmy tworzą działy technologii mobilnych każdego roku pojawiają się nowe narzędzia, platformy i produkty
Stworzenie prostej aplikacji mobilnej używającej map na platformie Android (ADT) instalacja środowiska ADT użycie Google Maps V2 API jest elementem i wymaga instalacji Google Play Services w SDK wygenerowanie klucza do API dla aplikacji (http://console.developers.google.com, SHA1 + nazwa pakietu Android Key) utworzenie nowego projektu Android Application, np. wersja API 17, czyli Android 4.2.2 import biblioteki Google Play Services (Google Maps V2 API) dodanie do pliku AndroidManifest.xml danych klucza API dodanie zgód aplikacji w tym samym pliku utworzenie widoku mapy (MapFragments) w aplikacji (plik.xml aktywności)
Stworzenie prostej aplikacji mobilnej używającej map na platformie Android (ADT) kod na pobranie i wyświetlenie mapy (plik.java oncreate(), initializemap(), onresume()) wyświetlenie mapy dodanie znacznika marker na mapie zmiana koloru i ikony znacznika przeniesienie widoku mapy do znacznika zmiana typu mapy (normal, hybrid, terrain) pokazanie aktualnej pozycji urządzenia na mapie włączanie/wyłączanie przycisków zoom, gestów, kompasu, prezentacja
Przykładowy system Mówiące Mapy - system GIS wspomagający poruszanie się niewidomych w terenie miejskim Projekt został wsparty dofinansowaniem przez Narodowe Centrum Badań i Rozwoju w ramach programu IniTech. W prezentacji wykorzystano fotografie wykonane przez Narodowe Centrum Badań i Rozwoju.
Realizacja W dwóch fazach: badania naukowe, prototyp: (Katedra Systemów Geoinformatycznych, Politechnika Gdańska) zebranie danych przestrzennych, wdrożenie: (Okręgowe Przedsiębiorstwo GeodezyjnoKartograficzne "OPEGIEKA" Sp. z o.o.) Autorzy: Andrzej Stepnowski, Łukasz Kamiński, Łukasz Markiewicz, Marcin Kulawiak, Krzysztof Bruniecki
Elementy systemu odbiornik DGPS/GPS (pozycjonowanie) urządzenie mobilne, np. smartfon aplikacja mobilna (nawigacja + GUI) dedykowana aplikacja do zbierania danych przestrzennych baza danych przestrzennych (istniejące mapy + punkty adresowe, przeszkody, zagrożenia itp.)
Poprzednia architektura systemu (pełna kopia danych na urządzeniu mobilnym)
Obecna architektura systemu (zdalny dostęp do danych - poprzez internet)
Metody akwizycji danych przestrzennych istniejące mapy z projektu OpenStreetMaps dodane punkty Points of Attention & Points of Interest dla niewidomych (np. budynki, adresy, skrzyżowania, nawierzchnia, przeszkody, zagrożenia,...) zbieranie urządzeniem mobilnym (smartfon) oraz profesjonalnymi urządzeniami (GTK DGPS)
Specyfika danych przestrzennych Dane wektorowe: możliwość konstrukcji grafu na potrzeby wyszukiwania ścieżki łatwość dostarczania obiektów przestrzennych na potrzeby opisu otoczenia aspekt wizualizacyjny
Pobieranie danych z serwera format OSM dane wektorowe rozszerzalny mechanizm atrybutów sprawdzony i skalowalny aspekt społecznościowy
Pozyskiwanie danych pozyskiwanie i aktualizacja danych to kosztowne przedsięwzięcie szansą na ograniczenie kosztów jest pozyskiwanie danych przez społeczność media społecznościowe konieczne zapewnienie dedykowanych narzędzi i infrastruktury
Zadania aplikacji mobilnej wizualizacja mapy określenie aktualnej pozycji użytkownika na mapie wyznaczanie ścieżki do wybranego celu nawigacja głosowe komunikaty o otoczeniu (punkty POA/POI) log pozycjonowania (testy)
Komunikacja z użytkownikiem Wejście: główne menu (ekrany dotykowe) klawiatury fizyczne i programowe rozpoznawanie gestów rozpoznawanie mowy Wyjście: dźwięki (w tym słuchawki klasyczne i słuchawki kostne) wibracje urządzenia obraz (wizualizacje)
Graficzny interfejs menu na ekranie dotykowym dedykowane klawiatury ekranowe, klawiatury systemowe, klawiatury fizyczne, rozpoznawanie mowy wszystkie komunikaty prezentowane głosowo oraz poprzez wibracje wszystkie funkcje urządzenia (dzwonienie, SMS, ) powinny być nadal dostępne czy są wymagane lub opcjonalne dodatkowe urządzenia zewnętrzne (np. zewnętrzny DGPS)
Klawiatury programowe Klawiatura tablicowa Klawiatura gestowa (wolniejsze wprowadzanie) (szybka, ale kształty niektórych liter podobne) Trzecia metoda wprowadzania tekstu, oparta na rozpoznawaniu mowy - najlepsza i najszybsza (wymagany dostęp do internetu)
Nawigacja wyszukiwanie ścieżki prowadzenie po ścieżce opis otoczenia korygowanie ruchu weryfikacja, anonsowanie komunikaty o przeszkodach i utrudnieniach
Pozycjonowanie w praktyce wbudowane w urządzenia mobilne odbiorniki GPS są zawodne testy odbyły się na wielu urządzeniach (Samsung, HTC, Nokia) dokładność zależna od warunków (pogoda, zachmurzenie, stan baterii) możliwość użycia dodatkowego (zewnętrznego) odbiornika rozwiązane częściowo poprzez odbiornik DGPS
Poprawa dokładności pozycjonowania Metoda sprzętowa - DGPS odbiornik Garmin etrex DGPS poprawki z sieci ASG-EUPOS (stacje poniżej) adapter Bluetooth (do łączności z urządzeniem mobilnym)
GPS kontra DGPS Ścieżki pochodzą z testów terenowych na terenie kampusu Politechniki Gdańskiej: czerwony ścieżka z GPS czerwony ścieżka GPS zielony ścieżka z DGPS (błędy GPS zaznaczone strzałkami) niebieski prawdziwa ścieżka niebieski ścieżka z DGPS DGPS poprawia pozycjonowanie w stosunku do GPS
GPS kontra DGPS DGPS zmniejsza błędy pomiaru położenia
Poprawa dokładności pozycjonowania Metoda programowa - map-matcher niebieski pozycjonowanie GPS, fioletowy pozycjonowanie aplikacji (błędy na początku urządzenie w budynku)
Map-matcher Pozycjonowanie aplikacji poprawnie nie uznaje, że użytkownik znajduje się po drugiej stronie ulicy, mimo wielu błędnych pomiarów GPS
Map-matcher gdy w okolicy znajduje się przejście dla pieszych aplikacja bierze to pod uwagę przy pozycjonowaniu faktyczne przejście użytkownika przez ulicę kilka chwilowych błędów GPS (skoki), ale po krótkiej chwili pozycja użytkownika zostaje poprawnie zmieniona (druga strona ulicy)
Map-matcher po pierwszym i przed drugim skrzyżowaniem znaczące błędy GPS, wiele połączeń pomiędzy różnymi ścieżkami chwilowe błędy GPS (skoki) pozycjonowanie powraca na właściwą ścieżkę po około 5-10 pomiarach GPS (w mniej niż 1 sekundę)
Testy aplikacji mobilnej
Testy aplikacji mobilnej
Podsumowanie możliwości integracji GIS i GPS dane przestrzenne dokładność pozycjonowania i nawigacji ekrany dotykowe urządzeń mobilnych rozpoznawanie mowy najszybszy sposób na sterowanie i wprowadzanie danych? klawiatury fizyczne i programowe niezawodność wbudowanych odbiorników GPS i sensorów w urządzenia mobilne komunikaty ostrzegawcze, anonsowanie, weryfikacja