Contenuto principale

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l'ultima versione in inglese.

se2

SE(2) trasformazione omogenea

Da R2022b

    Descrizione

    L'oggetto se2 rappresenta una trasformazione SE(2) come una matrice di trasformazione omogenea 2-D costituita da una traslazione e una rotazione.

    Per ulteriori informazioni, vedere la sezione Matrice di trasformazione omogenea 2-D.

    Questo oggetto funziona come una matrice numerica, consentendo di comporre pose utilizzando moltiplicazione e divisione.

    Creazione

    Descrizione

    Matrici di rotazione, vettori di traslazione e matrici di trasformazione

    transformation = se2 crea una trasformazione SE(2) che rappresenta una rotazione di identità senza traslazione.

    transformation=[100010001]

    transformation = se2(rotation) crea una trasformazione SE(2) che rappresenta una rotazione pura definita dalla rotazione ortonormale rotation senza traslazione. La matrice di rotazione è rappresentata dagli elementi in alto a sinistra della matrice transformation.

    rotation=[r11r12r21r22]

    transformation=[r11r120r21r220001]

    transformation = se2(rotation,translation) crea una trasformazione SE(2) che rappresenta una rotazione definita dalla rotazione ortonormale rotation e dalla traslazione translation. La funzione applica prima la matrice di rotazione, poi il vettore di traslazione, per creare la trasformazione.

    rotation=[r11r12r21r22], translation=[t1t2]

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

    transformation = se2(transformation) crea una trasformazione SE(2) che rappresenta una traslazione e una rotazione come definite dalla trasformazione omogenea transformation .

    Altre rappresentazioni di rotazioni e trasformazioni 2D

    transformation = se2(angle,"theta") crea trasformazioni SE(2) transformation da rotazioni attorno all'asse z, in radianti. La trasformazione non contiene alcuna traslazione.

    transformation = se2(angle,"theta",translation) crea trasformazioni SE(2) da rotazioni attorno all'asse z, in radianti, con traslazioni translation .

    esempio

    transformation = se2(translation,"trvec") crea una trasformazione SE(2) dal vettore di traslazione translation .

    transformation = se2(pose,"xytheta") crea una trasformazione SE(2) dalla posa compatta 2-D pose .

    Argomenti di input

    espandi tutto

    Rotazione ortonormale, specificata come matrice 2x2, array 2x2xN, oggetto scalare so2 o array di oggetti so2 con elementi N. N è il numero totale di rotazioni.

    Se rotation contiene più di una rotazione e si specifica anche translation durante la costruzione, il numero di traslazioni in translation deve essere pari o superiore a uno al numero di rotazioni in rotation. Il numero risultante di oggetti di trasformazione è uguale al valore dell'argomento translation o rotation, a seconda di quale sia maggiore.

    Se rotation contiene una rotazione e si specifica anche translation come matrice N per 2, le trasformazioni risultanti contengono la stessa rotazione specificata da rotation e il corrispondente vettore di traslazione in translation. Il numero risultante di oggetti di trasformazione è uguale al numero di traduzioni in translation .

    Esempio eye(2)

    Tipi di dati: single | double

    Traduzione, specificata come una matrice N per 2. N è il numero totale di traduzioni e ciascuna traduzione è della forma [x y].

    Se translation contiene più di una traduzione, il numero di rotazioni in rotation deve essere uno o uguale al numero di traduzioni in translation. Il numero risultante di oggetti di trasformazione creati è uguale al valore dell'argomento translation o rotation, a seconda di quale sia maggiore.

    Se si specificano più di una traslazione ma solo una rotazione, le trasformazioni risultanti contengono la stessa rotazione specificata in rotation e la corrispondente traslazione in translation. Il numero risultante di oggetti se2 creati è uguale al valore di translation .

    Esempio [1 4]

    Tipi di dati: single | double

    Trasformazione omogenea, specificata come matrice 3x3, array 3x3xN, oggetto scalare se3 o array di oggetti se2 con elementi N. N è il numero totale di trasformazioni specificate.

    Se transformation è un array, il numero risultante di oggetti se2 creati è uguale a N.

    Esempio eye(3)

    Tipi di dati: single | double

    Angolo di rotazione dell'asse z, specificato come matrice N per M. Ogni elemento della matrice è un angolo, in radianti, attorno all'asse z. L'oggetto se2 crea un oggetto se2 per ogni angolo.

    Se angle è una matrice N per M, il numero risultante di oggetti se2 creati è uguale a N.

    L'angolo di rotazione è positivo in senso antiorario se si guarda lungo l'asse verso l'origine.

    Tipi di dati: single | double

    Posa compatta 3D, specificata come matrice N per 3, dove N è il numero totale di pose compatte. Ogni riga è una posa, composta da una posizione xy e una rotazione attorno all'asse z, nella forma [x y theta]. x, y sono le posizioni xy e theta è la rotazione attorno all'asse z.

    Se pose è una matrice N per 3, il numero risultante di oggetti se2 creati è uguale a N.

    Tipi di dati: single | double

    Funzioni oggetto

    espandi tutto

    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
    rotmMatrice di rotazione dell'estrazione
    trvecExtract translation vector
    tformEstrarre la trasformazione omogenea
    thetaConvert transformation or rotation to 2-D rotation angle
    xythetaConvert transformation or rotation to compact 2-D pose representation
    so2SO(2) rotation

    Esempi

    comprimi tutto

    Definisci una rotazione angolare di pi/4 e una traslazione xyz di [6 4] .

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

    Creare una trasformazione SE(2) utilizzando l'angolo e la traslazione.

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

    Algoritmi

    espandi tutto

    Funzionalità estese

    espandi tutto

    Generazione di codice C/C++
    Genera codice C e C++ con MATLAB® Coder™.

    Cronologia versioni

    Introdotto in R2022b

    espandi tutto