MagicMapHelp

aus Nomads, der freien Wissensdatenbank

Dies ist die Hilfe-Dokumentation zum Funkortungs-System MagicMap. Wenn Sie sich weniger für die Technik und Systemarchitektur interessieren, können sie zur Bedienung des MagicMap Clients wechseln.

Zurück zur MagicMap Übersicht

Inhaltsverzeichnis

Einleitung

Was ist MagicMap?

MagicMap ist ein verteiltes Softwaresystem zur Berechnung von Positionen mobiler Geräte aufgrund der von ihnen empfangenen bzw. ausgesendeten Funksignale.

Wie funktioniert MagicMap?

MagicMap integriert bisherige Ortungstechnologien
vergrößern
MagicMap integriert bisherige Ortungstechnologien

Mobile Geräte empfangen verschiedene Funksignale ihrer Umgebung, z.B. WLAN-, GSM, Bluetooth- oder RFID. Diese lassen sich zur Positionsbestimmung benutzen. Verwendet wird dazu ein hybrides Verfahren mit:

  • Trilateration: Distanzschätzung zwischen mehreren Sendern und Empfängern aufgrund von Signalstärkemessungen bzw. Signallaufzeitdifferenzen
  • Triangulation: Nutzung von Winkelinformation (durch Richtantennen oder Antennenarrays)
  • Ausbreitungsmodell: Einbeziehung typischer Antennencharistika (omnidirektial oder gerichtet mit bestimmtem Öfnungswinkel sowie spezielle Ausbreitungscharakteristiken typischer Mehrfachantennensysteme mit spatial multiplexing)
    • Einbeziehung empirischer Messungen (Radio Map mit weighted averaged k-nearest neighbor)
    • Einbeziehung von Signalhindernissen (z.B. Wände, Decken) soweit bekannt bzw. aus Signalmessungen ableitbar
  • Bewegungsmodell: punktuelles und kontinuierliches Tracking mit Einbeziehung typischer Indoor-Bewegungsmuster
    • Abgleich der wahrscheinlichen Bewegungen mit den möglichen Bewegungen innerhalb des Umgebungsmodells (Flure, Türen, Treppen)

MagciMap ist also ein hybrides Verfahren, das verschiedene Funktechnologien integriert. MagicMap versucht dabei den Informationsgehalt der empfangbaren Funksignale unter gegebenen Annahmen über Hardwareausstattung und Umgebung bestmöglich auszuwerten (Probabilistisches Graph-Mapping nach Maximum-Likelihood-Methode. Näheres siehe MagicMap Verfahren).

Wer sieht wen?

Mobile Geräte werden in einer Karte dargestellt. Dabei können sie selber ihre Position berechnen (Selbstortung oder Client-basierte Ortung) oder durch andere Knoten, eine Infrastuktur, geortet werden (Fremdortung oder Infrastruktur-basierte Ortung). Die Positionsinformationen werden an kooperierende Knoten weitergegeben. Als einfache "Privacy Funktion" gibt es in MagicMap einen "Unsichtbar-Modus", in dem die eigene Positionsinformation nicht an andere weitergegeben wird. Weitere Zugangs- und Sichtbarkeits-Funktionen sind in Planung.

Wie werden Positionsinformationen weitergegeben?

MagicMap Übersicht
vergrößern
MagicMap Übersicht

Die Messwerte und berechneten Positionen werden – falls erwünscht – über einen Server an die anderen Clients weitergeleitet. Unser Server phl.rok.informatik.hu-berlin.de steht für Experimente zur freien Verfügung (ohne Gewähr). Die Kommunikation ist über Web Services/SOAP realisiert, Entwickler finden die genaue Beschreibung unter Architektur und Schnittstellen.

Ist kein Server erreichbar, kann der Datenaustausch auf Peer-to-Peer-Kommunikation umgeschaltet werden (diese Funktion ist z.Zt. noch in Entwicklung und vrsl. ab Version 2.0 integriert). Alternativ kann man auf die Datenübertragung ganz verzichten und sich autark orten - sieht dann aber natürlich auch nicht die Positionen anderer.

Mit welchen Geräten funktioniert MagicMap?

MagicMap benötigt keine spezielle Hardware und es können prinzipiell alle Geräte mit entsprechender Funkunterstützung verwendet werden.

Beispiele möglicher Geräte stehen unter mobile Knoten sowie MMCEKompatibilitaetsliste.

