- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 12

Thema: Fragen : Rotationsmatrix zwischen zwei 3D-systems ?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.03.2004
    Alter
    76
    Beiträge
    487
    @HBhannover

    Ich bin kein Spezialist für 3D-Transformationen und für Matrizenrechnung schon gar nicht, deshalb alles Folgende ohne Gewähr:

    Ich gehe von folgenden Annahmen aus:
    - Du verwendest ein rechtsdrehendes Koordinatensystem
    (x-Achse in Fahrtrichtung des Roboters, y-Achse nach links, z-Achse nach oben)
    - Dein Roboter bewegt sich auf einer Ebene (= die z-Werte ändern sich von einer Position zur nächsten nicht.
    - Deinem Roboter sind folgende Bewegungungen möglich
    a) Translation T = der Roboter verändert seine Position in der xy-Ebene;
    b) Rotation R = Drehung um die z-Achse;
    c) Skalierung s = es findet keine Skalierung = Änderung des Größenmaßstabs statt,
    also: s =1

    Damit musst Du meiner Meinung nach nur bis Seite 12 etwas verstehen, denn die Bursa-Wolf -Transformation behandelt spezielle Fälle der Umrechnung von Geodäsie-Daten, also von einer Landkarten-Projektion in eine andere. Es sei denn, Dein Roboter verwendet GPS.

    Du willst die Daten von Position1 (x1,y1,z1) auf die Position2 (x2,y2,z3) transformieren.

    Wenn Du die Winkelabweichung der x-Richtung von einer Position1 zur Position2 aus den Odometriedaten kennst, drehst Du mit einer Rotationsmatrix für die Drehung um die z-Achse (siehe Seite 8 ) die x-Achse der Pos1 bis sie mit der x-Achse von Pos2 übereinstimmt.
    (Winkel kappa = Drehwinkel)

    Zu den nun gedrehten Werten addierst Du nun die Translationswerte Tx,Ty,Tz
    Tx = x2-x1, Ty = y2-y1, Tz =0, da der Roboter in einer Ebene fährt.

    In C# sieht das dann beispielsweise so aus:

    x2 = x1 * Math.Cos(kappa) + y1 * Math.Sin(kappa) + tx2);
    y2 = x1 * (-Math.Sin(kappa)) + y1 * Math.Cos(kappa) + ty2);
    z2 = z1;

    Viel Erfolg,
    Günter
    Geändert von Günter49 (30.03.2011 um 16:56 Uhr)

Ähnliche Themen

  1. Spannung zwischen zwei Punkten messen?
    Von Maxxtro im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 17.05.2009, 13:19
  2. Komunikation zwischen zwei Atmegas
    Von manhunt im Forum AVR Hardwarethemen
    Antworten: 12
    Letzter Beitrag: 29.09.2008, 15:02
  3. Zeitmessung zwischen zwei Signalflanken
    Von basti85 im Forum Sensoren / Sensorik
    Antworten: 7
    Letzter Beitrag: 20.06.2007, 14:34
  4. Unterschied zwischen zwei ATMega128
    Von Maverick83 im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 15.08.2006, 12:03
  5. Funkübertragung zwischen zwei Mega32 ?
    Von cyby im Forum Sensoren / Sensorik
    Antworten: 6
    Letzter Beitrag: 08.11.2005, 12:29

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress