1 von 124. Indoor-Lokalisierung mit Hilfe neuronaler Netze

Größe: px
Ab Seite anzeigen:

Download "1 von 124. Indoor-Lokalisierung mit Hilfe neuronaler Netze"

Transkript

1 1 von 124

2 2 von 124, Thema der Stichworte Lokalisierung, Mobile Location, Neuronales Netz, MLP, Backpropagation, Lernbasiert, Location Service, Triangulation, Trilateration, WLAN, UWB Kurzzusammenfassung Heutzutage stehen zahlreiche Verfahren zur Lokalisierung in geschlossenen Räumen zu Verfügung, die unterschiedlichste Anforderungen abdecken. Im Rahmen von bewohnten Räumen ist die Verwendung von WLAN-Signalen der bereits vorhandenen Kommunikationsinfrastruktur eine sehr kostengünstige Lösung. Es müssen jedoch starke Schwankungen in der Signalstärke aufgrund von äußeren Einflüssen berücksichtigt werden, die ansonsten zu verfälschten Ortsangaben führen könnten. In dieser Arbeit wird ein Algorithmus als neuronales Netz (MLP) vorgestellt, der diese Schwankungen auszugleichen versucht. Die Leistungsfähigkeit dieser Lösung wird im Kontext einer kompakten, mobilen Client-Server-Anwendung unter Betrachtung von bereits am Markt vorhandenen Lösungen analysiert und bewertet.

3 3 von 124, Title of the paper Indoor-Location with neural networks Keywords Location estimation, Mobile location, Neural network, MLP, Backpropagation, Learn based, Location service, Triangulation, Trilateration, WLAN, UWB Abstract Today a variety of methods exists to estimate one's indoor location. Each method has very indiviual characteristics that have especially to be taken care of in living places where WLAN based location methods are the first choice in terms of cost effectiveness. Environmental chages affect the WLAN signal strength easily, thus raw measurement data processing may lead to false location information. In this paper a learn based algorithm is created that tries to level these environmental changes. The effectiveness of the algorithm is being analysed and compared to present solutions in the context of a simple mobile client-serverapplication.

4 4 von 124 Inhaltsverzeichnis 1 Einführung Zielsetzung Gliederung Grundlagen Definitionen Raum Referenzpunkt Endgerät Lokalisierung Distanzwertermittlung Lokalisierungsalgorithmus Selbstortung Algorithmen zur Distanzwertermittlung ToA (Time of Arrival) TDoA (Time Difference of Arrival) AoA (Angle of Arrival) RSSI-Based (Received Signal Strength Indication Based) Algorithmen zur Lokalisierung Angulation Lateration Fingerprinting Künstliche, neuronale Netze Verwandte Arbeiten Am Markt erhältliche Produkte Chipcon CC2431 Location Engine UWB Location Detection (Ubisense) WLAN Location Detection Arbeiten an der IMAPS Andere Arbeiten Paper von Julian K. Buhagiar, Carl J. Debono Analyse Anforderungen Harte Anforderungen Weiche Anforderungen Vorauswahl Auswahl eines Verfahrens Anforderungen an das Verfahren Definition der Referenzpunkte Aufzeichnung der Trainingsmuster Design und Training des KNN Verfikation des Systems Bewertung Design Neuronaler Kernel Schnittstellenbeschreibung Trainingssequenz Komponenten...79

5 5 von Lokalisierungsdienst Backend Beschreibung der Entitäten Das Areakonzept Client Programmmodi Realisierung Umsetzung des Designs Neuronaler Kernel Lokalisierungsdienst Backend Client Verwendung Offline-Phase (Training) Online-Phase (Nutzung) Evaluation Bewertung der Leistungsfähigkeit Schluss Zusammenfassung Funktionsumfang Fazit Ausblick Optimierung Symbolische Lokalisierung Anhang Literaturverzeichnis Glossar Abbildungsverzeichnis Quellcodeverzeichnis Tabellenverzeichnis Abgrenzung...121

6 1 Einführung 6 von Einführung Was noch vor wenigen Jahren in Form von Paketverfolgung in Logistikzentren oder Containerumschlagstrategien in Überseehäfen fast ausschließlich eine Anforderung der Industrie darstellte, hat sich auch längst im Endverbrauchermarkt etabliert; Tragbare Navigationsgeräte leiten über drei Millionen [1] Autofahrer via GPS sicher ans Ziel und während die persönliche Navigation schon zu den Selbstverständlichkeiten des Alltags zählt [2], entwickelt sich um die Information des eigenen, momentanen Standortes ein neues Anwendungsgebiet rasant [3]: Location Based Services, also Dienste, deren Inhalte und Leistungen vom Standort des Empfängers abhängen. In einer Vielzahl mobiler Endgeräte finden sich hierfür mittlerweile verschiedenste Technologien zur Lokalisierung und Datenübertragung. Im Outdoor-Bereich sind GPS bzw. das 3G-Mobilfunknetz die stärksten Vertreter. Beide funktionieren innerhalb von geschlossenen Räumen nur unzureichend, sodass sich im Indoor-Bereich andere Techniken etabliert haben. Das Spektrum ist bei den Indoor-Lokalisierungssystemen viel stärker gefächert als im Outdoor-Bereich. Es gibt verschiedene optische, akustische und elektromagnetische Ortungsverfahren in einer Vielzahl von kommerziellen und auch freien Systemen. Die Anforderungen an die Infrastruktur unterscheiden sich je nach zugrunde liegender Technologie erheblich. Während manche Systeme auf bereits vorhandenen Kommunikationsstrukturen aufbauen, benötigen Andere eine eigenen Infrastruktur aus speziellen Sensoren oder Signalgebern. Dieser Aspekt wirkt sich deutlich auf die Anschaffungskosten eines Systems aus. 1.1 Zielsetzung Das grundlegende Ziel dieser Arbeit besteht in der Evaluation von zwei verschiedenen Varianten von künstlichen, neuronalen Netzen als Lokalisierungsalgorithmen zur Verwendung in einem Indoor-Lokalisierungsszenario. Damit die Evaluation an einem realen Szenario durchgeführt werden kann und nicht auf simulierte Umgebungen zurückgegriffen werden muss, soll im Vorfelde der Evaluation ein Konzept für einen einfachen, mobilen Lokalisierungsdienst erstellt werden. Das Konzept soll soweit implementiert werden, dass eine Evaluation sinnvoll

7 1 Einführung 7 von 124 gelingen kann und eine Weiterentwicklung für aufbauende Projekte möglich wird. 1.2 Gliederung Diese Arbeit gliedert das Thema der Indoor-Lokalisierung in drei Teilbereiche. Im ersten Bereich geht es darum, die Grundlagen der Indoor-Lokalisierung und ihrer auf dem Markt erhältlichen Lösungen vorzustellen und eine grobe Einschätzung der Leistungsfähigkeit zu geben. Im zweiten Bereich wird in einer Anforderungsanalyse ein adäquates System benannt, dass dann zur prototypischen Nutzbarkeit entwickelt wird. Dieses selbst entwickelte System wird auf Basis von künstlichen, neuronalen Netzen das Problem der IndoorLokalisierung versuchen zu lösen. Im dritten Bereich wird das vorgestellte System entlang der Anforderungen bewertet und es werden Möglichkeiten für die Weiterentwicklung und Optimierung aufgezeigt.

8 2 Grundlagen 8 von Grundlagen Die erste Frage, die sich beim Thema Indoor-Lokalisierung stellt ist, wie diese überhaupt funktionieren kann. Ziel dieses Kapitels ist daher die Definition eines formellen Rahmens für diese Arbeit und die Vorstellung einiger, grundlegender Verfahren zur Lokalisierung. 2.1 Definitionen Raum Im Rahmen dieser Arbeit soll der Begriff Indoor eingeschränkt werden, da davon zunächst sowohl tausende von Quadratmetern große Lagerhallen wie auch kleine Wohnräume erfasst werden. Im Sinne der vorhandenen Arbeitsumgebung als Lokalisierungs-Szenario (s. Kapitel 4.3 ) gilt ein Wohnraum von 60m2 als Ausgangssituation. Die Ausdehnung des Raumes wird in der Breite ( w ) und Höhe ( h ) in Metern erfasst und auf einen zweidimensionalen Vektorraum A (Area) übertragen, sodass gilt: A = { x, y x ℝ : 0 x w, y ℝ : 0 y h } Für die Anwendung lässt sich somit z.b. ein 60m2 großer Raum (1) A 6,10 definieren Referenzpunkt Im Raum oder in der Nähe des Raumes sind mehrere, stationäre Sendeeinheiten (Referenzpunkte) verteilt, welche kontinuierlich Funksignale emittieren, die später detektiert und dem jeweiligen Referenzpunkt zugeordnet werden sollen. Da Referenzpunkte theoretisch auch außerhalb von A liegen können, gilt für den Raum, in dem sich die Referenzpunkte aufhalten können: A ' = { x, y x ℝ : d rmax x w d rmax, y ℝ : d rmax y h d rmax Formel 2 beschreibt den vergrößerten Aufenthaltsraum A' } (2) für die Menge aller

9 2 Grundlagen 9 von 124 d rmax Referenzpunkte R. Referenzpunktes zu ist dabei die maximal zulässige Distanz eines A, sodass dieser noch als Referenzpunkt für A gewählt werden darf. R Für jeden Referenzpunkt aus kann ein Ortsvektor l ref (Location of Reference) A ' beschreibt: angegeben werden, der dessen Position in l ref = x A ' y (3) Endgerät Das Endgerät ist das Gerät, dessen Position im Raum A ermittelt werden soll. Dafür R muss das Gerät in der Lage sein, die Funksignale der Referenzpunkte in zu empfangen und je nach anzuwendendem Verfahren auszuwerten. Raum Referenzpunkt 1 Referenzpunkt 0 [8; 0] [0; 0] Endgerät Referenzpunkt 2 [4; 5,6] Abbildung 1: Endgerät umgeben von stationären Referenzpunkten Abbildung 1 zeigt einen Raum mit drei Referenzpunkten mit deren jeweiligen Standorten l ref Lokalisierung Grundsätzliches Ziel der Anwendung ist, den Ort des Endgerätes im Raum Zuhilfenahme der Informationen über die Referenzpunkte in R A unter zu ermitteln. Dieser

10 2 Grundlagen 10 von 124 Vorgang wird als Lokalisierung bezeichnet und im Laufe dieser Argumentation wird L als Lokalisierungsfunktion bezeichnet: L:R A (4) Das Ergebnis der Lokalisierung soll ein zweidimensionaler Ortsvektor auf den Punkt im Raum A l sein, der zeigt, an dem das Endgerät vermutet wird: l = x A y (5) Um später auch Aussagen über die Genauigkeit des Verfahrens treffen zu können, muss auch zumindest bei der Verifikation der Ergebnisse der tatsächliche Standort des A bezeichnet. l real Endgerätes bekannt sein. Er wird als Es gibt zahlreiche Verfahren, um L zu realisieren. Alle in den folgenden Kapiteln vorgestellte Verfahren verfolgen hierfür unterschiedliche Ansätze Distanzwertermittlung Die Distanzwertermittlung ist der erste Schritt, der für viele Verfahren für eine Lokalisierung stattfinden muss. Ziel ist für jeden Referenzpunkt ri einen Wert d i ℝ zu finden, der die Entfernungen der Referenzpunkte zum messenden Endgerät untereinander in Relation setzt. Es wird hierfür vorausgesetzt, dass sich die Charakteristik des Funksignals eines Referenzpunktes mit wachsender Messdistanz am Endgerät stetig ändert, z.b. dass der Signalpegel kontinuierlich und messbar mit wachsender Distanz zum Referenzpunkt sinkt. Sei S die Menge der Referenzpunktes an r 0 R, so sei gemessenen Signaleigenschaften eines l real S die Menge der Messungen von R und die Distanzwertfunktion: d : S ℝ d 0 =d s 0, s 0 S (6) Die Maßeinheit der Distanzwerte spielt hierbei vorerst eine untergeordnete Rolle.

11 2 Grundlagen 11 von 124 Wichtiger für die anschließenden Verfahren ist die Relation zwischen den Distanzwerten, damit eine Aussage über den Aufenthaltsraum des Endgerätes zwischen den Referenzpunkten getroffen werden kann. Auch ob die Abbildung linear oder z.b. quadratisch ist, muss vorerst offen gelassen werden, da je nach Messmethode beides und auch noch anderes möglich sein kann Lokalisierungsalgorithmus Der Lokalisierungsalgorithmus ist der eigentliche Algorithmus, der den Ort des Endgerätes ermittelt. In vielen Verfahren wird hierbei auf die Werte aus der Distanzwertermittlung zurückgegriffen. Es gibt allerdings auch Verfahren, die Distanzwertermittlung und Lokalisierungsalgorithmus vereinen, somit gilt für den Lokalisierungsalgorithmus vorerst: l :ℝ n A, n= R (7) Die Eingabemenge könnte somit eine Menge von Distanzwerten oder auch eine Menge von rohen Signalwerten sein. In jedem Falle soll die Mächtigkeit der Eingabemenge der Anzahl von Referenzpunkten entsprechen Abweichung Ein wesentlicher Aspekt für die Definition der Güte eines Lokalisierungssystems ergibt sich aus der Genauigkeit. Im Rahmen dieser Anwendung soll eine Genauigkeit erreicht werden, die die differenzierte Betrachtung des Ortes in einem kleinen Wohnraum erlaubt. Die Abweichung Distanz zwischen e soll in Metern angegeben werden und beschreibt die euklidische l und l real Fehlerrate Die Fehlerrate betrachtet die Zuverlässigkeit eines Lokalisierungsalgorithmus auf einer Skala von 0 bis 1. Für die Beurteilung wir die Abweichung jeder Messung herangezogen. Überschreitet Maximalabweichung die Abweichung e eine vorgegebene g, die ebenfalls in Metern angegeben wird, so gilt die Messung als ungültig.

12 2 Grundlagen Die Fehlerrate über 12 von 124 n Messungen lässt sich dann wie folgt angeben: E= n { 1 0 falls e n g sonst n } (8) Eine hohe Fehlerrate spricht somit für eine unzuverlässige Lokalisierung, bei der häufig mit falschen Ergebnissen gerechnet werden muss. Eine Fehlerrate bei 0 spricht für eine zuverlässige Lokalisierung Selbstortung Für die folgenden Ausführungen wird stets davon ausgegangen, dass das Endgerät die Messdaten erhebt und seine Position selbst bestimmt. Dieser Ansatz wird allgemein auch als Selbstortung bezeichnet, welche im Gegensatz zur Fremdortung steht, bei der das Endgerät von der Infrastruktur lokalisiert wird [4].

13 2 Grundlagen 13 von Algorithmen zur Distanzwertermittlung Die Funksignale der Referenzpunkte können auf verschiedene Weisen verarbeitet werden. Gängige Verfahren werten Laufzeiten, Signalpegel oder Empfangsrichtungen aus, um Rückschlüsse auf die Distanz vom Endgerät zum jeweiligen Referenzpunkt zu ermitteln. Schwierigkeiten können sich aus den ständig schwankenden Signalpegeln der einzelnen Referenzpunkte ergeben. Gerade im Indoor-Bereich ist mit starken Störeinflüssen zu rechnen, die sich durch die zahlreichen, eng stehenden Wände ergeben. Diese bieten ausgedehnte, reflektierende Flächen, von denen die Funksignale in den Raum zurückgeworfen werden können. Die reflektierten Signale weisen dann in der Regel einen niedrigeren Pegel auf, als die direkt empfangenen Signale, sodass an einem Ort durchaus für einen Referenzpunkt verschiedene Signalstärken ermittelt werden können. d er Pfa Indirekt W an d Di re kt er Pf ad Endgerät Referenzpunkt Abbildung 2: Multipath Fading Dieser Effekt ist auch als Multipath Fading bekannt und stellt eines der Hauptprobleme im Hochfrequenzfunk für die gewünschte Anwendung dar, da nicht nur der Pegel sondern auch die Laufzeit des Signals verfälscht wird, sodass nahezu alle Verfahren betroffen sind [5][6].

14 2 Grundlagen 14 von 124 Weiterhin sind Faktoren wie die Luftfeuchtigkeit und der Aufenthalt von Personen im Raum als Störfaktoren zu berücksichtigen, welche die Funksignale abschwächen und somit ebenfalls den empfangenen Signalpegel am Messgerät herabsetzen. Dieser Effekt wird als Shadowing bezeichnet [5][6]. Um eine möglichst präzise Ortung zu erreichen, sollte der reinen Messwertermittlung also eine Ausgleichsrechnung nachgeschaltet sein, welche die störenden Einflüsse erkennt und den gemessenen Wert korrigiert, bevor dieser in den Algorithmus einfließen kann ToA (Time of Arrival) Der Ansatz des ToA-Algorithmus besteht darin, Laufzeitunterschiede bei der Funkübertragung zueinander in Relation zu setzen [7]. Um diese Laufzeitunterschiede messbar erfassen zu können, muss unabhängig vom Algorithmus sichergestellt sein, dass alle Teilnehmer des Aufbaus über eine einheitliche Uhrzeit verfügen. Der Ablauf sieht vor, dass alle Referenzpunkte zu einem festgelegten Zeitpunkt ein Impulssignal aussenden. Dieses wird abhängig vom Abstand am Endgerät zu verschiedenen Zeitpunkten wahrgenommen. Abbildung 3: ToA

15 2 Grundlagen 15 von 124 Anhand der Übertragungsgeschwindigkeit und der zeitlichen Differenzen zwischen dem Sende- und Empfangszeitpunkt zwischen dem Endgerät und den Referenzpunkten lassen sich nun auswertbare Distanzwerte ermitteln. In Abbildung 7 wird der Kommunikationsfluss verdeutlicht Bewertung Die zu erwartende Präzision des Algorithmus unter Laborbedingungen ist ziemlich hoch. Allerdings leidet der Algorithmus unter Verwendung von Hochfrequenzfunk unter dem Multipath Fading sowie dem Shadowing erheblich, da die Signallaufzeiten in der Luft extrem kurz sind. Die Auswirkungen bei einem verhältnismäßig geringen Messfehler im Bereich von Nanosekunden haben extreme Abweichungen zur Folge. Ganz konkret hat ein Messfehler von einer Nanosekunde bereits eine räumliche Abweichung von 30 cm zur Folge. Zudem stellt es sich als Problem dar, die Uhren aller Teilnehmer so genau zu synchronisieren, dass das versandte Impulssignal an allen Stationen gleichzeitig ausgesandt wird. Die hier benötigten Anforderungen an die Zeitsynchronisation übersteigen die eines normalen Betriebssystems oder die des allseits bekannten NTPProtokolls zur Uhrensynchronisation erheblich.

16 2 Grundlagen 16 von TDoA (Time Difference of Arrival) Der TDoA-Algorithmus basiert wie der ToA-Algorithmus auf dem Ansatz, Laufzeitunterschiede zwischen mehreren Referenzpunkten zueinander in Relation zu stellen [8]. Das Zeitsynchronisationsproblem vom ToA-Algorithmus wird hier jedoch durch die Verwendung einer zusätzlichen Übertragungstechnologie mit abweichender Übertragungsgeschwindigkeit umgangen. So gibt es beim TDoA-Algorithmus keinen globalen Sendezeitpunkt mehr. Abbildung 4: TDoA Im Endgerät werden lediglich die Empfangszeitpunkte der verschiedenen Übertragungstechnologien pro Referenzpunkt miteinander in Relation gesetzt. Da dem Endgerät zu jeder Technologie die Übertragungsgeschwindigkeit bekannt sein muss, lassen sich hierdurch Rückschlüsse auf die jeweilige Übertragungszeit machen. Abbildung 4 verdeutlicht den Kommunikationsablauf, die Zeitdifferenz zwischen dem schnelleren (rot) und langsameren Übertragungsweg (schwarz) gibt Auskunft über die Signallaufzeit.

17 2 Grundlagen 17 von Bewertung Der TDoA-Algorithmus gilt als sehr zuverlässig und genau, da er in der Lage ist, mit Hilfe der zwei voneinander unabhängigen Übertragungstechnologien viele Störeinflüsse zu erkennen und zu berücksichtigen [9]. Die Hardwareanforderungen an den Algorithmus sind relativ hoch, da das Timing während der Messwerterfassung eine entscheidende Rolle bei der Genauigkeit im Ergebnis der Ortung hat. Diese Eigenschaft ist ein wesentlicher Nachteil des Algorithmus. Handelsübliche Endgeräte erfüllen leider selten mehrere Übertragungsstandards, welche sich für den Einsatz in diesem Aufbau eignen. Häufig werden beim TDoA-Algorithmus optische bzw. auf Ultraschall basierende Verfahren zur Messwerterfassung verwendet, um neben der Funkübertragung ein System mit möglichst anderem Verhalten zur Verfügung zu haben. Die Verwendung dieser beiden Übertragungsstandards bringt jedoch die Einschränkung mit sich, nur bei direktem Sichtkontakt zuverlässig zu funktionieren. Ein System, welches mittels TDoA eine Lokalisierung zur Verfügung stellt ist das an der HAW entwickelte IMAPS [9] AoA (Angle of Arrival) Anders als die bisher genannten Verfahren basiert das AoA-Verfahren nicht auf Zeitmessungen. Es wird der Eintrittswinkel der Funksignale ermittelt und über diese Winkelinformationen anguliert [8]. Oftmals wird der AoA-Algorithmus mit Abbildung 5: AoA

