Fahrzeugbeschleunigung auslesen

  • Hallo,
    ich bin neu hier, und habe mich vorher auch nicht wirklich mit der Unreal Engine beschäftigt.


    Meine Frage wäre wie kann ich die Beschleunigung einen Fahrzeugs auslesen.
    Wie ich die Geschwindigkeit, Drehzahl und Gang auslese weis ich, brauche aber die beschleunigung idealerweise als Vektor.


    Vielen Dank schon mal im voraus

  • @DarkFaces
    Der Velocity-Wert ist nichts anderes als die Geschwindigkeit, die er ja bereits nutzt.
    Damit kann man die Beschleunigung nicht direkt auslesen.
    Ich gehe außerdem davon aus, dass wenn sich der Thread im C++ Forum befindet, ihm auch kein BP-Node wirklich weiterhelfen würde. ;)


    @adisch
    Die Beschleunigung muss man sich aus 2 Messpunkten und dessen jeweiligen Geschwindigkeitswerten errechnen.


    a = ( s2 - s1 ) / ( m2 - m1 )
    s = Speed... m = Messpunkt (vergangene Zeit)


    Kleines Beispiel:
    Ein Auto fährt zum ersten Messpunkt 50 km/h
    Nach 10 weiteren Sekunden zum zweitem Messpunkt 100 km/h
    Ergo: (100-50)/(10-0) = 5 km/h
    Die Beschleunigung beträgt also einem durchschnittlichen Geschwindigkeitszuwachs von 5 km/h pro Sekunde.
    Ich habe extra ein Beispiel gewählt, was man auch im Kopf errechnen kann, um die Berechnung sofort zu verstehen (50kmh nach 10 Sek. mehr bedeutet eben 5 kmh pro sek. dazu)


    Man errechnet aber innerhalb dieser Zeit die Beschleunigung eben nur als Durchschnitt mit linearem Anstieg.
    Wenn man aber viele Messungen vornimmt erhält man ein ausreichend angenähertes Abbild der dynamischen Beschleunigung insgesamt.

  • Als ehemaliger Kfz-Techniker kann ich nur sagen.
    Der Drehzahlsensor eines Autos berechnet die Umfangsgeschwindikeit eines Rades und gibt es an den Tacho weiter der dann dementsprechend die Geschwindigkeit anzeigt kurz gesagt. das ist alles einfach berechnet.



    v= Pi * d *n /60


    v= Geschwindigkeit in m/s
    d= Raddurchmesser in Meter 0,606m
    n= Drehzahl in 1/min 875 1/min


    zb:


    3.1415 * 0,606m *875 /60 = 27,76 M/s


    27,76m/s * 3,6 = 99,936 km/h






    für die Beschleunigung musst du dann so rechnen:


    a= v / t
    a = Beschleunigung in m/s²
    v= Endgeschwindigkeit (also das wie oben gerechnet in m/s)
    t= Beschleunigungs zeit in s


    t= 16s
    v = 27,76m/s


    27,76 m/s / 16 s = 1,735 m/s * 3,6 = 6,246 km/h





    @Franz99


    Das was du gerechnet hat ist die momentane Höchstgeschwindigkeit aber nicht die aktuelle Geschwindigkeit für ein Tacho (sofern man eines in der UE4 nachbauen möchte) oder anders gesagt das was ein Blitzer misst.
    Und nach meiner Logik und Verständnis möchte @adisch ein Tacho bauen.


    Das ganze wird dann noch komplizierter wenn du eine Kurve fährst oder in der kurve beschleunigst, abbremst.....

  • Erstmal Danke für die schnellen Antworten.


    Das mit dem berechnen hab ich mir auch schon überlegt.


    Zum besseren verständniss was ich mache. in ein Unreal Projekt mit einem Fahrzeug soll ein Motion Code eingebunden werden.
    Ich muss genügend Parameter finden um Bewegegungen zu Simulieren.


    Das Motion System soll Primär Lenken, Bremsen und Beschleunigen simulieren.



    Zur übergabe exestiert ein Struct wo ich die Werte eintragen.
    Wie oben schon erwähnt habe ich Geschwingigkeit, Gang und DRehzahl schon gefunden.


    und ich Dachte mir wenn ich die Beschleunigung als Vector bekommen würde, wäre das vollkomen ausreichend. Aktuell könnte ich nur die Beschleunigung in der X Achse berechnen.
    Habe aber keine Ahnung wir ich die lenkkräfte Berechnen kann.

  • @Franz99


    Das was du gerechnet hat ist die momentane Höchstgeschwindigkeit aber nicht die aktuelle Geschwindigkeit für ein Tacho (sofern man eines in der UE4 nachbauen möchte) oder anders gesagt das was ein Blitzer misst.
    Und nach meiner Logik und Verständnis möchte @adisch ein Tacho bauen.

    Die Frage war nach der Beschleunigung und nicht nach der Geschwindigkeit.
    Und diese wird im Durchschnitt - ergo linear - exakt so gerechnet, wie ich es beschrieb!
    Dass das Ergebniss eine Durchschnittsgeschwindigkeit darstellt liegt in der Natur der Sache, dass die Beschleunigung nur eine chronologische Abfolge verschiedener Geschwindigkeitsmessungen ist.
    So ist ein Beschleunigungsmesser einfach nur ein Geschwindigkeitsmesser, dass zeitlich abgesteckt die Differenz berechnet.
    Dazu reicht eine normale Verhältnissrechnung - wie du sie auch aufgeführt hast.
    Ergo kann ich deinen Einwand überhaupt nicht nachvollziehen - zumal du am Ende quasi die selbe Formel benutzt. a= v / t
    Der Rechenweg ist nur etwas anders, da du das Zeitverhältnis unter dem Strich multiplizierst.
    Mathematik der 4. Klasse.

  • Du könntest aber mal im Source Code nachschauen. Normal sollte da irgendwo auch ein Beschleunigungsvektor vorkommen, kenne mich aber mit der Fahrzeugphysik aus der UE4 nicht aus.


    An sich stimmt das was Franz da sagt. Das kann man auch genauso mit Vektoren machen.
    a(tk) = (v(tk)-v(tk-1))*1/dt




    tk - Zeitpunkt des aktuellen Framestk-1 - Zeitpunkt des vorherigen Frames


    Da es hier eine diskrete Differenziation ist, müsstest du vielleicht noch überlegen ob dir das genau genug ist, was aber erst ein Problem werden sollte, falls du wieder mit diesem Wert integrierst.


    Mich würde aber mal interessieren, was genau du damit vorhast. Also was willst du simulieren, etc.
    Gerne auch per PN, falls es nicht ins Thema passt.