Welche Funktionen können die Geräte übernehmen?

Wir unterscheiden folgende Gerätearten (Knoten):

Stationäre Knoten (Position bekannt)

  • Beacon Nodes (Access Points): Senden Funksignale, anhand derer sich die übrigen Knoten orten können. Bei WLAN sind dies Access Points oder Router. Bei GSM/UMTS heißen sie "Basis-Sende- und Empfangsstation" (BTS). Beacon Nodes sind stationär, üblicherweise mit einer für alle bekannten Position. Die Positionen der Beacon Nodes werden in MagicMap durch Kooperation zusammengetragen bzw. aktualisiert, so dass sich mobile Knoten auch in für sie unbekanntem Gebiet orten können. Da man zu Beacon Nodes nur selten administrativen Zugang hat, läuft darauf i.d.R. keine MagicMap-Software (wenn man Zugang hat und die MagicMap-Software installiert, kann man die Ortungsgenauigkeit erhöhen). Kennt ein MagicMap-User die Position eines Beacon Nodes, kann er diesen als "fixiert" markieren und ihm eine feste Position zuordnen. Ist die Position eines Beacon Nodes unbekannt, können Referenzpunkte (Messpunkte mit bekannter Position) gesetzt werden, anhand derer die Position des Beacon Nodes geschätzt wird.
  • Sniffer Nodes: Empfangen die Funksignale der mobilen Knoten - auch im Promiscous Mode ohne deren Zutun - und werten diese mittels der MagicMap-Software aus. Üblicherweise sind solche Sniffer stationär mit einer bekannten Position, anhand derer die Position der übrigen Knoten ermittelt wird. Grundsätzlich können aber auch mobile Knoten als Sniffer arbeiten. Mehr dazu unter Fremdortung.

Mobile Knoten (Position zu ermitteln)

links: PDA unter Windows Mobile (WM5), rechts: TabletPC unter Windows XP
vergrößern
links: PDA unter Windows Mobile (WM5), rechts: TabletPC unter Windows XP
  • Reguläre Knoten (Clients): Empfangen die Funksignale der Beacon Nodes und berechnen daraus mittels der MagicMap-Software die eigene Position. Bei regulären Knoten handelt sich um PDAs, Smartphones, Tablet-PCs oder Notebooks, die dies durch die MagicMap-Software bewerkstelligen. Diese existiert für Windows (XP oder Vista), Windows Mobile (CE), Mac OS X, Linux und embedded Linux (OpenWRT).
  • Oblivious Nodes: können von Sniffer-Knoten geortet werden, ohne dass sie dafür spezielle Software benötigen (es können also auch Knoten geortet werden, ohne dass diese davon "wissen"). Voraussetzung ist, dass "Oblivious Nodes" Signale aussenden, aus denen die übrigen Knoten eine Distanzschätzung bzw. Winkelschätzung ermitteln und dem entsprechenden Knoten zuordnen können. So können etwa Geräte geortet werden, die versuchen, sich in einem WLAN-Netz (unberechtigt?) einzubuchen (z.B. Notebooks, PDAs, VoIP-Telefone).
ZigBee-Tag
vergrößern
ZigBee-Tag
RFID-Tag
vergrößern
RFID-Tag
  • Tags: Tags sind speziell entwickelte Geräte, die eine Ortung mobiler Objekte erlauben und dazu möglichst preiswert, klein, stromsparend, ausdauernd und robust sind. Dementsprechend haben sie meist eingeschränkte Möglichkeiten zur Messung und Verarbeitung von Signalen und können i.d.R. keine autonome Positionsberechnung durchführen. Stattdessen senden sie von Zeit zu Zeit einfache "I am alive"-Signale, die von den übrigen Knoten empfangen und zur Identifikation und Ortung genutzt werden. Man unterscheidet:
    • Aktive Tags: verfügen über eine eigene Stromversorgung und erlauben eine kontinuierliche Positionsbestimmung und deren Abfrage zu jedem beliebigen Zeitpunkt. Da sie nicht in einen Standby-Modus wechseln, kann die Position zwar ununterbrochen protokolliert werden, dies erlaubt aber lediglich Laufzeiten bei Batteriebetrieb von mehreren Stunden bis zu wenigen Tagen. Hierfür können spezielle Tags, beispielsweise von Ekahau, PanGo, oder Fon genutzt werden (siehe MobileNode).
    • Semiaktive Tags: Um Standby-Zeiten von Wochen, Monaten bis zu mehreren Jahren zu ermöglichen, beherrschen semiaktive Tags bestimmte Ruhemodi, aus denen sie durch interne (beispielsweise einen Timer oder einen Beschleunigungssensor) oder externe Events (Wake-Up-Signal) aufgeweckt werden. Die ZigBee-Technologie nach IEEE 802.15.4-Standard erlaubt besonders kompakte, stromsparende und kostengünstige Tags.
    • Passive Tags: verfügen über keine eigene Stromversorgung sondern erhalten ihren Strom durch Induktion von einem Reader. Bisher werden in MagicMap passive Tags nach UHF RFID EPC Gen II unterstützt, die eine Auslesereichweite von bis zu 8m bei einer relativen Ortungsgenauigkeit von rund 30% (je nach verwendeter Hardware) erreichen. Mehr unter Einsatz von RF-Technologie zur Positionsbestimmung.

