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.

lookupPose

Obtener información de pose durante un tiempo determinado.

Descripción

[position,orientation,velocity,acceleration,angularVelocity] = lookupPose(traj,sampleTimes) devuelve la información de la posición de la trayectoria del punto de referencia en los tiempos de muestra especificados. Si algún tiempo de muestra excede la duración de la trayectoria, la información de pose correspondiente se devuelve como NaN.

ejemplo

Ejemplos

contraer todo

Crea un objeto waypointTrajectory que conecta dos puntos de referencia. La velocidad de la trayectoria en los dos puntos de referencia es 0 m/s y 10 m/s, respectivamente. Restrinja el límite de sacudida a 0,5 m/s3 para habilitar el perfil de aceleración trapezoidal.

waypoints = [0  0  0;
            10 50 10];
speeds = [0 10];
jerkLimit = 0.5;
trajectory = waypointTrajectory(waypoints,GroundSpeed=speeds,JerkLimit=jerkLimit);

Obtenga el tiempo inicial y el tiempo final de la trayectoria consultando la propiedad TimeOfArrival. Cree marcas de tiempo para muestrear la trayectoria.

t0 = trajectory.TimeOfArrival(1);
tf = trajectory.TimeOfArrival(end);
sampleTimes = linspace(t0,tf,100);

Obtenga la información de posición, velocidad y aceleración en estas marcas de tiempo muestreadas utilizando la función de objeto lookupPose.

[position,~,velocity,acceleration,~] = lookupPose(trajectory,sampleTimes);

Trazar la trayectoria.

figure()
plot3(position(:,1),position(:,2),position(:,3))
xlabel("x (m)")
ylabel("y (m)")
zlabel("z (m)")
title("Trajectory")

Figure contains an axes object. The axes object with title Trajectory, xlabel x (m), ylabel y (m) contains an object of type line.

Trazar el perfil de velocidad.

figure()
subplot(3,1,1)
plot(sampleTimes,velocity(:,1));
ylabel("v_x (m/s)")
title("Velocity Profile")
subplot(3,1,2)
plot(sampleTimes,velocity(:,2));
ylabel("v_y (m/s)")
subplot(3,1,3)
plot(sampleTimes,velocity(:,3));
ylabel("v_z (m/s)")
xlabel("Time (sec)")

Figure contains 3 axes objects. Axes object 1 with title Velocity Profile, ylabel v_x (m/s) contains an object of type line. Axes object 2 with ylabel v_y (m/s) contains an object of type line. Axes object 3 with xlabel Time (sec), ylabel v_z (m/s) contains an object of type line.

Trazar el perfil de aceleración. De los resultados se desprende que el perfil de aceleración del movimiento plano es trapezoidal.

figure()
subplot(3,1,1)
plot(sampleTimes,acceleration(:,1));
axis padded
ylabel("a_x (m/s^2)")
title("Acceleration Profile")
subplot(3,1,2)
plot(sampleTimes,acceleration(:,2));
ylabel("a_y (m/s^2)")
axis padded
subplot(3,1,3)
plot(sampleTimes,acceleration(:,3));
ylabel("a_z (m/s^2)")
xlabel("Time (sec)")

Figure contains 3 axes objects. Axes object 1 with title Acceleration Profile, ylabel a_x (m/s^2) contains an object of type line. Axes object 2 with ylabel a_y (m/s^2) contains an object of type line. Axes object 3 with xlabel Time (sec), ylabel a_z (m/s^2) contains an object of type line.

Argumentos de entrada

contraer todo

Trayectoria del punto de referencia, especificada como un objeto waypointTrajectory.

Tiempos de muestra en segundos, especificados como un vector de elementos M de escalares no negativos.

Argumentos de salida

contraer todo

Posición en el sistema de coordenadas de navegación local en metros, devuelta como una matriz M por 3.

M se especifica mediante la entrada sampleTimes.

Tipos de datos: double

Orientación en el sistema de coordenadas de navegación local, devuelto como un vector columna de M por 1 quaternion o una matriz real de 3 por 3 por M.

Cada cuaternión o matriz de rotación de 3 por 3 es una rotación de cuadro desde el sistema de coordenadas de navegación local hasta el sistema de coordenadas del cuerpo actual.

M se especifica mediante la entrada sampleTimes.

Tipos de datos: double

Velocidad en el sistema de coordenadas de navegación local en metros por segundo, devuelta como una matriz M por 3.

M se especifica mediante la entrada sampleTimes.

Tipos de datos: double

Aceleración en el sistema de coordenadas de navegación local en metros por segundo al cuadrado, devuelta como una matriz M por 3.

M se especifica mediante la entrada sampleTimes.

Tipos de datos: double

Velocidad angular en el sistema de coordenadas de navegación local en radianes por segundo, devuelta como una matriz M por 3.

M se especifica mediante la entrada sampleTimes.

Tipos de datos: double

Historial de versiones

Introducido en R2019b

Consulte también

Objetos

Funciones