18 2 Grundlagen 18 von 124 anderen Algorithmen wie TDoA kombiniert. Eine schematische Darstellung des Verfahrens ist in Abbildung 5 zu finden, der Eintrittswinkel der Signale wird am Empfänger registriert (grüner Teilkreis, roter Teilkreis, blauer Teilkreis für die jeweiligen Referenzpunkte) Bewertung Das AoA-Verfahren stellt eine sinnvolle Erweiterung für technische Umgebungen dar, in denen es möglich ist, auf den Eintrittswinkel der Signale zu schließen. Die Genauigkeit hängt hierbei direkt von der Auflösung der Eintrittswinkel ab. Leider ergeben sich wie bei allen zuvor genannten Algorithmen ebenfalls die Probleme wie Multipath und Shadowing, wodurch fälschlicherweise die Eintrittswinkel von Reflexionen erfasst werden könnten. Die Anforderung an die Hardware, Eintrittswinkel von Signalen zu erfassen, kann in der Regel nicht mit handelsüblicher Consumer-Hardware erfüllt werden RSSI-Based (Received Signal Strength Indication Based) Das RSSI-Based-Ortungsverfahren ist ein weit verbreitetes Verfahren zur Berechnung des momentanen Aufenthaltsraumes eines mobilen Gerätes. Es ist eine reine Softwarelösung und basiert auf einer geschickten Auswertung von ermittelten RSSIWerten. Ein RSSI-Wert ist eine in fast allen handelsüblichen Geräten mit drahtloser Datenübertragung verfügbare Größe, welche eine Aussage über die empfangene Signalstärke im jeweiligen Endpunkt gibt [8]. Da die Signalstärke in einem direkten Zusammenhang mit der Distanz steht, ist es hierdurch möglich, Wegstrecken zwischen zwei Punkten, dem Sender und dem Empfänger, zu errechnen. Details zur Berechnung des RSSI-Wertes sind im Kapitel nachzulesen. Genau wie die vorhergehenden Verfahren benötigt auch das RSSI-Based-Verfahren mehrere Referenzpunkte, um einen als wahrscheinlich geltenden Aufenthaltsraum oder, im Optimalfall, einen Schnittpunkt aller ermittelten Distanzen zu bestimmen. Die Berechnung dieses Aufenthaltsraumes bzw. des Schnittpunktes wird durch das Laterationsverfahren (siehe Kapitel ) bewerkstelligt. Die Probleme des RSSI-Based-Verfahrens liegen in der Genauigkeit und Aussagekraft der RSSI-Signalpegel. Rein theoretisch hat die Ableitung von der Signalstärke auf die Distanz eine hohe Aussagekraft. Die Distanz lässt sich nach der Frii'schen Wellengleichung [10] sehr

19 2 Grundlagen 19 von 124 leicht aus den Sende- und Empfangsstärken herleiten: 2 P rx =P tx ƛ, umgestellt nach d: 4 d P tx ƛ d= 4 P rx P tx = Sendeleistung vom Sender P rx = Empfangene Leistung ƛ = Wellenlänge d = Abstand zwischen Sender und Empfänger Wie sich die Signalstärke hingegen in der Praxis verhält und wo die Probleme des RSSI-Based-Verfahrens liegen, wird im Kapitel näher erläutert Funktionsweise RSSI ist ein Messwert, der eine Aussage über die Energie eines empfangenen Funksignals macht. Es handelt sich hierbei nicht direkt um die Signalstärke. Da die Einheit des RSSI durch kein Konsortium festgelegt wurde, ist es dazu gekommen, dass der RSSI abhängig vom Hersteller interpretiert werden muss [11]. Es handelt sich um einen Integer-Wert zwischen -255 und 255. Der wahre Maximalwert des RSSI ist jedoch nicht standardisiert. So hat Cisco beispielsweise für ihre Produkte die RSSIWerte auf einen Bereich zwischen 0 und 100 beschränkt [11]. Andere Geräte lösen den RSSI zwischen 0 und 128 auf. Der jeweilige Maximalwert des Systems lässt sich jedoch immer über das sogenannte RSSI_MAX-Register ermitteln. Dieser Missstand führt leider dazu, dass es nicht möglich ist, für alle Geräte anhand des RSSI-Wertes direkt auf die Eingangsleistung (db oder mw) zu schließen. Die Abbildung zwischen diesen beiden Messgrößen muss hier herstellerabhängig implementiert werden. Rein technisch gesehen ist der RSSI-Wert eine am Empfangsgerät gemessene Spannung, welche in ein Verhältnis zu einer Referenzspannung gesetzt wird und dieser neu ermittelte Wert in ein dafür reserviertes Register abgelegt wird. Laut IEEE ist der RSSI folgendermaßen definiert: RXVECTOR RSSI The receive signal strength indicator (RSSI) is an optional parameter that has a value of 0 through RSSI Max. This parameter is a measure by the PHY sublayer of the energy observed at the antenna used to receive the current PPDU. RSSI shall be measured between the beginning of the start frame delimiter (SFD) and the end of the PLCP header error check (HEC). RSSI is intended to be used in a relative manner. Absolute accuracy of the RSSI reading is not specified. [12] ( )

20 2 Grundlagen 20 von Verhalten in der Praxis Um herauszufinden, wie sich der RSSI-Wert in der Praxis verhält, wurde im Rahmen dieser ein Datenlogger geschrieben, welcher es ermöglicht, Messwerte über einen längeren Zeitraum zu erfassen und auswertbar darzustellen (s. Kapitel ). Die Messwerte aus Abbildung 6 wurden mit mehreren baugleichen Apple Airport Express -Accesspoints gemessen. Allen Accesspoints wurden feste Kanäle zugewiesen, welche sich nicht mit den Kanälen der anderen Accesspoints überschnitten. Als Empfänger wurde ein Apple MacBook an einem festen Ort installiert und der Datenlogger für ca. 1,5 Stunden gestartet. Wie Abbildung 6 zu entnehmen ist, lagen die Schwankungen des RSSI-Signalpegels innerhalb dieses Zeitraumes bei bis zu 15 RSSI-Punkten. Um zu testen, wie sich der RSSI-Wert auf minimale Schwankungen im Raum verhält, wurden innerhalb der Messungen für die Abbildung 6 um ca. 11:50 Uhr die Fenster im Raum geöffnet und es wurde quer-gelüftet. Schon diese für den Menschen kaum wahrnehmbaren Schwankungen sorgten im Messergebnis für eine Beeinträchtigung des RSSI-Signalpegels RSSI (-100:0) :12 12:57 12:43 12:28 12:14 12:00 11:45 11:31 11:16 Zeit Abbildung 6: Verlauf zweier RSSI-Signalpegel über ca 1,5 Stunden Es zeigt sich, dass selbst Faktoren wie die Luftfeuchtigkeit oder die Bewegung von Personen im Raum als Störfaktoren zu berücksichtigen sind, da sie die Funksignale abschwächen oder verfälschen und somit auch den empfangenen Signalpegel am Empfänger beeinträchtigen. Diese Erkenntnis über das Verhalten des RSSI deckt sich

21 2 Grundlagen 21 von 124 mit den Untersuchungen von Frunzke [13] (Kapitel 5.3) Bewertung Die Vorteile des RSSI-Verfahrens liegen in der Möglichkeit, die Ortung mit Hilfe einer Technik zu realisieren, welche nebenbei als Kommunikationsprotokoll verwendet werden kann. Abgesehen von einer WLAN-Installation werden keine speziellen Hardwareinstallationen benötigt. Die Intelligenz des Algorithmus liegt im mobilen Endgerät. Somit wird keine externe Infrastruktur benötigt, welche einen erhöhten Wartungsaufwand benötigt oder eine Einschränkung bei der Übertragungsrate darstellen könnte. Aufgrund der Schwankungen des RSSI-Signalpegels scheint es allerdings einer intensiven Vorverarbeitung zu bedürfen, um ungewollte Schwankungen auf ein möglichst geringes Maß zu reduzieren. 2.3 Algorithmen zur Lokalisierung Im folgenden Kapitel wird sich mit der Frage beschäftigt, wie die aus den vorhergehenden Kapitel gesammelten Messwerte dazu genutzt werden können, eine Position daraus zu ermitteln. Die hier vorgestellten Algorithmen haben oftmals schon zu früheren Zeiten in der Seefahrt Anwendung gefunden und basieren häufig darauf, mit Hilfe mehrerer Positionen, deren Ort bekannt ist, eine Position mit unbekanntem Ort zu ermitteln Angulation Der Algorithmus zur Angulation [14] basiert auf der Winkelmessung zwischen den als bekannt geltenden Positionen und einem unbekannten Punkt. In früherer Zeit benutze man für die Winkelmessung meist einen Theodoliten. Das Verfahren findet bis heute seinen Einsatzbereich bei den optischen Messverfahren, da diese in der Lage sind, ein sehr präzises Ergebnis bei der Winkelmessung zu liefern. Im Bereich der Funktechnologie stellt sich der Einsatz von Angulation als schwieriger dar, da dort oftmals technisch bedingt keine Informationen über den Eingangswinkel der elektromagnetischen Wellen zur Verfügung stehen.

22 2 Grundlagen 22 von 124 Abbildung 7: Angulation Die Funktion zur Bestimmung der Distanz ist recht einfach. Man setze in die folgende Formel die bekannten Größen aus Abbildung 7 ein: D= L 1 1 tan a tan ß (9)

23 2 Grundlagen 23 von Beispiel Zwei Personen möchten die Position einer dritten Person bestimmen. Beide wissen ihren jeweiligen Standort, sowie den Abstand (L) zueinander. Folgende Situation aus Abbildung 8 sei gegeben: Abbildung 8: Beispiel einer Angulationsrechnung Gegeben: a = 37 ß = 45 L = 15 Längeneinheiten Wendet man nun die Formel zur Bestimmung der Distanz (9) an, erhält man: D= tan 37 tan 45 = 6.4 Längeneinheiten (10) Mit Hilfe der Trigonometrie ließen sich auch so alle weiteren Distanzen in diesem Dreieck bestimmen.

24 2 Grundlagen 24 von Bewertung Das Verfahren der Angulation ist ein sehr effizienter Lokalisierungsalgorithmus, welcher mit geringer Rechendauer zu guten Ergebnissen führen kann. Die technischen Voraussetzungen der Winkelbestimmung führen jedoch im Bereich der Funkortung bei sehr vielen System zum Ausscheiden der Angulationsverfahren. Der Grund dafür liegt in den Effekten wie Shadowing und Fading, welche es als sehr schwer gestalten, den direkten Winkel eines Messabweichungen eingehenden durch diese Signals Effekte zu erfassen. gestaltet sich Die im Gefahr Bereich der des Hochfrequenzfunks als schwierig und oftmals zu aufwendig kompensierbar, weshalb in diesem Umfeld häufig auf den Lokalisierungsalgorithmus der Lateration zurückgegriffen wird Lateration Die Lateration ist ein weiteres Verfahren um die Position eines Punktes zu bestimmen. Sie basiert anders als die Angulation jedoch nicht auf Winkelmessung, sondern auf direkter Distanzmessung zu Referenzpunkten, deren Positionen bekannt sind [14]. Um eine zuverlässige Aussage über die momentane Position geben zu können, benötigt der Algorithmus das Wissen über mindestens drei bekannte Referenzpunkte mit ihren Positionen. Aus diesem Grunde wird das Verfahren auch oftmals Trilateration genannt. Je mehr Referenzpunkte dem Verfahren allerdings zur Verfügung stehen, desto höher wird auch seine Genauigkeit bei der Lokalisierung. Zu jedem der Referenzpunkte muss Abbildung 9: Schnittpunkt dreier Aufenthaltsräume

25 2 Grundlagen 25 von 124 dem Verfahren die Information über die momentane Distanz vorliegen [15]. Jede dieser Distanzen stellt für das Verfahren einen Aufenthaltsraum in Form eines Kreises dar. Im Optimalfall kommt es zu einem gemeinsamen Schnittpunkt aller Kreise, welcher den momentanen Aufenthaltsort skizziert. (Siehe dazu Abbildung 9) Rechenweg Die Berechnung des Aufenthaltsortes lässt sich mit Hilfe der folgenden Gleichungen und dem Wissen über die Ausbreitungsgeschwindigkeit vs der eingesetzten Übertragungstechnologie berechnen. d = x x 0 2 y y 0 2 (11) d = v s t 0 2 (12) v s = Ausbreitungsgeschwindigkeit Mithilfe der Gleichungen (1) und (2) lässt sich nun mit Hilfe des Wissens über die Ausbreitungsgeschwindigkeit die Gleichung (3) lösen: A x = b (13), wobei die Matrix A sowie die beiden Vektoren A= x und b sich wie folgt berechnen. 2 x 1 x 0 2 y 1 y 0 x 2 x 2 x 0 2 y 2 y 0, x= y 2 x n 1 x 0 2 y n 1 y 0 (14) (15) x 21 x 20 y 21 y 20 v 2s t 12 t b= x 2 x 0 y 2 y 0 v s t 2 t 0, n 3... x 2n x 20 y 2n y 20 v 2s t 2n t 20 Ist n 3 lassen sich mithilfe der überbestimmten Matrix A die Werte x und y berechnen. Setzt man diese nun in die Gleichung (9) ein, erhält man die gewünschte Distanz d.

26 2 Grundlagen 26 von Bewertung Leider sind die einzelnen Entfernungsmessungen zu den jeweiligen Referenzpunkten selten so genau, dass bei der Lateration ein eindeutiger Schnittpunkt ermittelt werden kann. Abbildung 10: Die grüne Schnittfläche beschreibt den möglichen Aufenthaltsraum Der Regelfall ist viel mehr, dass sich aus den Kreisen eine Schnittfläche bzw. ein Wahrscheinlichkeitsraum ergibt (s. Abbildung 10). Für diesen Raum gibt es verschiedene Herangehensweisen, um aus ihm einen eindeutigen Schnittpunkt zu bestimmen. Eine Herangehensweise wäre z.b., das Zentralmoment dieser Schnittfläche zu bestimmen. Es wird deutlich, dass die Erhöhung der Anzahl an Referenzpunkten eine direkte Verbesserung im Messergebnis zur Folge hat. Eine größere Anzahl von Referenzpunkten schränkt den als wahrscheinlich geltenden Aufenthaltsraum direkt ein und ermöglicht so, eine präzisere Aussage über die Lage des gemeinsamen Schnittpunktes zu treffen. Die Vorbedingung hierfür ist allerdings in jedem Falle, dass die Radien einen recht niedrigen Fehler aufweisen, sodass auch alle Kreise eine gemeinsame Schnittfläche haben.

27 2 Grundlagen 27 von Fingerprinting Anders als die beiden vorherigen Verfahren benötigt ein Fingerprinting-Algorithmus kein Wissen über die Position von Referenzpunkten [14]. In der Anlernphase des Algorithmus werden an möglichst vielen Orten Messungen vorgenommen und die dort ermittelten Signalstärken abgespeichert. Möchte man nun in der Produktivphase des Algorithmus seine Positionen ermitteln, werden die an diesem Ort ermittelten Signalstärken mit den zuvor gemessenen Signalstärken verglichen. Der Ort der am meisten Übereinstimmung innerhalb der Signalstärken hat, wird als aktuelle Position herangezogen Bewertung Der Algorithmus bietet die Möglichkeit, sehr einfach und präzise ein zuverlässiges Ergebnis bei der Ortung zu erhalten. Der Vorteil gegenüber den anderen Algorithmen liegt in der etwas anderen Ausrichtung in den Anforderungen. Da der Algorithmus nicht auf ein Koordinatensystem sondern auf eine Menge an möglichen Aufenthaltsorten abbildet, ist seine Fehlerquote deutlich geringer. Er bietet zudem aufgrund seiner einfachen Installation und Wartung einen weiteren Vorteil im Sinne des Zeitaufwandes. Steigt jedoch die Anzahl an möglichen Aufenthaltsorten stark an, geht der Vorteil zu den zuvor vorgestellten Algorithmen verloren, da dann sehr viele Messungen durchgeführt werden müssen. Auch bei diesem Algorithmus bedarf es einer effektiven Filterung und Vorverarbeitung der Messdaten um Messfehler auszugleichen, sodass auch ein angelerntes Muster wiedererkannt werden kann.

28 2 Grundlagen 28 von Künstliche, neuronale Netze Wie in 2.2 beschrieben, ergibt sich ein großes Problem für alle bisher vorgestellten Verfahren aus den ständigen Schwankungen der empfangenen Signalpegel durch Störeinflüsse wie Fading und Shadowing. Ohne Korrekturrechnung muss mit erheblichen Fehlern bei der Lokalisierung gerechnet werden, da sich die fehlerhaften Messwerte über den Lokalisierungsalgorithmus fortpflanzen [16]. Das Verfahren der Korrektur kann hierbei sehr komplex werden, da die individuellen Eigenschaften des Raumes und der Hardware berücksichtigt werden müssen. Eine Erfassung und Berücksichtigung aller wirksamen Störeinflüsse scheint nur unter Laborbedingungen realisierbar, sodass für die meisten Lokalisierungsverfahren in kleinen Räumen letztendlich mit einem großem Restfehler bei der Ortung gerechnet werden muss. An dieser Stelle bietet sich der Ansatzpunkt für gänzlich andere Verfahren, nämlich die künstlichen, neuronalen Netze (KNN) Hintergrund KNN fanden erstmals öffentlich Erwähnung um 1943 durch die Untersuchungen von Warren McCulloch und Walter Pitts zu den Vorgängen im menschlichen Gehirn [17]. Ziel der Forschungen war die Aufstellung eines Rechenmodells, das die Fähigkeiten des Hirns nachvollziehbar machen sollte. Die von McCulloch und Pitts vorgestellte Threshold-Logic ermöglichte erstmals auf Basis von Netzwerken von McCullochPitts-Einheiten das Abbilden aller denkbaren, logischen Funktionen, sowohl zustandsfrei (Feed Forward) als auch zustandsbehaftet (Recurrent). Ab 1958 entwickelt eine Forschergruppe um Frank Rosenblatt das Perceptron, welches einen allgemeineren Ansatz als McCulloch-Pitts-Einheiten bot und direkt mit reellen Zahlen umgehen konnte. Im nachfolgenden Jahr entwickelte Rosenblatt einen überwachten Lernalgorithmus, der es ermöglichte, das Perceptron anhand von repräsentativen Beispieldaten zu konditionieren. Widdrow und Hoff erweiterten 1960 den Lernalgorithmus für ihren eigenen Ansatz, das Adaptive Linear Neuron. Die Delta Regel erlaubte adaptives Lernen, bei dem das Neuron deutlich schneller zu

29 2 Grundlagen 29 von 124 einem korrekten Verhalten konvergierte als beim klassischen Perceptron Learning Algorithm und zudem die Verwendung der reellen Zahlen als Eingangsgewichte komfortabel ermöglichte [18]. Nach einer Durststrecke von mehreren Jahren wurden in den 1980er Jahren die Fähigkeiten des Ansatzes weiter erforscht und die Technologie erlebte eine Renaissance. Die Erforschung der KNN brachte in den folgenden zehn Jahren zahlreiche Interpretationen und neue Ansätze hervor, die den Einsatz in vielen Bereichen praktisch sinnvoll machten. Neben vielen anderen Anwendungsbereichen in Forschung und Wirtschaft finden KNN sehr häufig Erwähnung im Bereich der Musterkennung. Viele moderne Verfahren zur Text- und Spracherkennung basieren zumindest zu Teilen auf KNN. Die Fähigkeit der KNN, Muster anhand von Erlerntem wieder zu erkennen, sollte sich gewinnbringend auf das Problem eines Lokalisierungsalgorithmus übertragen lassen Ansatz Für die ersten Überlegungen soll an die Lokalisierungsfunktion L aus Kapitel erinnert werden. Gängige, rein arithmetische Verfahren, wie die Lateration, beruhen auf einer Distanzwertermittlung, vorangehen muss. Die Hintereinanderausführung Lokalisierungsalgorithmus die dem Lokalisierungsalgorithmus Lokalisierungsfunktion von l eigentlichen als kann somit d Distanzwertermittlung als und L=l d verstanden werden. Die Schwierigkeit liegt unter anderem darin, die eingangs erwähnten Messfehler aus berücksichtigen, dass die Lokalisierungsfunktion L d in l so zu trotzdem noch korrekte Ergebnisse liefert. Nach Rojas [17] kann ein Netz abstrakter, künstlicher Neuronen als Mapping Machine betrachtet werden, welche Abbildungen F : ℝ n ℝm realisiert. Diese Abbildung wird im folgenden Netzfunktion genannt. Mit welchen Methoden die Abbildung realisiert wird, ist hierbei vorerst unbekannt, es wird aber davon ausgegangen, dass ein solches System die Abbildung durch geeignete Verfahren erlernen kann. Die grundlegende Idee ist nun, die Mapping Machine auf die Problemstellung der Lokalisierung anzuwenden, also dass genau die Lokalisierungsfunktion L realisiert werden soll. Entscheidend ist hierbei der Aspekt, dass Distanzwertermittlung und

30 2 Grundlagen 30 von 124 Lokalisierungsalgorithmus somit zusammenfallen. Die Abbildung folgt also direkt R A. Diese Annahme führt hinsichtlich der Kardinalität zu Einschränkungen für die Netzfunktion. n und m können somit angegeben werden, sodass gilt: F ' : ℝ R ℝ 2 (16) Die Mächtigkeit der Eingabemenge entspricht also der Anzahl der Referenzpunkte, während die Ausgabe im zweidimensionalen Raum (nämlich A ) liegen soll. Am Beispiel der Distanzwertermittlung über RSSI könnte diese Abbildung so realisiert werden, dass die RSSI-Werte von drei verschiedenen RSSI i, i = 0..2 ) auf die zweidimensionalen Koordinaten Accesspoints x, y A ( abgebildet werden. RSSI0 RSSI1 x y F(M0..Mn ) RSSI2 Abbildung 11: KNN als Blackbox Es gibt eine Vielzahl von Klassen von KNN, welche diese Abbildung auf unterschiedlichste Art und Weisen realisieren. Die größte Gemeinsamkeit bei den Klassen, die Gegenstand dieser Arbeit sind, liegt hierbei in der Praxis des OfflineTrainings, bei dem ein KNN vor seinem Einsatz das erwünschte Verhalten erlernen muss. Die genauen Vorgänge des Trainings unterscheiden sich über die unterschiedlichen Netztypen deutlich voneinander. Ziel des Trainings ist, dass das die Netzfunktion so gut wie möglich der Lokalisierungsfunktion entspricht. Unabhängig von der Wahl des Netztypen gestaltet sich die Implementation aus praktischer Sicht dabei in zwei Phasen: 1. Erfassen von Mustern an verschiedenen Orten im Raum und Training des Netzes, bis das gewünschte Verhalten erreicht ist (Offline-Phase) 2. Produktive Nutzung des Netzes für die Lokalisierung (Online-Phase) Aus der Sicht des Anwenders ergeben sich hierbei vorerst keine Unterschiede zum Ablauf des Anlernens eines Fingerprinting-Algorithmus, welcher z.b. auf einem Entscheidungsbaum basieren kann. Der entscheidende Vorteil bei der Verwendung

