Wie kann ich Schlaglöcher mit einem in einem Fahrzeug montierten Beschleunigungsmesser erkennen?


9

Ich studiere derzeit DSP und FFT, ich bin sehr neu in diesem Bereich und mache seit langer Zeit Elektronik mit Arduino- und Hobbyprojekten. Vor kurzem mache ich ein Projekt mit dem Ziel, Schlaglöcher entlang Ihres täglichen Pendelverkehrs im Auto abzubilden und die Rauheit der Straße zu messen. Dies ist nicht das Straßenprofil, sondern die Rauheit der Fahrt, die der Fahrer während der Fahrt spürt. Ich habe eine Beschleunigung montiert, um die "vertikale" Beschleunigung des Autos auf der Z-Achse zu messen. Wenn ein Schlagloch getroffen wird, dämpfen die Stoßdämpfer und Federn der Einfachheit halber die Kraft gemäß dem Viertelautomodell.

Grundsätzlich möchte ich in der Lage sein, einen Detektor zu erstellen, der Schlaglöcher mithilfe von FFT erkennt, um die dominierende Frequenz der Vertikalbeschleunigung zu ermitteln. Dann kann ich ihn möglicherweise an das Muster anpassen, um das Zuschlagen der Tür der Autotür oder eine Mannlochabdeckung zu erkennen aus einem Schlagloch vielleicht in der Zukunft.

Ich bin mir nicht sicher, ob FFT der richtige Weg ist. Eingaben oder Ratschläge und Ideen werden sehr geschätzt. Ich habe einen Tiefpassfilter entwickelt, um die höherfrequenten Vibrationen aus dem Antriebsstrang und dem Motor herauszufiltern.

Irgendwelche Ideen zur unterworfenen "Rauheit", die die Passagiere / Fahrer im Auto spüren? Ich dachte daran, Straßentests auf einer glatten Straße, einer Schotterstraße, einer Ziegelstraße oder einer schlechten Straße durchzuführen und eine Schwelle für die Größe der Vertikalbeschleunigung zu finden und irgendwie eine Skala für das zu erstellen, was als "rau" angesehen wird.

Die erkannten Schlaglöcher würden auch mit GPS an ihren Standorten protokolliert. Ich versuche, den Rasberry Pi dafür zu verwenden, wobei die Datenspeicherung und seine Geschwindigkeit ein gutes Projekt dafür sind.

Dank jeder Hilfe oder Ideen wird geschätzt, Bücher, Tutorials, Weisheit, etc.

AKTUALISIEREN:

Übertragen Sie hier zusätzliche Daten:

/electronics/56238/accelerometer-data-smoothing-filtering-pothole-detection


2
Die Antwort von PAK-9 unten enthält einige gute Vorschläge. Schritt 1 für Sie sollte wahrscheinlich darin bestehen, einige Daten mithilfe von Straßentests (wie von Ihnen vorgeschlagen) zu erfassen, um festzustellen, wie die Funktionen, die Sie erkennen möchten, tatsächlich aussehen.
Jason R

Werden Sie sie automatisch an seeclickfix.com senden? :)
Endolith

Ja, ich könnte, wenn ich es richtig zum Laufen bringe. Die Stadt Boston hat eine Smartphone-App entwickelt, die dies tut. Sie hatten Zuschüsse in Höhe von Tausenden von Dollar für ihre Einreichungen. Meins wird eine einfache Teilmenge davon sein. Ich stelle mir vor, dass die meisten Leute es mit einem Smartphone in ihrem Auto bewegen. Sie müssten das Telefon also in einer Halterung haben, um genaue Messwerte zu erhalten oder zu verhindern, dass Sie das Telefon fallen lassen oder es bewegen, während Sie es bewegen Das Auto bewegt sich. Also benutze ich einen externen Beschleunigungsmesser, um diese Komplikationen zu vermeiden
zacharoni16

@ user978563 Was ist diese externe Marke von Beschleunigungsmessern, die Sie übrigens verwenden?
Spacey

Antworten:


8

Sie interessieren sich weniger für die Frequenzinformationen in Ihrem Signal als für erkennbare Merkmale - daher würde ich vorschlagen, dass eine FFT hier nicht so nützlich ist.

