Neigungswinkel einer Ebene errechnen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
N_Gnom
Beiträge: 149
Registriert: 11.09.2013 19:52

Neigungswinkel einer Ebene errechnen

Beitrag von N_Gnom »

Da mir bisher noch niemand weiterhelfen konnte frage ich einfach mal hier.
Und zwar geht es um simpelste Fahrzeugbewegung.
Vier Räder ein Chassis.
Abhängig der Räderposition in der Höhe soll der Neigungswinkel einer Ebene, also dem Fahrzeugchassis, berechnet werden.

Vielleicht kann mir hier ja jemand weiterhelfen.

Ich habe mich schon ein bisschen belesen, jedoch konnte ich noch nichts passendes finden.
Es gibt wohl ein Einspurmodell in dem beide Vorder und Hinterräder zu einem Rad jeweils zusammengefasst werden.
Dann müsste man theoretisch nur den Winkel von Vorder- und Hinterrad zueinander ermitteln.
Und letztendlich die Neigung nach links oder rechts bestimmen.

Codetechnisch weiß ich im Moment nicht wie ich das umsetzen könnte und bevor ich mich da jetzt total verzettele, frage ich erstmal hier.
Laptop: Win10@64bit - i3 2x2Ghz - 8GB Ram - 1TB HDD
Desktop: Win10@64bit - AMD Ryzen 5 2400G - MSI B450 Tomahawk - 8GB Ram - 240GB SSD
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Neigungswinkel einer Ebene errechnen

Beitrag von STARGÅTE »

Mit einem Winkel wirst du aber nicht weit kommen.
Das Fahrzeug kann ja sich ja nach vorne neigen (Pitch) und zur Seite (Roll), und halt um die eigene Achse (Yaw)

Meine Idee ist:
  • Den Pitch kannst du über die beiden Achsenschwerpunkte berechnen.
    Das heiß, Pitch = ArcSin( d*n/|d| )
    Wobei d der Differenzvektor zwischen beiden Puntkte ist, |d| die Länge von diesem und n=(0,1,0) und * das Scalarprodukt.
  • Den Roll kannst du über eine der beiden Achsen bestimmten (oder beide als Mittelwert).
    Das hießt, Roll = ArcSin( d*n/|d| )
    Wobei hier d der Differenzvektor der beiden Räder wäre.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
N_Gnom
Beiträge: 149
Registriert: 11.09.2013 19:52

Re: Neigungswinkel einer Ebene errechnen

Beitrag von N_Gnom »

kannst du mir das bisschen besser erklären, ich bin kein mathegenie, bzw. ein bisschen veranschaulichung wäre toll.
deine formeln in klammern sagen mir nichts, da ich weder gymnasiast war, noch studiert habe.
und in einem alter bin wo sowas in der schule nicht gelehrt wurde.
ich habe eine schnelle auffassungsgabe, jedoch muss man es mir dann doch kurz erklären.

vielen dank stargate(was zudem meine lieblingsserie ist, lach)
Laptop: Win10@64bit - i3 2x2Ghz - 8GB Ram - 1TB HDD
Desktop: Win10@64bit - AMD Ryzen 5 2400G - MSI B450 Tomahawk - 8GB Ram - 240GB SSD
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Neigungswinkel einer Ebene errechnen

Beitrag von Andesdaf »

wenn's nur die Ebene ist reicht der Winkel aus, dann geht's eben nur nach
vorn oder nach hinten.

Code: Alles auswählen

Structure vp
  X.f
  Y.f
EndStructure

Define.vp OR1, OR2
Define.f d

; Koordinaten der Radachsen

OR1\X = 2
OR1\Y = 4

OR2\X = 6
OR2\Y = 7

; Länge des Vektors OR1OR2 / Abstand beider Punkte / Pythagoras
;      ______________________________
; d=  / (x-Abstand)² + (y-Abstand)² |
;    v                              |

d = Sqr(Pow(OR1\X - OR2\X, 2) + Pow(OR1\Y - OR2\Y, 2))

; Neigung dieses Vektors zur X-Achse / rechtwinkliges Dreieck
;         Gegenkathete
; sin x = ------------
;         Hypotenuse
;
; Hypotenuse = d; Gegenkathete = y-Abstand
; 
;          Gegenkathete
; x = asin ------------
;          Hypotenuse

Debug Degree(ASin((OR1\Y - OR2\Y)/d))

; sollte -36.87 ergeben, negativ entspricht Neigung nach links, positiv Neigung nach rechts
Win11 x64 | PB 6.20
Antworten