Aus welchen Komponenten besteht MagicMap?

MagicMap ist ein verteiltes Softwaresystem und besteht aus mehreren Modulen:

  • Core – das Basis-Framework, das modular durch nachfolgende Plugin-Module erweitert werden kann:
  • Positioning Engine – berechnet die Positionen. Die Aufteilung der Berechnung kann unterschiedlich konfiguriert werden: Berechnung auf den Clients, auf dem Server oder verteilt. Im "Auto-Modus" wird die Berechnung entsprechend der Leistung der verfügbaren Rechner ad-hoc verteilt (in Entwicklung).
  • GUI – zeigt die Position der mobilen Objekte auf Karten an. Core, Positioning Engine und GUI gibt es Betriebssystem-unabhängig in Java für "ausgewachsene" Rechner sowie in .Net/C# für Pocket PCs mit Windows 2003/WM5/WM6.
  • Stumbler – misst sensorische Daten der Umgebung, z.B. WLAN-Signalstärkeinformationen. Es gibt verschiedenen Stumbler für WLAN, Bluetooth, RFID und ZigBee jeweils für unterschiedliche Hardware und Betriebssysteme. Übersicht unter MagicMap Plugins.
  • Server – sorgt für die Verteilung der Daten zwischen den Knoten (Signalstärke-Messwerte, Positionsberechnungen bzw. Referenzmessungen)

Weiterhin sind geplant:

  • P2P-Kommunikation (noch nicht integriert) – erlaubt den Austausch von Daten auch in infrastrukturlosen Umgebungen, also auch ohne Zugang zu einem Server bzw. zu Access Points
  • Tracker (noch nicht integriert) – beobachtet die Positionsdaten und triggert bei bestimmten Mustern voreinstellbare Aktionen

Was benötige ich genau, um MagicMap einzusetzen?

Um in einem Anwendungsszenario eine Ortung durchzuführen, muss zunächst eine Ortungsinfrastruktur existieren bzw. aufgebaut werden (Beacon Nodes bzw. Sniffer). Hierzu können kostengünstige Consumer-Produkte von Asus, Linksys, Fon, Netgear und anderen Herstellern verwendet werden. Auf diesen fest installierten Infrastruktur-Geräten sowie auf den zu ortenden Clients läuft die MagicMap Software (empfohlen aber nicht erforderlich, wie oben für die Knoten beschrieben). Mindestkonfiguration auf einem mobilen Gerät ist das Core-Framework sowie ein Stumbler zur Messung der Funksignale. Sollen sich die mobilen Clients autonom orten können, benötigen diese ferner eine Positioning Engine, sowie die grafische Benutzeroberfläche (GUI) zur Darstellung. Für eine ausgewachsene Ortungsanwendung mit 100 bis 1000 mobilen Clients empfiehlt sich ein leistungsfähiger Server, der die Ortungsberechnungen durchführt. Durch Plugins kann die Funktionalität an die speziellen Erfordernisse der Anwendung angepasst werden.

Welche Ortungsgenauigkeit wird erreicht?

Die Ortungsgenauigkeit hängt sehr von der Anwendungsumgebung, der Störung durch Hindernisse, der Anzahl und Ausleuchtung durch Basisstationen sowie von der Qualität der Antennen ab. In Bereichen, in denen 3 oder mehr WLAN Access Points empfangbar sind, ist eine Ortungsgenauigkeit von 3-7 Metern typisch. Die Ortungsgenauigkeiten von Bluetooth liegt bei etwa 2m, ZigBee erreicht 3 Meter und mit GSM erreichen wir eine Genauigkeit von etwa 90m (im Stadtbereich Berlin).

