- LiTime Speicher und Akkus         
Ergebnis 1 bis 4 von 4

Thema: Vektor von Körpersystem in Erdsystem transformieren

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578

    Vektor von Körpersystem in Erdsystem transformieren

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ich möchte die Daten eines 3-Achs Beschleunigungssensors (Körpersystem) in das Erdsystem übertragen.
    Ich kenne die beiden Winkel der Auslenkung aus der Ruhelage, diese in Euler-Winkeln (es treten max. Winkel von 89° auf, also kein Gimbal Lock etc..).
    Leider stehe ich etwas auf dem Schlauch und weiß nicht so recht, nach was ich suchen soll.

    Vorgestellt hätte ich mir eig folgendes:
    Code:
    NickSin = Sin(NickAngle);
    NickCos = Cos(NickAngle);
    RollSin = Sin(RollAngle);
    RollCos = Cos(RollAngle);
    
    VertWinkel = Sqrt(NickAngle * NickAngle) + Sqrt(RollAngle * RollAngle);
    VertSin = Sin(VertWinkel);
    VertCos = Cos(VertWinkel);
    
    XAcc = SensorX*NickCos + SensorZ*NickSin;
    YAcc = SensorY*RollCos + SensorZ*RollSin;
    ZAcc = SensorZ*VertCos + SensorX*NickSin + SensorY*RollSin;
    Wird nur in eine Richtung geneigt (also Nick ODER Roll), so stimmen die Werte für ZAcc (vertikale Beschl). Werden aber beide Achsen geneigt, so ist der Wert um bis zu 10% zu klein...
    Die Sensoren sind kalibriert, daran kanns nicht liegen.

    Vielen Dank & Gruß
    Chris

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2008
    Ort
    Graz
    Beiträge
    521
    Versuchs mal damit: Koordinatentransformation

    Hast den Code oben aus einer Formelsammlung?
    alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hi,

    nein der Code ist Selbstgeschrieben (Pseudocode).
    Die Drehmatrix bringt mich ein Stück weiter, aber noch nicht ans Ziel...
    Ich weiß, dass ich die Winkelhalbierende als Einheitsvektor brauche und den Drehwinkel um den gedreht werden soll.
    Mein Problem ist, dass ich die beiden Winkel (Nick & Roll) kenne, um wieviel Grad der Sensor aus der Ruhelage / Nulllage ausgelenkt ist. Daraus müsste ich jetzt einen Vektor machen, daraus die Winkelhalbierende bilden und dann damit weiterrechnen. Stimmt das soweit?
    Wenn ja, wie bekomme ich aus den Winkeln einen Vektor?

    Vielen Dank & Gruß
    Chris

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2008
    Ort
    Graz
    Beiträge
    521
    hast auch die Beschleunigungswerte? Diese wären schon 3 Vektoren aus denen man den resultierenden Vektor berechnet, Koordinatentransformation zum Bezugssystem durchführt und fertig.
    Über Winkel, wenn ich es richtig im Kopf habe:
    Mit den Daten müsste es ein Vektor im Kugelformat sein, Länge da nur Winkel bekannt sind =1
    x= sin(nick)*cos(roll)
    y= sin(nick)*sin(roll)
    z= cos(roll)


    Je nach Winkelfunktion Library brauchst das ganze in Radiant und nicht in Grad.

    Bei dem ganzen auf die Winkeldefintion aufpassen, beim Kompass ist im Norden 0°, mathematisch ist "oben" aber 90° und im "Osten" 0°. Das hat mich beim Abgleich mit Kompassdaten ein paar graue Haare gekostet bis ich mein Wissen über Vektoren wieder aufpoliert hatte.

    Hatte mir ein paar Beispiele aufgezeichnet (zB 45° Auslenkung), wenn man sich auf 2D beschränkt und genau zeichnet kann man das Ergebnis abmessen und so die Formel überprüfen.

    Vielleicht ist hier noch jemand dem Vektorrechnung geläufiger ist?
    Bin da schon sehr eingerostet und kann sein das alles Müll ist...
    alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)

Ähnliche Themen

  1. 12V auf 18V transformieren schaltung
    Von sulu im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 09.11.2005, 18:32
  2. 12 Volt auf 230 od 115 Volt transformieren!?
    Von Th3RocK im Forum Elektronik
    Antworten: 26
    Letzter Beitrag: 14.12.2004, 15:46

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test