31 2 Grundlagen 31 von 124 von KNN liegt in deren Fähigkeit zu generalisieren [19]. Das bedeutet, dass ein korrekt eingestelltes KNN auch dann plausible Ergebnisse liefern sollte, wenn Messwerte anliegen, die während der Lernphase nicht als Trainingsmuster zur Verfügung standen. Wie praxistauglich das generalisierte Ergebnis für die Messung ist, muss dabei für jeden Netztyp noch untersucht werden. Die Erwartung, die aus dieser These entsteht ist die, dass ein Lokalisierungsalgorithmus auf Basis von KNN auch dann in der Lage ist eine gültige Position zu ermitteln, wenn sich die Bedingungen für die Messwerte ändern oder geändert haben. Für nähere Betrachtungen müssen die individuellen Eigenschaften der verschiedenen Klassen von KNN betrachtet werden. Im Rahmen dieser Arbeit wurden zwei verschiedene Ansätze untersucht, das Multi-Layer-Perceptron und Radiale Basisfunktionen, welche beide als universelle Funktionsapproximatoren verstanden werden können. Die Struktur und das Training unterschied sich jedoch in einigen Punkten erheblich voneinander Multi-Layer-Perceptron Das Multi-Layer-Perceptron (MLP) geht auf die Arbeit von Frank Rosenblatt zurück, welcher 1958 das einschichtige Perceptron beschrieb und dessen Arbeit in den 60erJahren durch Papert und Minsky verfeinert und mathematisch kritisch eingeordnet wurde [18]. Es handelt sich hierbei um eine lineare Anordnung von elementaren Recheneinheiten (Neurone oder Units), die eine Eingabeschicht (Retina) und eine Ausgabeschicht (Reaktionsschicht) über gerichtete, gewichtete Pfade miteinander verbinden. Wie auch das klassische Perceptron besteht das MLP aus einer Menge von kleinen, simplen Recheneinheiten (Neuronen), die nach einem bestimmten Schema verknüpft werden. i0 w 0 i1 i2 w0 Σ wi o w0 Abbildung 12: Neuron

32 2 Grundlagen 32 von 124 Abbildung 12 zeigt ein solches Neuron. Es besteht aus drei maßgeblichen Komponenten: 1. Gewichteter Eingangsvektor (Input I ={i 0..2 } ℝ mit Verbindungsgewichten ={w 0..2 } ℝ ) W (Weight) 2. Propagierungsfunktion w i, in welcher alle gewichteten Eingangswerte aufsummiert werden 3. Aktivierungsfunktion, in der die Ausgabe o aus dem Ergebnis der Propagierungsfunktion errechnet wird. Für die folgenden Betrachtungen wird hier die sigmoide Fermifunktion f log = 1 x 1 e herangezogen. Das Schema der Verknüpfung, das im Rahmen dieser Arbeit eine tragende Rolle spielen wird, ist die sogenannten Feed-Forward-Verknüpfung ohne Shortcuts. Diese Art der Verknüpfung besteht aus mindestens drei vertikal angeordneten Schichten von Neuronen, der Eingabeschicht, einer verdeckten Schicht und der Ausgabeschicht. i0 i1 i2 Eingabeschicht Verdeckte Schichten Ausgabeschicht Abbildung 13: MLP mit zwei verdeckten Schichten Abbildung 13 zeigt ein MLP mit zwei verdeckten Schichten. Die Eingabeschicht besteht

33 2 Grundlagen 33 von 124 nicht aus Neuronen, wie sie hier definiert wurden, sondern reichen einfach den anliegenden Eingabewert durch an die erste verdeckte Schicht. Sie werden in der Literatur aber auch in der Regel als Neurone bezeichnet [18]. Die Schichten sind untereinander vollverknüpft, es geht also von jedem Ausgang der Neurone eine Verbindung an den Eingangsvektor eines jeden Neurons der nachfolgenden Schicht. Hieraus ergibt sich auch, dass der Eingangsvektor jedes Neurons so viele Elemente hat, wie die vorangegangene Schicht Neurone. Der Index des Eingangswertes auf I eines Neurons entspricht dabei dem Positionsindex des verknüpften Neurons in der Vorgängerschicht. Es ist bewiesen, dass MLP mit zwei verdeckten Schichten einer bestimmen Größe (diese muss aber selbst gewählt werden) beliebige Probleme approximieren können (Kolmogrov-Theorem, [17]), wobei die Möglichkeit besteht, dass noch mehr verdeckte Schichten bessere Ergebnisse liefern können. Es wird daher im Folgenden grundsätzlich von einem MLP mit mindestens zwei verdeckten Schichten ausgegangen, sodass sichergestellt ist, dass, wenn es eine Lösung gibt, diese auch rein theoretisch gefunden werden kann, wenn die Anzahl der Neurone gut gewählt wurde. Die optimale Anzahl an Schichten und der Neurone pro Schicht kann überhaupt nur unter der genauesten Kenntnis der Problemgröße angegeben werden und auch hier gehen die Meinungen schon weitläufig auseinander [20]. Da die Problemgröße der Anwendung im Falle dieser Arbeit nicht genau bekannt ist, bleibt die Dimensionierung des MLP grundsätzlich eine Frage, die durch Experimente beim Design des Netzes beantwortet werden muss. Damit das Netz das gewünschte Verhalten für die Anweisung aufweist, muss es trainiert werden. Im Allgemeinen kann im Rahmen eines Trainings jeder Parameter des Netzes modifiziert werden, hierzu gehören: Aufbau oder Abbau neuer Verknüpfungen Veränderung der Verbindungsgewichte Veränderung der Aktivierungsfunktion Aufbau oder Abbau neuer Neurone (und der respektiven Verknüpfungen)

34 2 Grundlagen 34 von 124 Welche dieser Aktionen möglich ist, hängt vom eingesetzten Lernalgorithmus ab. Der in dieser Arbeit vorgestellte Algorithmus Backpropagation Momentum wirkt lediglich auf die Verbindungsgewichte, weswegen die anderen Aktionen nicht weiter behandelt werden. Lernverfahren Das MLP wird nach seiner Instantiierung grundsätzlich mit zufällig eingestellten Gewichten versehen. Es muss daher davon ausgegangen werden, dass ein MLP ohne Training generell unerwartete Ergebnisse liefert. Eines der ersten Perceptron-Lernverfahren, das in der Industrie große Beachtung fand war Backpropagation, welches 1974 von Werbos vorgeschlagen wurde [17] und mit einer kleinen Modifikation (Momentum-Term [19]) als Lernverfahren für alle folgenden Untersuchungen am MLP gelten soll. Das Konzept soll an einem kleinen Beispiel verdeutlicht werden. Dafür wird vorerst nicht von einem MLP sondern einzig von einer Ein- und Ausgabeschicht (Single-Layer-Perceptron) mit einem einzelnen Neuron ausgegangen, das das binäre OR-Problem lösen soll. Das Verfahren lässt sich eins zu eins auf das MLP übertragen. i0 w0 i1 w1 Σ wi o Abbildung 14: SLP der Größe 1 Als Menge T der Trainingsmuster stehen alle vier binären Eingabemöglichkeiten des OR-2 zur Verfügung. Ein Trainingsmuster ist dabei ein Tupel welches aus einem Eingabevektor t i und dem erwarteten Ergebnis t j= t j, s j T, s j besteht. Das Verfahren legt in mehreren Iterationen und zufälliger Reihenfolge die verfügbaren Trainingsmuster an die Eingänge des Netzes an und ermittelt im Anschluss die Abweichung der Netzausgabe o vom erwarteten Ergebnis jsi des jeweiligen Musters. Aus der 2 Abweichung e j= s j o wird Verbindungsgewichte wj 0..1 ein Anpassungswert für die errechnet, der den Gesamtfehler des Netzes in der nächsten Iteration verringern soll.

35 2 Grundlagen 35 von 124 Abbildung 15 zeigt hierbei anschaulich, wie sich die Einstellung der Gewichte (auf der x- und y-achse aufgetragen) auf den Gesamtfehler wj 0..1 E auswirkt. Zu Beginn des Lernens sind die Gewichte durch Zufall so eingestellt, dass das Perceptron Ergebnisse an einer sehr hoch gelegenen Stelle im Fehlergebirge liefert (ca. -2,-6), die Ausgabe also sehr weit entfernt vom gewünschten Verhalten liegt. Nach dem Verfahren des Gradientenabstiegs wird nun für jedes wj i ein w j i errechnet und addiert, sodass die neuen Gewichte den Punkt im Fehlergebirge markieren, der mit einer festgelegten Schrittweite auf dem steilsten Abstieg (negativer Gradient) zu erreichen ist. Abbildung 15: Gradiantenabstieg im OR-2-Fehlergebirge eines SLP Die schwarze Linie markiert den steilsten Abstieg auf dem Fehlergebirge, der Fehler wird also minimiert. Je nach Zerklüftung des Fehlergebirges kann es allerdings auch dazu kommen, dass das Verfahren sich im Abstieg verläuft, falls eine falsche Schrittweite gewählt wird. Die Einstellung der korrekten Parameter für Backpropagation muss hierbei nach Erfahrung oder experimentell ermittelt werden. Abbildung 15 zeigt weiterhin, dass das SLP das OR-2-Problem tatsächlich lösen kann, da es im Fehlergebirge ein Minimum (schwarzer Bereich) bei etwa 0 gibt, also einen Bereich in dem für alle Muster gilt, dass die Netzausgabe dem gewünschten Verhalten entspricht, da der Fehler minimal ist.

36 2 Grundlagen 36 von 124 Bewertung Ein MLP kann beliebige Funktionen approximieren. Mit dem MLP aus Abbildung 13 wurde mit Hilfe von Backpropagation z.b. eine gut passende Funktion (rote Kurve in Abbildung 16) für eine willkürliche und kleine Folge von Messwerten (blaue Punkte) gefunden. Abbildung 16: Durch MLP approximierte Funktion Es scheint also auch aus dieser praktisch erlangten Erkenntnis heraus möglich, MLP für das Lokalisierungsproblem einzusetzen. Unwägbarkeiten ergeben sich aus der Frage der Dimensionierung des MLP und der korrekten Einstellung des Lernalgorithmus. Ferner ist die Qualität der Approximation auch von der Vollständigkeit der Trainingsmuster abhängig, wie die grüne Kurve in Abbildung 16 zeigt, bei der die beiden Messwerte auf x=0.4, 0.5 fehlen. Hieraus lässt sich ableiten, dass in Umgebungen mit sehr starken Signalschwankungen auch relativ viele, eng gerasterte Messungen vorgenommen werden müssen, was einen hohen, praktischen Aufwand bedeutet. Problematisch ist für das Verfahren, wenn neue Messungen in der Approximation nachträglich berücksichtigt werden sollen. Wird davon ausgegangen, dass für einen neuen Trainingsdatensatz mit einem gegebenen Eingabevektor bereits früher ein Trainingsdatensatz existierte, so kann nachträgliches Training mit den neuen Daten dazu führen, dass früher Gelerntes wieder verworfen wird (Stabilitäts-PlastizitätsDilemma [18]) Vorteile ergeben sich aus der vergleichsweise einfachen Implementierung und der

37 2 Grundlagen 37 von 124 Tatsache, dass auch komplexe Muster von Signalpegeln berücksichtigt werden können, sofern diese angelernt werden. Während der Trainingsaufwand sehr hoch ist und der Überwachung durch den Menschen bedarf, kann der Rechenaufwand für eine Approximation in der produktiven Phase als sehr gering betrachtet werden. Es werden pro Neuron lediglich I Additionen benötigt, plus den Aufwand der Fermifunktion. Der Rechenaufwand steigt linear mit der Anzahl der Verbindungen Radiale Basisfunktionen Eine weitere Variante von KNN als Funktionsapproximatoren stellt das Paradigma der Radialen Basisfunktionen (RBF) nach Poggio und Girosi dar, welches wesentlich später als das Perceptron entstand [18]. Zunächst gibt es zwischen den RBF und dem MLP eine Menge von Gemeinsamkeiten: Auch die RBF sind als mehrschichtiges Feed-Forward-Netz mit vollverknüpften Schichten organisiert. Ebenfalls reicht die Eingabeschicht die anliegenden Eingabewerte einfach durch. RBF i0 RBF Ω i1 RBF Ω i2 RBF RBF Eingabeschicht RBF-Schicht RBF-Ausgabeschicht Abbildung 17: RBF-Netz Im Gegensatz zum MLP ist die Anzahl der Schichten festgelegt. Neben der obligatorischen Ein- und Ausgabeschicht, deren Neuronenzahl sich nach der Größe

38 2 Grundlagen 38 von 124 des Problems richtet, gibt es nur eine verdeckte Schicht, deren Neurone auch als RBF- H Neurone bezeichnet werden und deren Menge im Folgenden als deklariert sei. Die Verknüpfungen zwischen Eingabe- und RBF-Neuronen sind ungewichtet, die Eingaben werden also direkt in die RBF-Neurone geschickt. Die Verknüpfungen zwischen RBF- und Ausgabeneuronen sind wie beim MLP gewichtet. Jedes RBF-Neuron repräsentiert hierbei in einem I -dimensionalen Raum eine radialsymmetrische Funktion, z.b. die Gaussglocke. Abbildung 18: Gaussglocke Die Aktivierung eines Neurons berechnet sich aus der euklidischen Distanz von Eingabevektor und Zentrum der Funktion, welche als Parameter für die Gaussfunktion eingesetzt wird [18]: f h x =e x, c 2 2 (17) c, Je weiter eine Eingabe also vom Zentrum eines RBF-Neurons entfernt ist, desto weniger ist dieses erregt. Die Parameter c und und geben das Zentrum bzw. die Breite der Funktion an. Wie beim MLP kann jedes Neuron auch als eine Hintereinanderausführung von Propagierungs- und Aktivierungsfunktion gesehen werden. Die Propagierungsfunktion entspricht hierbei der Errechnung der euklidischen Distanz des Neurons zur Eingabe, die Aktivierungsfunktion der radialsymmetrischen Funktion, welche auf die Distanz angewendet wird. In der Ausgabeschicht werden die gewichteten Aktivierungen der RBF-Neurone schließlich aufsummiert. Es gilt somit für ein Ausgabeneuron Eingangsvektor o bei gegebenem x [18]:

39 2 Grundlagen 39 von 124 o x = w o, h f h x (18) h H Entscheidend ist hier die korrekte Einstellung der Gewichte, um für jedes Ausgabeneuron anhand der Gewichtung einen korrekten Output zu erzeugen. Die Einstellung der Gewichte wird während des Trainings vorgenommen. Lernverfahren In der einfachsten Form von RBF wird für jedes Trainingsmuster ein RBF-Neuron in der verdeckten Schicht angelegt. Wie beim MLP kann davon ausgegangen werden, dass es eine Menge von Trainingsmustern T mit Eingabemustern gibt. Somit können T T Gleichungen nach Gleichung 18 angegeben werden, nämlich für jedes Trainingsmuster t genau eine. Gesucht sind die H Gewichte eines jeden Ausgabeneurons. Sei S gesuchten Gewichte und M aus sich T ein G die Menge der Trainingsausgaben, eine Matrix Matrix der H O T H, die für alle Trainingseingaben H die Ausgaben der RBF-Neurone Gleichungssystem die aufstellen, nach Gleichung 18 enthält, so lässt welches die Lösungen für alle Trainingsausgaben erhält. Dieses System lässt sich nun nach G umstellen und liefert somit die gesuchten Gewichte [18]: S = M G M S = G (19) 1 Da für jede Trainingseingabe genau ein RBF-Neuron maximal aktiviert sein wird, entspricht diese Berechnung einer exakten Interpolation der Trainingsdaten. Jedes Neuron entspricht einer Stützstelle in der Ausgabe. Dieses Verfahren funktioniert nur unter der Bedingung, dass die Anzahl der RBFNeurone der Anzahl der Trainingsmuster entspricht, anderenfalls lässt sich nicht M invertieren. Es gibt hier allerdings einige Ansätze, das Problem zu lösen. Der populärste Ansatz ist die Anwendung der Deltaregel, um nach dem Prinzip des Gradientenabstiegs günstige Gewichte für die Ausgangsgewichte zu berechnen. Somit könnte im Rahmen eines Trainings auch die Anzahl der RBF-Neurone variiert werden, um bestmögliche Ergebnisse zu erzielen. Zusätzlich könnten auch c und der

40 2 Grundlagen 40 von 124 radialsymmetrischen Funktionen noch im Rahmen eines Trainings optimiert werden. Für die weiteren Betrachtungen des Verfahrens reicht die einfache Variante aber aus. Bewertung RBF-Netze ermöglichen wie MLP die Abbildung der geforderten Lokalisierungsfunktion durch Training mit repräsentativen Referenzpunktmessungen. Abbildung 19: Lösung eines Problems durch MLP und RBF im Vergleich Abbildung 19 zeigt das unterschiedliche Verhalten von RBF und MLP. Das interpolierende Verhalten des RBF-Netzes (grüne Kurve) lässt sich gut erkennen, die Trainingsmuster (blaue Punkte, Eingabe = x, Ausgabe = y) werden genau getroffen. Die Interpolation des RBF-Netzes liefert ein ähnliches gutes Gesamtergebnis wie das MLP, auch wenn z.b. bei x = 0.1 deutlich wird, wie sich das Verhalten der GaussFunktion vom Verhalten der Fermi-Funktion der Aktivierungsfunktion des MLP unterscheidet. Die Generalisierungsfähigkeit des RBF-Netzes lässt sich allerdings schon durch Variation von sehr differenziert einstellen. Hauptkriterium ist hier der Abstand der Trainingseingaben voneinander. Zu große führen (grüne Kurve in können zu oszillierendem Verhalten Abbildung 20), zu kleine führen zu einer schlechten Generalisierungsfähigkeit (blaue Kurve).

41 2 Grundlagen 41 von 124 Abbildung 20: Auswirkung der Variation von Sigma bei RBF Große Unterschiede bestehen im Extrapolationsverhalten von RBF im Vergleich zu MLP. Existieren keine Trainingseingaben für bestimmte Bereiche, tendieren RBF dazu, dort gar keine Aktivierung aufzuweisen, also umgangssprachlich formuliert, zu sagen: Ich weiß es nicht [18]. Diese Eigenschaft kann gut oder schlecht bewertet werden. Zum einen wird ein MLP immer einen plausiblen Wert liefern, man weiß aber nicht, wie zutreffend dieser in Wirklichkeit ist; hier ist das RBF eher pessimistisch, liefert dafür aber auch keine möglicherweise komplett verkehrten Ergebnisse. Das Verhalten lässt sich an einer Folge von zehn fiktiven Distanzwerten im Intervall [0;1] mit Schrittweite 0,1 skizzieren.

42 2 Grundlagen 42 von 124 Abbildung 21: Extrapolationsverhalten von MLP und RBF Abbildung 22: Fiktive Distanzwerte Abbildung 21 zeigt die in Schritten (x-achse) von 0,1 gemessenen Distanzwerte (yachse) als blaue Punkte. Diese Daten wurden als Trainingseingabe für das MLP auf Abbildung 13 und für ein RBF-Netz mit =0,1 verwendet, wobei die Messungen 5, 6 und 7 (s. Abbildung 22) vor dem Training entfernt wurden, um das Verhalten der Netze auf die fehlenden Daten zu evaluieren. Die rote Kurve zeigt das MLP, welches die fehlenden Punkte recht gutmütig überbrückt. Die Ausgabe des RBF-Netzes fällt hier anschaulich an der grünen Kurve stark ab. Ein größeres hätte zwar den Abfall etwas dämpfen können, hätte aber in anderen Bereichen des Netzes zum Überschwingen führen können. Dieser Fall lässt weiterhin erkennen, dass es äußerst sinnvoll sein kann, die Variation von mit in das Training einzubeziehen, wodurch sich aber wieder ein ähnlich großer Trainingsaufwand wie beim MLP ergibt. Das Training eines RBF-Netzes ist in dieser schlichten Form sehr einfach, da lediglich Parameter für bekannte Funktionen eingestellt werden müssen. Es handelt sich praktisch gesehen nicht um Training, sondern um die Lösung einfacher Gleichungen, sofern Parameter wie nicht weiter angepasst werden sollen (s. Lernverfahren). Bei einer großen Anzahl an Trainingsmustern wird der Berechnungsaufwand allerdings sehr schnell sehr groß, da in diesem Fall für die Erstellung der Matrix jedes RBFM Neuron jede Eingabe einmal berechnen muss. Der Rechenaufwand steigt somit auch

43 2 Grundlagen 43 von 124 mit der Größe der Eingabedimension, was für die Anwendung der Indoor-Lokalisierung aber noch unkritisch ist, da hier im der Praxis nicht mehr als vier bis fünf Referenzpunkte in einer Zelle gemessen werden. Die aufwändige Berechnung der Gewichte muss allerdings nur neu erfolgen, wenn neue Trainingsmuster hinzukommen. Der Rechenaufwand für die Online-Phase ist somit, wie auch beim MLP, gering. Es muss davon ausgegangen werden, dass diese einfache Variante bei sehr vielen Messungen von Referenzpunkten nicht ohne eine Reduzierung von RBF-Neuronen und, damit einhergehend, anschließendes Training nach Delta-Regel praktizierbar sein wird.

44 3 Verwandte Arbeiten 44 von Verwandte Arbeiten 3.1 Am Markt erhältliche Produkte Chipcon CC2431 Location Engine Hardwarebeschreibung Texas Instruments bietet mit seinen SOCs aus der Chipcon-Familie eine sehr reichhaltige Palette an Hardwarelösung für drahtlose Sensornetzwerke im Mote-Format [21]. Der für die Indoor-Lokalisierung besonders interessante Part an diesem SOC ist die sogenannte Location-Engine, ein in Hardware gegossener Algorithmus zur Bestimmung der eigenen Position in einem hierarchischen Netzwerk von Motes [22]. Das Messverfahren setzt auf die Erfassung der Signalstärke (RSSI) aller in der Umgebung befindlichen Referenz-Motes Theoretische Leistungsfähigkeit Die Hardware ist laut Hersteller in der Lage, eine Ortungsgenauigkeit von bis zu 25cm zu erreichen [22]. Hierfür werden mindestens drei Referenz-Motes benötigt. Die Verlässlichkeit der Ergebnisse selbst steigt mit einer größeren Anzahl an Referenznodes, bis zu 16, noch weiter an, während die Genauigkeit auf 25cm beschränkt ist. Laut TI kann ein Feld von maximal 63,75 x 63,75 Metern abgedeckt werden. Abbildung 23: Erkennung der Orientierung mit zwei Motes Mit einer Ortungsgenauigkeit von 25cm ließen sich schon die gängigsten

