Forum: Mikrocontroller und Digitale Elektronik Geschwindigkeitsberechnung durch Accelerometer?


von Sebastian N. (naomiinc)


Lesenswert?

Hallo miteinander,
ich bin gerade ein wenig an grübeln und hab wohl den punkt erreicht, wo 
ich mal facherfahrung brauche.

Leider ist dies mein erstes microcontrollerprojekt somit korrigiert 
mich, wenn grosse fehler dabei sind.
Aber keine sorge, suchfunktion und google etc habe ich schon durch 
geprügelt...;)

Ich möchte einen system haben, was mir die geschwindigkeit und G-Kräfte 
misst, diese loggt und ich später auslesen kann.
ich hatte mir überlegt einen arduino Pro mini 328 als plattform zu 
nehmen, und mit einen (G-Sensor ADXL335) die g-kräfte misst.
Das loggen und auslesen ist aktuell nicht das problem...
das schwierige ist die geschwindigkeitsberechnung.

ich habe ja die interne zeit und die geloggten g-kräfte...wie kann ich 
denn die geschwindigkeit nun daraus kriegen?!?
ein distanzmesser kommt nciht in frage, da es keine sicht nach aussen 
gibt.
GPS ist leider zu ungenau.
Habt Ihr eine idee?
ggf mit formel oder passendes modul?

danke euch.

von Walter S. (avatar)


Lesenswert?

die Geschwindigkeit könntest du zwar theorethisch durch Integration der 
Beschleunigung kriegen, praktisch summieren sich aber Fehler auf und es 
wird viel zu ungenau

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sebastian,

wie genau brauchst Du es denn?

Grüße
Frank

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sebastian N. schrieb:
> Ich möchte einen system haben,
Sagen wir mal so: Ostern ist vorbei.
Erst Weihnachten darfst du wieder was wollen...

> Ich möchte einen system haben,
Evtl. könntest du mal sagen wofür?
Welche Beschleunigungen hast du?
Welche Geschwindigkeiten?

von Sebastian N. (naomiinc)


Lesenswert?

Wow, super schnelle antworten...danke erstmal(bin ich gar nicht so aus 
foren gewöhnt;) )
bestenfall auf 10cm genau,
jedoch 30cm-1m wäre super.
also um auf kmh zu kommen 1km tolleranz ist noch akzeptabel...

ich möchte für mich für sport meinen antritt(newton meter bestenfalls) 
und geschwindigkeit berechnen...
eine strecke abzustecken wird zwar geschwindigkeit raus kriegen, ist 
aber keine wirkliche lösung. ebenfalls kriege ich die kraftsteigerung 
nicht raus.

wie hoch ist den die fehlertolleranz?

von blubb (Gast)


Lesenswert?

Hi,
ich würde keinen Beschleunigungssensor als Geschwindigkeitsmesser 
nehmen, weil man ja bekanntlich über die Beschleunigung integrieren muss 
und sich so die Fehler ständig summieren. Ich wage zu bezweifeln, dass 
Du mit einem Beschleunigungsmesser bessere Geschwindigkeitsergebnisse 
als über GPS bekommst. Vor allem dürfte sich das Problem ergeben, dass 
Du stehst und Dir immernoch eine Geschwindigkeit angezeigt wird.

Formel:

Nachdem Du nur eine Begrenzte Zahl von Stützstellen für dieses Integral 
hast und die Stützstellen auch nicht beliebig wählen kannst:

Oder nach der Trapezformel(im Prinzip das Gleiche, bloß dass man hier 
Sehnen verwendet)

Die zweite Formel hat aber den Nachteil, dass man die Summation ständig 
von neuem machen muss, folglich ist die 1. Formel vorzuziehen.

Was Du auf jeden Fall machen musst ist eine Art Algorithmus, der dir 
wenn Du stehst die Geschwindigkeit auf 0 zurücksetzt.

von Sebastian N. (naomiinc)


Lesenswert?

wie ungenau ist denn mit den accelerometer die geschwindigkeit zu 
messen?
das ganze konzept soll klein und leicht sein,
welches GPS modul würdet ihr empfehlen, oder kennt ihr kleine module die 
mehrere teile davon übernehmen? ggf GPS+accelerometer oä...?

von blubb (Gast)


Lesenswert?

Dein Fehler liegt bei 16bit ohne Floating Point und einer maximalen 
Anzeige von 10g bei 5g/65536 pro Summation. Da man davon ausgehen kann, 
dass es zufällig mal drunter und mal drüber liegt steigt der Fehler mit 
der Wurzel aus N. Angenommen Du hast 1000 Messungen in der Sekunden hast 
Du also alleine Durch die Rechnung einen Fehler von
 auf der aktuellen Geschwindigkeit. Dazu kommen noch Fehler wie Falsche 
Kalibration der 0 im Beschleunigungssensor und der Fehler der Annäherung 
des Integrals durch eine Summation. Dazu kannst Du mal bei Wikipedia 
nach Trapezregel suchen.

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sebastian,

mal nur als Denkansatz:

