Alexander Blum Matrikelnummer 03618629 17.09.2012 12.10.2012 4 Wochen Indoor Positioning System eine Ingenieurpraxis von Alexander Blum Betreuung durch Johannes Feldmaier
Motivation Üblicherweise wird für die Positionsbestimmung von Robotern GPS verwendet. In Gebäuden stellt dies jedoch ein Problem dar. Aufgrund von Signaldämpfung durch Decken und Wänden ist keine zuverlässige Positionsbestimmung mehr möglich. Hier kommen die Indoor positioning systems zum Einsatz. Im wesentlichen gibt es drei Techniken, die sich für die Positionsbestimmung in Gebäuden eignen. Infarotbasiert optische Verfahren, Laufzeitmessung von Radiowellen und Laufzeitmessung von Ultraschallwellen. Die erstgenannten sind jedoch aufwändig zu implementieren und kostenintensiv. Die Laufzeitmessung von Ultraschallwellen bietet hier eine kostengünstige Möglichkeit, die aufgrund der langen Signallaufzeiten mit einfacher Hardware realisiert werden kann. Ziel dieser Ingenieurpraxis war es, ein solches System zu entwickeln, dass eine Positionsbestimmung der Mini-Luftschiffe des deadalus-projektes erlaubt. Das System besteht aus einem Sender am Luftschiff, mehreren Empfängerstationen am Boden und einem graphischen PC Programm. Konzept Um eine Position in einem 3D-Raum mittels Trilateration1 zu bestimmen, werden mindestens drei Abstandsmessungen benötigt. Bei diesem System erfolgt die Abstandsmessung über die Laufzeitmessung der Ultraschallpulse. Bei bekannter Schallgeschwindigkeit (343 m/s bei 20 C) kann dann die Entfernung zwischen Sender und Empfänger bestimmt werden. Der Sender ist hier das zu verfolgende Objekt, während die Empfangsstationen an bekannten Positionen stehen. Ausgesendet werden 8 Zyklen bei 40 khz. Zur Zeitsynchronisation wird zeitgleich mit dem Ultraschallpuls ein IR Blitz ausgesendet, der der einfacheren Ansteuerung halber ebenfalls mit 40 khz moduliert ist. Jede Empfangsstation verfügt über einen Ultraschallwandler und ein InfrarotEmpfängermodul um die Signale zu detektieren. Gemessen wird die Zeitdifferenz zwischen dem Eintreffen des Infrarot- und des Ultraschall-Pulses. Die Empfangsstationen sind über ein Funkmodul mit einem PC verbunden, der die Daten auswertet und die Position des Senders errechnet. Über eine graphische Oberfläche kann der Benutzer Wegpunkte festlegen, die das Luftschiff dann abfliegt. Realisierung Das Sendemodul ist recht einfach aufgebaut. Es besteht aus sechs Piezo Ultraschallwandlern, die parallel verschaltet sind und sechs Infrarot LEDs. Die Module werden mit einem Rechtecksignal angesteuert, wobei es sich empfiehlt die 1 http://de.wikipedia.org/wiki/lateration Abbildung 1: Die UltraschallInfrarot-Sendemodule bzw.
Ultraschallsender an einer H-Brücke zu betreiben, wie sie z.b. in Motortreibern zu finden ist. Die Ultraschallwandler können so mit einer Spannung von bis zu 20 Volt betrieben werden. Je höher die Spannung, desto höher auch die Ausgangsleistung und die Reichweite. Die Infrarot-LEDs sind für eine Spannung von 5 Volt ausgelegt und sollten nicht direkt an einem Mikrocontrollerpin betrieben werden, da kurzzeitig Ströme von 100 ma fließen. Hier ist eine einfache Transistorschaltung zweckmäßig. Die Empfängerstation untergliedert sich in mehrere Teile, den Ultraschallempfänger, das Infrarot-Empfängermodul, das Funkmodul und die Stromversorgung, die alle um einen ATMega82 angeordnet sind. Abbildung 2: Verstärkerschaltung für die Ultraschallempfänger Das Signal des Ultraschallwandlers wird durch drei hintereinander geschaltete Bandpassfilter mit einem Verstärkungsfaktor von je 20 verstärkt. Ein Komparator wandelt das sinusförmige Signal in ein Rechtecksignal, welches dann vom Mikrocontroller ausgewertet wird. Als Infrarot-Empfängermodul wird das TSOP 31240 von VISHAY3 eingesetzt. Es filtert Infrarotsignale mit einer aufmodulierten Frequenz von 40 khz heraus und gibt ein logisch-0 Signal an den Prozessor weiter. Das Funkmodul basiert auf dem nrf24l01+ transceiver IC von Nordic Semiconductor4 für das 2.4 GHz Band. Im Vergleich zu anderen Modulen ist es sehr stromsparend, was eine längere Akkulaufzeit erlaubt. Versorgt wird die Station von einem einzelligen Lipo Akku. Ein Spannungsregler wandelt die Spannung in 5 Volt für den Mikrocontroller und den Analogteil. Ein weiterer Regler stellt Abbildung 3: fertig aufgebaute 3,3 Volt für das Funkmodul zur Empfangsstation Verfügung. 2 3 http://www.atmel.com/devices/atmega8.aspx http://www.vishay.com/product?docid=82492
Das PC Programm wurde in der Skriptsprache Python5 geschrieben, die graphische Benutzeroberfläche mit dem User Interface Designer Glade6 erstellt. Das Programm nimmt die Daten der Bodenstationen entgegen und berechnet daraus die 3D Position des Luftschiffes. Zusätzlich besteht eine Funkverbindung zum Luftschiff um Sensordaten und Steuervektoren zu übermitteln. Am Luftschiff ist ein Inertialsensor (englisch inertial measurement unit, IMU) angebracht, der es erlaubt Fehler in der Positionsbestimmung zu erkennen. Über die graphische Oberfläche besteht die Möglichkeit Wegpunkte festzulegen, die das Luftschiff anschließend abfliegt. Inbetriebnahme Die Empfangsstationen werden im Raum verteilt, eingeschaltet, deren Position gemessen und im PC Programm eingetragen. Falls die Rote LED blinkt, muss der Akku aufgeladen werden. Die Sendemodule werden am Luftschiff angebracht und angeschlossen. Unter Linux wird das PC Programm wird mit dem Befehl python./daedalus_gui.py gestartet. Mithilfe der Schaltknöpfe im Navigations-Tab können Wegpunkte eingetragen werden. Im CMD-Tab kann die Navigation gestartet werden. Im rechten Teil der Fensters ist eine Karte mit den eingetragenen Wegpunkten zu sehen. Der blaue Kreis ist die berechnete Position des Luftschiffes. Abbildung 4: graphische Oberfläche des PC Programms 4 5 6 http://www.nordicsemi.com/kor/products/2.4ghz-rf/nrf24l01p http://www.python.org/ http://glade.gnome.org/
Fazit Dieses System bietet eine einfache, kostengünstige und im Vergleich zu GPS eine genaue Möglichkeit, die Position autonomer Fahr- und Flugzeuge im Innenraum zu bestimmen. Die maximal erreichte Genauigkeit liegt im Bereich zwischen 5 cm und 25 cm, je nach Entfernung zwischen dem Luftschiff und den Bodenstationen. Die berechnete Position kann allerdings auch erheblich von der realen Position abweichen, wenn z.b. ein Empfänger verdeckt ist und nur ein reflektiertes Signal empfangen werden kann. Dieses Problem lässt sich aber durch mehrere Empfangsstationen und durch Einbeziehung von Sensordaten erkennen und ausgleichen. Was noch nicht funktioniert Das PC Programm hat noch nicht seinen vollen Funktionsumfang, so werden die Sensordaten vom Luftschiff zur Zeit noch nicht in die Positionsberechnung mit eingerechnet. Die Wegpunktnavigation ist auch noch nicht möglich, da die Auswertung der Steuervektoren erst in die Software des Luftschiffes integriert werden muss. Auch stellt die Zahl der Empfangsstationen von aktuell drei ein Minimum dar, um die Funktionalität zu gewährleisten. Um die Genauigkeit und Ausfallsicherheit zu erhöhen sind zusätzliche Stationen sinnvoll.
Anhang Abbildung 5: Schaltplan der Empfangsstationen Abbildung 6: Testaufbau der Sendemodule