45 3 Verwandte Arbeiten 45 von 124 Anwendungsfälle in der Indoor-Lokalisation abbilden. Um eine Aussage über die Orientierung von Objekten zu treffen, müssten jeweils zwei Motes in einem Mindestabstand von mehr als 50cm an diesem angebracht sein. Die Abbildung 23 stellt den Vorgang der Orientierungserkennung mit Hilfe von zwei Motes (grün) dar. Die Lagebeziehung der beiden Motes gäbe Aufschluss über die Orientierung der markierten Person Allgemeiner Implementationsansatz Das grundlegende Konzept sieht vor, dass über die Location-Engine der momentanen Aufenthaltsort geschätzt wird. Die ermittelten Datensätze werden dann an einen Location-Service gesendet und dort abgespeichert. (Abbildung 24) Abbildung 24: Funktionsskizze der CC2431 Location Engine Die Testumgebung muss hierfür mit einer gewissen Anzahl Referenz-Motes ausgestattet werden, deren Standorte bekannt sind. Diese senden über die Funktionen der Location-Engine ein Beacon-Signal in einem festen Intervall. Dieses Beacon-Signal wird von der beweglichen Mote, dessen Position ermittelt werden soll, erfasst und für die Auswertung herangezogen. Der Auswertungsprozess ist bereits in der LocationHardware des CC2431 implementiert. Der Location-Service lauscht im drahtlosen IEEE Netz und wartet darauf, dass ein bewegliches Mote seine Position ermittelt hat und seine neuen Koordinaten bekannt macht.

46 3 Verwandte Arbeiten 46 von 124 Der Ansatz von TI versucht die Zuverlässigkeit des Gesamtsystems noch weiter zu verbessern, indem die Daten der Location-Engine im Location-Service nicht nur abgelegt werden (Tracking) sondern auch mithilfe statistischer Verfahren auf Basis alter Werte verglichen und ggf. korrigiert werden können. Die korrigierten Daten werden dann an das bewegliche Mote zur Übernahme zurückgesendet Erstellen von Software für CC2431 TI bietet zwar eine Referenzimplementation für die Infrastruktur um die Location Engine an, doch wird bei einer eingehenderen Auseinandersetzung mit der Technik schnell der Bedarf nach einer eigenen Implementierung erwachsen, die mehr auf den jeweiligen Use-Case zugeschnitten wäre. Für die Hardware stehen nur eine kleine Menge an Entwicklungswerkzeugen zu Verfügung. Während es zwei größere, kommerzielle Lösungen gibt, stehen auch freie Lösungen zur Verfügung, die sich hinsichtlich Funktionsumfang und -struktur aber deutlich von den kommerziellen Komplettlösungen unterscheiden: Die kommerziellen Lösungen von IAR [23] und Keil [24] bieten eine komplette Entwicklungsumgebung inkl. Compiler, Bibliothek und integrierter Entwicklungsumgebung. Die freien Lösungen bestehen aus einer Ansammlung einzelner Tools, die vornehmlich der Erstellung der für den CC2431 benötigten Binaries dienen. Eine Softwarebibliothek oder Entwicklungsumgebung muss hingegen manuell hinzugefügt werden. Lösung IAR Keil µvision SDCC TinyOS Workbench Hersteller IAR Systems Keil Open source Open source Lizenz Kommerziell Kommerziell Frei Frei Compiler Ja Ja Ja SDCC oder Keil HALBibliothek Optional Optional Nein Ja IDE Ja Ja Eclipse Eclipse Status Stabil Stabil Stabil Alpha Tabelle 1: Gegenüberstellung verschiedener Entwickler-Tools für TI CC2431 Für den Einsatz in einer öffentlichen Einrichtung wie der HAW wurde davon ausgegangen, dass dem Einsatz von freien Lösungen gegenüber rein kommerziellen Varianten der Vorzug gegeben werden sollte, da hier zum einen durch den

47 3 Verwandte Arbeiten 47 von 124 vorliegenden Quellcode eine Unabhängigkeit von einzelnen Herstellern erreicht wird und der didaktische Wert größer ist die Funktionsweise kann bis ins letzte nachvollzogen werden. Bei Bedarf kann man somit auch an der Basis Veränderungen vornehmen. Durch die großen Unterschiede zwischen den beiden freien Lösungen, SDCC und TinyOS, ergeben sich deutlich unterschiedliche Entwicklungsabläufe, die im Folgenden kurz skizziert werden sollen Plain-C mit SDCC Die reinste Lösung, der Hardware am nächsten und der unmittelbare Ansatz ist die Realisierung aller notwendigen Programmteile in einfachem Ansi-C. Dieser Ansatz kann mit dem genannten Compiler SDCC [25] verfolgt werden. Die Standarddistribution von SDCC liefert bereits einige, nützliche Header-Dateien, die bereits alle essentiellen defines enthalten, um die Register des CC2431 beim Namen anzusprechen. Durch ein Makro ist es auch möglich einzelne Bits der Register direkt anzusprechen, ohne große Schiebe- und Maskierungsoperationen. Ebenfalls werden alle essentiellen Funktionen für Interrupt-Verarbeitung geliefert, sodass die Hardware vollständig kontrolliert werden kann [26]. Implementationsansatz Als Basis für die Implementation wird eine leichtgewichtige C-Bibliothek erstellt, die alle essentiellen Funktionen implementiert, die für die Lokalisation benötigt werden. Hierzu zählen: Konfiguration nach Boot (Takt, Energie, I/O-Mapping) Einfaches I/O über USART Steuerung der Location-Engine I/O über Radio Ggf. Komfortfunktionen wie Temperatur-Sensor Die Bibliothek wird mit SDCC vorkompiliert und kann dann für die jeweilige Anwendung

48 3 Verwandte Arbeiten 48 von 124 hinzugelinkt werden. Die jeweilige Anwendung kann auf dieser Bibliothek fußen und je nach Anwendungsgebiet angepasst werden. Grenzen des Ansatzes Die allergrößte Hürde an diesem Ansatz ist die Komplexität der Anwendung. Da keine HALs verwendet werden, muss sehr viel Basiscode erzeugt werden. Die hardwarenahe Programmierung ist mühselig und benötigt sehr viel Zeit. Ansonsten sind keine Grenzen gesetzt, da man die volle Kontrolle über die Hardware hat TinyOS TinyOS ist eine sehr vielfältige Entwicklungsplattform für autonome Sensornetzwerke auf Basis populärer Mote-Produkte [27]. Es liefert ein ereignisgesteuertes Laufzeitsystem, welches priorisiertes Multithreading, Messagequeues und einen sehr mächtigen Hardware Abstraction Layer bietet. Für die effektive Modellierung von Ereignissen wurde die Programmiersprache NesC eingeführt, eine Erweiterung zu Ansi-C, welche auf ereignisgesteuerte Systeme perfekt zugeschnitten ist. TinyOS selbst liegt in Form von Quellcode in seinem Installationsverzeichnis vor und kann als mächtige Softwarebibliothek für die Entwicklung eben solcher Sensornetzwerke verstanden werden. Zusätzlich zu diesem Quellcode wird ein Buildsystem auf Basis von Make eingeführt, welches mithilfe des NesC-Compilers den NesC-Quellcode des Entwicklers in ein intermediate Ansi-C File überführt (mangling). Dieses intermediate File wird dann vom C-Compiler der Wahl übersetzt [28]. TinyOS unterstützt selbst den CC2431 nicht, es gibt allerdings eine Arbeitsgruppe in Stockholm, die tinyos8051wg [29], welche sich um die Portierung zum Vorgänger CC2430 kümmert. Der CC2431 ist binärkompatibel zum 2430 und sollte somit ebenfalls unterstützt werden. Die Portierung ist allerdings noch nicht abgeschlossen, sodass manche Funktionen der Hardware noch nicht zur Verfügung stehen. So fehlen zum Beispiel sämtliche Funktionsaufrufe an die im CC2431 zur Verfügung stehende Location Engine. (Stand März 2009)

49 3 Verwandte Arbeiten 49 von 124 Implementationsansatz Im Rahmen der Vorstudien zu dieser Arbeit sollte der Einsatz von TinyOS auf CC2431 untersucht werden. Da der CC2430 nicht über die Location-Engine des CC2431 verfügt, gibt es auch noch keinen HAL aus der tinyos8051wg hierzu. Es müsste nach TinyOS-Standard ein Modul geschaffen werden, welches die Funktionen der Location-Engine über NesC zur Verfügung stellt. Dieser Arbeitsschritt wäre im Kern identisch mit dem Ansi-C-Ansatz, nur dass bei TinyOS der ganze Rest bereits zur Verfügung steht und nicht ganz von vorne angefangen werden müsste. Grenzen des Ansatzes Leider ist es im Laufe der Untersuchungen nicht gelungen, lauffähigen Code für den CC2431 mit Hilfe des tiny8051wg-ports zu erstellen. Der Fehler wird im von NesC erstellten Code vermutet. Dieser scheint nicht unter allen Umständen fehlerfrei mit SDCC kompiliert werden zu können. Vorläufige Untersuchungen trafen auf einen Fehler der internen Ereignissteuerung, welche über Interrupts gesteuert wird. Der Interrupt-Handling-Code, der von NesC erstellt wird, scheint nicht kompatibel mit SDCC zu sein. Weitere Untersuchungen wurden abgebrochen, um die anderen Ansätze im zeitlichen Rahmen weiterverfolgen zu können. TinyOS ist jedoch eine sehr vielversprechende und für Entwickler angenehme Plattform und die Programmiersprache NesC bietet willkommene Ergänzungen zu Ansi-C UWB Location Detection (Ubisense) Das Ortungsverfahren der Firma Ubisense [30] basiert auf einer eigens hergestellten Hardwarelösung auf Basis von UWB. Das Akronym UWB steht für die Ultra Wideband Technologie welche sich dadurch auszeichnet, sehr kostengünstig und energieeffizient zu arbeiten. Die Ortung findet in Echtzeit statt und gibt eine Aussage über die Lage der mobilen Endpunkte in 3 Dimensionen.

50 3 Verwandte Arbeiten 50 von 124 Das System besteht aus mehreren Referenzpunkten, welche an festen Plätzen installiert werden, sowie beliebig vieler sogenannten Tags welche kontinuierlich eine Abbildung 26: Ubisense-Compact Tag (Quelle: [31]) Art Beacon Abbildung 25: Ubisense-Referenzpunkt (Quelle: [32]) Signal aussenden. Anhand dieses Signales welches über die Referenzpunkte eingefangen wird, ist eine zentrale Location Engine in der Lage, die Position jedes Tags zu bestimmen. Die Position eines Tags wird im Ubisense-System mittels einer Kombination aus AOA- und TDOA-Algorithmen realisiert. Um die Zeitsynchronisation zwischen den Referenzpunkten sicherzustellen werden die Referenzpunkte mit einer Timing Leitung verbunden. Abbildung 27: Pulserkennung bei UWB (Quelle: [33]) Neben der Möglichkeit über das Ultra Wideband die Position eines Tags zu ermitteln, ermöglicht Ubisense in ihrer Lösung die bidirektionale Kommunikation mit jedem Tag auf einem 2,4 GHZ Funkkanal.

51 3 Verwandte Arbeiten 51 von 124 Die Vorteile des Ortungsverfahrens von Ubisense liegen in der Genauigkeit. Die durchschnittliche Präzision der Lokalisierung mittels UWB beträgt nach Herstelleraussagen 15 cm [33]. Diese Genauigkeit ist auf die technische Möglichkeit der Verwendung von Laufzeitalgorithmen anstelle von Signalstärke-Algorithmen zurückzuführen. Die Abbildung 27 verdeutlicht das Vorgehen der Laufzeitmessung. UWB ist in der Lage aufgrund von zeitlich sehr kurzen Signalimpulsen eine Reflexion vom direkten Signal zu unterscheiden. Ein weiterer Vorteil ist die vielseitige Integrationsmöglichkeit in bestehende Systeme. So können Referenzpunkte über Standard Netzwerke wie LAN oder WLAN verbunden werden und es stehen Schnittstellen in Programmiersprachen wie c++, C# und Java zur Verfügung. Zudem gilt das UWB-System als extrem skalierbar da es keine zentralen Instanzen im System gibt, welche einen Flaschenhals darstellen könnten. Als nachteilig ist zu vermerken, dass der Einsatz jeder Art von UWB-Lösungen eine spezielle Hardware benötigt. Es wäre zu klären, inwiefern ein UWB-Tag in ein bestehendes, mobiles Endgerät integriert werden könnte. Zudem benötigt UWB eine eigenständige Installation und Wartung der Referenzpunkte. Da momentan keine Möglichkeiten bekannt sind, UWB-Tags (Abbildung 26) in bestehende mobile Geräte zu integrieren, beschränkt sich der Anwendungsbereich momentan auf die Ortung von mobilen Punkten, welche beispielsweise mit hoher Genauigkeit in einem Arbeitsablauf zentral getrackt werden müssen WLAN Location Detection EPE Die Firma Ekahau Inc. [34] vertreibt ein WLAN-basierendes Ortungssytem mit dem Namen Ekahau Positioning Engine (EPE). Das System basiert auf der Messung von Signalstärken. Es ist in der Lage mit verschiedenen mobilen Endgeräten gleichzeitig zu arbeiten. Dies ist möglich, da die Signalstärken vor der eigentlichen Berechnung angepasst and die jeweilige Hardware normalisiert werden. Die Lokalisierung wird mit Hilfe eines Fingerprinting-Algorithmus gelöst, wodurch keine Abbildung auf ein Koordinatennetz möglich ist, sondern Verfahren zur symbolischen Lokalisierung verwendet werden. Fingerprinting benötigt sehr detailierte Informationen über

52 3 Verwandte Arbeiten 52 von 124 Grundrisse und Raumpläne und eine eingehende Vermessungsphase sowie ständige Kontrolle und Pflege. Ist ein solches System jedoch erst einmal richtig eingemessen, verspricht es einen hohen Grad an Genauigkeit und Zuverlässigkeit Magic Map Magic Map ist eine von der freien Universität zu Berlin entwickelte Lokalisierungstechnologie. Sie wird beschrieben als ein so genanntes Hybrides Lokalisationsverfahren, welches mehrere Ortungstechnologien parallel verwendet um daraus die höchste Genauigkeit zu ermitteln. So ist das System in der Lage, mit Hilfe verschiedener Technologien wie ZigBee und WLAN sowie auch unterschiedlicher Distanzwertalgorithmen parallel die Position zu bestimmen. Magic Map benötigt zur Funktionalität anders als andere Verfahren nicht zwingend das Wissen über die Position von Referenzpunkten. Um die Genauigkeit allerdings zu erhöhen, ist es wünschenswert diese dem System bekannt zu machen. Zudem besitzt es die Möglichkeit über Peer to Peer Kommunikation der mobilen Endgeräte untereinander die Genauigkeit zu erhöhen [35]. In der Basiskonfiguration stellt Magic Map jedoch nur den Aufbau eines RSSI basierenden Lokalisierungssystems mittels Lateration dar. Der strukturelle Aufbau des Systems ist sehr modular gehalten. So unterscheidet Magic Map zwischen folgenden Komponenten [36]: Stumbler Er zeichnet die RSSI Signalstärken von Referenzpunkten auf und vermittelt diese weiter an verarbeitende Dienste. Da Magic Map nicht allein auf WLAN Technologie festgelegt ist, werden auch Stumbler für alle verfügbaren Technologien benötigt. Server Der Server übernimmt die Rolle eines Koordinators, welcher die von anderen Knoten eingehenden Signale und Messwerte weiter verteilt. Positioning Engine Sie der eigentliche Kern von Magic Map. Die Positioning Engine selbst ist nicht nur als zentrale Instanz zu verstehen, sondern lässt sich ebenfalls als verteilter Algorithmus auf mehrere Geräte verteilen. Die Skalierbarkeit des Algorithmus

53 3 Verwandte Arbeiten 53 von 124 ist hierdurch stark im Vorteil. P2P-Kommunikation Sie dient der Kommunikation von mobilen Endgeräten untereinander. Die Kommunikation findet in diesem Falle nicht über den Server statt, sondern wird direkt unter den Clients hergestellt. Verwendung findet diese Technologie im Bereich der Nahfeldortung. Hier verhilft sie der Präzision einer Lokalisierung. Tracker Er fungiert als eine Art Event Listener auf verschiedene Ereignisse. Ein Tracker kann auf bestimmte Positionsdaten angesetzt werden, welche er im laufenden beobachtet und bei bestimmten Ereignismustern vor einstellbare Aktionen auslöst Skyhook Wireless (XPS) Bei dem Lokalisierungssystem der Firma Skyhook Wireless inc. [37] handelt es sich weniger um eine Softwarelösung als um einen Internet Dienst. Er erlaubt es mit dem Internet verbundenen Endgeräten sehr schnell sowie in- und ausserhalb von Gebäuden die Position zu ermitteln. Die dafür von Skyhook Wireless erfundene Technologie heißt XPS, einer Kombination aus WLAN Trilateration, GPS und der GSM-Lateration (Siehe Abbildung 28). Abbildung 28: XPS Skyhooks Wireless Positioning System (Quelle: [37]) XPS [37] benötigt nicht alle aufgeführten Technologien um ein aussagekräftiges Ergebnis liefern zu können. Je mehr Technologien das System jedoch miteinander kombinieren kann, je geringer fällt der Fehler des Gesamtsystems aus. Zudem kann

54 3 Verwandte Arbeiten 54 von 124 XPS durch geschickte Kombination der Technologien die Rechenzeit hingegen einer einzelnen Technologie deutlich verringern. Als Beispiel gilt hier der Einsatz von GPS. Allein betrieben benötigt es zur ersten groben Lokalisierung sehr lange. Der Grund dafür ist, dass ein orientierungsloses GPS Endgerät keinerlei Informationen über die Satellitenkonstellationen am Himmel vorliegen hat. Um diese zu ermitteln benötigt das Endgerät die für den Standort wichtigen Almanach-Daten. Diese zu empfangen kann jedoch mehrere Minuten dauern. Steht dem GPS allerdings schon Vorkenntnis über den ungefähren Aufenthaltsbereich durch z.b. GSM-Lateration zur Verfügung, fällt die Lokalisierung deutlich schneller aus. Bei der Erfassung der Referenzstationen für weitere Laterationsalgorithmen geht Skyhook Wireless eigene Wege. So sind auf der Welt mehrere Autos betrieben von Skyhook Wireless unterwegs, um mithilfe mehrerer Empfänger die Signalstärken und Positionen von Accesspoints und Handymasten zu erfassen [38]. Zudem hat man selbst die Möglichkeit seinen Accesspoint mit genauer Position auf der Website des Herstellers zu registrieren. Abbildung 29: Netzabdeckung durch Skyhook Wireless in Hamburg (Quelle: [38], Stand Mai 09) Die maximal zu erwartende Genauigkeit des XPS Systemes liegt bei 5 bis 10 Metern. Die Netzabdeckung beschränkt sich ohne GPS jedoch mehr auf Ballungsgebiete. Für Entwickler stellt Skyhook Wireless ein Software Development Kit (SDK) zur Verfügung welches es einem erlaubt, diese Lokalisierungstechnik in seine eigenen Softwarelösungen zu integrieren.

55 3 Verwandte Arbeiten 55 von Arbeiten an der IMAPS IMAPS ist ein verteiltes Indoor-Lokalisierungssystems auf Basis von Ultraschall und Zigbee, welches Sebastian Gregor 2006 im Rahmen seiner [9] geschaffen hat und auch in folgenden Arbeiten an der HAW Anwendung fand [39][40]. IMAPS basiert auf der Grundlage des Cricket-Konzeptes von Nissanka B. et al. vom MIT, welches 2000 auf der sechsten ACM MOBICOM vorgestellt wurde [41] Konzept IMAPS basiert wie Cricket auf einer Infrastruktur von eigenständigen Sendeeinheiten, welche Beacons genannt werden. Diese werden im jeweiligen Raum an der Decke installiert und senden in zufälligen Zeitabständen Funk- (Zigbee) und UltraschallSignale aus. Diese Signale können von Listenern, Geräten, die an Ihrer Position im Raum interessiert sind, empfangen und ausgewertet werden. Ein Listener besteht hierbei aus einer kleinen Hardware, welche analog zum Beacon aufgebaut ist und dessen Signale empfangen kann. Die Distanz zu einer Beacon wird dabei aus der Differenz der Empfangszeitpunkte von Funk- und Schallsignal ermittelt. Die Distanzwerte mitsamt der Positionen der Beacons, welche über das jeweilige Funksingnal des Beacons übertragen wurden, werden im Anschluss vom Listener an einen über RS232 angeschlossenen Rechner übergeben, welcher einen Laterationsalgortihmus auf die ermittelten Distanzwerte ausführt. Der Listener führt somit eine Selbstortung durch. Die Auswertung der Position kann vom System flexibel gehandhabt werden und sowohl auf Koordinaten als auch symbolische Positionen abgebildet werden Kritik Die Genauigkeit der Distanzmessung ist dank Ultraschall auf kurzen Distanzen bemerkenswert hoch. Typische Messfehler überschritten 50mm nicht. Der Einsatz eines Laterationsverfahrens bietet sich bei solch genauen Daten an. Die Lateration kann wegen ihrer einfachen Berechnung direkt am Endgerät durchgeführt werden, sodass keine weitere Datenkommunikation mit einem zentralen Dienst stattfinden muss. Ebenfalls kann bei einer guten Kollisionserkennung auf komplexe