Kannst Du nicht Accelerometer und GPS kombinieren um die Fehler 
gegenseitig zu minimieren?
GPS Shields gibt es verschiedene habe ich gesehen.

Da Du bei deiner Anwendung das Gerät am Körper tragen muss wird ein GPS 
Vergleich mit einem 2. Gerät leider  schwierig. Schade eigentlich weil 
damit könntest Du die Genauigkeit drastisch steigern.

Wobei....

Frage an alle:
Wenn Sebastian mit 2 GPS Modulen arbeitet, wie könnte man die beiden 
Aufzeichnungen synchronisieren?

Grüße
Frank

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

blubb schrieb:
> Fehler wie Falsche Kalibration der 0 im Beschleunigungssensor
Beim Integrieren ist Langzeitkonstanz dein hauptproblem. Was nützt dir 
eine Kalibration beim einschalten, wenn im Laufe der Zeit der Nullpunkt 
wegläuft (Erwärmung, Erschütterung...)? Schon mit einem winzigen Offset 
wirst du mit ausreichend Zeit einen Fehler bekommen (und dabei reicht es 
aus, wenn der Sensor ein wenig von der Erdbeschleunigung abbekommt, z.B. 
beim bergabfahren...)

Kurz und knackig:
ausschliesslich mit einem Beschleunigungssensor wird das NIE was. Du 
brauchst zusätzliche Signale. Mindestens eines, das dir sagt v=0, damit 
du ab und an deinen Integrator zurücksetzen kannst.

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sebastian,

ich hab mal etwas gegoogelt ;-)

Es gibt kombinierte Module wie z.B.

http://www.liquidware.com/shop/show/SEN-GEO/GeoShield

Die andere Variante die ich sehe sind 2 Shields zu nutzen ;-)
Die Frage zur Genauigkeit des GPS hatten wir ja schon ;-)

Grüße
Frank

von Reiner O. (elux)


Lesenswert?

Sebastian N. schrieb:
> Ich möchte einen system haben, was mir die geschwindigkeit und G-Kräfte
> misst, diese loggt und ich später auslesen kann.

Die Ti Chronos macht so etwas, Sieh Dir doch das Projekt mal an...

http://processors.wiki.ti.com/index.php/EZ430-Chronos

LG
Elux

von Lehrmann M. (ubimbo)


Lesenswert?

Du hast einige Probleme:

1. Ein Beschleunigungssensor rauscht und driftet. Um realistisch zu sein 
(Erfahrungswert) kann man abhängig von Kalibration, Driftkompensation 
und Art und Geschwindigkeit der Bewegung von 10 bis 15 Sekunden 
akzeptable Integral-Werte erwarten. Vibrationen, etc machen sowieso alle 
Messwerte zu Nichte.

2. Ein Beschleunigungssensor misst auch die Erdbeschleunigung -> wenn 
der Sensor kippt sind die Messwerte verfälscht.

von Sebastian N. (naomiinc)


Lesenswert?

Reiner O. schrieb:
> Sebastian N. schrieb:
>> Ich möchte einen system haben, was mir die geschwindigkeit und G-Kräfte
>> misst, diese loggt und ich später auslesen kann.
>
> Die Ti Chronos macht so etwas, Sieh Dir doch das Projekt mal an...
>
> http://processors.wiki.ti.com/index.php/EZ430-Chronos
>
> LG
> Elux

also das ding klingt sehr sehr geil, aber wie misst es denn die 
geschwindigkeit und entfernung?
wenn mit den accelerometer ist ja nun wieder die frage hoch die 
abweichung dann ist...
kann mir schwer vorstellen, dass TI etwas mit hoher fehlerrate raus 
gibt...

von U.R. Schmitt (Gast)


Lesenswert?

Sebastian N. schrieb:
> also das ding klingt sehr sehr geil, aber wie misst es denn die
> geschwindigkeit und entfernung?
> wenn mit den accelerometer ist ja nun wieder die frage hoch die
> abweichung dann ist...
> kann mir schwer vorstellen, dass TI etwas mit hoher fehlerrate raus
> gibt...

Wenn man sich überlegt welche Beschleunigungen die Uhr beim 
Joggen/Sprinten ständig ausgesetzt ist (Armbewegung, die Stöße bei jedem 
Aufsetzen der Füße, etc. pp.) und zudem das Problem da ist, daß die Uhr 
ständig durch Armbewegungen in verschiedene Richtungen gekippt wird, 
also sich die Erdbeschleunigung ständig unterschiedlich auf die 3 Achsen 
verteilt, dann ist das eine Sissiphusaufgabe da überhaupt irgendwas 
brauchbares aus den Beschleunigungsmesswerten herauszurechnen.
Und damit auch noch halbwegs genau Geschwindigkeiten oder gas Positionen 
bzw Wegstrecken zu errechnen halte ich für ziemlich utopisch.
Meine Meinung...

von Floh (Gast)


Lesenswert?

Reiner O. schrieb:
> Die Ti Chronos macht so etwas, Sieh Dir doch das Projekt mal an...
>
> http://processors.wiki.ti.com/index.php/EZ430-Chronos

