Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

se2

Transformación homogénea SE(2)

Desde R2022b

    Descripción

    El objeto se2 representa una transformación SE(2) como una matriz de transformación homogénea 2D que consiste en una traslación y una rotación.

    Para obtener más información, consulte la sección Matriz de transformación homogénea 2D.

    Este objeto actúa como una matriz numérica que permite componer poses utilizando la multiplicación y la división.

    Creación

    Descripción

    Matrices de rotación, vectores de traslación y matrices de transformación

    transformation = se2 crea una transformación SE(2) que representa una rotación de identidad sin traslación.

    transformation=[100010001]

    transformation = se2(rotation) crea una transformación SE(2) que representa una rotación pura definida por la rotación ortonormal rotation sin traslación. La matriz de rotación está representada por los elementos en la parte superior izquierda de la matriz de transformation.

    rotation=[r11r12r21r22]

    transformation=[r11r120r21r220001]

    transformation = se2(rotation,translation) crea una transformación SE(2) que representa una rotación definida por la rotación ortonormal rotation y la traslación translation. La función aplica primero la matriz de rotación y, después, el vector de traslación para crear la transformación.

    rotation=[r11r12r21r22], translation=[t1t2]

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

    transformation = se2(transformation) crea una transformación SE(2) que representa una traslación y rotación según lo definido en la transformación homogénea transformation.

    Otras representaciones de rotación en 2D y transformaciones

    transformation = se2(angle,"theta") crea transformaciones SE(2) transformation a partir de rotaciones en torno al eje z en radianes. La transformación contiene traslación cero.

    transformation = se2(angle,"theta",translation) crea transformaciones SE(2) a partir de rotaciones en torno al eje z, en radianes, con traslaciones translation.

    ejemplo

    transformation = se2(translation,"trvec") crea una transformación SE(2) a partir del vector de traslación translation.

    transformation = se2(pose,"xytheta") crea una transformación SE(2) a partir de la pose compacta en 2D pose.

    Argumentos de entrada

    expandir todo

    Rotación ortonormal, especificada como una matriz de 2 por 2, un arreglo de 2 por 2 por N, un objeto so2 escalar o un arreglo de N elementos de objetos so2. N es el número total de rotaciones.

    Si rotation contiene más de una rotación y además especifica translation durante la construcción, el número de traslaciones de translation debe ser uno o igual al número de rotaciones de rotation. El número resultante de objetos de transformación es igual al valor del argumento translation o rotation, el que sea mayor.

    Si rotation contiene una rotación y también especifica translation como una matriz de N por 2, las transformaciones resultantes contienen la misma rotación especificada por rotation y el vector de traslación correspondiente en translation. El número resultante de objetos de transformación es igual al número de traslaciones de translation.

    Ejemplo: eye(2)

    Tipos de datos: single | double

    Traslación, especificada como una matriz de N por 2. N es el número total de traslaciones y cada traslación tiene el formato [x y].

    Si translation contiene más de una traslación, el número de rotaciones de rotation debe ser uno o igual al número de traslaciones de translation. El número resultante de objetos de transformación creados es igual al valor del argumento translation o rotation, el que sea mayor.

    Si especifica más de una traslación y solo una rotación, las transformaciones resultantes contienen la misma rotación especificada en rotation y la traslación correspondiente en translation. El número resultante de objetos se2 creados es igual al valor de translation.

    Ejemplo: [1 4]

    Tipos de datos: single | double

    Transformación homogénea, especificada como una matriz de 3 por 3, un arreglo de 3 por 3 por N, un objeto escalar se3 o un arreglo de N elementos de objetos se2. N es el número total de transformaciones especificado.

    Si transformation es un arreglo, el número resultante de objetos se2 creados es igual a N.

    Ejemplo: eye(3)

    Tipos de datos: single | double

    Ángulo de rotación del eje z, especificado como una matriz de N por M. Cada elemento de la matriz es un ángulo, en radianes, sobre el eje z. El objeto se2 crea un objeto se2 para cada ángulo.

    Si angle es una matriz de N por M, el número resultante de objetos se2 creados es igual a N.

    El ángulo de rotación es positivo en sentido contrario a las agujas del reloj cuando se observa a lo largo del eje hacia el origen.

    Tipos de datos: single | double

    Pose compacta en 3D, especificada como una matriz de N por 3, donde N es el número total de poses compactas. Cada fila es una pose, compuesta por una posición xy y una rotación sobre el eje z, con el formato [x y theta]. x, y son las posiciones xy y theta es la rotación sobre el eje z.

    Si pose es una matriz de N por 3, el número resultante de objetos se2 creados es igual a N.

    Tipos de datos: single | double

    Funciones del objeto

    expandir todo

    mtimes, *Multiplicación de transformación o rotación.
    mrdivide, /División derecha de transformación o rotación.
    rdivide, ./Transformación por elementos o división por rotación hacia la derecha
    times, .*Transformación por elementos o multiplicación de rotación
    interpInterpolar entre transformaciones
    distCalcular la distancia entre transformaciones.
    normalizeNormalizar matriz de transformación o rotación
    transformAplicar transformación de cuerpo rígido a puntos.
    rotmExtraer matriz de rotación
    trvecExtraer vector de traducción
    tformExtraer transformación homogénea
    thetaConvertir transformación o rotación a ángulo de rotación 2-D
    xythetaConvierta la transformación o rotación en una representación de pose compacta en 2D
    so2SO(2) rotación

    Ejemplos

    contraer todo

    Defina una rotación del ángulo de pi/4 y una traslación xyz de [6 4].

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

    Cree una transformación SE(2) con el ángulo y la traslación.

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

    Algoritmos

    expandir todo

    Capacidades ampliadas

    expandir todo

    Generación de código C/C++
    Genere código C y C++ mediante MATLAB® Coder™.

    Historial de versiones

    Introducido en R2022b

    expandir todo

    Consulte también

    Funciones

    Objetos