56 3 Verwandte Arbeiten 56 von 124 Fehlerkorrekturen verzichtet werden, wodurch der Bedarf an Kalibirierungmessungen entfällt und die Infrastruktur somit schnell in Betrieb genommen werden kann. Multipath-Effekte können durch die langen Signallaufzeiten recht gut erkannt werden. Kurze Messintervalle erlauben auch die Möglichkeit, Mobilität festzustellen. Der Einsatz von Ultraschall beschränkt den Einsatzbereich allerdings auf einen einzelnen Raum, da die Schallwellen Wände nicht durchdringen können. Größere Bereiche müssen pro Raum mit Beacons ausgerüstet werden. Ist die Anforderung an die Präzision der Ortung nicht zu hoch entstehen somit ggf. unnötige Kosten. Da das System auf eigenständiger Hardware aufbaut, ist eine aufwändige, vorangehende Installation des Systems nötig. Ebenso kann aus diesem Grund nur spezielle Client-Hardware zum Einsatz kommen, welche in Gregors Prototypen aus einem sperrigen Laptop bestand. Thomas Pfaff thematisierte letztere Einschränkung in seiner 2007 und skizzierte deren Umgehung durch den Einsatz von Bluetooth als Kommunikationsmedium zwischen Listener und z.b. PDA oder einem anderen, ultramobilen Endgerät. Der zusätzliche Hardwareaufwand für den Ultraschallund Zigbee-Empfang bleibt in Form eines dedizierten Empfangsmoduls aber bestehen. Die Beacons müssen außerdem mit Strom versorgt werden, was bei einer hohen Beacon-Dichte pro Raum über die Möglichkeiten der vorhandenen Hausverkabelung hinausgehen wird, sodass mit Batterien gearbeitet oder eine zusätzliche Verkabelung stattfinden muss Einordnung IMAPS stellt eine konkrete Alternative zu dem in dieser Arbeit untersuchten Verfahren dar. Abgesehen vom gleichen Ziel - den Ort innerhalb eines geschlossenen Gebäudes zu ermitteln, gibt es allerdings so gut wie keine Gemeinsamkeiten. Sowohl die Distanzwertermittlung als auch der Lokalisierungsalgorithmus basieren auch wegen der unterschiedlichen Qualität der Ausgangsdaten auf völlig unterschiedlichen Ansätzen. Ebenfalls ist die Anforderung der Mobilität mit beiden Verfahren sehr unterschiedlich zu bewerten. Während IMAPS grundsätzlich den Fokus auf Genauigkeit und Entkopplung legt, wird der Ansatz dieser Arbeit geleitet von Anforderungen an die Praktikabilität der Integration und Reduzierung der Implementationskosten

57 3 Verwandte Arbeiten 57 von Andere Arbeiten Paper von Julian K. Buhagiar, Carl J. Debono Buhagiar und Debono [5] untersuchten verschiedene Paradigmen von KNN theoretisch auf die Anwendbarkeit in physikalischen Lokalisierungsverfahren Konzept Ziel der Untersuchung war, bei einer gegebenen Umgebung, auf Basis einer WCDMAMobilfunkinfrastruktur (z.b. UMTS) die optimale KNN-Variante empirisch zu ermitteln. Die Untersuchung deckt dabei drei Paradigmen von KNN ab, radiale Basisfunktionen (RBF), Multi Layer Perceptron (MLP) mit Backpropagation und Self-Organizing Maps (SOM). Unabhängig von der Wahl der KNN-Variante soll der Algorithmus in zwei Phasen unterteilt sein, die "Neural Network Training algorithm"-phase, in der das jeweilige KNN anhand der erhobenen Messungen trainiert wird und die "Neural Network Detection Algorithm"-Phase, in der das KNN zur Lokalisierung verwendet wird. Der Lokalisierungsalgorithmus soll dabei auf einem zentralen Server beim Anbieter ablaufen, um auch noch andere Location Based Services anbieten zu können. Das Paper benennt verschiedene Effekte des Hochfrequenzfunks als Quelle für Störungen und Messungenauigkeiten. Hervorgehoben werden verschiedene Fadingund Shadowing-Effekte, die im Rahmen einer künstlichem Umgebung simuliert wurden, um die Störanfälligkeit der verschiedenen KNN-Varianten zu untersuchen. Die Ergebnisse des Papers zeigen, dass alle drei KNN-Varianten generell für Lokalisierungsalgorithmen verwendet werden können, dass selbst-organisierende Netze aber für die vorgestellte Umgebung die größten Erfolgsaussichten versprechen. Weiterhin zeigten die Untersuchungen, dass die Güte der Lokalisierung proportional zur Dichte der Sendemasten steigen soll und das Szenario somit besonders für urbane Umgebungen mit einem hohen Bedarf an Sendemasten zur Sicherstellung der Übertragungskapazitäten sinnvoll erscheint.

58 3 Verwandte Arbeiten 58 von Kritik Buhagiar und Debono zeigen auf, dass KNN prinzipiell für die Aufgabe der Lokalisierung geeignet scheinen und dass die theoretisch erreichbare Leistungsfähigkeit eines solchen Ansatzes zu brauchbaren Ergebnissen führt. Die vorgestellte Umgebung weist jedoch zahlreiche Unterschiede zu einer typischen Indoor-Umgebung auf. Sowohl die Fläche des Raumes, als auch die Dichte der Sendemasten führen eine wesentlich größere Spreizung der empfangenen Signalpegel am Endgerät nach sich, da die Distanzen im Vergleich zu einem Indoor-Szenario um den Faktor 10 bis 100 überschritten werden. Buhagiar und Debono stellen selbst fest, dass eine kontinuierliche Varianz der empfangenen Singalpegel für eine zuverlässige Ortung unerlässlich scheint. Gerade im Indoor-Bereich bieten die nahen Wände ein gegenüber Outdoor-Szenarien stark erhöhtes Potential für Fading-Effekte, welche die Varianz der Messwerte erheblich schmälern. Die Verlässlichkeit des Verfahrens muss im Indoor-Bereich somit neu untersucht werden. Die Erkenntnisse der Untersuchungen gehen weiterhin auf eine simulierte Umgebung zurück, sodass nicht ausgeschlossen werden kann, dass die Ergebnisse in einer realen Umgebung abweichen können Einordnung Das vorgestellte, zwei-phasige Vorgehensmodell zur Implementation von KNN in einem Lokalisierungsdienst liefert eine allgemeingültige Grundlage für derartige Verfahren. Dieser Ansatz stellt somit auch die Basis für das Verfahren in dieser Arbeit dar. Während das Paper vorrangig den Algorithmus betrachtet und nur vage Aussagen zur Infrastruktur macht, soll in dieser Arbeit der Transfer des Ansatzes in ein reales Szenario stattfinden und auch Fragen der Anwendbarkeit und Kosteneffizienz berücksichtigen. Durch die angesprochenen Unterschiede zwischen dem im Paper vorgestellten Outdoor-Szenario und dem in dieser Arbeit zugrundeliegenden IndoorSzenario muss das Verfahren allerdings zuvor neu bewertet werden.

59 4 Analyse 59 von Analyse Nachdem in dieser Arbeit Verfahren zur Lokalisierung sowie auch auf dem Markt erhältliche Systeme vorgestellt wurden, beschäftigt sich das folgende Kapitel damit, eine Anforderungsanalyse vorzunehmen um sich für einen Implementationspfad festlegen zu können. 4.1 Anforderungen Angelehnt an etablierte, mobile Lokalisierungssysteme ([30][34][36][37][5]) wurden Anforderungen an ein eigenes System aufgestellt. Im Folgenden werden die Anforderungen unterteilt in harte und weiche Anforderungen. Harte Anforderungen sollten von einem System erfüllbar sein, weiche sind eine Option, die den Nutzwert des Systems noch weiter steigern, aber nicht für alle Szenarien zwingend benötigt werden Harte Anforderungen H1. Das System muss in der Lage sein anhand von eigenständig ermittelten Distanzwerten auf die Position des Endgerätes im Raum zu schließen. H2. Das Endgerät soll mobil sein und eventuelle Datenkommunikation drahtlos erledigen. H3. Die Position im Raum muss auf ein Koordinatensystem abzubilden sein. H4. Das System muss auch ohne Sichtkontakt zwischen Referenzpunkten und Endgerät funktionieren, da Abschattungen durch Menschen, die sich im Raum bewegen, spontan entstehen können. H5. Das System muss über mehrere Räume hinweg funktionieren. H6. Das System muss temporäre Störungen soweit ausgleichen können, dass die Qualität der Lokalisierung für die Anwendung stets ausreichend ist Weiche Anforderungen W1. Die Lokalisierung sollte eine Genauigkeit von < 1m erreichen.

60 4 Analyse 60 von 124 W2. Das System sollte aufgrund der Kostenentwicklung auf Consumer-Hardware aufbauen und keinen zusätzlichen, infrastrukturellen Aufwand nach sich ziehen. W3. Es sollte möglich sein, das System schrittweise anzulernen und zu erweitern, insbesondere über mehrere Räume. Hierbei sollten Offline-Phasen kurz gehalten oder sogar vermieden werden. W4. Es sollte möglich sein, die Orientierung des Endgerätes im Raum ermitteln zu können. 4.2 Vorauswahl Die Anforderung W2 soll von Anfang an erfüllt sein, sodass das ausgewählte System tatsächlich nur mit Hardware, die für den Consumer-Markt bestimmt ist, funktionieren soll. Für die folgenden Ausführungen soll von einer IEEE g-WLAN-Infrastruktur ausgegangen werden. Diese signifikante Einschränkungen wurde beschlossen, um auch der Anforderung H2 gerecht zu werden und eine praktische Evaluation mit engem finanziellen Rahmen durchführen zu können. H4 ist somit im Rahmen eines Wohnraumes ebenfalls erfüllt, ebenso wie W4, da WLAN-Accesspoints günstig nachträglich installiert werden können. 4.3 Auswahl eines Verfahrens Um die zuvor erläuterten Probleme einer WLAN-Installation in der Praxis zu ergründen, wurde sich eingehend damit beschäftigt, eine Testumgebung aufzubauen in welcher die Charakteristik von WLAN in Indoor Umgebungen erläutert werden kann. Die Abbildung 30 zeigt die zur Verfügung stehende Testumgebung. Sie ist 5,7 x 11 Meter groß und beinhaltet ein kleines Badezimmer. Der Rest des Raumes ist offen. Da sich die Testumgebung in einem Dachgeschoss befindet, besitzt sie zu den beiden längeren Seiten große Dachschrägen. In der Testumgebung wurden an drei Stellen WLAN Accesspoints installiert, welche als Referenzstationen dienen sollen. Sie sind in der Abbildung 30 als Ro..n eingezeichnet. Sie wurden alle in einem einheitlichen Abstand von 15cm über dem Boden installiert.

61 4 Analyse 61 von 124 Abbildung 30: Indoor-Lokalisierungsszenario Die Testumgebung beinhaltet mehrere Tischgruppen mit Metallfüßen. Zudem herrscht kontinuierlich Bewegung durch andere Mitarbeiter im Raum. Diese Änderungen sollten das System in der Praxis möglichst wenig beeinflussen. Um einen Gesamtüberblick über den Raum zu erhalten, wurde sich dafür entschieden, den Raum gleichmäßig mit einem Raster zu unterteilen und an jedem so entstehenden Rasterpunkt Referenzmessungen vorzunehmen, um einen Einblick in die Richtcharakteristik der Accesspoints zu gewinnen. Wie in Abbildung 31 zu sehen ist, wurde sich für ein Messraster mit einem Meter Abstand entschieden, welches im Raum mittels Klebestreifen auf den Boden

62 4 Analyse 62 von 124 aufgetragen wurde. Abbildung 31: Testumgebung mit aufgetragenem Messraster (hervorgehoben) Für den Raum von 5,7m x 11m wurden so nun 55 Rasterpunkte erstellt, welche in einem nachfolgenden Schritt dazu verwendet werden konnten, um an jedem der Rasterpunkte Referenzmessungen vorzunehmen. Die Abbildung 33 zeigt die Aufteilung des gewählten Rasters im Raum. Bei den Referenzmessungen geht es darum, die Signalpegel der Referenzstationen Ro-n zu ermitteln. Sie werden dazu verwendet um Aussagen über die Ausleuchtung der Funksignale im Raum zu treffen. Pro Messpunkt wurden über einen längeren Zeitraum mehrere Messungen vorgenommen und bei nachfolgenden Auswertungen die arithmetischen Mittelwerte aller Messungen verwendet. Dieses Verfahren verhalf dazu, Ausreißer welche durch unvorhersehbare Störungen auftraten, zu eliminieren.

63 4 Analyse 63 von 124 Ansicht längs Ansicht quer Draufsicht Ro R1 R2 Abbildung 32: Darstellung der Signalpegelverläufe dreier Referenzpunkte im Raum Anhand der gesammelten Signalpegelmessungen ließ sich nun für jede Referenzstation eine individuelle Karte über die Ausleuchtung der Messdaten ermitteln. So ergab sich für jeden der drei verfügbaren Referenzstationen ein Set an Messergebnissen (Abbildung 32). Die Achsen X und Y beschreiben die Raumabmessungen, Z den zugehörigen RSSI-Wert. Wie in den Draufsichten der Abbildung 32 zu erkennen ist, ist das Abstrahlverhalten der Signalpegel im Raum keineswegs gleichförmig in alle Richtungen verteilt. Es wird viel mehr durch die antennenspezifische Charakteristik sowie durch Fading- und Shadowing Effekte im Zusammenhang mit der Umgebung beeinflusst. Das Resultat ist ein nur sehr schwer vorhersagbares Abstrahlverhalten, welches sich nur sehr schwer

64 4 Analyse 64 von 124 modellieren lässt. Um einen Eindruck des Abstrahlverhaltens aller Referenzpunkte in der Testumgebung zu erhalten, wurde ein Summenbild aller Signalpegelmessungen der Referenzstationen erstellt. Dieses Summenbild wurde maßstabsgetreu über den Grundriss der Testumgebung gelegt (Abbildung 33). Wie anhand der Messungen in der Testumgebung deutlich wird, bedarf es bei herkömmlichen Verfahren wie der RSSI-Lateration einer eingehenden Vorverarbeitung der Messdaten, um zufriedenstellende Ergebnisse erlangen zu können. Besteht das Bestreben die Position möglichst genau zu ermitteln, so ist dies mit dem RSSI Verfahren allein nur möglich, in dem die Umgebung in der das System verwendet werden soll, extrem wenigen Veränderungen ausgesetzt und die verfügbare Rechenkapazität zur Positionsbestimmung deutlich höher, als die eines mobilen Endgerätes ist. Ist dies nicht der Fall, gibt es die Möglichkeit, mehrere Algorithmen zur Distanzwertermittlung miteinander zu verknüpfen. Diese Vorgehensweise wird unter anderem von Systemen wie Magic Map (Kapitel ) und auch Ubisense UWB (Kapitel ) verfolgt.

65 4 Analyse 65 von 124 Abbildung 33: Summenbild aller Signalpegelmessungen der drei Referenzpunkte

66 4 Analyse 66 von 124 Stellt man nun die verbleibenden, verfügbaren Systeme gegenüber und vergleicht sie anhand der gegebenen Anforderungen ergibt sich einem folgendes Bild: Anforderung Skyhook RSSI WLAN Lateration (z.b. Magic Map) EPE Genauigkeit -? - Consumer Hardware x x Teilweise Ausfallsicherheit x? x Erweiterbarkeit - x - Störanfälligkeit - x - Kosten x x - Positive Eigenschaften 4 3 bis 5 2 bis 3 x= ja -=nein?=keine Information Tabelle 2: Gegenüberstellung verschiedener auf dem Markt erhältlicher Lokalisierungssysteme in Bezug auf die gegebenen Anforderungen. Betrachtet man die Anzahl der als positiv zu wertenden Eigenschaften, so stehen die Systeme von Skyhook Wireless sowie ein auf RSSI basierendes System wie Magic Map in direkter Konkurrenz. Da bei dem System von Skyhook jedoch keine Möglichkeit besteht, sich eine private Indoor-Umgebung nur für eigene Zwecke zu schaffen und die Erfassung der Referenzstationen nicht selbst gesteuert werden kann, stellt sich dieses System trotz der hohen Punktzahl als ungeeignet dar. Der Sieger der Gegenüberstellung ist somit eindeutig ein lokal bereitgestelltes, auf RSSI basierendes Lokalisierungssystem wie Magic Map. Warum jedoch die Punktzahl an positiven Eigenschaften bei Magic Map "3 bis 5" beträgt, bedarf einer genaueren Erklärung. Die Genauigkeit des Magic Map-Systems ist beeinträchtigt, wenn die Raumtopologie veränderbar ist. Zudem liegt die Stärke des Magic Map Systems darin, sich mehrere Technologien zu Hilfe zu nehmen. So besitzt Magic Map die Möglichkeit der Erweiterung durch andere Übertragungstechnologien [35] sowie auch verschiedener Distanzwertalgorithmen. Zudem versucht das System Schwankungen durch Peer-to-Peer Topologien zu eliminieren, was im Umkehrschluss bedeutet, dass die Anzahl mobiler Endgeräte einen direkten Einfluss auf das Lokalisierungsergebnis hat.

67 4 Analyse 67 von 124 Diese Eigenschaften beeinträchtigen die Punktzahl der Gegenüberstellung in den Kategorien "Genauigkeit" und "Ausfallsicherheit". Ruft man sich nun die gegebenen Anforderungen noch einmal ins Gedächtnis, fällt es schwer, ein auf RSSI basierendes System als das geeignetste für den Bereich IndoorLokalisierung zu nennen. Es bedarf eines fehlertoleranten Verfahrens zur Lokalisierung, welcher sich zur Nutzung mit herkömmlicher Consumer-Hardware eignet und der in der Lage ist, zu erlernen mit den vorhandenen Einschränkungen umzugehen. Künstliche, neuronale Netzen sollten den Einschätzung aus Kapitel zufolge hierzu in der Lage sein und wurden deshalb für den weiteren Verlauf dieser Arbeit als Verfahren ausgewählt.

68 4 Analyse 68 von Anforderungen an das Verfahren Mit der Entscheidung für den Einsatz künstlicher, Neuronaler Netze auf Basis von RSSI-Messungen musste im Folgenden untersucht werden, wie diese Technik sinnvoll evaluiert werden kann. Von zentralem Interesse war insbesondere die Frage nach der Wahl der KNN-Variante und der Parametrisierung des Lernalgorithmus, deren Beantwortung aber die Erstellung eines geeigneten Implementationspfades voran gehen musste. Als erster, grober Entwurf des Implementationspfades wurden vier ineinandergreifende Arbeitsschritte definiert: I1. Definition der Referenzpunkte I2. Aufzeichnung der Trainingsmuster I3. Design und Training des KNN I4. Verifikation des Systems Definition der Referenzpunkte Die Definition wurde für den vorliegenden Raum bereits in Kapitel 4.3 vorgenommen, es kommen die Referenzpunkte R0 bis R2 zum Einsatz. Inwiefern die Wahl der Referenzpunkte maßgeblich für die Leistungsfähigkeit der Anwendung ist, konnte an dieser Stelle noch nicht abgesehen werden und wird auch bei der Implementation in anderen Räumen stets ein ungewisser Faktor sein. Es bietet sich an, die Referenzpunkte so zu wählen, dass möglichst große Abstände zwischen ihnen entstehen, sodass der sehr schmalbandige Wertebereich des RSSI bestmöglich ausgeschöpft wird Aufzeichnung der Trainingsmuster Der Aufzeichnung der RSSI-Werte im Raum musste bereits eine größere Aufmerksamkeit zuteil werden, da hier gleich mehrere Probleme zu lösen waren. Zunächst musste ein Applikation gefunden werden, die in der Lage sein sollte, die RSSI-Werte zu allen Referenzpunkten kontinuierlich aufzuzeichnen, sodass die

69 4 Analyse 69 von 124 Messdaten später leicht weiterverarbeitet werden können. Hierbei ist insbesondere darauf zu achten, dass die Reihenfolge der gemessenen Referenzpunkte stets die gleiche sein muss, da jeder Eingang des KNN einen bestimmten Referenzpunkt repräsentiert. Im Anschluss sollten die RSSI-Werte normiert werden. Dieser Vorgang ist der Tribut an die herstellerspezifischen Wertebereiche des RSSI. Abbildung 34: RSSI-Verteilung im Raum Untersuchungen des Raumes zeigten eine relativ enge Konzentration von RSSIWerten zwischen 40 und 65. Wie in Abbildung 34 dargestellt, ist unterhalb von 30 (RSSImin) und oberhalb von 80 (RSSImax) nicht mehr mit signifikanten Messwerten zu rechnen. Unter der Annahme, dass der RSSI zwischen 0 und 100 liegt, wurde somit festgelegt: RSSI norm = RSSI RSSI min RSSI max RSSI min (20) Sollte der RSSI-Wert für andere Hardware nicht zwischen ±100 und 0 liegen, wobei 0 die größtmögliche Signalstärke repräsentiert, müsste eine weitere Normierung vorgeschaltet werden. Das Ergebnis der Normierung liegt somit immer zwischen 0 und 1 für RSSImin bzw. RSSImax, was unter anderem für MLP mit sigmoider Aktivierungsfunktion in der Ausgabeschicht eine schnelleres Lernen begünstigt. Für die Erhebung der Messwerte wurde im Rahmen der Vorstudien eine eigene

70 4 Analyse 70 von 124 Applikation entwickelt, die in der Lage sein sollte, die Erhebung und Normierung der Messwerte zu erledigen. Der Datenlogger ist ein einfaches Kommandozeilentool, welches in Java geschrieben wurde und die Tatsache ausnutzt, dass Apple mit seinem Betriebssystem Mac OS 10.5 ein sehr komfortables WLAN-Kommandozeilentool ausliefert, welches eine Tabelle aller Accesspoints und deren RSSI-Werte erzeugt (s. Abbildung 35)[42]. Der Datenlogger kann also nur auf diesem Betriebssystem ausgeführt werden. $ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s SSID BSSID RSSI CHANNEL SECURITY WLAN-6E2A95 00:1d:19:6e:2a: WPA(PSK/TKIP/TKIP) kiwigear 00:09:5b:eb:17:aa WPA(PSK/TKIP/TKIP) JUBUROENK2 00:11:50:8c:e0:7a WEP MnM oben 00:21:91:0b:4f: WPA2(PSK/AES/AES) JUBUROENK 00:15:e9:0d:ac: WEP referenznico 00:1d:4f:aa:0b:e NONE referenzzahni 00:19:e3:e5:6b:7f WPA2(PSK/AES/AES) referenzlautsprecher 00:1f:f3:04:32:3b NONE Abbildung 35: Ausgabe des WLAN-Kommandzeilentools Die Anwendung des Programms besteht aus der Eingabe der aktuellen Position l real A auf der Kommandozeile und einer anschließenden Messung, welche sich der Ausgabe, wie Trainingsdatensatz in Abbildung R, A 35 gezeigt, bedient und daraus einen erzeugt. Die Reihenfolge der benötigten Referenzpunkte wird dabei vorher in einer Konfigurationsdatei festgelegt. Weiterhin muss auch der Ortsvektor l real normiert werden, sodass die Werte zwischen 0 und 1 liegen. Dieser Schritt ist sehr wichtig, da viele Netzparadigmen mit logistischem Verhalten der Ausgangsneurone sonst nur sehr langsam oder gar nicht trainierbar werden [18]. Die Normierung kann hier ganz einfach durch Division durch Breite bzw. Höhe erreicht werden: l real norm= l real w h (21) Die Ausgabe des Datenloggers entspricht dem SNSS-Pattern-Format, sodass für Schritt 3) sofort nutzbare Daten zur Verfügung stehen.