Die TI wird auch wie die billigen Schrittzähler funktionieren (anders 
wird es wohl nicht klappen). Schrittweite angeben und dann Schritte 
zählen (Armbewegung).
Schrittweite * Schritte/Sekunde = Geschwindigkeit
Schrittweite * alle Schritte = Weg

von Hagen R. (hagen)


Lesenswert?

dem stimme ich zu, aber denoch muß das ja nicht die letzte Sensorfusion 
gewesen sein. Nimmt man noch GPS mit hinzu dann sieht das schon wieder 
anders aus.

von Sebastian N. (naomiinc)


Lesenswert?

ok...noch ein ansatzzusatz:
wir versuchen die fehlerrate zu minimieren/tollerieren,
da es wirklich nur um kurzstrecke geht, die gemessen werden soll. Max 
100m...
bei 100m ist ja die fehlerrate nciht so hoch wie >1km...
hat da jemand einen quelltextansatz für mich?

und noch eine frage:
könnte ich mit den accelerometer auch geschwindigkeit messen im 
nichtgeschüttelten bewegungen?
gehen wir mal von einer 100m situation, im auto oder 100m auf dem rad, 
aus...das wäre auch interessant für mich...

GPS module sind mir zu klobil für den gedanken wofür es ist...
ich werd ja schon nervös wenn ich mit handy laufen bin...

von johannes r. (Gast)


Lesenswert?

Dann entfällt wohl auch die Option wie ich sie mal in einer Zeitschrift 
der GMM gesehen habe. Dort haben Leute ACCs am Huf von Pferden 
angebracht um deren Geschwindigkeit zu berechnen... Dabei wurde jedoch 
auch ein Handy genutzt....

von Ingo S. (inse)


Lesenswert?

jaa - könnte an einem Huf auch ganz gut funktionieren, schließlich ist 
bei jedem Schritt die Geschwindigkeit einmal definiert "0"!
Die Horizontalgeschwindigkeit lässt sich dann aber wohl nur mit einem 
2-Achs Accelerometer errechnen, schließlich bewegt sich so ein Huf eher 
bogenförmig.
Fragt sich nur, wozu das Ganze - mit einem portablen Navi gehts sicher 
viel einfacher ?!?

von David .. (volatile)


Lesenswert?

Was vielleicht ginge: Sensor an den Arm schrauben, mit genauem GPS 
losrennen, alles aufzeichnen. Zuhause dann den PC errechnen lassen, wie 
genau er den Wust vom Sensor umrechnen muss, dass die Werte vom GPS 
rauskommen.
Quasi einlernen.
Selbst wenn das klappt, ginge es natuerlich nur fuer dich, ander Leute 
wuerden wohl wieder andere Werte erhalten.

von U.R. Schmitt (Gast)


Lesenswert?

Sorry Sebastian, korrigiere mich wenn ich falsch liege aber
- es soll dein erstes µC Projekt werden.
- dir fehlen die mathematischen Grundlagen um zu verstehen wie man von 
einer gemessenen Beschleunigung auf die Geschwindigkeit und den Weg 
kommt.
- du bist nicht unbedingt der Programmierheld (Zitat: "hat da jemand 
einen quelltextansatz für mich?")

Das Projekt (selbst wenn es durchführbar wäre, was ich ohne zusätzliche 
Sensorik bezweifle) ist locker 10! Nummern zu groß für dich!
Wenn du lernen willst mit µCs Projekte zu machen dann fang damit an hier 
die Tutorials zu lesen und dann eine LED zum Blinken zu bringen. Alles 
andere wird nix.
Meine Meinung.

von Purzel H. (hacky)


Lesenswert?

>locker 10! Nummern zu groß für dich!

Ja. Das mit der Fakultaet sehe ich auch so.

von NopNop (Gast)


Lesenswert?

Sebastian N. schrieb:
> wir versuchen die fehlerrate zu minimieren/tollerieren,
> da es wirklich nur um kurzstrecke geht, die gemessen werden soll. Max
> 100m...
> bei 100m ist ja die fehlerrate nciht so hoch wie >1km...

Die Strecke ist nicht dein Problem...sondern die Zeit.
Du integrierst jeden noch so kleinen Fehler, sei es eine Erschütterung 
oder einfach nur Rauschen des Sensors.

Sebastian N. schrieb:
> könnte ich mit den accelerometer auch geschwindigkeit messen im
> nichtgeschüttelten bewegungen?
> gehen wir mal von einer 100m situation, im auto oder 100m auf dem rad,
> aus...das wäre auch interessant für mich...

Selbst auf dem Fahrrad oder im Auto kannst Du das vergessen...
Ohne ab und zu einen "Stützpunkt" von einem GPS zu bekommen kommst Du 
keine 20m weit.


Ohne statistische Betrachtung der Sensorsignale, Sensordatenfusion (z.B. 
Kalmanfilterung) wird das absolut garnichts.

Selbst eine einfache Winkelerfassung mittels IMU (Gyro & Acc) ist alles 
andere als trivial!!!

Mach was anderes...so vergeudest Du nur Deine Zeit.

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.