Ist MagicMap kostenlos?

Die Java Core-Komponenten von MagicMap sowie das in C#/.Net entwickelte MagicMap für Windows CE Geräte stehen für wissenschaftliche und private Zwecke frei zur Nutzung. Erweiterungen können als Plugins nachinstalliert werden. Diese Plugins unterliegen unterschiedlichen Lizenzierungen, siehe MagicMap Plugins, sind für wissenschaftliche/private Nutzung aber i.d.R. kostenlos (zum Teil können wir die wegen Rechten Dritter nicht sourceoffen weitergeben).

Die Sourcen sind im Rahmen einer Kooperationsvereinbarung für wissenschaftliche Projekte und Industriekooperationen auf Anfrage erhältlich.

Gleiches gilt für Server-Erweiterungen, wie zur MagicMap Google Earth Integration, sowie für weitere Software-Module für spezielle Geräte, z.B. für OpenWRT zur Umsetzung der Sniffer-Funktionalität.

Siehe auch MagicMap Lizenz.

Download und Installation

MagicMap Client – plattformunabhängig in Java

Grundsätzlich ist MagicMap als Java-Anwendung plattformunabhängig. Allerdings muss die Stumbler-Schnittstelle auf den verschiedenen Plattformen sehr unterschiedlich angesprochen werden, sodass dafür plattformspezifische Lösungen entwickelt wurden, die als Plugins geladen werden.

Zur Anbindung externer Stumbler ist ein Basis-Plugin integriert (UDPScanner), das auf allen Plattformen verwendet werden kann. Der UDPScanner stellt eine Schnittstelle bereit, mit der externe Stumbler ihre Daten per UDP an MagicMap schicken können.

Sie können MagicMap von der Downloadseite herunterladen, dort sind zwei Dateien verfügbar:

  • MagicMap Client als plattformunabhängiges Java-Archiv (magicmap-<version>.zip)
  • MagicMap Client als Installer für die vereinfachte Installation unter Windows (MagicMapSetup_<version>.exe)

Der MagicMap Client enthält die Kernkomponente, die Client-Server Kommunikation über Web Services, die Positioning Engine und GUI, sowie den UDPScanner (Interface für externen Stumbler).

Voraussetzung ist das Java Runtime Environment (JRE) ab Version 1.6.01, erhältlich von http://www.java.com.

Die neuen Funktionen der jeweiligen Release-Versionen stehen im MagicMap ChangeLog.

Für Fortgeschrittene/Entwickler: Zugang zu den Sourcen über das Sourceforge SVN (bis Version 0.9.2) bzw. das MagicMap SVN (ab Version 0.9.3, zugriffsbeschränkt). Mehr unter MagicMap Development.

MagicMap-Client unter Windows

Den MagicMap Windows Installer (MagicMapSetup_<version>.exe) herunterladen und ausführen.

Für die Messung der WLAN-Signalstärken unter Windows gibt es folgende PlugIns (alle bereits im o.a. Installer integriert):

  • Alternativ: alte Methode über UDPScanner und Netstumbler (benötigt Netstumbler und Active Perl). Siehe: Messungen durchführen

MagicMap-Client unter Linux oder Mac