Was Sie wirklich tun möchten, ist , das im Auto aufgezeichnete kontinuierliche "Autosignal" mit einem anderen Signal zu korrelieren, das die "Signatur" der Schlaglochbeule ist. Sie müssen diese Signatur erwerben, indem Sie sie in einem Auto aufzeichnen, das über ein Schlagloch fährt (möglicherweise werden viele aufgezeichnet und verwendet, um ein generisches Signal zu erzeugen, das eine gute Darstellung eines Schlaglochs darstellt). Sobald Sie es haben , können Sie überqueren korrelieren es mit Ihrem Auto Signal. Möglicherweise möchten Sie dies im Frequenzbereich tun. In diesem Fall sollten Sie die FFT Ihrer Signatur mit einer gleitenden FFT des Fahrzeugsignals kreuzkorrelieren.

Möglicherweise möchten Sie das Fahrzeugsignal verarbeiten, bevor Sie es verwenden, um beispielsweise hochfrequentes Rauschen (mit einem Tiefpassfilter) zu entfernen. Sie können dies ziemlich effektiv tun, indem Sie mit verschiedenen Filtern auf Autosignalen herumspielen, um zu sehen, welche die überflüssigsten Informationen entfernt werden, während die wichtigen Schlaglochinformationen intakt bleiben.


Wäre diese Kreuzkorrelation programmatisch sehr schwer durchzuführen? Ich möchte, dass dies alles automatisch in der Software erledigt wird. Ich denke, der schwierigste Teil ist es, das "generische Signal" für ein Schlagloch zu erhalten, das breit genug ist, um die FFT mit der FFT der aktuellen Daten im Auto abzugleichen. Die gleitende FFT, wie würde die Fensterfunktion aussehen? Das einzige, was mich an FFT verwirrt, ist das Fenster, wäre es ein Schiebefenster? Es scheint, als ob die Schlaglochfrequenzen im Bereich von 5 Hz bis 20 Hz sehr niedrige Frequenzen für SHM der gedämpften Suspension aufweisen
zacharoni16

2
Kreuzkorrelation ist nicht besonders schwierig programmatisch durchzuführen, sie ist der Faltung sehr ähnlich (beide iterieren im Wesentlichen über zwei Arrays und führen eine Funktion mit jeweils einem Sample aus). Ich bin sicher, dass Bibliotheken verfügbar sind, wenn Sie dies nicht möchten schreibe dein Eigenes. Die Signatur ist möglicherweise etwas schwierig zu erfassen, aber wenn Sie eine Menge Daten erhalten, sollten einige Funktionen auftauchen. Außerdem ist die Kreuzkorrelation nicht binär. Das Ergebnis ist im Wesentlichen ein Vertrauenswert, sodass Sie den Schwellenwert nach Belieben festlegen können.
PAK-9

1
Das Fenster fn der verschiebbaren FFT kann beliebig sein, es sollte das Ergebnis nicht zu dramatisch beeinflussen. Ich würde einen großen Impuls erwarten, der über einen kurzen Zeitraum gedämpft wird (SHM der Federung, wie Sie sagen), damit Sie möglicherweise in der Lage sind, so etwas basierend auf Beobachtungen der Signale zu synthetisieren.
PAK-9

AH das macht Sinn, der schwierige Teil ist, die Signatur zu bekommen, gibt es ein Tutorial oder Buch oder eine Site mit einem ähnlichen Beispiel für das Verfahren. Im Moment denke ich, ich muss nur synthetische Unebenheiten wie Geschwindigkeitsunebenheiten, Schlaglöcher und Treiber herstellen über sie ein paar Mal, um viele Daten zu erhalten. Ich bin mir nicht sicher, welche Funktionen ich für die Signatur berücksichtigen sollte
zacharoni16

2
Wenn Sie nur über eine Menge Unebenheiten und Löcher fahren und dann diese Teile des Signals herausschneiden, erhalten Sie eine Bibliothek mit Signaturen. FFT jede von ihnen, um Ihnen eine spektrale Signatur zu geben. Wenn sich einige bei der visuellen Inspektion stark unterscheiden, teilen Sie sie in ähnliche Gruppen auf. Sie können dann eine Art Mittelwertbildung für jede Gruppe von Signaturen durchführen, um eine endgültige "Master" -Signatur von jeder Gruppe zu erhalten, die Sie mit Autosignalen vergleichen können.
PAK-9
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.