Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. 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, *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
    rotmExtraer matriz de rotación
    trvecExtract translation vector
    tformExtraer transformación homogénea
    thetaConvert transformation or rotation to 2-D rotation angle
    xythetaConvert transformation or rotation to compact 2-D pose representation
    so2SO(2) rotation

    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