PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : W-LAN Local Position System



michiE
20.04.2011, 18:14
Hallo zusammen,

ich habe inzwischen 2 größere Projekte, genauer Roboter (NADINE (http://jargames.is-a-geek.com/website/?page_id=24) & SINA (http://jargames.is-a-geek.com/website/?page_id=22)) mit einem Rechner an Bord (Os: arch Linux (http://www.archlinux.org/)) die sich lokal mit Karten orientieren können. Ich denke so gut wie jeder hier im Forum kennt das Problem, einen Bot zu haben der an verschiedenen Orten von verschiedenen Startpunkten eingesetzt werden kann, und dem man manuell Karten zum jeweiligen Ort laden muss.
Davon hatte ich genug, und wollte diesen Vorgang automatisieren. Also habe ich in letzter Zeit eine Software geschrieben, mit welcher die Position eines beliebigen Linux-Rechners mit W-Lan anhand der vorhandenen W-Lan Infrastruktur bestimmt werden kann.
Dies funktioniert je nach vorhandener Infrastruktur und Rechnergeschwindigkeit schon ziemlich gut. Die auf SINA installierte Version kann bei mir zu Hause im Garten auf ungefähr einen halben Meter genau bestimmen wo sie sich befindet. Hierzu werden die Signalstärke - und Qualität von insgesamt 5 APs zur Positionsberechnung herangezogen.
Am Hochschulzentrum Esslingen funktioniert diese Software zur bestimmung der Position von Notebooks sogar noch exakter.

Die Software basiert auf Navigationspunkten, die zuvor per Script in eine Datei eingegeben werden müssen. Je dichter diese Navigationspunkte gesetzt werden, desto genauer funktioniert es. Je nach Navigationspunkt kann dann z.B. die grobe Position des Roboters (in meinem Fall SINA) bestimmt und übermittelt werden.
So lässt sich der Roboter auch unter Anderem in ein bestimmtes Gebiet einsperren.

Bisher existiert eine art "proof of concept" der Software. Die findet ihr HIER (http://jargames.is-a-geek.com/website/?page_id=127).
Vielleicht kann sie ja irgend einer von euch gebrauchen, oder hat interesse daran auch etwas daran weiterzubasteln :)
Oder ihr benutzt sie einfach wie einige meiner Freunde um Anderen anhand der Wlan-Karte eures Notebooks an der Uni / Fh / in der Firma / zu Hause /$Sonstwo zu zeigen wo ihr gerade erreichbar seid. Hierzu wird automatisch eine pos.html file erstellt, welche ihr per Script uploaden und in eine Website einbinden könnt. Hier (http://www2.hs-esslingen.de/%7Emieiit00/) gibts ein Beispiel.

redreggae
21.04.2011, 11:29
Ich habe mal so was ähnliches in C# programmiert. Bin auch am überlegen, ob ich das als OpenSource veröffentliche. Aber ein Problem bei meiner Software ist, dass man die Positionen ständig neu trainieren muss, da die Signalstärken recht stark schwanken. Deshalb wollte ich anstelle eines Fingerprint Verfahrens mal ein neuronales Netz ausprobieren, mit dem man wahrscheinlich eine bessere Genauigkeit erreichen könnte.

Wie funktioniert denn Dein Script? Nimmst Du auch nur den Mittelwert bzw. Median der Signalstärken?

michiE
21.04.2011, 12:03
Ich verwende die Signalstärke und die Signalqualität, allerdings suche ich bisher nur nach der geringsten Abweichung durch minimierung der Fehlerquadrate.
Dein C#-Script läuft unter Windows ?
Was hälst du davon wenn wir uns zusammentun ?
Ich versuche momentan durch eng beieinanderliegende Punkte mit bekannter Signalstärke/Qualität eine Karte zu erstellen, und damit zu navigieren. Manuelles Anlegen der Karte funktioniert gut, auch die anschließende Verwendung ist ganz ordentlich machbar. Einziges Problem: das Anlegen der Karte dauert ewig, und ist relativ realitätsfremd und definitiv nicht praxistauglich. Aktuelles Experiment : ich versuche mit Hilfe von OpenCV Objekte zu erkennen. SINA und NADINE haben beide drehbare Sensorköpfe mit einer 5MP-Kamera an Bord. Aus Drehwiklen (x,y) und den erkannten Objekten (Fixpunkten) bzw deren Größe und Winkel zueinander lässt sich eine Position bestimmen, die wird mit den Daten des W-LAN LPS kombiniert und abgespeichert. Ist die Position der Fixpunkte bekannt, kann so die W-Lan Karte ab und zu (in klar definierten Zeitabständen) neu gezeichnet bzw aktualisiert werden, und während dem Betrieb ist eine einfache, schnelle Navigation anhand der Karte möglich. Sinn der Sache: ich gehe davon aus dass die Bilderkennung einige Zeit und Rechenleistung verschlingt die ich eigentlich nicht habe (auch wenn es Leute gibt die behaupten ich könnte Wetterdaten für die nächsten 200 Jahre auf NADINES beiden Servern berechnen). Deshalb müsste ich entsprechend langsam fahren. Außerdem liegt es in der Natur von SINAs Aufgabe ihr eigenes Sichtfeld so ziemlich komplett mit Schnee oder Staub zu behindern. Eine W-Lan Karte bringt hier also einige Vorteile.

@redreggae : wie genau ist dein script denn ?

redreggae
21.04.2011, 18:40
Ja, mein Programm läuft unter Windows. Sinn und Zweck war bisher nicht die Navigation von Robotern, sondern anhand der Position bestimmte Programme öffnen zu können. Ich arbeite mit einer SqlLite Datenbank in der Räume und Positionen gespeichert werden und den Positionen Programme zugeordnet werden können. Also zum Beispiel Position "redreggae - Küche" -> "Mozilla.exe http://www.chefkoch.de", Position "redreggae - Couch" -> "netbeans.exe" usw.
Das Programm läuft im Hintergrund und guckt alle 30 Sekunden, ob ein Positionswechsel stattgefunden hat und wenn ja, dann öffnet sich ein Fenster, in dem die Programme zur Auswahl stehen.

In einem Trainingsmodus können die Positionen trainiert werden. Man muss nur zur jeweiligen Position gehen und die Signalstärken, Qualitäten und Routernamen werden in der Datenbank gespeichert. (Es wird der Median gebildet)
Im Erkennungsmodus werden alle Positionen aus der Datenbank mit den gerade erkannten Routern verglichen, wobei ich bis jetzt eine einfache Distanzfunktion benutzte, um die Abweichung zu errechnen.

An eine Roboternavigation habe ich auch schon gedacht, allerdings hatte ich in diesem Zusammenhang an einen MonteCarlo Algorithmus gedacht. Ich kann mein Programm die Tage mal bei SourceForge hochladen, dann kannst Du Dir es angucken.

Viele Grüße

redreggae

Thomas$
21.04.2011, 18:43
zu den chemnitzer linux tagen wurde mal so etwas zum thema wlan laufzeitmessung vorgestellt mal sehen wann der mitschnitt online ist
vg thomas

michiE
21.04.2011, 19:14
Hört sich echt gut an :)
Ich hatte gerade einen Testlauf im Garten, scheint alles ganz gut zu funktionieren.

Neulich habe ich mit dem dem W-Lan LPS auf einem Netbook gespielt. An größeren Bahnhöfen gibt es meist einen Hotspot. Hab mir mal die Mühe gemacht APs in der Nähe der Bahn- und Bussstrecke die ich täglich fahre aufzuzeichnen. So sind 2 Features hinzugekommen :

1. Alarmton z.B. 2 min vor erreichen des Zielbahnhofs und automatisches Herunterfahren
2. Anzeige der nächstgelegenen Bushaltestelle und die Anzeige der Wartezeit bis zum nächsten Bus dort, sowie die Ankunftszeit am Bahnhof

Ritchie
15.08.2012, 08:24
Hallo Zusammen,

ich frage mich derzeit, ob es auch möglich ist dieses Verfahren mit einem Accesspoint zu verwenden, welchen ich via Ethernet an meinem Roby angeschlossen habe.
Hier könnte ich wohl die Webseite des WebInterface versuchen aufzurufen, welche mit die Verbindungsdaten mit den %-Zahlen angibt.
Wäre das erfolgversprechen oder habt Ihr durch die Verwendung einer internen Karte hier mehr Möglichkeiten, welche ich so nicht hätte.

Da ich in meiner Nachbarschaft ca. 10-12 Netze habe (je nach Zeitpunkt), hätte ich doch einige Referenzpunkte.

Gruss R.

engineer
22.12.2012, 16:53
Ich bin unsicher, ob man das analog mit Signalstärken machen kann. Meistens wird das ja eher digital gemacht. Wie wäre es mit der response der Sender auf Anfragen?