- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 14

Thema: Rotation um Hochachse (Yaw) auf Nick & Roll übertragen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Hallo,
    was heißt es funktioniert immer nur in eine richtung?

    Ich würde erstmal prüfen lassen welcher wert größer ist, und davon dann den (kleineren) Anderen abziehen. Oder wenigstens sicher stellen das ich nicht "in Minus" rechne, wenn es nicht passieren soll.

    Leider sieht man auch nicht welcher Variablen-Typ jeweils angelegt wurde.

    Ob die Rechnung überhaupt dafür passt kann ich leider nicht beurteilen.

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

    es funktioniert nur, wenn ich zuerst Nicke und Roll waagrecht ist...
    Hm ich hab schon alles mögliche probiert, aber ich werd deinen Tipp trotzdem mal versuchen!
    Gyro_xangle & Gyro_yangle & Angle_diff sind als Single deklariert, Gyroz ist ein Long.

    Gruß
    Chris

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

    also ich habs probiert, aber auch das funktioniert nicht...
    Das Problem ist einfach, dass es nur für bestimmte Drehungen / Konstellationen funktioniert, aber eben nicht für alle. Wenn ihr noch nen Tipp habt, immer her damit
    Ich werd mich jetzt mal mit nem dicken Block Papier auf den Schreibtisch setzen und alles mal aufschreiben...

    Gruß
    Chris

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.02.2013
    Ort
    Graz
    Beiträge
    211
    Wenn ich das richtig sehe, willst du vorausrechnen, dass bei Drehung um die Vertikale die x- und y-Neigungswinkel ineinander übergehen. Und zwar umso schneller/mehr je schneller die Winkelgeschwindigkeit um die Vertikale.

    Wie wärs dann mit sowas?
    Code:
    Angle_diff = Gyro_xangle - Gyro_yangle
    
    Angle_diff = Angle_diff * Gyroz
    Angle_diff = Angle_diff / 1600000
    
    Gyro_xangle = Gyro_xangle - Angle_diff 
    Gyro_yangle = Gyro_yangle + Angle_diff
    Mit Gyroz = 1600000 tauschen xangle und yangle die Werte.
    Das müsste so abgestimmt sein, dass bei gyroz = 1600000 von einer Messung zur nächsten 90° Drehung ausgehen.

    Bin mir nicht sicher, ob das Sinn macht, aber Vorzeichenwechsel müsste man auch berücksichtigen.
    Geändert von ichbinsisyphos (19.03.2013 um 14:00 Uhr)

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

    ja genau so will ich das machen
    Mit Addition / Subtraktion hab ichs auch schon probiert, aber dann stimmts wieder nicht...
    Durch die Division durch 1600000 erreiche ich, dass der Übergang genau richtig proportioniert ist.

    Ich hab jetzt mal aufgeschrieben, welche Vorzeichen bei welcher Drehung / Winkel vorliegen:
    Nicken nach vorne ist positiv, Rollen nach links ist positiv und Yawen im UZS ist positiv.
    Jetzt bräuchte ich eine Art Wertetabelle, damit ich die Zusammenhänge rausfinden kann, allerdings ist mir noch nicht eingefallen, wie ich das gut leserlich aufschreiben kann.

    Gruß
    Chris

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.02.2013
    Ort
    Graz
    Beiträge
    211
    Na gut, dann positive Drehrichtung um die Vertikale (Uhrzeigersinn):

    positiver Nick- wird zu positivem Rollwinkel. Anders ausgedrückt eine Neigung nach vorne wird zu einer nach links.

    Code:
    y+ -> x+
    y- -> x-
    x+ -> y-
    x- -> y+
    y wird zu x bei Vorzeichenerhalt und x wechselt zu y jedes Mal das Vorzeichen. Wichtig wär, zu verstehen, was dazwischen abgeht, aber dazu fehlt mir im Moment die Vorstellungskraft.

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

    ich habs jetzt mal aufgeschrieben (so wie du):
    Code:
    Rotation im UZS:
    Nick --> Roll      Roll --> Nick
    +           +         +          -
    -           -         -          +
    
    Rotation gegen UZS:
    Nick --> Roll      Roll --> Nick
    +           -          +          +
    -           +          -          -
    Jetzt muss ich noch versuchen, das ganze irgendwie zeitsparend in den Code zu integrieren!
    Danke schonmal für die Hilfe

    Gruß
    Chris

    EDIT:
    Allerdings hab ich jetzt noch keinen Plan, wie ich das programmieren soll... Ich war eigentlich auch der Meinung, dass das ohne große Fallunterscheidungen gehen sollte.. Aber da hab ich mich wohl getäuscht!
    Vorschläge bzgl. der Umsetzung sind weiterhin willkommen
    Geändert von Che Guevara (19.03.2013 um 15:59 Uhr)

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.02.2013
    Ort
    Graz
    Beiträge
    211
    Code:
    k = Gyroz / 1600000
    
    xtemp =  (y-x)*k + x
    y = -(y+x)*k + y
    x = xtemp
    Mir ist übrigens grad erst aufgefallen, dass (x,y) -> (-y, x) eine Drehung eines Vektors um 90° beschreibt. Heißt für den Fall besonders, dass das für 90° stimmt, dazwischen nicht, die Winkelfunktionen sind natürlich nicht linear im Winkel.

    Außerdem frag ich mich, ob es nicht genauso gut oder besser wäre, den Komplementärfilter so einzustellen, dass er neue Werte schneller annimmt. Was genau erhoffst du dir von der Vorgehensweise? Verpfuscht du dir damit nicht die Trägheitsnavigation?


    edit: ok, vergessen wir den anderen Ansatz, das sind keine Winkel ...
    Geändert von ichbinsisyphos (19.03.2013 um 18:02 Uhr)

Ähnliche Themen

  1. Probleme mit Servo bei Kamera Nick/Roll
    Von jevermeister im Forum Mechanik
    Antworten: 8
    Letzter Beitrag: 21.06.2011, 07:00
  2. CHR-6d Board Gyro,ACC,Nick,Roll,Kalman Filter,Inbetriebnahme
    Von mirco99 im Forum Sensoren / Sensorik
    Antworten: 32
    Letzter Beitrag: 21.10.2010, 15:54
  3. Code auf Atiny2313 übertragen
    Von Stuebsel im Forum Assembler-Programmierung
    Antworten: 17
    Letzter Beitrag: 17.09.2010, 12:51
  4. Probleme beim Übertragen auf Controller
    Von loukumas im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 19.02.2008, 00:56
  5. Transformation für Yaw Pitch und Roll
    Von Ghuzdan im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 0
    Letzter Beitrag: 21.06.2006, 23:41

Berechtigungen

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

12V Akku bauen