2013-06-29
Implementacja i wykorzystanie mapy cyfrowej w systemach internetowych
System nawigacji satelitarnej od czasu powstania przechodził wiele przeobrażeń. Udoskonalano satelity będące podstawą systemu, jak również (głównie) zdecydowanie ulepszono technologie stosowane w odbiornikach GPS. Coraz dokładniej potrafiono określać położenie poszczególnych obiektów, dzięki stosowaniu coraz bardziej ulepszonych algorytmów i technologii. Wraz z tą ewolucją technologia GPS zyskiwała coraz większe spektrum zastosowań. Obok projektów wojskowych (aktualizacja strategicznych rejonów map, akcje ratunkowe, lokalizacja żołnierzy, niszczenie strategicznych celów nieprzyjaciela, pociski samonaprowadzające, lokalizacja miejsc ataków jądrowych, itp.) system GPS znalazł swoje zastosowanie również w sferze cywilnej zarówno na lądzie (logistyka, ratownictwo, rolnictwo rekreacja, geodezja, ochrona mienia, budownictwo, itp.), powietrzu (ratownictwo lotnicze, lotnictwo, fotogrametria, itp.) jak i wodzie (batymetria, hydrografia, rybołówstwo, ratownictwo morskie, żegluga, itp.). Pomimo mnogości i różnorodności zastosowań, większość z nich spotyka się w tym samym punkcie – w momencie wizualizacji danych na mapie cyfrowej. Obecnie jednymi z najbardziej popularnych są sieciowe mapy cyfrowe dostępne za pomocą interfejsu przeglądarki internetowej. Wśród nich możemy wyróżnić serwis Google Maps oraz Open Street Maps (OSM).
Techniki wspomagające system GPS
AGPS/ A-GPS
System
GPS jest niezwykle przydatnym narzędziem. Jednak ma pewne słabości. Możemy do
nich zaliczyć stosunkowo słabą moc
sygnału, używanego do określania pozycji. Zwykły system GPS bardzo dobrze
sprawdza się na otwartej przestrzeni. Gorzej jest już w przypadku określania
pozycji w otoczeniu drzew lub budynków. A wewnątrz budynków określenie pozycji
z powodu zanikającego sygnału jest praktycznie niemożliwe (może prócz ostatnich
pięter, niektórych miejsc przy oknie lub budynków wykonanych z drewna – gdzie
sygnał nie jest silnie tłumiony). Odbiorniki GPS (jakim najczęściej obecnie są
telefony komórkowe) nie funkcjonują
dobrze (a nawet mogą nie działać) jeśli ich anteny nie znajdują się na otwartej
przestrzeni.
Wszystkie
te powyższe problemy rozwiązuje technologia AGPS (inny skrót A-GPS;
ang.:Assisted GPS). Jej założeniem jest współpraca z odbiornikiem GPS urządzeń
zewnętrznych takich jak serwer wspomagający (ang.: assistance server; dalej nazwany AGPS serwer) wraz z odpowiednią
siecią komunikacyjną GSM/CDMA/LTE (w przypadku tej pracy opisywana sieć to GSM,
sieć telefonii komórkowej) lub w niektórych przypadkach nawet Wi-Fi.
W
opisywanej architekturze serwer AGPS odbiera sygnały emitowane z satelitów
krążących nad ziemią, przetwarza je i zapisuje w podłączonej do niego bazie
danych. Odbiornik GPS może połączyć się poprzez sieć i pobrać odpowiednio
przygotowane przez serwer AGPS dane. Wśród nich można wyróżnić: dane na temat
orbit danego satelity (efemeryda), inicjalna pozycja i czas, pozycja odbiornika
GPS (Rysunek 5). W ten sposób dane lokalizacyjne są znacznie
szybciej przekazywane i odbiornik w mniejszym czasie może określić przybliżoną
lokalizację. Ma to ogromne znaczenie przy najbardziej krytycznym momencie
określania pozycji, mianowicie przy starcie odbiornika kiedy to odbiornik wylicza
pierwszą prawidłową pozycję w oparciu o dane z satelity (opisane wyżej
almanach, efemeryda i dane do obliczenia odległości od satelity), gdzie każde
przeszkodzenie w odbiorze sygnału powoduje ponowienie odbioru danych od
początku.
Przerzucenie samego przetwarzania
sygnałów GPS na zewnętrzny serwer wpływa na oszczędność energii i zasobów
pamięciowych odbiornika GPS. Należy jednak
mieć na uwadze fakt, iż dokładność pomiarów AGPS zależy bezpośrednio od
zasięgu telefonii komórkowej (w szczególności transmisji GPRS).
Drugim minusem są koszty tego
systemu. Podczas gdy zwykły GPS jest całkowicie darmowy, za dane ściągane z
serwera AGPS trzeba zapłacić (koszty stawek operatora GSM za transmisję
danych).
DGPS
Wykorzystując referencyjną stację
bazową, której pozycja jest precyzyjnie określona (znajduje się w dokładnie
geodezyjnie wyznaczonym punkcie) można znacznie zwiększyć precyzję pomiaru GPS
do rzędu 0,5 do 2 m. Technika ta nazywana jest różnicowym GPS – w skrócie DGPS
(ang.: Differential Global Positioning System).
Zadaniem
referencyjnej stacji bazowej jest odbiór sygnału GPS z satelitów i wyznaczanie
na ich podstawie poprawek. Pozwala to wyeliminować większość błędów (błąd
zegara satelity) i opóźnień związanych z emisją sygnału z satelity przez
poszczególne warstwy atmosfery (np.: opóźnienie jonosferyczne i troposferyczne)
pojawiających się przy standardowym pomiarze jednym odbiornikiem (Betke, 2001).
Poprawki wyliczone przez referencyjną stację bazową odbierane są przez odbiornik GPS przez
np. łącze satelitarne lub sieć GPS, WLAN.
Wykorzystanie odbiornika GPS do określenia kontekstu
Wykorzystując informacje
pochodzące z interfejsu GPS można z dokładnością do kilku metrów określić
poszczególny punkt na mapie. W przeciwieństwie do pozostałych interfejsów urządzeń
mobilnych przy pomocy GPS nie ustalimy większego obszaru czy otoczenia a
jedynie pojedyncze miejsce, ściśle określone przez koordynaty wyliczone w
oparciu o sygnały odebrane z satelitów systemu GPS. Możemy więc stworzyć profil
kontekstu lokalizacyjnego zawierający bardzo precyzyjne dane o lokalizacji na
całej kuli ziemskiej. Ograniczeniem popularnych odbiorników jest niezbyt silna
antena umożliwiająca pomiar sygnału GPS jedynie na otwartej przestrzeni, co
również odróżnia kontekst GPS od kontekstów określanych w oparciu o obecność
urządzeń Wi-Fi czy też Bluetooth, które to najczęściej spotykane są w
zamkniętych budynkach lub ich otoczeniu. W związku z tym, iż błąd pomiarów
odbiornika w oparciu o dane systemu GPS wynosi kilka metrów, kontekst ten
będzie opisywać lokalizację w przestrzeni o promieniu kilku metrów. Dodatkowo
można wykorzystać informację o prędkości poruszania się odbiornika, którą to
również otrzymujemy w oparciu o informacje z systemu GPS obliczone na podstawie
różnicy odległości między dwoma punktami pomiaru i czasu między pomiarami. W
ten sposób można w łatwy sposób określić kontekst prędkości poruszania się
urządzenia mobilnego zaopatrzonego w odbiornik GPS.
GPS - wyznaczanie pozycji i precyzja pomiaru
Algorytm wyznaczania pozycji
Metoda wyznaczania pozycji przy
pomocy sygnału GPS opiera się na matematycznym wyliczeniu drogi sygnału od
satelity do odbiornika. Znając czas jaki był potrzebny do przesłania sygnału
odległość tą można wyliczyć ze wzoru:
gdzie:
D – droga sygnału;
C – prędkość światła
(300 000 km/s).
Do
wyznaczenia różnicy czasu wykorzystuje się najczęściej jedną z kilku metod
różniących się obarczonym błędem pomiarów (Zogg, 2009).
Precyzja pomiaru
Aby
możliwe było wyznaczenie współrzędnych odbiornik GPS powinien odbierać sygnał
jednocześnie z minimum 3 satelitów lub 4 dla pomiaru wysokości bezwzględnej.
Określając promienie sfer w oparciu o odległość nadajników do odbiornika (gdzie
centrum sfery jest pojedynczy satelita) możemy w oparciu o miejsca przecięcia
się sfer oszacować położenie odbiornika GPS.
Precyzja
pomiaru położenia przeprowadzonego w oparciu o dane systemu GPS zależna jest od
kilku czynników takich jak dokładność położenia i poruszania się po orbicie
satelity, zakłócenia sygnału radiowego (szum), panujące w trakcie pomiaru
warunki atmosferyczne czy też naturalne lub sztuczne przeszkody fizyczne. W
przypadku błędnie zmierzonego czasu przesłania sygnału z satelity do odbiornika
o 1 µs odchylenie od prawidłowej pozycji może wynieść
nawet do 300 m (Zogg, 2009). Bariery fizyczne, które znajdą się pomiędzy
odbiornikiem a nadajnikiem (jak budynki, ściany czy też wysokie góry) mogą
wpłynąć na błąd pomiaru do 30 m. Zaś sam szum generowany przez urządzenia
lub przedmioty znajdujące się w pobliżu odbiornika GPS może spowodować pomyłkę
rzędu do 10 m. Jest to jeden z najczęściej spotykanych czynników
wywierających wpływ na pomiar położenia (informacje oparte o artykuł
zamieszczony pod adresem: http://www.maps-gps-info.com/gps-accuracy.html).
Z przytoczonych informacji jasno wynika, iż sygnał GPS jest bardzo narażony na
zakłócenia co skutkować może błędem obliczenia pozycji. Najbardziej dokładnie
koordynaty lokalizacji obliczone zostaną kiedy odbiornik i satelita znajdować
się będą wprost na linii „wzroku” przy dobrej pogodzie (bez chmur). Istnieją
oczywiście systemy pomocnicze, których działanie niweluje błędy pomiaru GPS, do
których można zaliczyć AGPS, DGPS czy też systemy różnicowe
WAAS/EGNOS/MSAS/GAGAN.
2013-06-25
Architektura systemu GPS
Segment kosmiczny
Na wysokości około 20 tysięcy kilometrów nad
powierzchnią ziemi na orbicie okołoziemskiej, umieszczone są sztuczne satelity
(Rysunek 1). Tak zwany segment kosmiczny składa się z
24 satelitów, krążących po 6 wytyczonych orbitach. Prędkości poruszania się jak
i trajektorie orbit są tak opracowane aby w każdej chwili, w dowolnym miejscu
na Ziemi widocznych było dla odbiornika GPS 8 do 12 satelitów. W każdej chwili
czasu wiadomo, który satelita gdzie się znajduje, na jakiej wysokości, z jaką
prędkością i w którym kierunku się porusza a także w jakim czasie sygnał od
niego powinien dotrzeć do Ziemi. Bardzo ważna jest również precyzyjna w czasie
emisja sygnału z satelity do Ziemi, która to opiera się na danych z zegarów
atomowych (opisanych poniżej), w które zaopatrzone są satelity. Te wszystkie
precyzyjne dane teoretyczne (wraz z informacją o stanie danej satelity) na
temat całej konstelacji satelitów składają się na dane zwane almanachem.
Almanach przechowywany jest przez każdą z satelitów i wysyłany jest do
odbiornika GPS w chwili kiedy ten jest włączany. Almanachu informuje odbiornik
GPS o stanie satelitów oraz którego z nich należy w danym czasie szukać.
Ważność danych almanachu może wynosić kilka dni.
Segment kontrolny
Pomimo wielkiej precyzji systemu satelitów może wystąpić sytuacja
awaryjna mogąca spowodować błędne funkcjonowanie systemu GPS np.: zboczenie
danej satelity z kursu czy też inną prędkość transmisji sygnału. W celu
kontroli czy nie wystąpiła wyżej opisana sytuacja każdy sygnał emitowany z
każdego satelitę analizowany jest szczegółowo przez sieć naziemnych stacji
zlokalizowanych w kilku miejscach na kuli ziemskiej. Sieć ta nazywana jest
segmentem kontrolnym. Jego głównym celem jest sprawdzanie zgodności działania
systemu z założeniami jak i korekcja trajektorii satelity (poprzez uruchamianie
mini-silniczków rakietowych satelity). Dane dotyczące orbity danego satelity
przechowywane są w postaci tzw. efemerydy. Efemerydy przesyłane są do
odbiornika GPS zaraz po otrzymaniu przez niego sygnału zawierającego almanach z
pojedynczego satelity i są niezbędne do wyliczenia pozycji odbiornika. Ważność
danych efemerydy wynosi kilka godzin.
Segment użytkownika
W skład tak zwanego segmentu użytkownika wchodzi odbiornik GPS wraz z
oprogramowaniem wspomagającym odbiór i obróbkę sygnału emitowanego przez
satelity.
Podstawowy sygnał GPS satelity
Oprócz opisanych powyżej danych almanachu i efemerydy
odbiornik GPS otrzymuje trzeci rodzaj danych emitowany przez daną satelitę
służący do obliczenia odległości odbiornika GPS od danej satelity.
Idea funkcjonowania systemu GPS opiera się na odpowiedniej
interpretacji informacji otrzymanych właśnie z tych satelitów.
Rysunek 1. Model
rozmieszczenia satelitów operacyjnych systemu GPS (http://www2.jpl.nasa.gov/basics/bsf9-1.php).
Każdy satelita okrąża dwukrotnie
kulę ziemską w ciągu doby z dużą prędkością. W tym czasie w sposób ciągły
transmituje sygnał w kierunku powierzchni ziemi używając dwóch częstotliwości, wojskowej
(1227,60 MHz) oraz cywilnej (1575,42 MHz).
Prędkość transmisji sygnału z satelity wynosi około 50b/s. Wszystkie satelity
(obecnie 31) do transmisji używają tych samych częstotliwości wykorzystując
metodę CDMA (ang. „Code
Division Multiple Access”), w
której sygnał każdej z nich podlega modulacji umożliwiającej ich identyfikację.
Dane wysyłane przez satelity
przekazywane są przy pomocy protokołu komunikacyjnego o nazwie NMEA 0183 (skrót
od amerykańskiej organizacji rozwijającej protokół: „National Marine
Electronics Association). Każdy odbiornik GPS otrzymuje dane w postaci łańcucha
ASCII (do 82 znaków). Sentencję rozpoczyna identyfikator zdania – nazwa
znacznika poprzedzona znakiem początku linii „$”. Kolejne pola w sentencji
opisują między innymi informacje o pozycji odbiornika GPS i jej jakości,
zawierają dane o ilości śledzonych satelitów wraz z ich położeniem jak i czas
wyznaczenia pozycji w oparciu o informacje z zegarów atomowych, w które to
zaopatrzone są satelity (w celu synchronizacji pracy całego systemu). Terminem
zegar atomowy określa się niezwykle precyzyjne urządzenia do pomiaru czasu,
które wg definicji mogą pomylić się o 1 sekundę raz na 30 tys. do 1 mln
lat. Poglądowy schemat wiadomości NMEA
przedstawiony został na Rysunek 2.
Rysunek 2. Przykład
wiadomości NMEA wysyłanej przez satelitę do odbiorników GPS (na podstawie
informacji ze strony http://www.gpsinformation.org).
Skrócona historia systemu GPS
W roku 1973 Departament Obrony Stanów Zjednoczonych
Ameryki (USA) opracował system nawigacji satelitarnej (GPS; ang. “Global Positioning System”).
Pierwotnie opracowany na potrzeby wojskowe marynarki i lotnictwa USA, do użytku
publicznego został udostępniony w 1993 roku.
Tworzony
system miał za zadanie określać pozycję z czasem w dowolnym miejscu kuli
ziemskiej. Dokonywane pomiary miały dawać wyniki z jak największą precyzją
niezależnie od panujących warunków
atmosferycznych. Stąd wzięła się pełna nazwa systemu NAVSTAR – GPS, w
rozwinięciu Układ Nawigacji
Satelitarnej Określania Czasu i Odległości Globalnego Systemu Pozycjonowania
(ang. ”Navigational Satellite Time and Ranging, Global Positioning System”).
Proces określania pozycji powinien odbywać się w czasie rzeczywistym, zaś
precyzja pomiarów powinna wynosić około 5 m.
2013-06-21
Tomcat - konfiguracja DataSource
Konfiguracja połączenia kontenera Tomcat z bazą danych Oracle.
Wersja Tomcat 5.5/7.0;
Wersja DB Oracle: 11g;
Wersja Java: 1.5/1.7;
Ścieżka instalacji Tomcat: TOMCAT_HOME=c:\Program Files\Apache Software Foundation\Tomcat 5.5\
wrzucamy bibliotekę do połączenia z bazą danych oracle
- biblioteka: ojdbc5.jar
- docelowy katalog serwera Tomcat: %TOMCAT_HOME%\server\lib
definicja DataSource po stronie serwera Tomcat
- plik: %TOMCAT_HOME%\conf\context.xml
- konfiguracja do dodania:
konfiguracja po stronie aplikacji
- w pliku web.xml dodajemy:
2013-06-11
Wzbudzenie wibracji w systemie Android
Aby wykorzystać wibracje w urządzeniu z systemem Android wystarczy minuta przygotowań.
Po pierwsze tworzymy zmienną obiektową w klasie Activity o typie Vibrator (Android.os.Vibrator).
Po drugie inicjujemy zmienną. Przypisujemy do niej serwis sytemowy odpowiedzialny za wibrację, podając odpowiedni kontekst wibracji (Context.VIBRATOR_SERVICE);
Na końcu wywołujemy specjalną metodę obiektu wibratora - vibrate: void android.os.Vibrator.vibrate(long milliseconds).
Przykładowy kod poniżej:
Po pierwsze tworzymy zmienną obiektową w klasie Activity o typie Vibrator (Android.os.Vibrator).
Po drugie inicjujemy zmienną. Przypisujemy do niej serwis sytemowy odpowiedzialny za wibrację, podając odpowiedni kontekst wibracji (Context.VIBRATOR_SERVICE);
Na końcu wywołujemy specjalną metodę obiektu wibratora - vibrate: void android.os.Vibrator.vibrate(long milliseconds).
Przykładowy kod poniżej:
2013-06-10
Wyświetlenie obiektu ProgressDialog w trakcie logowania i tworzenia nowego Activity
Aby wyświetlić obiekt ProgressDialog w Activity systemu Android, w trakcie kiedy oczekujemy na zakończenie długo wykonującej się akcji (typu logowanie, połączenie do serwera zewnętrznego i oczekiwanie na odpowiedź) musimy obiekt ten zainicjować w osobny, równolegle przetwarzającym się wątku.
Do wyświetlenia ProgressDialog potrzebujemy tylko klika linijek kodu (a właściwie to jednej):
Zakańczamy wyświetlanie informacji o postępie wywołując prostą funkcję:
Jak widać ta część jest banalna. Niestety bez zastosowania osobnego wątku nie będzie to działało - obiekt nie pokaże się na ekranie smartfonu. Całość należy zgrabnie opakować w osobny wątek. A zmienne "wynieść" do zmiennych obiektowych (pola obiektu):
Subskrybuj:
Posty (Atom)