Für den Betrieb unter anderen Betriebssystemen (Linux bzw. Mac) ist das oben angegebene MagicMap-Archiv (magicmap-<version>.zip herunterzuladen und in ein Verzeichnis nach Wahl zu entpacken.

Nun kann der Client einfach aus dem Terminal mittels des Kommandos:

java -jar magicmap.jar

gestartet werden.

Um Messungen der WLAN-Signalstärke durchzuführen, muss entweder ein Stumbler-Plugin installiert sein (empfohlene Methode), oder der UDPScanner konfiguriert werden.

MagicMap-Client starten über Webstart

Neben der normalen Installation, ist es auch möglich, MagicMap direkt von unserer Webseite über Java Webstart zu starten. Dies funktioniert auf allen Systemen mit Java-Unterstützung. Über die entsprechenden PlugIns können, wie vorausgehend beschrieben, hardwarespezifische Stumbling-Funktionen hinzugefügt werden.

MagicMap-Client für Windows CE

  • Der MagicMap-CE-Client ist in C# geschrieben und basiert auf .Net/Compact Framework. Es handelt sich also um eine von dem MagicMap Java-Client unabhängige Codebasis.
  • Download und Installation siehe MagicMapCE
  • enthält Core, Client-Server-Kommunikation über TCP/IP-Sockets, vereinfachte Positioning-Engine, einfaches GUI, WLAN Stumbler
  • Hierzu gibt es bisher kein Plugin Konzept

MagicMap auf anderen Mobilgeräten

  • Prinzipiell läuft der MagicMap-java-Client auch auf anderen Mobilgeräten. Voraussetzung ist allerdings Java Swing. Außerdem ist die Anpassung des User Interface an unterschiedliche Auflösung nicht ganz trivial. Wir arbeiten z.Zt. an einer Portierung auf das Nokia n810 und Symbian Mobiltelefone, sowie eine eigenständige Version für das Apple iPhone/iPod.

Bedienung

Weitere Hilfe und Support

Im MagicMap User Forum auf unserer Sourceforge-Seite kann man sich zu Problemen und deren Lösungen austauschen sowie ggf. über das Bug-Reporting-Tool noch vorhandene Fehler melden.

Publikationen zu MagicMap (chronologisch)

  • P.K. Ibach, J. Zapotoczky, Vorteile und Beschränkungen durch Open Source Lizenzierung im Projekt MagicMap, GI Jahrestagung „INFORMATIK 2007“, Bremen, 24.-27. September 2007
  • S. Brüning, J. Zapotoczky, P.K. Ibach, V. Stantchev, Cooperative Positioning with MagicMap, Workshop on Positioning, Navigation and Communication 2007 (WPNC'07), Hannover, March 22, 2007 PDF
  • Matthias Horbank, Adaptive Location Based Services, Diplomarbeit, Juli 2007, DOC, Achtung: 7MB!
  • Johannes Zapotoczky, Hybride Funkortung, Diplomarbeit, Okt. 2006, PDF
  • P.K. Ibach, G. Tamm, M. Malek, Towards a Global Real-Time Enterprise. In : B. N. Hilton (editor), Emerging Spatial Information Systems and Applications, Idea Group, Information Science Publishing, IRM Press, Oct. 2006
  • P.K. Ibach, V. Stantchev, Ch. Keller, DAEDALUS – A Peer-to-Peer Shared Memory System for Ubiquitous Computing, Euro-Par 2006, Dresden, September 2006
  • Stefan Brüning, Accuracy Improvement of WLAN Based Position Sensing, Diplomarbeit, August 2006, PDF
  • P.K. Ibach, V. Stantchev, F. Lederer, A. Weiß, Th. Herbst, T. Kunze, WLAN-based Asset Tracking for Warehouse Management, IADIS International Conference e-Commerce, Porto, Portugal, December 15-17, 2005
  • Sebastian Lindstaedt und Thorsten Radetzki: WLAN-Positionsbestimmung in dynamischen Umgebungen, Studienarbeit, Humboldt-Universität zu Berlin, Institut für Informatik, Lehrstuhl Rechnerorganisation und Kommunikation in Kooperation mit VA-Berlin GmbH, Oktober 2005.
  • P.K. Ibach, F. Schreiner, V. Stantchev, H. Ziemek, Ortung drahtlos kommunizierender Endgeräte mit GRIPS/MagicMap, Workshop "Mobiles Informationsmanagement und seine Anwendungen", 35. Jahrestagung der Gesellschaft für Informatik, Bonn, Sept. 2005
  • P.K. Ibach, M. Horbank, Towards a Global Spatial Data Infrastructure using Web Services, GSDI-8, Cairo, April 2005
  • P.K. Ibach, G. Tamm, M. Horbank, Dynamic Value Webs in Mobile Environments Using Adaptive Location-based Services, Hawaii International Conference on System Sciences (HICSS-38), Hawaii, January 2005
  • P.K. Ibach, T. Hübner, M. Schweigert, MagicMap – Kooperative Positionsbestimmung über WLAN, Chaos Communication Congress, Berlin, 27.-29. Dez., 2004
  • P.K. Ibach, Matthias Horbank, Highly Available Location-based Services in Mobile Environments, International Service, Availability Symposium 2004, Munich, Germany, May 2004. Also published in Springer LNCS.

Eine chronologische Liste mit sonstigen Ereignissen im Projektverlauf befindet sich hier.

'Persönliche Werkzeuge