Hauptinhalt

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

se2

SE(2) homogene Transformation

Seit R2022b

    Beschreibung

    Das se2-Objekt repräsentiert eine SE(2)-Transformation als 2-D homogene Transformationsmatrix, bestehend aus einer Translation und einer Rotation.

    Weitere Informationen finden Sie im Abschnitt 2-D homogene Transformationsmatrix.

    Dieses Objekt fungiert als numerische Matrix und ermöglicht Ihnen die Erstellung von Posen durch Multiplikation und Division.

    Erstellung

    Beschreibung

    Rotationsmatrizen, Translationsvektoren und Transformationsmatrizen

    transformation = se2 erstellt eine SE(2)-Transformation, die eine Identitätsrotation ohne Translation darstellt.

    transformation=[100010001]

    transformation = se2(rotation) erstellt eine SE(2)-Transformation, die eine reine Rotation darstellt, die durch die orthonormale Rotation rotation ohne Translation definiert ist. Die Rotationsmatrix wird durch die Elemente oben links in der transformation-Matrix dargestellt.

    rotation=[r11r12r21r22]

    transformation=[r11r120r21r220001]

    transformation = se2(rotation,translation) erstellt eine SE(2)-Transformation, die eine Rotation darstellt, die durch die orthonormale Rotation rotation und die Translation translation definiert ist. Die Funktion wendet zuerst die Rotationsmatrix und dann den Translationsvektor an, um die Transformation zu erstellen.

    rotation=[r11r12r21r22], translation=[t1t2]

    transformation=[r11r12t1r21r22t2001]=[10t101t2001]·[r11r120r21r220001]

    transformation = se2(transformation) erstellt eine SE(2)-Transformation, die eine Translation und Rotation darstellt, wie sie durch die homogene Transformation transformation definiert ist.

    Andere 2D-Rotations- und Transformationsdarstellungen

    transformation = se2(angle,"theta") erstellt SE(2)-Transformationen transformation aus Rotationen um die z-Achse im Bogenmaß. Die Transformation enthält keine Übersetzung.

    transformation = se2(angle,"theta",translation) erstellt SE(2)-Transformationen aus Rotationen um die z-Achse, im Bogenmaß, mit Translationen translation .

    Beispiel

    transformation = se2(translation,"trvec") erstellt eine SE(2)-Transformation aus dem Translationsvektor translation .

    transformation = se2(pose,"xytheta") erstellt eine SE(2)-Transformation aus der 2-D-Kompaktpose pose .

    Eingabeargumente

    alle erweitern

    Orthonormale Rotation, angegeben als 2x2-Matrix, 2x2 x N-Array, skalares so2-Objekt oder N-Element-Array von so2-Objekten. N ist die Gesamtzahl der Rotationen.

    Wenn rotation mehr als eine Rotation enthält und Sie bei der Konstruktion auch translation angeben, muss die Anzahl der Translationen in translation eins oder gleich der Anzahl der Rotationen in rotation sein. Die resultierende Anzahl von Transformationsobjekten entspricht dem Wert des Arguments translation oder rotation, je nachdem, welcher größer ist.

    Wenn rotation eine Rotation enthält und Sie translation auch als N-mal-2-Matrix angeben, dann enthalten die resultierenden Transformationen dieselbe Rotation, die durch rotation angegeben wird, und den entsprechenden Translationsvektor in translation. Die resultierende Anzahl der Transformationsobjekte entspricht der Anzahl der Übersetzungen in translation.

    Beispiel: eye(2)

    Datentypen: single | double

    Übersetzung, angegeben als N-mal-2-Matrix. N ist die Gesamtzahl der Übersetzungen und jede Übersetzung hat die Form [x y].

    Wenn translation mehr als eine Übersetzung enthält, muss die Anzahl der Rotationen in rotation eins oder gleich der Anzahl der Übersetzungen in translation sein. Die resultierende Anzahl der erstellten Transformationsobjekte entspricht dem Wert des Arguments translation oder rotation, je nachdem, welcher größer ist.

    Wenn Sie mehr als eine Translation, aber nur eine Rotation angeben, enthalten die resultierenden Transformationen dieselbe Rotation, die in rotation angegeben ist, und die entsprechende Translation in translation. Die resultierende Anzahl der erstellten se2-Objekte entspricht dem Wert von translation.

    Beispiel: [1 4]

    Datentypen: single | double

    Homogene Transformation, angegeben als 3 x 3-Matrix, 3 x 3 x N-Array, skalares se3-Objekt oder N-Element-Array von se2-Objekten. N ist die Gesamtzahl der angegebenen Transformationen.

    Wenn transformation ein Array ist, ist die resultierende Anzahl der erstellten se2-Objekte gleich N.

    Beispiel: eye(3)

    Datentypen: single | double

    Rotationswinkel der z-Achse, angegeben als N-mal-M-Matrix. Jedes Element der Matrix ist ein Winkel im Bogenmaß um die z-Achse. Das se2-Objekt erstellt für jeden Winkel ein se2-Objekt.

    Wenn angle eine Nx-M-Matrix ist, ist die resultierende Anzahl der erstellten se2-Objekte gleich N.

    Der Drehwinkel ist gegen den Uhrzeigersinn positiv, wenn Sie entlang der Achse zum Ursprung blicken.

    Datentypen: single | double

    3D-Kompaktpose, angegeben als N-mal-3-Matrix, wobei N die Gesamtzahl der Kompaktposes ist. Jede Zeile ist eine Pose, bestehend aus einer xy-Position und einer Rotation um die z-Achse, in der Form [x y theta]. x, y sind die xy-Positionen und theta ist die Rotation um die z-Achse.

    Wenn pose eine N-mal-3-Matrix ist, ist die resultierende Anzahl der erstellten se2-Objekte gleich N.

    Datentypen: single | double

    Objektfunktionen

    alle erweitern

    mtimes, *Transformation or rotation multiplication
    mrdivide, /Transformation or rotation right division
    rdivide, ./Element-wise transformation or rotation right division
    times, .*Element-wise transformation or rotation multiplication
    interpInterpolate between transformations
    distCalculate distance between transformations
    normalizeNormalize transformation or rotation matrix
    transformApply rigid body transformation to points
    rotmRotationsmatrix extrahieren
    trvecExtract translation vector
    tformHomogene Transformation extrahieren
    thetaConvert transformation or rotation to 2-D rotation angle
    xythetaConvert transformation or rotation to compact 2-D pose representation
    so2SO(2) rotation

    Beispiele

    alle reduzieren

    Definieren Sie eine Winkelrotation von pi/4 und eine xyz-Verschiebung von [6 4].

    angle = pi/6;
    trvec = [2 1];

    Erstellen Sie eine SE(2)-Transformation unter Verwendung des Winkels und der Translation.

    TF = se2(angle,"theta",trvec)
    TF = se2
        0.8660   -0.5000    2.0000
        0.5000    0.8660    1.0000
             0         0    1.0000
    
    

    Algorithmen

    alle erweitern

    Erweiterte Fähigkeiten

    alle erweitern

    C/C++ Codegenerierung
    Generieren Sie C und C++ Code mit MATLAB® Coder™.

    Versionsverlauf

    Eingeführt in R2022b

    alle erweitern