71 4 Analyse 71 von Design und Training des KNN Für die ersten Untersuchungen bot sich die Verwendung von JavaNNS [43] an. Dieses Tool, welches an der Universität Tübingen entwickelt wurde, bietet zahlreiche Möglichkeiten, KNN zu modellieren und zu trainieren. Abbildung 36: JavaNNS 1.1 im Einsatz Der Arbeitsablauf in JavaNNS sieht vor, dass zunächst ein KNN angelegt wird. Das Anlegen des Netzes erfolgt hierbei schichtweise. Für jede Schicht kann angegeben werden, um welchen Typ von Neuron es sich handeln und welche Aktivierungsfunktion verwendet werden soll. Im Anschluss werden die Verbindungen zwischen den einzelnen Neuonen nach Feed-Forward-Schema hergestellt. Diese Arbeitsschritte werden grafisch anschaulich dargestellt, wie Abbildung 36 zeigt. Nach dem Anlegen des Netzes lädt man eine oder mehrere Pattern-Files (*.pat), welche die Trainingsdaten enthalten. Der Inhalt der Pattern-Files muss je nach eingesetztem Netztypen angepasst sein, für MLP und RBF ist er allerdings identisch. Nach einem obligatorischen Header folgen T Musterdefinitionen, die stets aus zwei Zeilen bestehen. Die erste Zeile enthält die normalisierten RSSI-Werte als Eingabe, die zweite Zeile die normalisierte Ortsangabe l realnorm als

72 4 Analyse 72 von 124 Trainingsausgabe. Kommentare können mit einem vorangestellten # angegeben werden. Ein Beispiel eines einzelnen Trainingsmusters kann Abbildung 37 entnommen werden. # Input pattern 0: # Output pattern 0: Abbildung 37: Trainingsmuster nach SNNS-Format Nach dem Laden der Musterdateien kann das Training beginnen. Je nach Netztyp und Lernalgorithmus können verschiedene Parameter eingestellt werden, beim MLP mit Backpropagation-Momentum z.b. Schrittweite, Momentum und Anzahl der Trainingszyklen. Der Fortschritt des Trainings kann im "Error Graph" begutachtet werden. Da hier das summierte Fehlerquadrat auf der Y-Achse aufgetragen ist, muss die Aussagekraft der Zahlen in den Hintergrund rücken, da sich aus dieser Zahl nicht direkt die Qualität des Trainings ableiten lässt. Die Praxis hat gezeigt, dass das Training dann beendet werden kann, wenn der Fehlergraph keine signifikanten Abstiege pro Zyklus mehr anzeigt Umsetzung in Programmcode Die KNN, die mit JavaNNS generiert werden, können nicht direkt in Programmcode eingebettet werden, da die Network-Files (*.net), welche JavaNNS erzeugt, wenn man ein Netz speichert, nur deklarativen Charakter haben und keine Programmlogik enthalten. Es gibt hierfür allerdings einen kleinen Compiler namens snns2c, welcher 1995 von Bernward Kett geschrieben wurde. Der Compiler kann Network-Files in CQuellen übersetzen, welche dann in beliebigen Programmcode eingebettet werden können [44]. $./snns2c wlannns4.net net.c measure ============================================================ snns2c by Bernward Kett (1995) ============================================================ converts wlannns4.net to net.c Function-Name measure ============================================================ loading net... dividing net into layers... sorting layers... writing net... Abbildung 38: Übersetzungsaufruf für snns2c

73 4 Analyse 73 von 124 Die Parameter, die dem Compiler übergeben werden sind: 1. Pfad zum Network-File 2. Pfad der zu erstellenden C-Datei (H-Datei wird mit gleichem Namen und anderer Dateiendung automatisch generiert) 3. Name der Methode, die die Netzfunktion realisieren soll Der Compiler generiert dann gemäß dem Aufruf in Abbildung 38 eine Header- und eine Code-Datei. Vermutlich aufgrund des Alters des Compilers und der zu der Zeit verfügbaren Rechenleistung sind noch alle Gleitkommazahlen als float definiert. Vor der Weiterverarbeitung sollten sie daher als double umdeklariert werden, um die Fehlerfortpflanzung zu minimieren [16]. extern int measure(double *in, double *out, int init); Code 1: Signatur der von snns2c erstellen Netzfunktion Die Verwendung der Funktion ist dann denkbar einfach. Man definiere zwei Arrays of double, deren Längen I bzw. O entsprechen und führe die Methode mit diesen Arrays als Parameter aus. Das in-array muss hierbei die normalisierten RSSI-Werte enthalten. init kann 0 sein. Nach erfolgter Berechnung enthält des outarray die Netzausgabe, welche dann wieder denormalisiert werden kann Abschließende Bemerkungen zu JavaNNS JavaNNS bietet durch seine Vielfalt von Netzparadigmen, Aktivierungsfunktion und Lernverfahren eine hervorragende Plattform für grundlegende Experimente und Erhebungen, da alle Parameter des Netzes schnell und unkompliziert manipuliert werden können. Besonders interessant ist JavaNNS im Zusammenhang mit der Beurteilung von Lernalgorithmen, da am Fehlergraphen einfach abgelesen werden kann, zu welchen Fehlerraten Netze bei bestimmten Parametern konvergieren. Die Umsetzung der Netze in Programmcode ist leider mühsam und zudem auch eingeschränkt. snns2c ist wesentlich älter als die letzte Überarbeitung des SNNSKernels (1995 (Abbildung 38) vgl [43]), sodass z.b. bei der Umsetzung von RBFNetzen gelegentlich Fehler auftreten. Somit können RBF nicht ohne weiteren Aufwand mit JavaNNS in eine produktive Anwendung implementiert werden. Weiterhin gilt, dass jedes neue Training eine Kette von Aktionen nach sich zieht:

74 4 Analyse 74 von Netz in JavaNNS überarbeiten und speichern 2. Netz mit snns2c neu übersetzen 3. Quellcode der Ausgabe von snns2c anpassen 4. Produktivsystem neu übersetzen und bereitstellen Zudem muss das Produktivsystem in der Lage sein, C-Quellen einzubinden, sodass die Auswahl der Implementierungssprache eingeschränkt ist oder zumindest ein weiterer Aufwand bei der Integration entsteht Verfikation des Systems Die Verifikation kann jeweils in zwei Phasen durchgeführt werden. Zum einen kann während des Trainings des KNN, in der Offline-Phase, eine Verifikation stattfinden. Hierfür wird neben den Trainingsmustern noch ein weiterer Satz Muster zur OfflineVerifikation zur Verfügung gestellt [19][45], die nicht in das Training einfließen. Während des Trainings wird der momentane Gesamtfehler dann ausschließlich anhand der Verifikationsmuster ermittelt. So kann sichergestellt werden, dass das Netz die Trainingsmuster nicht nur stur auswendig lernt, sondern generalisierendes Verhalten aufweist. Die Anzahl der Verifikationsmuster sollte hierbei nach praktischen Erfahrungen 20% bis 30% der Anzahl der Trainingsmuster betragen. Der Vorteil der Verifikation in dieser Phase liegt darin, dass Fehler noch korrigiert werden können, da das Training noch nicht abgeschlossen ist. Besonders interessant für den Anwender ist die Verifikation der Lokalisierung im produktiven Betrieb. In dieser Phase soll von Online-Verifikation gesprochen werden. Gerade für die Anwendung der Indoor-Lokalisierung ist eine Online-Verifikation von Interesse, da nicht bekannt ist, ob alle Situationen, die sich auf die Signalpegel der Referenzpunkte auswirken auch mit den Trainingsmustern repräsentativ widergespiegelt werden. Ein gezieltes, nachträgliches Training des Netzes anhand der Ergebnisse der Online-Verifikation ist mit den vorgestellten Netzparadigmen allerdings leider problematisch, insbesondere bei MLP, da ein nachträgliches Training bereits gelerntes Verhalten zerstören kann (Stabilitäts-Plastizitäts-Dilemma). Die LiveVerifikation beschränkt sich also zunächst darauf, dem Anwender ein Maß für die Leistungsfähigkeit der Anwendung zu liefern. Maßnahmen zur Verbesserung müssen

75 4 Analyse 75 von 124 in einer weiteren Offline-Phase nach Ermessen des Anwenders getroffen werden. Es wäre jedoch denkbar, ein hybrides System zu entwickeln, dass während des OnlineBetriebes eine Kopie eines KNN trainieren kann, welches dann später in einer atomaren Operation das alte KNN im laufenden Betrieb ersetzen könnte Bewertung Die Umsetzung von KNN für Indoor-Lokalisierung wird über einen vierstufigen Implementationspfad abgebildet. Nur, wenn alle Stufen schnell und flexibel abzubilden sind, kann eine Evaluation der Technologie in der Praxis sinnvoll durchgeführt werden. Der in den Vorstudien evaluierte Implementationspfad mit JavaNNS bedarf mehrerer, manueller Benutzereingriffe und Umwege über das Dateisystem. Zusätzlich kommt es zu sporadischen Problemen bei der Übersetzung des KNN in Quellcode. Somit scheidet dieser Pfad für die Implementation der Anwendung aus Zeitgründen aus. Es wurde beschlossen KNN in dem zu schaffenden System im sogenannten Neuronalen Kernel selbst zu implementieren. Der vierstufige Implementationspfad soll in eine neue, kompakte Anwendung eingebettet werden, die die Anforderungen H1 bis H6 und W2 bis W3 ad-hoc erfüllen soll. W1 und W4 sollen durch die Anwendung evaluierbar sein.

76 5 Design 76 von Design Die Anforderung an die Lokalisierung mit Hilfe von KNN bringen Designentscheidungen mit sich, die im Folgenden erläutert und spezifiziert werden. Da sich nach der Evaluationsphase die Zusammenarbeit mit KNN aus dem Programm JavaNNS als nicht praktikabel erwiesen haben (s. Kapitel ), entstand der Bedarf nach einer möglichst universell einsetzbaren Bibliothek zur Verwendung von KNN. Diese sollte selbst implementiert werden. Sie sollte die Funktionen der MLP sowie der RBF Netze mit sich bringen, um direkte Vergleiche in der Praxis abbilden zu können. Um die zu entstehende KNN Bibliothek soll eine Client/Server Infrastruktur geschaffen werden. Diese soll dazu dienen, Trainingsdaten zu sammeln und zu speichern und den Algorithmus der Lokalisierung auf eine zentrale Serverinstanz zu verschieben. Die clientseitige Berechnung der KNN erwies sich aufgrund der gesteigerten Anforderungen an die Prozessorleistung für Erfüllung der Anforderung W3 als Kandidat zur Auslagerung und sollte deshalb vom Server übernommen werden. Abbildung 39: Packagediagramm des Designentwurfs Zudem soll das System einen Service zur Verfügung stellen, der die Kommunikation zwischen mehreren Clients und dem Server abwickelt. Der Service sollte sehr universell einsetzbar sein um ihn in jede Art von Client implementieren zu können.

77 5 Design 77 von Neuronaler Kernel Als Kernkomponente für die Realisation der Netzfunktion soll eine Library entstehen, welche die in dieser Arbeit vorgestellten Netzparadigmen MLP und RBF mitsamt den vorgestellten Lernalgorithmen implementiert Schnittstellenbeschreibung Der neuronale Kernel soll kompakt gehalten werden und lediglich der Abbildung der Netzfunktion dienen. Die Schnittstelle INeuralNetwork stellt im Wesentlichen drei Methoden zur Verfügung, die der Eingabe (setinput), der Berechnung (calculate) und der Ausgabe (getoutput) dienen. Ein Lernalgorithmus ILearnAlgorithm muss eine Reihe von Trainingsmustern in das angegebene Netz integrieren können. Hierfür stehen eine inkrementelle Methode (train) und eine vollständige Methode (trainall) zur Verfügung. <<interface>> INeuralNetwork calculate() : double[] clone() : INeuralNetwork dumpparameters() : String[][] getoutput() : double[] initnet() : void setinput(double[] input) : void <<interface>> ILearnAlgorithm 0..1 getname() : String setneuralnetwork(ineuralnetwork) : void train(double[] in, double[] exp) : void trainall(double[][][] patterns, int cycles, double maxerror) : void Abbildung 40: Schnittstellen des neuronalen Kernels Die Datenstruktur der Trainingsmuster besteht dabei je nach Trainingsverfahren (inkrementell, vollständig) aus zwei Arrays, die je eine Trainingseingabe und die passende, erwartete Ausgabe beinhalten oder einem Array von Arrays von Trainingseingabe und Trainingsausgabe. Die Anzahl der Lernzyklen, cycles, soll beim vollständigen Training die maximal gewünschte Zahl von Trainingsschritten festlegen, maxerror den gewünschten, maximalen Gesamtfehler der Netzfunktion. Der Trainingsdurchlauf gilt als beendet, wenn die Anzahl der Zyklen oder der gewünschte Gesamtfehler erreicht wird, je nach dem was zuerst eintritt. Das Erreichen der maximalen Anzahl von Zyklen impliziert, dass dementsprechend noch nicht der gewünschte Gesamtfehler erreicht wurde. Es sollte dann ein weiterer Trainingsdurchlauf gestartet werden.

78 5 Design 78 von Trainingssequenz Ein Training gestaltet sich anhand der gegeben Schnittstellen als recht einfache und kurze Folge von Aufrufen. Das beispielhafte Sequenzdiagramm zeigt auch, wie die Implementation eines Trainings innerhalb eines Aufrufes von trainall aussehen könnte. Die Methode adjustparameters ist klar erkennbar kein Mitglied der Schnittstellenbeschreibung, wird hier aber als Stellvertreter für die Anpassung des Netzes an die Trainingsparameter verwendet. :Controller new() net:ineuralnetwork initnet() new() :ILearnAlgorithm setneuralnetwork(net) trainall(patterns,1000,0.01) *setinput(pattern) *calculate() *getoutput() output *adjustparameters() Abbildung 41: Einfache, vollständige Trainingssequenz Abbildung 41 zeigt einen beliebigen Controller, welcher den Kernel verwendet. Nach der Erstellung und Initialisierung eines Netzes, wird dieses an den Trainingsalgorithmus übergeben, welcher durch den Aufruf von trainall mit einer Reihe von Trainingsmustern hier 1000 Lernzyklen und mit einem maximalen Fehler von 0,01 trainieren soll.

79 5 Design 79 von Komponenten Um die geforderten Netzparadigmen abbilden zu können, müssen die Schnittstellen so implementiert werden, dass die folgenden Funktionen zur Verfügung stehen: Multi Layer Perceptron (MLP) MLP sollen mit beliebig vielen verdeckten Schichten schnell und einfach erzeugt werden können. Da die Anzahl der Referenzpunkte variieren kann, muss auch die Größe der Eingabeschicht variabel gehalten werden. Der Schritt zu einer variablen Größe der Ausgabeschicht ist dann auch nicht mehr weit. Deshalb soll das Netz auch hier flexibel sein, auch wenn für die Anwendung eine feste Größe der Ausgabeschicht mit zwei Neuronen schon ausreichte Backpropagation Momentum Learning Algorithm Als Lernverfahren für MLP soll Backpropagation Momentum implementiert werden. Dieses Verfahren basiert auf dem klassischen Backpropagation-Verfahren, erweitert dieses jedoch durch einen sogenannten Momentum-Term, der während des Trainings hilft, über ausgedehntere Plateaus im Fehlergebirge hinwegzukommen, sodass das Training sicherer gegen einen niedrigen Gesamtfehler konvergiert. Das Backpropagation-Verfahren soll einzelne Trainingsdatensätze nach und nach verarbeiten können (inkrementell) Radial Basis Functions (RBF) Zusätzlich zu MLP sollen noch RBF zum Einsatz kommen oder zumindest evaluiert werden. Hierfür sollen RBF nach Anzahl Trainingsmuster T = Anzahl verdeckte Neuronen H der Vorgabe implementiert werden RBF Learning Algorithm Entsprechend der Vorgabe T = H muss der Lernalgorithmus nur die einfache Aufstellung der Stützstellen für die Interpolation beherrschen.

80 5 Design 80 von Lokalisierungsdienst Der Lokalisierungsdienst soll mobilen Endgeräten die Möglichkeit der Erfassung von Messdaten sowie der Lokalisierung zur Verfügung stellen. Um die Kompatibilität über mehrere Endgeräte hinweg zu gewährleisten, soll das Übertragungsprotokoll des Lokalisierungsdienstes möglichst universell und für jede Art von Endgerät verständlich sein. Hier wäre zu prüfen ob sich eine Implementation als Webservice oder als Socket Protokoll anbietet.. Der Dienst soll den Endgeräten folgende Funktionalitäten bieten: LS1. Abrufen aller verfügbaren Räume (Areas) LS2. Abrufen aller benötigten Referenzpunkte eines Raums LS3. Abrufen einer Liste an bekannten Orten eines Raums LS4. Übermitteln einer Messung bestehend aus Liste von RSSI-Werten der Referenzpunkte und dem momentanen Aufenthaltsort. LS5. Ermitteln des aktuellen Ortes im Raum 5.3 Backend Das Backend ist als zentrale Instanz des Systems zu sehen. Es soll den Zugriff auf ein Objektmodell gemäß des Klassendiagramms aus Abbildung 47 zur Verfügung stellen. Das Backend sollte sowohl für die Administrationsoberfläche sowie auch für den Lokalisierungsdienst erreichbar und verwendbar sein. Der Zugriff auf die Objekte sollte gemäß eines Zugangs Controllers (DAO) zur Verfügung stehen.

81 5 Design 81 von 124 Abbildung 42: Klassendiagramm des Backends Die folgende Abbildung zeigt das Klassendiagramm des Backends. Mit Hilfe dieser Klassenstruktur werden Referenzmessungen (Measurement), antrainierte KNN und Referenzpunkte persistiert. Oberste Entität ist der Raum (Area). Ihm sind alle anderen Entitäten untergeordnet Beschreibung der Entitäten Anhand des Klassendiagramms bedingt es einer detaillierteren Beschreibung einiger Komponenten. Klasse Area: Ihr sind alle anderen Entitäten untergeordnet. Sie beschreibt einen Raum A mit seinen Abmessungen 'width' und 'height'. Klasse Network: Die Klasse Network hält jeweils immer ein Neuronales Netz vor. Dieses liegt in serialisierter Form vor und kann bei Bedarf deserialisiert und verwendet werden. Zudem hält die Klasse eine Versionsnummer sowie das Erstellungsdatum und eventuelle Kommentare vor.

82 5 Design 82 von 124 Klasse Bssid: Bei Objekten vom Typ Bssid handelt es sich um Referenzstationen. Eine Referenzstation ist immer einem Raum untergeordnet und besitzt immer einen Schlüsselwert namens 'bssid' und einen Beschreibungstext names 'name'. Referenzstationen dienen als Inputs des Neuronalen Netzes. Klasse Measurement: Ein Measurement beschreibt eine Messung von RSSI-Werten. Ein Measurement beinhaltet die Information der Position und des genauen Zeitpunktes an dem die Messung vorgenommen wurde. Zudem gibt sie Aufschluss über das Gerät welches die Messung getätigt hat. Ähnlich der Bssid ist ein Measurement auch immer direkt einem Raum untergeordnet Das Areakonzept Nach Kapitel soll die Lokalisierungsfunktion auf einen Raum A L eines Lokalisierungssystems abbilden. Um Anforderung W3 zu erfüllen, muss ein solches System in der Lage sein, mehrere Räume zu kennen und den richtigen Raum während der Lokalisierung auszuwählen. Somit soll das System beliebig viele A parallel verwalten können und dafür ausgelegt sein, dass sich Positionen innerhalb des A in der Realität überschneiden. Zudem soll die Möglichkeit gegeben sein, dass A vollständig ineinander geschachtelt werden können, so dass es möglich ist, innerhalb einer erfassten Fläche bestimmte Unterbereiche detaillierter zu erfassen. Dies bietet die Möglichkeit, an diesen ausgewählten Bereichen eine höhere Genauigkeit bei der Lokalisierung zu erlangen. Das Konzept bietet zudem die Möglichkeit, bestimmte A zu warten ohne das Gesamtsystem in seiner Funktionalität einzuschränken und bietet die Möglichkeit, mit Hilfe neu erzeugter A das Gesamtsystem schrittweise zu erweitern. Mit Hilfe dieser Herangehensweise ist es möglich, die Anforderungen aus W3 vollständig zu erfüllen. Die Client-Implementierung soll durch das Areakonzept keinerlei Veränderungen erfahren. Die Wahl des geeignetsten A in dem sich der Client befindet soll auf Seiten des Backends anhand der empfangenen Referenzstationen und zugehöriger Signalpegel entschieden werden.

83 5 Design 83 von Client Der Client nimmt bei der Erfüllung der Anforderungen eine besondere Rolle ein, da diese auf einem Endgerät installiert werden soll und somit ausschlaggebend für das Erlebnis des Benutzers ist. Der Client besteht aus zwei Komponenten, zum einen aus einem mobilen Gerät (Anforderungen H2, H4, H5), welches über IEEE g verfügt (Anforderung H1, H2) und im Einzelhandel zu erwerben sein muss (Anforderung W2) und zum anderen aus einer Anwendung, welche in der Lage ist, über die drahtlose Netzwerkverbindung mit dem Lokalisierungsdienst zu kommunizieren (Anforderung H2). Mögliche Geräte wären PDAs oder Smartphones mit deren jeweiligen Software Development Kits Programmmodi Die Software des Clients muss über zwei Betriebsmodi verfügen, die der Offline- und der Online-Phase der KNN-Implementierung gerecht werden: Capture Mode In diesem Modus führt der Client Messungen der Referenzpunkte durch und sendet diese samt einer vom Benutzer ausgewählten Position im Raum an den Lokalisierungsdienst. Jede Messung entspricht somit einem Trainingsmuster. Als Vorbedingungen für den Betrieb im Capture Mode gelten: 1. Der Raum A muss bekannt sein Die Clientanwendung erhält durch eine Anfrage an den Lokalisierungsdienst die Liste der verfügbaren Räume (Aufruf LS1), sodass der Anwender schließlich in einer Auswahl den zutreffenden Raum selektieren kann. 2. Der Aufenthaltsort l real im Raum muss bekannt sein Der Anwender muss angeben, wo im Raum er sich befindet. Als Orientierungshilfe kann sich der Anwender eine Liste von wohl-bekannten Orten (Koordinaten) abrufen (Aufruf LS3).

