Main Content

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

poseplot

Trama de pose en 3D

Desde R2021b

Descripción

poseplot traza la pose (posición y orientación) en la posición de origen de las coordenadas con rotación cero. El marco de navegación predeterminado es el marco noreste abajo (NED).

ejemplo

poseplot(quat) traza la pose con la orientación especificada por un cuaternión quat. La posición por defecto es [0 0 0].

ejemplo

poseplot(R) traza la pose con la orientación especificada por una matriz de rotación R. La posición por defecto es [0 0 0].

ejemplo

poseplot(___,position) especifica la posición del gráfico de pose.

ejemplo

poseplot(___,frame) especifica el marco de navegación del gráfico de pose.

poseplot(___,Name=Value) especifica las propiedades del parche de pose utilizando uno o más argumentos de nombre-valor. Por ejemplo, poseplot(PatchFaceColor="r") traza la pose con el color de la cara rojo. Para obtener una lista de propiedades, consulte Propiedades PosePatch.

ejemplo

poseplot(ax,___) especifica los ejes principales del gráfico de pose.

p = poseplot(___) devuelve el objeto PosePatch . Utilice p para modificar las propiedades del parche de pose después de la creación. Para obtener una lista de propiedades, consulte Propiedades PosePatch.

ejemplo

Ejemplos

contraer todo

Traza la pose predeterminada usando la función poseplot con la configuración predeterminada.

poseplot
xlabel("North-x (m)")
ylabel("East-y (m)")
zlabel("Down-z (m)");

Figure contains an axes object. The axes object with xlabel North-x (m), ylabel East-y (m) is empty.

A continuación, traza una pose con una orientación y posición específicas.

q = quaternion([35 10 50],"eulerd","ZYX","frame");
position = [1 1 1];
poseplot(q,position)

Figure contains an axes object. The axes object is empty.

Luego, traza una segunda pose en la figura y devuelve el objeto PosePatch . Traza la segunda pose con un tamaño más pequeño usando el argumento nombre-valor ScaleFactor .

hold on
p = poseplot(eye(3),[5 5 5],ScaleFactor=0.5)
p = 
  PosePatch with properties:

    Orientation: [3x3 double]
       Position: [5 5 5]

  Use GET to show all properties

legend("First Pose","Second Pose")
hold off

Figure contains an axes object. The axes object is empty. These objects represent First Pose, Second Pose.

Anima una serie de poses usando la función poseplot . Primero, defina las posiciones inicial y final.

ps = [0 0 0];
pf = [10 0 0];

Luego, defina las orientaciones inicial y final utilizando el objeto quaternion .

qs = quaternion([45,0,0],'eulerd','ZYX','frame');
qf = quaternion([-45,0,0],'eulerd','ZYX','frame');

Muestra la pose inicial.

patch = poseplot(qs,ps);
ylim([-2 2])
xlim([-2 12])
xlabel("North-x (m)")
ylabel("East-y (m)")
zlabel("Down-z (m)");

Figure contains an axes object. The axes object with xlabel North-x (m), ylabel East-y (m) is empty.

Cambie la posición y la orientación continuamente usando coeficientes y actualice la pose usando la función de objeto set .

for coeff = 0:0.01:1
    q = slerp(qs,qf,coeff);
    position = ps + (pf - ps)*coeff;
    set(patch,Orientation=q,Position=position); 
    drawnow
end

Figure contains an axes object. The axes object with xlabel North-x (m), ylabel East-y (m) is empty.

Trazar orientaciones y posiciones en mallas usando la función poseplot . Primero, trace un vehículo terrestre en el origen con rotación cero.

poseplot(ones("quaternion"),[0 0 0],MeshFileName="groundvehicle.stl",ScaleFactor=0.3);
xlabel("North-x (m)")
ylabel("East-y (m)")
zlabel("Down-z (m)")

Figure contains an axes object. The axes object with xlabel North-x (m), ylabel East-y (m) is empty.

En segundo lugar, trace un rotor en la posición [20 20 -20] con rotación cero.

hold on
poseplot(ones("quaternion"),[20 20 -20],MeshFileName="multirotor.stl",ScaleFactor=0.2);

Figure contains an axes object. The axes object with xlabel North-x (m), ylabel East-y (m) is empty.

Por último, trace un avión de ala fija en la posición [5 5 -40] con rotación cero.

poseplot(ones("quaternion"),[5 5 -40],MeshFileName="fixedwing.stl",ScaleFactor=0.4);
view([-37.8 28.4])
hold off

Figure contains an axes object. The axes object with xlabel North-x (m), ylabel East-y (m) is empty.

Argumentos de entrada

contraer todo

Cuaternión, especificado como un objeto quaternion .

Matriz de rotación, especificada como una matriz ortonormal de 3 por 3.

Ejemplo: eye(3)

Posición del gráfico de pose, especificada como un vector de valor real de tres elementos.

Ejemplo: [1 3 4]

Marco de navegación del gráfico de pose, especificado como "NED" para el marco noreste abajo o "ENU" para el marco este-norte arriba.

Cuando el estado de los ejes principales es hold off, al especificar el marco de navegación NED se invierten los ejes y y z en la figura configurando YDir y ZDir propiedades de los ejes principales.

Ejes principales del gráfico de pose, especificados como un objeto Axes . Si no especifica los ejes, la función poseplot utiliza los ejes actuales.

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de los otros argumentos, pero el orden de los pares no importa.

Ejemplo: poseplot(PatchFaceAlpha=0.1)

Las propiedades PosePatch enumeradas aquí son solo un subconjunto. Para obtener una lista completa, consulte Propiedades PosePatch.

Orientación del gráfico de pose, especificada como un objeto quaternion (Sensor Fusion and Tracking Toolbox) o una matriz de rotación.

Posición del gráfico de pose, especificada como un vector de valor real de tres elementos.

Nombre del archivo de malla Standard Triangle Language (STL), especificado como una cadena escalar o un vector de caracteres que contiene el nombre del archivo de malla. Cuando especifica este argumento, la función poseplot traza la malla en lugar del cuadro de orientación.

Factor de escala del gráfico de pose, especificado como un escalar no negativo. El factor de escala controla el tamaño del cuadro de orientación. Cuando especifica el argumento MeshFileName , el factor de escala también cambia la escala de la malla.

Color de la cara del parche, especificado como un triplete RGB, un código de color hexadecimal, un nombre de color o un nombre corto.

  • Un triplete RGB es un vector fila de tres elementos cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el rango [0, 1]; por ejemplo, [0.4 0.6 0.7].

  • Un código de color hexadecimal es un vector de caracteres o una cadena escalar que comienza con un símbolo de almohadilla (#) seguido de tres o seis dígitos hexadecimales, que pueden variar desde 0 a F. Los valores no distinguen entre mayúsculas y minúsculas. Por lo tanto, los códigos de color "#FF8800", "#ff8800", "#F80" y "#f80" son equivalentes.

Aquí hay una lista de colores comúnmente utilizados y sus valores correspondientes.

Nombre del colorNombre cortoTriplete RGBCódigo de color hexadecimalApariencia
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

Transparencia de la cara del parche, especificada como un escalar en el rango [0, 1]. Un valor de 1 es completamente opaco y 0 es completamente transparente.

Argumentos de salida

contraer todo

Objeto de parche Pose, devuelto como un objeto PosePatch . Puede utilizar el objeto devuelto para consultar y modificar las propiedades de la pose trazada. Para obtener una lista de propiedades, consulte Propiedades PosePatch.

Historial de versiones

Introducido en R2021b

Consulte también