Forum: Digitale Signalverarbeitung / DSP / Machine Learning Indoor Navigation mit dem Handy


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Detlef _. (detlef_a)


Lesenswert?

Hallo Forum,

ich möchte eine Idee vorstellen, die ich ganz attraktiv finde und an 
deren Verwirklichung ich viel Spaß hätte. Allein reicht meine 
bescheidene Kompetenz zur Verwirklichung leider nicht aus ;-))

In kurzen Worten:
Man bestimmt die Position eines Handys auf akustischem Wege mit zwei 
Pärchen Lautsprecherboxen. Das Handy sendet über eine Bluetooth 
Verbindung die Signale an die Boxen und bestimmt aus dem empfangenen 
Tonsignal die zentimetergenaue Position.

In längeren Worten:
Das Verfahren bezieht sich auf diesen thread:
Beitrag "Hadamard Transformation"
Die Impulsantwort einer Übertragungsstrecke wird mit MLS-Sequenzen und 
der Hadamard Transformation berechnet. Wenn man das für mindestens 3 
Strecken (Boxen) macht, kann man aus der Differenz der Laufzeiten die 
Position berechnen (Hyperbelnavigation). Handy-Audiosysteme haben in der 
Regel nur zwei Kanäle, deswegen braucht man ein zweites Handy, das den 
dritten Kanal sendet. Die Audiosequenzen hören sich an wie Rauschen, man 
könnte aber im Feldversuch klären, ob es möglich ist, oberhalb der 
menschlichen Hörschwelle und unterhalb der Grenzfrequenz der Audioanlage 
zu senden.

Was braucht man:
2 (Billig-)Handys
2 Pärchen Boxen
1 Bluetooth Übertragungsstrecke
Ne App

Was kann ich:
Geht man mal von Android aus, bin ich in der Lage, die 
Signalverarbeitung in Java zu programmieren (vermutlich :-/)

Was kann ich nicht:
Ne App programmieren. Was man braucht ist ein Sender und ein Empfänger 
für das Android Audio device. Die müssen synchron laufen, man steckt 
also n-samples rein und es kommen n-samples raus. Darüberhinaus noch 
bißchen button-pushing, z.B. muß man über einen Dialog die Kalibrierung 
des Koordinatensystems festlegen. Und ne GUI, mit den Koordinaten oder 
nem track oder was weiß ich :-)) .

Was will ich:
ich möchte ein wenig Spaß mit Signalverarbeitung haben und mal nen Handy 
programmieren. Wenn das Projekt funktionieren sollte könnte man das mal 
breiter vorstellen, z.B. bei hackaday oder irgendwo.

Also:
Falls kundige Android Programmierer die Idee attraktiv finden, könnte 
man mal zusammen kucken, was wie geht.

Schaun wa mal.
Cheers
Detlef

: Verschoben durch Admin
von outdoor (Gast)


Lesenswert?

Detlef _a schrieb:
> In kurzen Worten:
> Man bestimmt die Position eines Handys auf akustischem Wege mit zwei
> Pärchen Lautsprecherboxen. Das Handy sendet über eine Bluetooth
> Verbindung die Signale an die Boxen und bestimmt aus dem empfangenen
> Tonsignal die zentimetergenaue Position.

Und Du glaubst, wenn das so einfach wäre, dass noch keiner vor dir auf 
die Idee gekommen wäre?

von Max D. (max_d)


Lesenswert?

Bluetooth hat viel zu viel Verzögerungen und unwägbarkeiten drinnen als 
dass es für so eine Applikation taugen würde.

von Mike (Gast)


Lesenswert?

Max D. schrieb:
> Bluetooth hat viel zu viel Verzögerungen und unwägbarkeiten drinnen als
> dass es für so eine Applikation taugen würde.

GPS Empfänger liefern auch Positionen auf typ. 10 Meter genau, was einer 
Laufzeitmessung mit einer Genauigkeit von 33 Nanosekunden entspricht, 
obwohl die Uhr in Standard-GPS Empfängern eine simple Quarzuhr ohne 
Schnick-Schnack ist. Solange die Aussendezeitpunkte genau synchronisiert 
sind und man einen Lautsprecher mehr hat, als für die Ortslösung 
erforderlich, ist die absolute Laufzeit der Signale von untergeordneter 
Bedeutung und kommt als Lösung aus der Rechnerei raus.