84 5 Design 84 von Die für den Raum benötigten Referenzpunkte müssen messbar sein Damit ein Trainingsmuster gültig ist, muss für alle Elemente des Eingabevektors ein Wert bekannt sein. Die Anwendung muss sicherstellen, dass während einer Messung alle Referenzpunkte erfasst werden. Welche Referenzpunkte dafür benötigt werden, erfährt die Anwendung vom Lokalisierungsdienst (Aufruf LS2). Nach der Erfassung der Signalpegel aller benötigten Referenzpunkte kann das Ergebnis an den gesammelten Lokalisierungsdienst Datensätze können übermittelt dann in werden (Aufruf einer LS4). Offline-Phase Die vom Lokalisierungsdienst zum Training eines KNN herangezogen werden Location Mode Der Location Mode dient der Abfrage des Lokalisierungsdienstes in einer OnlinePhase. Der Client misst alle Referenzpunkte, die gerade in Empfangsreichweite liegen. Um die Zuverlässigkeit der Messung zu erhöhen sollen mehrere Messungen erfolgen und die Ergebnisse kumuliert werden. Liegen für einen Referenzpunkt mehrere Messungen vor, was wahrscheinlich ist, soll der Messwert über den Median gemittelt werden. Hiervon darf man sich erhoffen, dass gröbste Schwankungen der Messwerte ausgefiltert werden. Der Client sendet eine Lokalisierungsanfrage (Aufruf LS5) an den Dienst und wartet auf die Antwort. In der Antwort sind der erkannte Raum Aufenthaltsort A und der vermutete l A enthalten.

85 6 Realisierung 85 von Realisierung 6.1 Umsetzung des Designs Das in dieser entwickelte System soll in der Lage sein, mit Hilfe neuronaler Netze die Positionen eines mobilen Endgerätes zu ermitteln. Es wird auf der Verwendung von RSSI Signalpegelwerten basieren, mit denen ein Neuronales Netz angelernt wird um die Richtcharakteristik der Indoor Umgebung zu erlernen. Im Optimalfall soll das System in der Lage sein, Strukturveränderungen sowie Störungen im Raum zu erkennen und auszugleichen. Ein solches System lässt sich in vier Komponenten einteilen. 1. Eine eigene Klassenbiblitothek für neuronale Netze, der Neuronale Kernel. 2. Einen Lokalisierungsdienst, welcher über mehrere Schnittstellen Positionsanfragen entgegen nimmt und mit Hilfe eines neuronalen Netzes beantwortet. Des weiteren ermöglicht der Dienst auch, Trainingsdaten zum Trainieren des neuronalen Netzes zu sammeln. Er wurde sowohl als Webservice als auch als Socket Protokoll implementiert. 3. Mobile Clients (Siehe Abbildung 50) welche die Aufgabe übernehmen, Messdaten von verschiedenen Positionen zu ermitteln, sowie später auch Positionsanfragen an den Lokalisierungsdienst zu stellen. 4. Eine Administrationsoberfläche, in welcher man Neuronale Netze mit Hilfe der gesammelten Messdaten erstellen, trainieren und versionieren kann. Als Referenzpunkte dienen dem System handelsübliche Accesspoints. Die Accesspoints des Systems müssen weder räumlich vermessen noch in irgendeiner Weise miteinander gekoppelt werden. Bei der Implementierung wurde die Programmiersprache Java verwendet.

86 6 Realisierung 86 von Neuronaler Kernel Der neuronale Kernel wurde als Java SE-Klassenbibliothek realisiert. Im Vordergrund stehen die Implementationen von MLP und RBF und den respektiven Lernalgorithmen. Zusätzlich zu den gegebenen Anforderungen wurde im Sinne der Vereinfachung der Analyse noch ein Fehlergraph realisiert, der Lernfortschritt visualisieren kann Multi Layer Perceptron Das Multi Layer Perceptron ist als Sammlung von Schichten von Neuronen realisiert. Jedes Neuron (Klasse Perceptron) besteht aus einem Array von Eingabewerten, einem Propagierungswert (netpj) und einer Aktivierungsfunktion, die auf den Propagierungswert angewendet wird. Als Aktivierungsfunktion stehen Linear, Fermi (Sigmoid) und Tangens Hyperbolicus zur Auswahl. Abbildung 43: Klassendiagramm der MLP-Implementation Die Instanziierung eines MLP erfolgt mit Hilfe einer LayerDefinition-Hilfsklasse. Eine LayerDefinition sagt aus, wie viele Neuronen in einer Schicht existieren sollen und welche Aktivierungsfunktion diese aufweisen sollen. Als KonstruktorArgumente werden die Größe des Eingabevektors, gefolgt von beliebig vielen LayerDefinition-Instanzen beschreibt dabei die erwartet. Ausgabeschicht. Die letzte Daher LayerDefinition-Instanz muss auch mindestens eine LayerDefinition übergeben werden.

87 6 Realisierung 87 von 124 MultiLayerPerceptron network = new MultiLayerPerceptron( 3, new LayerDefinition(11, new SigmoidLogisticActivationFunction()), new LayerDefinition(11, new SigmoidLogisticActivationFunction()), new LayerDefinition(2, new SigmoidLogisticActivationFunction()) ); Code 2: Instanziierungsaufruf eines MLP mit Fermi-Aktivierungsfunktion Abbildung 44: Kaskadierter Aufruf von calculate Der Aufruf calculate(), welcher die Berechnung der Netzfunktion für den aktuell anliegenden Eingabevektor veranlasst, ruft eine schichtweise Verarbeitung der Eingabewerte in jedem jeweiligen Neuron hervor Backpropagation-Momentum-Trainingsalgorithmus Als Lernalgorithmus für das MLP wurde Backpropagation-Momentum realisiert. Abbildung 45: Klassendiagramm der Backpropagation-Implementation Die Implementation kann sowohl inkrementell als auch vollständig trainieren. Die Schrittweite der Backpropagation kann über den Parameter stepsize eingestellt werden, der Momentum-Faktor über den Parameter momentum. Die Parametrisierung hat einen erheblichen Einfluss auf die spätere Funktion des

88 6 Realisierung 88 von 124 trainierten Netzes. Während die Instanz des Trainingsalgorithmus längst wieder zerstört wurde, spiegelt sich der Erfolg des Trainings in den Gewichten der Neurone des MLP wieder. Das MLP ist somit auch ein recht universell einsetzbares Netz, dessen Verhalten maßgeblich durch die Implementation des Trainingsalgorithmus beeinflusst wird Radiale Basisfunktionen Radiale Basisfunktionen wurden ebenfalls nach Anforderung implementiert. RBF wurden self-contained implementiert, es gibt keine weiteren Entitäten, wie das Perceptron beim MLP, die für die Implementierung eine tragende Rolle spielen. Für die Berechnungen wird das JavaMatrix-Package verwendet [46]. Das System ist daher recht übersichtlich: Abbildung 46: Klassendiagramm der RBFImplementation Im Gegensatz zum MLP, wo der Lernalgorithmus für das spätere Verhalten des Netzes ausschlaggebend ist, stecken die Parameter beim RBF im Netz selbst. Der einzig einstellbare Parameter zur Zeit ist sigma. Wie in Kapitel erläutert, kann über diesen Parameter die Breite der Interpolationsfunktionen festgelegt werden. Da dieser Wert bei jeder Ausführung der Netzfunktion und nicht nur während des Trainings benötigt wird, enthält das Netz selbst den Parameter. Der Lernalgorithmus holt sich sigma dann vom jeweiligen Netz, mit dem er initialisiert wird. Die Initialisierung eines RBF-Netzes gestaltet sich noch einfacher als beim MLP. Da RBF stets nur eine verdeckte Schicht haben, reichen als Argumente schlichtweg die Kardinalitäten von Eingabe-, verdeckter- und Ausgabeschicht.

89 6 Realisierung 89 von 124 RadialBasisFunction net = new RadialBasisFunction(3,40,2); Code 3: Instanziierungsaufruf eines RBF RBF-Lernalgorithmus Im Gegensatz zu Backpropagation unterstützt das Training der RBF kein inkrementelles Training, das heißt, der Algorithmus muss mit allen Trainingsmustern auf einmal parametrisiert werden, damit die entsprechenden Matrizen berechnet werden können. Dafür ist die vorliegende Implementation über die Anforderung hinaus dazu in der Lage, auch mit mehr Trainingsdaten als RBF-Neuronen zu trainieren. Dies wurde erreicht, indem M 1 über die Moore-Penrose-Pseudoinverse bestimmt wird, sobald H T gilt. Die Deltaregel wurde nicht implementiert Lokalisierungsdienst Die Funktionen des Lokalisierungsdienstes wurden mit zwei verschiedenen Technologien realisiert, um den Dienst für weitergehende Versuche mit verschiedenen Endgeräten nutzbar zu machen Webservice Da ein Webservice lediglich die Funktionalität bietet, primitive Datentypen zu übertragen, findet bei der Abfrage von Informationen ein zweistufiger Aufruf statt, bei dem im ersten Schritt die id der gewünschten Objekte angefragt wird und durch einen weiteren Aufruf die zusätzlichen Informationen anhand der bekannten id abgerufen werden. Der Webservice wird über SOAP auf Basis von Apache JAX-WS bereitgestellt. Protokolldefinition public interface ILocationService { /** LS4).2 * Adds a seen Bssid with it's measured RSSI value to a measurement. * A valid measurement handle (measurementid) has to be provided. */ void addmeasurepoint(int measurementid, String bssid,int rssi); /** LS4).1 * Requests a new measurement handle for adding location measurements. */ int addmeasurement(string devicename, int areaid,double posx,

90 6 Realisierung 90 von 124 double posy); /** LS2) * Gets all Bssids that are associated to this area. The order of * the returend list is also the order of Bsids with their * respective RSSI values that are expected in the locate and * measure operations. */ String[] getareabssids(int areaid); /** LS1).3 * Returns an array of integers of the length of 2. * The width of the area is stored at index 0, the height at index 1 * respectively. */ int[] getareadimensions(int areaid); /** LS1).1 * Gets the ids of all available areas. */ int[] getareaids(); /** LS1).2 * Gets the name of a certain area. */ String getareaname(int areaid); /** LS5) * Gets a location estimate based on the provided list of visible * Bssids ans their corresponding RSSI values plus the * id of the corresponding area (cast to int please) */ double[] getlocation(string[] bssids, int[] rssis); /** LS3).2 * Returns an array of integers of the length of two that * contains the * X and the Y component of a well known location. */ double[] getlocationcoordinates(int locationid); /** LS3).1 * Gets a list of all ids of well known locations of a certain area. */ int[] getlocationids(int areaid); } Code 4: Interface-Definition des Webservices Neben dem universell einsetzbaren Webservice wurde ein Socket-Protokoll für langsame Übertragungswege und Endgeräte mit geringerer Leistungsfähigkeit entwickelt, welches weniger Overhead als das mächtige SOAP-Protokoll erzeugen sollte, was sich in der Praxis auch bestätigte.

91 6 Realisierung 91 von Socket-Protokoll Das Socket-Protokoll stellt den selben Funktionsumfang wie den des Webservices zur Verfügung. Die Daten werden lediglich direkt über einen TCP-Socket in Form eines kompakten, für diese Anwendung ausgelegten Protokolls ausgetauscht. Das Protokoll sieht hierbei vor, dass das mobile Endgerät parametrisierte Anfragen stellen kann, welche eine direkte Antwort des Servers zur Folge haben. Für jede Anfrage wird ein neuer Kanal geöffnet und nach der Übermittlung gleich wieder geschlossen. Jede Anfrage ist mit einem Line-break zu terminieren. Protokolldefinition Aktion Anfrage Antwort LS1) Alle Räume holen AREAS;\n AREAS; ('areaid','areaname','areaw idth','areaheight';)*\n LS2) Referenzpunkte eines Raums holen BSSIDOFAREA;'areaid';\n BSSIDOFAREA; ('bssid','name';)*\n LS4) Messung hinzufügen CAPTURE;'areaid','posx','posy' CAPTURE;\n ;'devicename';('bssid','rssi';)*\n LS5) Position ermitteln LOCATE;('bssid','rssi';)*\n LS3) Wohl bekannte Orte eines Raums holen LOCATE;'areaid','areanam e','areawidth','areaheight';' posx','posy';\n LOCATIONSOFAREA;'areaid';\n LOCATIONSOFAREA; ('x','y';)*\n Fehlerbehandlung ERROR;'errormessage';\n Tabelle 3: Protokolldefinition des Socket-Protokolls Datentypen Variable Format Wertebereich areaid Integer 0 bis max areaname String - areawidth Integer 1 bis max areaheight Integer 1 bis max bssid String - name String - posx Double 0 bis areawidth * Beliebig häufige Wiederholung des Bereiches x

92 6 Realisierung 92 von 124 Variable Format Wertebereich posy Double 0 bis areaheight devicename String - rssi Integer -100 bis 100 x Double 0 bis areawidth y Double 0 bis areawidth errormessage String - Tabelle 4: Datentypen des Socket-Protokolls Backend Das Backend stellt die in Abbildung 42 dargestellten Entitäten zur Verfügung. Es hält einzige Instanz eine Datenbankverbindung vor, in welcher Referenzmessungen und trainierte KNN abgelegt werden können. Abbildung 47: Trainingsoberfläche als Website Das Backend stellt zudem eine Administrationsoberfläche über eine Webseite zur Verfügung. Sie bietet die Möglichkeit, sich einen Überblick über gesammelte Messdaten zu verschaffen, Räume zu verwalten und ein neuronales Netz bestmöglich mit Hilfe eines Fehlergraphen zu trainieren. Sie hat die Aufgabe, den Prozess des Trainings des KNN möglichst flexibel zu halten, um dem Anwender die Möglichkeit zu geben, verschiedene Szenarien und Netztopologien auszuprobieren. So bietet sie die

93 6 Realisierung 93 von 124 Möglichkeit, die Trainingsdaten einzuschränken und einzelne Trainingsschritte auch wieder rückgängig zu machen Verwendete Technologien Da sich dazu entschieden wurde, das Backend über eine Internetseite bedienbar zu machen, wurde die gesamte Serverseite als eine Webapplikation entwickelt, welche mit Hilfe eines Java Servlet Containers verwendet werden kann. Hier wurde sich für den Apache Tomcat Application Server [47] entschieden. Als Datenbank wurde sich für die Open Source Softwarelösung MySQL [48] entschieden. Der Zugriff auf die Datenbank auf Code Ebene wurde mit Hilfe des Java Persistence Frameworks hibernate [49] realisiert, welches einen objektorientierten Zugriff auf die Daten aus der Datenbank gewährt. Um Abhängigkeiten zwischen dem Persistenz Layer und der da drüber liegenden Schichten zu vermeiden, wurden zugehörige Data Access Objects angelegt über welche der Zugriff auf die Daten gesteuert wird. Abbildung 48: Die Aufteilung der einzelnen Komponenten und wie sie ineinander greifen Seitens der Darstellungsebene für die Administrationsoberfläche im Web wurde das Java Web Application Framework Apache Wicket [50] verwendet. Es ermöglicht eine

94 6 Realisierung 94 von 124 weitere Vermeidung von Abhängigkeiten zwischen der Controller- und View-Ebene. In Abbildung 48 wird die Hierarchie der gerade erklärten Technologien noch einmal grafisch verdeutlicht Client Der Lokalisierungsclient wurde auf den von der HAW zur Verfügung gestellten Handhelds vom Typ HP IPAQ 5500 unter Windows Mobile 2003 entwickelt. Dabei wurde das.net Compact Framework 2.0 von Microsoft und das Smart Device Framework 2.3 von OpenNETCF Consulting [51] zum Ansprechen der WLANHardware eingestzt. Der Client bietet die Möglichkeit, über das Socket-Protokoll mit dem Backend zu kommunizieren und so Messdaten zu erfassen sowie auch später Lokalisierungsanfragen an das Backend zu stellen. Abbildung 49: Benutzeroberfläche des mobilen Clients Über einen Intervall-Regler (s. Abbildung 49) steht dem Anwender die Möglichkeit zur Verfügung, ein geeignetes Messintervall zu wählen, in dem die jeweilige Aktion ausgeführt werden soll. Zudem kann über die Option Filter gewählt werden, über wie viele Messungen ein Medianfilter angewandt werden soll, um die Schwankungen der RSSI-Messwerte etwas zu glätten. Über die Optionen des Location Mode kann eingestellt werden, ob sich der Client im Capture-Mode oder im Location-Mode befinden soll (s. Kapitel ). Für den Capture-Mode ist entsprechend den Design

95 6 Realisierung 95 von 124 Richtlinien die Angabe des Raumes (Area) vorgeschrieben, welcher aus einem DropDown ausgewähöt werden kann. Während der Nutzungshase stellt der Client dem Anwender eine 2D-Draufsicht des Raumes zur Verfügung, in welcher der Anwender je nach Modus entweder seine momentane Position eingezeichnet bekommt, oder mit einem Stylus seinen momentanen Aufenthaltsort für die Aufzeichnung eines Trainingsmusters auswählen kann (s. zweiter Screenshot auf Abbildung 49). Zur besseren Orientierung während des Capture-Mode werden dem Anwender auch die wohlbekannten Orte im Raum angezeigt (schwarze Kreise). Im Capture-Mode wird die gewählte Position des Anwenders (roter Kreis) über TouchEingabe so dem System bekannt gemacht und samt der gemessenen RSSISignalwerte über den Lokalisierungsdienst an das Backend übertragen. Der Client achtet hierbei darauf, dass auch für jeden benötigten Referenzpunkt des Raums RSSIWerte erfasst werden. Ist das nicht der Fall, wird das Trainingsmuster verworfen und ein akustisches Fehlersignal ausgegeben. Im Location-Mode gilt diese Abfrage natürlich nicht, da der Anwender ja nicht wissen muss, in welchem Raum er sich befindet (Mutli-Area-Konzept). Nach einer ersten Testphase wurde leider deutlich, dass sich die on-board WLANKarte des Handhelds als für die Anwendung ungeeignet erwies. Die Treiber der Karte stellten den RSSI-Signalpegel sehr grob in nur drei Schritten (33, 66, 99) über das gesamte Spektrum dar. Die Deaktivierung der internen WLAN Karte und Verwendung einer externen SD/IO-WLAN Karte Go Wi-Fi! P300 vom Hersteller Socket Mobile, inc. [52] (Abbildung 50) konnte hier durch eine wesentliche feinere Granularität bei den Abbildung 50: SD/IO WLAN-Karte von Socket RSSI-Werten Abhilfe schaffen.

96 6 Realisierung 96 von Verwendung Offline-Phase (Training) Abbildung 51: Anlernphase: So werden Referenzmessungen gesammelt Der erste Schritt der Anlernphase ist das Sammeln von Referenzmessungen für den neu zu lernenden Raum. Hierfür wird der mobile Client eingesetzt. Er übermittelt die vom Benutzer gewählte Messposition mitsamt der an diesem Punkt erfassten Referenzstationen über den Dienst an die Administrationsoberfläche. Während der Anlernphase gibt es die Möglichkeit die Verteilung der bereits getätigten Referenzmessungen live an der Administrationsoberfläche zu verfolgen. Diese Funktion wird LiveView genannt (Siehe Abbildung 52).

97 6 Realisierung 97 von 124 Abbildung 52: Administrationsoberfläche: Die LiveView Oberfläche gibt Auskunft über die Verteilung der Referenzmessungen im Raum Sind für den Raum genügend Referenzmessungen gesammelt worden, wird in einem weiteren Schritt das KNN mithilfe der gesammelten Daten trainiert (Abbildung 47). Gilt ein Netz als fertig trainiert, besteht die Möglichkeit, den Zustand in die Datenbank zu speichern und dem jeweiligen Raum als Standard ( Default-Netzwerk ) zuzuordnen (Abbildung 53). Abbildung 53: Zuordnung eines Default-Netzwerks für einen Raum Der Anwender hat somit sogar die Möglichkeit, im laufenden Betrieb das DefaultNetzwerk für den jeweilige Raum dynamisch zu wechseln, da es vom Lokalisierungsdienst bei jeder Client-Anfrage neu von der Persistence-Unit angefordert wird.

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3 Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

Simulation LIF5000. Abbildung 1

Simulation LIF5000. Abbildung 1 Simulation LIF5000 Abbildung 1 Zur Simulation von analogen Schaltungen verwende ich Ltspice/SwitcherCAD III. Dieses Programm ist sehr leistungsfähig und wenn man weis wie, dann kann man damit fast alles

Mehr

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? UErörterung zu dem Thema Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? 2000 by christoph hoffmann Seite I Gliederung 1. In zu großen Mengen ist alles schädlich. 2.

Mehr

Neuronale Netze (I) Biologisches Neuronales Netz

Neuronale Netze (I) Biologisches Neuronales Netz Neuronale Netze (I) Biologisches Neuronales Netz Im menschlichen Gehirn ist ein Neuron mit bis zu 20.000 anderen Neuronen verbunden. Milliarden von Neuronen beteiligen sich simultan an der Verarbeitung

Mehr

Lokalisierungstechnologien

Lokalisierungstechnologien Lokalisierungstechnologien Ortung mit Cell-ID, Cell-ID und Time Advance, E-OTD, A-GPS Dortmund, Juli 2003 Prof. Dr. Heinz-Michael Winkels, Fachbereich Wirtschaft FH Dortmund Emil-Figge-Str. 44, D44227-Dortmund,

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Was bisher geschah Künstliche Neuronen: Mathematisches Modell und Funktionen: Eingabe-, Aktivierungs- Ausgabefunktion Boolesche oder reelle Ein-und

Was bisher geschah Künstliche Neuronen: Mathematisches Modell und Funktionen: Eingabe-, Aktivierungs- Ausgabefunktion Boolesche oder reelle Ein-und Was bisher geschah Künstliche Neuronen: Mathematisches Modell und Funktionen: Eingabe-, Aktivierungs- Ausgabefunktion Boolesche oder reelle Ein-und Ausgaben Aktivierungsfunktionen: Schwellwertfunktion

Mehr

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Standortbericht bintec elmeg GmbH

Standortbericht bintec elmeg GmbH Südwestpark 94 90449 Nürnberg (Germany) Tel. +49-911 9673-0 Standortbericht bintec elmeg GmbH Dieser Standortbericht zeigt die Ergebnisse des geplanten WLANs der bintec elmeg GmbH. Das Site Survey erfolgte

Mehr

Psychologie im Arbeitsschutz

