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.

transformMotion

Calcular cantidades de movimiento entre dos cuadros relativamente fijos.

Descripción

[posS,orientS,velS,accS,angvelS] = transformMotion(posSFromP,orientSFromP,posP) calcula las cantidades de movimiento del marco del sensor en relación con el marco de navegación (posS, orientS, velS, accS y angvelS) utilizando la posición del marco del sensor en relación con el marco de la plataforma, posSFromP, la orientación del marco del sensor en relación con el marco de la plataforma, orientSFromP, y la posición del marco de la plataforma en relación con el marco de navegación, posP. Tenga en cuenta que se supone que la posición y orientación entre el marco del sensor y el marco de la plataforma son fijas. Además, se supone que las cantidades no especificadas entre el marco de navegación y el marco de la plataforma (como la orientación, la velocidad y la aceleración) son cero.

[___] = transformMotion(posSFromP,orientSFromP,posP,orientP) también especifica la orientación del marco de la plataforma con respecto al marco de navegación, orientP. Los argumentos de salida son los mismos que los de la sintaxis anterior.

[___] = transformMotion(posSFromP,orientSFromP,posP,orientP,velP) también especifica la velocidad del marco de la plataforma en relación con el marco de navegación, velP. Los argumentos de salida son los mismos que los de la sintaxis anterior.

[___] = transformMotion(posSFromP,orientSFromP,posP,orientP,velP,accP) también especifica la aceleración del marco de la plataforma en relación con el marco de navegación, accP. Los argumentos de salida son los mismos que los de la sintaxis anterior.

[___] = transformMotion(posSFromP,orientSFromP,posP,orientP,velP,accP,angvelP) también especifica la velocidad angular del marco de la plataforma en relación con el marco de navegación, angvelP. Los argumentos de salida son los mismos que los de la sintaxis anterior.

ejemplo

Ejemplos

contraer todo

Defina la pose, la velocidad y la aceleración del marco de la plataforma en relación con el marco de navegación.

posPlat = [20 -1 0];
orientPlat = quaternion(1, 0, 0, 0);
velPlat = [0 0 0];
accPlat = [0 0 0];
angvelPlat = [0 0 1];

Defina la posición y el desplazamiento de orientación del marco del sensor IMU en relación con el marco de la plataforma.

posPlat2IMU = [1 2 3];
orientPlat2IMU = quaternion([45 0 0], 'eulerd', 'ZYX', 'frame');

Calcule las cantidades de movimiento del marco del sensor en relación con el marco de navegación e imprima los resultados.

[posIMU, orientIMU, velIMU, accIMU, angvelIMU] ...
    = transformMotion(posPlat2IMU, orientPlat2IMU, ...
    posPlat, orientPlat, velPlat, accPlat, angvelPlat);

fprintf('IMU position is:\n');
IMU position is:
fprintf('%.2f %.2f %.2f\n', posIMU);
21.00 1.00 3.00
orientIMU
orientIMU = quaternion
     0.92388 +       0i +       0j + 0.38268k

velIMU
velIMU = 1×3

    -2     1     0

accPlat
accPlat = 1×3

     0     0     0

Argumentos de entrada

contraer todo

Posición del marco del sensor en relación con el marco de la plataforma, especificada como un vector de escalares reales de 1 por 3.

Ejemplo: [1 2 3]

Orientación del marco del sensor con respecto al marco de la plataforma, especificada como una matriz de rotación quaternion o de 3 por 3.

Ejemplo: quaternion(1,0,0,0)

Posición del marco de la plataforma en relación con el marco de navegación, especificada como una matriz N por 3 de escalares reales. N es el número de cantidades de posición.

Ejemplo: [1 2 3]

Orientación del marco de la plataforma con respecto al marco de navegación, especificada como una matriz de cuaterniones de N por 1, o una matriz de escalares de 3 por 3 por N. Cada matriz de 3 por 3 debe ser una matriz de rotación. N es el número de cantidades de orientación.

Ejemplo: quaternion(1,0,0,0)

Velocidad del marco de la plataforma en relación con el marco de navegación, especificada como una matriz N por 3 de escalares reales. N es el número de cantidades de velocidad.

Ejemplo: [ 4 8 6]

Aceleración del marco de la plataforma en relación con el marco de navegación, especificada como una matriz N por 3 de escalares reales. N es el número de cantidades de aceleración.

Ejemplo: [4 8 6]

Velocidad angular del marco de la plataforma en relación con el marco de navegación, especificada como una matriz N por 3 de escalares reales. N es el número de cantidades de velocidad angular.

Ejemplo: [4 2 3]

Argumentos de salida

contraer todo

Posición del marco del sensor en relación con el marco de navegación, devuelta como una matriz N por 3 de escalares reales. N es el número de cantidades de posición especificadas por la entrada posP.

Orientación del marco del sensor en relación con el marco de navegación, devuelto como una matriz de cuaterniones de N por 1, o una matriz de escalares de 3 por 3 por N. N es el número de cantidades de orientación especificadas por la entrada orientP. El tipo de cantidad de orientación devuelta es el mismo que la entrada orientP.

Velocidad del marco del sensor en relación con el marco de navegación, devuelta como una matriz N por 3 de escalares reales. N es el número de cantidades de posición especificadas por la entrada velP.

Aceleración del marco del sensor en relación con el marco de navegación, devuelto como una matriz N por 3 de escalares reales. N es el número de cantidades de posición especificadas por la entrada accP.

Velocidad angular del marco del sensor en relación con el marco de navegación, devuelta como una matriz N por 3 de escalares reales. N es el número de cantidades de posición especificadas por la entrada angvelP.

Más acerca de

contraer todo

Historial de versiones

Introducido en R2020a

Consulte también

|