von Harald W. (wilhelms)


Lesenswert?

Mike schrieb:

> GPS Empfänger liefern auch Positionen auf typ. 10 Meter genau,

Spezielle Geräte für Vermessungszwecke können das wohl auch um
mindestens den Faktor 100 genauer. Bei der vom TE gezeigten Methode
würde ich eher einen Fehler von einem halben Meter annehmen.
Gruss
Harald

von Detlef _. (detlef_a)


Lesenswert?

>>Bei der vom TE gezeigten Methode würde ich eher einen Fehler von einem halben 
Meter annehmen.

Das ist immer  so eine Sache mit Annahmen, die sind bei mangelnder 
Kompetenz manchmal schwierig und fehlerhaft.

Bei dem Verfahren kann man den peak der Impulsantwort sehr zuverlässig 
bestimmen, dh. es geht um einen Abtastwert. Der Schall läuft in der 
Sekunde ca. 34000cm, bei einer Abstastrate in der gleichen zahlenmäßigen 
Größenordnung ist man roh bei 1cm Auflösung. Im genannten thread wird 
auch ein Verfahren vorgestellt, wie man unter die Auflösung eines 
einzelnen Abtastwertes kommt.

Cheers
Detlef

von wendelsberg (Gast)


Lesenswert?

Mike schrieb:
> GPS Empfänger liefern auch Positionen auf typ. 10 Meter genau, was einer
> Laufzeitmessung mit einer Genauigkeit von 33 Nanosekunden entspricht,
> obwohl die Uhr in Standard-GPS Empfängern eine simple Quarzuhr ohne

Richtig, die Berechnung beruht ja auf den ZEITDIFFERENZEN der Signale.
Aaaber. Da kommen alle Signale ueber den einen Empfaenger, haben also 
exakt gleiche Signalwege.
Der TO will ja aber ein zweites Handy fuer den dritten Kanal benutzen, 
dessen Abweichung in der Zeitbasis zum ersten Handy die zu messenden 
Zeiten schon einige Groessenordnungen ueberschreiten duerfte.

wendelsberg

von Detlef _. (detlef_a)


Lesenswert?

wendelsberg schrieb:
> Mike schrieb:
>> GPS Empfänger liefern auch Positionen auf typ. 10 Meter genau, was einer
>> Laufzeitmessung mit einer Genauigkeit von 33 Nanosekunden entspricht,
>> obwohl die Uhr in Standard-GPS Empfängern eine simple Quarzuhr ohne
>
> Richtig, die Berechnung beruht ja auf den ZEITDIFFERENZEN der Signale.
> Aaaber. Da kommen alle Signale ueber den einen Empfaenger, haben also
> exakt gleiche Signalwege.
> Der TO will ja aber ein zweites Handy fuer den dritten Kanal benutzen,
> dessen Abweichung in der Zeitbasis zum ersten Handy die zu messenden
> Zeiten schon einige Groessenordnungen ueberschreiten duerfte.
>
> wendelsberg

Guter Punkt, die beiden Handys müssen synchron senden.
Das können sie, indem das zweite Handy dem Sendesignal des ersten zuhört 
und sich darauf synchronisiert. Also: ein Handy in der Hand, das zeigt 
die Koordinate und sendet MLS über Bluetooth. Ein Bluetooth Empfänger an 
einem Boxenpaar. Das zweite Handy an dem zweiten Boxenpaar, hört zu und 
liefert MLS für seine Boxen. BTW: Die Asynchronität der Handys hängt 
natürlich am Versatz der Quarzfrequenzen. Die müssen ihre HF-specs sehr 
genau treffen, deswegen werden die sehr gute Taktfrequenzen haben, wird 
also vermutlich auch ohne den Synchronisiermechanismus gehen. Der ist 
aber auch nicht schwer, das ist der gleiche hack: Mic Signal aufnehmen 
und Audiosignal synchron ausgeben.

Cheers
Detlef

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.