Psychologie im Arbeitsschutz Fachvortrag zur Arbeitsschutztagung 2014 zum Thema: Psychologie im Arbeitsschutz von Dipl. Ing. Mirco Pretzel 23. Januar 2014 Quelle: Dt. Kaltwalzmuseum Hagen-Hohenlimburg 1. Einleitung Was hat mit moderner

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

Mehr

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über Güte von s Grundlegendes zum Konzept der Güte Ableitung der Gütefunktion des Gauss im Einstichprobenproblem Grafische Darstellung der Gütefunktionen des Gauss im Einstichprobenproblem Ableitung der Gütefunktion

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Mean Time Between Failures (MTBF)

Mean Time Between Failures (MTBF) Mean Time Between Failures (MTBF) Hintergrundinformation zur MTBF Was steht hier? Die Mean Time Between Failure (MTBF) ist ein statistischer Mittelwert für den störungsfreien Betrieb eines elektronischen

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

Wie Sie mit Mastern arbeiten

Wie Sie mit Mastern arbeiten Wie Sie mit Mastern arbeiten Was ist ein Master? Einer der großen Vorteile von EDV besteht darin, dass Ihnen der Rechner Arbeit abnimmt. Diesen Vorteil sollten sie nutzen, wo immer es geht. In PowerPoint

Mehr

Umgang mit Schaubildern am Beispiel Deutschland surft

Umgang mit Schaubildern am Beispiel Deutschland surft -1- Umgang mit Schaubildern am Beispiel Deutschland surft Im Folgenden wird am Beispiel des Schaubildes Deutschland surft eine Lesestrategie vorgestellt. Die Checkliste zur Vorgehensweise kann im Unterricht

Mehr

QM: Prüfen -1- KN16.08.2010

QM: Prüfen -1- KN16.08.2010 QM: Prüfen -1- KN16.08.2010 2.4 Prüfen 2.4.1 Begriffe, Definitionen Ein wesentlicher Bestandteil der Qualitätssicherung ist das Prüfen. Sie wird aber nicht wie früher nach der Fertigung durch einen Prüfer,

Mehr

Korrigenda Handbuch der Bewertung

Korrigenda Handbuch der Bewertung Korrigenda Handbuch der Bewertung Kapitel 3 Abschnitt 3.5 Seite(n) 104-109 Titel Der Terminvertrag: Ein Beispiel für den Einsatz von Future Values Änderungen In den Beispielen 21 und 22 ist der Halbjahressatz

Mehr

Leseprobe. Bruno Augustoni. Professionell präsentieren. ISBN (Buch): 978-3-446-44285-6. ISBN (E-Book): 978-3-446-44335-8

Leseprobe. Bruno Augustoni. Professionell präsentieren. ISBN (Buch): 978-3-446-44285-6. ISBN (E-Book): 978-3-446-44335-8 Leseprobe Bruno Augustoni Professionell präsentieren ISBN (Buch): 978-3-446-44285-6 ISBN (E-Book): 978-3-446-44335-8 Weitere Informationen oder Bestellungen unter http://wwwhanser-fachbuchde/978-3-446-44285-6

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Berechnung der Erhöhung der Durchschnittsprämien

Berechnung der Erhöhung der Durchschnittsprämien Wolfram Fischer Berechnung der Erhöhung der Durchschnittsprämien Oktober 2004 1 Zusammenfassung Zur Berechnung der Durchschnittsprämien wird das gesamte gemeldete Prämienvolumen Zusammenfassung durch die

Mehr

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik Abitur 8 II. Insektenpopulation LA/AG In den Tropen legen die Weibchen einer in Deutschland unbekannten Insektenpopulation jedes Jahr kurz vor Beginn der Regenzeit jeweils 9 Eier und sterben bald darauf.

Mehr

AUTOMATISIERTE HANDELSSYSTEME

AUTOMATISIERTE HANDELSSYSTEME UweGresser Stefan Listing AUTOMATISIERTE HANDELSSYSTEME Erfolgreich investieren mit Gresser K9 FinanzBuch Verlag 1 Einsatz des automatisierten Handelssystems Gresser K9 im Portfoliomanagement Portfoliotheorie

Mehr

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen Elektronik Praktikum / Digitaler Teil Name: Jens Wiechula, Philipp Fischer Leitung: Prof. Dr. U. Lynen Protokoll: Philipp Fischer Versuch: 3 Datum: 24.06.01 RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

Mehr

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon

Mehr

Festigkeit von FDM-3D-Druckteilen

Festigkeit von FDM-3D-Druckteilen Festigkeit von FDM-3D-Druckteilen Häufig werden bei 3D-Druck-Filamenten die Kunststoff-Festigkeit und physikalischen Eigenschaften diskutiert ohne die Einflüsse der Geometrie und der Verschweißung der

Mehr

Leseprobe. Thomas Konert, Achim Schmidt. Design for Six Sigma umsetzen ISBN: 978-3-446-41230-9. Weitere Informationen oder Bestellungen unter

Leseprobe. Thomas Konert, Achim Schmidt. Design for Six Sigma umsetzen ISBN: 978-3-446-41230-9. Weitere Informationen oder Bestellungen unter Leseprobe Thomas Konert, Achim Schmidt Design for Six Sigma umsetzen ISBN: 978-3-446-41230-9 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41230-9 sowie im Buchhandel. Carl

Mehr

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen Beispielheft Inhalt Allgemeine Einführung Test Eins: Test Zwei: Test Drei: Test Vier: Test Fünf: Argumentationsvermögen Auffassungsvermögen Zahlenvermögen Sprachverständnis Räumliches Vorstellungsvermögen

Mehr

Anwendungshinweise zur Anwendung der Soziometrie

Anwendungshinweise zur Anwendung der Soziometrie Anwendungshinweise zur Anwendung der Soziometrie Einführung Die Soziometrie ist ein Verfahren, welches sich besonders gut dafür eignet, Beziehungen zwischen Mitgliedern einer Gruppe darzustellen. Das Verfahren

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R L Ö S U N G E N Seite 7 n Wenn vier Menschen auf einem Quadratmeter stehen, dann hat jeder eine Fläche von 50 mal 50 Zentimeter

Mehr

EM-Wellen. david vajda 3. Februar 2016. Zu den Physikalischen Größen innerhalb der Elektrodynamik gehören:

EM-Wellen. david vajda 3. Februar 2016. Zu den Physikalischen Größen innerhalb der Elektrodynamik gehören: david vajda 3. Februar 2016 Zu den Physikalischen Größen innerhalb der Elektrodynamik gehören: Elektrische Stromstärke I Elektrische Spannung U Elektrischer Widerstand R Ladung Q Probeladung q Zeit t Arbeit

Mehr

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Auch wenn die Messungsmethoden ähnlich sind, ist das Ziel beider Systeme jedoch ein anderes. Gwenolé NEXER g.nexer@hearin gp

Mehr

Projektmanagement in der Spieleentwicklung

Projektmanagement in der Spieleentwicklung Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren

Mehr

Anleitung Scharbefragung

Anleitung Scharbefragung Projekt Evaline Anleitung Scharbefragung v.1.2 Inhalt Anleitung Scharbefragung... 1 1 Einleitung... 2 1.1 Vorlagen... 2 1.2 Journal... 2 2 Befragung Veranstaltungen / Angebote... 3 2.1 Methode... 3 2.2

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Manager. von Peter Pfeifer, Waltraud Pfeifer, Burkhard Münchhagen. Spielanleitung

Manager. von Peter Pfeifer, Waltraud Pfeifer, Burkhard Münchhagen. Spielanleitung Manager von Peter Pfeifer, Waltraud Pfeifer, Burkhard Münchhagen Spielanleitung Manager Ein rasantes Wirtschaftsspiel für 3 bis 6 Spieler. Das Glück Ihrer Firma liegt in Ihren Händen! Bestehen Sie gegen

Mehr

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung 1 Einleitung 1.1 Motivation und Zielsetzung der Untersuchung Obgleich Tourenplanungsprobleme zu den am häufigsten untersuchten Problemstellungen des Operations Research zählen, konzentriert sich der Großteil

Mehr

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel Ausarbeitung zum Proseminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn zum Thema Simulation des Anlagenpreismodels von Simon Uphus im WS 09/10 Zusammenfassung

Mehr

Praktikum Physik. Protokoll zum Versuch: Geometrische Optik. Durchgeführt am 24.11.2011

Praktikum Physik. Protokoll zum Versuch: Geometrische Optik. Durchgeführt am 24.11.2011 Praktikum Physik Protokoll zum Versuch: Geometrische Optik Durchgeführt am 24.11.2011 Gruppe X Name1 und Name 2 (abc.xyz@uni-ulm.de) (abc.xyz@uni-ulm.de) Betreuerin: Wir bestätigen hiermit, dass wir das

Mehr

Der Leverage-Effekt wirkt sich unter verschiedenen Umständen auf die Eigenkapitalrendite aus.

Der Leverage-Effekt wirkt sich unter verschiedenen Umständen auf die Eigenkapitalrendite aus. Anhang Leverage-Effekt Leverage-Effekt Bezeichnungs- Herkunft Das englische Wort Leverage heisst Hebelwirkung oder Hebelkraft. Zweck Der Leverage-Effekt wirkt sich unter verschiedenen Umständen auf die

Mehr

Plotten von Linien ( nach Jack Bresenham, 1962 )

Plotten von Linien ( nach Jack Bresenham, 1962 ) Plotten von Linien ( nach Jack Bresenham, 1962 ) Ac Eine auf dem Bildschirm darzustellende Linie sieht treppenförmig aus, weil der Computer Linien aus einzelnen (meist quadratischen) Bildpunkten, Pixels

Mehr

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

ONLINE-AKADEMIE. Diplomierter NLP Anwender für Schule und Unterricht Ziele ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits

Mehr

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen. Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems

Mehr

GEVITAS Farben-Reaktionstest

GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest Inhalt 1. Allgemeines... 1 2. Funktionsweise der Tests... 2 3. Die Ruhetaste und die Auslösetaste... 2 4. Starten der App Hauptmenü... 3 5. Auswahl

Mehr

Kulturelle Evolution 12

Kulturelle Evolution 12 3.3 Kulturelle Evolution Kulturelle Evolution Kulturelle Evolution 12 Seit die Menschen Erfindungen machen wie z.b. das Rad oder den Pflug, haben sie sich im Körperbau kaum mehr verändert. Dafür war einfach

Mehr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die

Mehr

Modellbildungssysteme: Pädagogische und didaktische Ziele

Modellbildungssysteme: Pädagogische und didaktische Ziele Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Durch diese Anleitung soll eine einheitliche Vorgehensweise bei der Vermessung und Bewertung von Golfplätzen sichergestellt werden.

Durch diese Anleitung soll eine einheitliche Vorgehensweise bei der Vermessung und Bewertung von Golfplätzen sichergestellt werden. Da die Länge der Spielbahnen auch unter dem Course-Rating-System (CRS) das wichtigste Bewertungskriterium für einen Golfplatz darstellt, ist die korrekte Vermessung der Spielbahnen eine unverzichtbar notwendige

Mehr

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen? Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen können zwei Ebenen (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen? Wie heiÿt

Mehr

A1.7: Entropie natürlicher Texte

A1.7: Entropie natürlicher Texte A1.7: Entropie natürlicher Texte Anfang der 1950er Jahre hat Claude E. Shannon die Entropie H der englischen Sprache mit einem bit pro Zeichen abgeschätzt. Kurz darauf kam Karl Küpfmüller bei einer empirischen

Mehr

Änderung des IFRS 2 Anteilsbasierte Vergütung

Änderung des IFRS 2 Anteilsbasierte Vergütung Änderung IFRS 2 Änderung des IFRS 2 Anteilsbasierte Vergütung Anwendungsbereich Paragraph 2 wird geändert, Paragraph 3 gestrichen und Paragraph 3A angefügt. 2 Dieser IFRS ist bei der Bilanzierung aller

Mehr

Kurs 00091: Finanzierungs- und entscheidungstheoretische Grundlagen der Betriebswirtschaftslehre

Kurs 00091: Finanzierungs- und entscheidungstheoretische Grundlagen der Betriebswirtschaftslehre Grundlagen der Betriebswirtschaftslehre, Kurs 00091, KE 3, 4, 5 und 6, SS 2012 1 Kurs 00091: Finanzierungs- und entscheidungstheoretische Grundlagen der Betriebswirtschaftslehre Einsendearbeit 2 (SS 2012)

Mehr

Wachstum 2. Michael Dröttboom 1 LernWerkstatt-Selm.de

Wachstum 2. Michael Dröttboom 1 LernWerkstatt-Selm.de 1. Herr Meier bekommt nach 3 Jahren Geldanlage 25.000. Er hatte 22.500 angelegt. Wie hoch war der Zinssatz? 2. Herr Meiers Vorfahren haben bei der Gründung Roms (753. V. Chr.) 1 Sesterze auf die Bank gebracht

Mehr

Teil III: Maßnahmen ableiten

Teil III: Maßnahmen ableiten Einleitung faden, an dem Sie sich entlangarbeiten können, um so Schritt für Schritt an die relevanten Informationen zu kommen. Zunächst geht es darum, einzelne Kundengruppen samt ihrer Bedürfnisse (im

Mehr

Integrated Services Realtime Remote Network

Integrated Services Realtime Remote Network Integrated Services Realtime Remote Network How to CEyeClon Viewer V2 HT-A-003-V2-DE-2013-02-17-TZ-TZ CEyeClon AG Reitschulstrasse 5 2502 Biel / Bienne info@ceyeclon.com www.ceyeclon.com CEyeClon AG, Biel

Mehr

Professionelle Diagramme mit Excel 2010 erstellen. Peter Wies. 1. Ausgabe, 2. Aktualisierung, März 2014. Themen-Special W-EX2010DI

Professionelle Diagramme mit Excel 2010 erstellen. Peter Wies. 1. Ausgabe, 2. Aktualisierung, März 2014. Themen-Special W-EX2010DI Peter Wies 1. Ausgabe, 2. Aktualisierung, März 2014 Professionelle Diagramme mit Excel 2010 erstellen Themen-Special W-EX2010DI 2 Professionelle Diagramme mit Excel 2010 erstellen - Themen-Special 2 Wichtige

Mehr

Rhetorik und Argumentationstheorie. [frederik.gierlinger@univie.ac.at]

Rhetorik und Argumentationstheorie. [frederik.gierlinger@univie.ac.at] Rhetorik und Argumentationstheorie 1 [frederik.gierlinger@univie.ac.at] Ablauf der Veranstaltung Termine 1-6 Erarbeitung diverser Grundbegriffe Termine 7-12 Besprechung von philosophischen Aufsätzen Termin

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

Kennlinienaufnahme elektronische Bauelemente

Kennlinienaufnahme elektronische Bauelemente Messtechnik-Praktikum 06.05.08 Kennlinienaufnahme elektronische Bauelemente Silvio Fuchs & Simon Stützer 1 Augabenstellung 1. a) Bauen Sie eine Schaltung zur Aufnahme einer Strom-Spannungs-Kennlinie eines

Mehr

Verband der TÜV e. V. STUDIE ZUM IMAGE DER MPU

Verband der TÜV e. V. STUDIE ZUM IMAGE DER MPU Verband der TÜV e. V. STUDIE ZUM IMAGE DER MPU 2 DIE MEDIZINISCH-PSYCHOLOGISCHE UNTERSUCHUNG (MPU) IST HOCH ANGESEHEN Das Image der Medizinisch-Psychologischen Untersuchung (MPU) ist zwiespältig: Das ist

Mehr

Bernadette Büsgen HR-Consulting www.buesgen-consult.de

Bernadette Büsgen HR-Consulting www.buesgen-consult.de Reiss Profile Es ist besser mit dem Wind zu segeln, als gegen ihn! Möchten Sie anhand Ihres Reiss Rofiles erkennen, woher Ihr Wind weht? Sie haben verschiedene Möglichkeiten, Ihr Leben aktiv zu gestalten.

Mehr

Arbeitspunkt einer Diode

Arbeitspunkt einer Diode Arbeitspunkt einer Diode Liegt eine Diode mit einem Widerstand R in Reihe an einer Spannung U 0, so müssen sich die beiden diese Spannung teilen. Vom Widerstand wissen wir, dass er bei einer Spannung von

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Drucken aus der Anwendung

Drucken aus der Anwendung Drucken aus der Anwendung Drucken aus der Anwendung Nicht jeder Großformatdruck benötigt die volle Funktionsvielfalt von PosterJet - häufig sind es Standarddrucke wie Flussdiagramme und Organigramme die

Mehr

Microsoft Excel 2010 Mehrfachoperation

Microsoft Excel 2010 Mehrfachoperation Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft Excel 2010 Mehrfachoperation Mehrfachoperationen in Excel 2010 Seite 1 von 6 Inhaltsverzeichnis Einleitung... 2 Mehrfachoperation mit

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

1 PIVOT TABELLEN. 1.1 Das Ziel: Basisdaten strukturiert darzustellen. 1.2 Wozu können Sie eine Pivot-Tabelle einsetzen?

1 PIVOT TABELLEN. 1.1 Das Ziel: Basisdaten strukturiert darzustellen. 1.2 Wozu können Sie eine Pivot-Tabelle einsetzen? Pivot Tabellen PIVOT TABELLEN. Das Ziel: Basisdaten strukturiert darzustellen Jeden Tag erhalten wir umfangreiche Informationen. Aber trotzdem haben wir oft das Gefühl, Entscheidungen noch nicht treffen

Mehr

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Informatik Kurs Simulation. Hilfe für den Consideo Modeler Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke

Mehr

2 Aufbau der Arbeit und wissenschaftliche Problemstellung

2 Aufbau der Arbeit und wissenschaftliche Problemstellung 2 Aufbau der Arbeit und wissenschaftliche Problemstellung Nach der Definition der grundlegenden Begriffe, die in dieser Arbeit verwendet werden, soll die Ausbildung, wie sie von der Verfasserin für Schüler

Mehr

Mobile Intranet in Unternehmen

Mobile Intranet in Unternehmen Mobile Intranet in Unternehmen Ergebnisse einer Umfrage unter Intranet Verantwortlichen aexea GmbH - communication. content. consulting Augustenstraße 15 70178 Stuttgart Tel: 0711 87035490 Mobile Intranet

Mehr

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1): Supportanfrage ESN Bitte füllen Sie zu jeder Supportanfrage diese Vorlage aus. Sie helfen uns damit, Ihre Anfrage kompetent und schnell beantworten zu können. Verwenden Sie für jedes einzelne Thema jeweils

Mehr

Gutes Leben was ist das?

Gutes Leben was ist das? Lukas Bayer Jahrgangsstufe 12 Im Hirschgarten 1 67435 Neustadt Kurfürst-Ruprecht-Gymnasium Landwehrstraße22 67433 Neustadt a. d. Weinstraße Gutes Leben was ist das? Gutes Leben für alle was genau ist das

Mehr

2. Psychologische Fragen. Nicht genannt.

2. Psychologische Fragen. Nicht genannt. Checkliste für die Beurteilung psychologischer Gutachten durch Fachfremde Gliederung eines Gutachtens 1. Nennung des Auftraggebers und Fragestellung des Auftraggebers. 2. Psychologische Fragen. Nicht genannt.

Mehr

Protokoll des Versuches 7: Umwandlung von elektrischer Energie in Wärmeenergie

Protokoll des Versuches 7: Umwandlung von elektrischer Energie in Wärmeenergie Name: Matrikelnummer: Bachelor Biowissenschaften E-Mail: Physikalisches Anfängerpraktikum II Dozenten: Assistenten: Protokoll des Versuches 7: Umwandlung von elektrischer Energie in ärmeenergie Verantwortlicher

Mehr

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! 9 TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! An den SeniorNETclub 50+ Währinger Str. 57/7 1090 Wien Und zwar gleich in doppelter Hinsicht:!"Beantworten Sie die folgenden Fragen und vertiefen Sie damit Ihr

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege Lange Nacht der Wissenschaft Ein Klassiker Die Mathematik der Kürzesten Wege 09.06.2007 schlechte@zib.de Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) http://www.zib.de/schlechte 2 Überblick

Mehr

Enigmail Konfiguration

Enigmail Konfiguration Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es

Mehr

1. Kennlinien. 2. Stabilisierung der Emitterschaltung. Schaltungstechnik 2 Übung 4

1. Kennlinien. 2. Stabilisierung der Emitterschaltung. Schaltungstechnik 2 Übung 4 1. Kennlinien Der Transistor BC550C soll auf den Arbeitspunkt U CE = 4 V und I C = 15 ma eingestellt werden. a) Bestimmen Sie aus den Kennlinien (S. 2) die Werte für I B, B, U BE. b) Woher kommt die Neigung

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Download. Mathematik üben Klasse 8 Funktionen. Differenzierte Materialien für das ganze Schuljahr. Jens Conrad, Hardy Seifert

Download. Mathematik üben Klasse 8 Funktionen. Differenzierte Materialien für das ganze Schuljahr. Jens Conrad, Hardy Seifert Download Jens Conrad, Hard Seifert Mathematik üben Klasse 8 Funktionen Differenzierte Materialien für das ganze Schuljahr Downloadauszug aus dem Originaltitel: Mathematik üben Klasse 8 Funktionen Differenzierte

Mehr

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1 B 1.0 B 1.1 L: Wir wissen von, dass sie den Scheitel hat und durch den Punkt läuft. Was nichts bringt, ist beide Punkte in die allgemeine Parabelgleichung einzusetzen und das Gleichungssystem zu lösen,

Mehr

Deutschland-Check Nr. 35

Deutschland-Check Nr. 35 Beschäftigung älterer Arbeitnehmer Ergebnisse des IW-Unternehmervotums Bericht der IW Consult GmbH Köln, 13. Dezember 2012 Institut der deutschen Wirtschaft Köln Consult GmbH Konrad-Adenauer-Ufer 21 50668

Mehr

Kreatives Gestalten mit Flash 5.0

Kreatives Gestalten mit Flash 5.0 Kreatives Gestalten mit Flash 5.0 Animationen, Effekte und Anwendungen für das WWW Bearbeitet von Isolde Kommer 1. Auflage 2000. Buch. 444 S. Hardcover ISBN 978 3 446 21463 7 Format (B x L): 20,1 x 23,6

Mehr

Insiderwissen 2013. Hintergrund

Insiderwissen 2013. Hintergrund Insiderwissen 213 XING EVENTS mit der Eventmanagement-Software für Online Eventregistrierung &Ticketing amiando, hat es sich erneut zur Aufgabe gemacht zu analysieren, wie Eventveranstalter ihre Veranstaltungen

Mehr