Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

poseplot

Tracé de pose en 3D

Depuis R2021b

Description

exemple

poseplot trace la pose (position et orientation) à la position d'origine des coordonnées avec une rotation nulle. Le cadre de navigation par défaut est le cadre nord-est vers le bas (NED).

exemple

poseplot(quat) trace la pose avec une orientation spécifiée par un quaternion quat. La position par défaut est [0 0 0].

exemple

poseplot(R) trace la pose avec une orientation spécifiée par une matrice de rotation R. La position par défaut est [0 0 0].

exemple

poseplot(___,position) spécifie la position du tracé de pose.

poseplot(___,frame) spécifie le cadre de navigation du tracé de pose.

exemple

poseplot(___,Name=Value) spécifie les propriétés du correctif de pose à l'aide d'un ou plusieurs arguments nom-valeur. Par exemple, poseplot(PatchFaceColor="r") trace la pose avec la couleur du visage rouge. Pour une liste des propriétés, voir Propriétés PosePatch.

poseplot(ax,___) spécifie les axes parents du tracé de pose.

exemple

p = poseplot(___) renvoie l'objet PosePatch . Utilisez p pour modifier les propriétés du patch de pose après la création. Pour une liste des propriétés, voir Propriétés PosePatch.

Exemples

réduire tout

Tracez la pose par défaut à l'aide de la fonction poseplot avec les paramètres par défaut.

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.

Ensuite, tracez une pose avec l'orientation et la position spécifiées.

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.

Ensuite, tracez une deuxième pose sur la figure et renvoyez l'objet PosePatch . Tracez la deuxième pose avec une taille plus petite en utilisant l'argument nom-valeur 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.

Animez une série de poses à l'aide de la fonction poseplot . Tout d’abord, définissez les positions initiale et finale.

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

Ensuite, définissez les orientations initiale et finale à l'aide de l'objet quaternion .

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

Montrez la pose de départ.

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.

Modifiez continuellement la position et l'orientation à l'aide de coefficients et mettez à jour la pose à l'aide de la fonction objet 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.

Tracez les orientations et les positions dans des maillages à l'aide de la fonction poseplot . Tout d’abord, tracez un véhicule terrestre à l’origine avec une rotation nulle.

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.

Deuxièmement, tracez un rotor à la position [20 20 -20] avec une rotation nulle.

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.

Enfin, tracez un avion à voilure fixe à la position [5 5 -40] avec une rotation nulle.

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.

Arguments d'entrée

réduire tout

Quaternion, spécifié comme objet quaternion .

Matrice de rotation, spécifiée comme matrice orthonormée 3x3.

Exemple : eye(3)

Position du tracé de pose, spécifiée sous la forme d'un vecteur à valeur réelle à trois éléments.

Exemple : [1 3 4]

Cadre de navigation du tracé de pose, spécifié comme "NED" pour le cadre nord-est-bas ou "ENU" pour le cadre est-nord-haut.

Lorsque l'état des axes parents est hold off, la spécification du cadre de navigation NED inverse les axes y et z dans la figure en définissant les YDir et ZDir propriétés des axes parents.

Axes parents du tracé de pose, spécifiés comme objet Axes . Si vous ne précisez pas les axes, la fonction poseplot utilise les axes courants.

Arguments nom-valeur

Spécifiez des paires d'arguments facultatives sous la forme Name1=Value1,...,NameN=ValueN, où Name est le nom de l'argument et Value est la valeur correspondante. Les arguments nom-valeur doivent apparaître après les autres arguments, mais l'ordre des paires n'a pas d'importance.

Exemple : poseplot(PatchFaceAlpha=0.1)

Les propriétés PosePatch répertoriées ici ne sont qu'un sous-ensemble. Pour une liste complète, voir Propriétés PosePatch.

Orientation du tracé de pose, spécifiée comme un objet quaternion (Sensor Fusion and Tracking Toolbox) ou une matrice de rotation.

Position du tracé de pose, spécifiée sous la forme d'un vecteur à valeur réelle à trois éléments.

Nom du fichier de maillage STL (Standard Triangle Language), spécifié sous la forme d'une chaîne scalaire ou d'un vecteur de caractères contenant le nom du fichier de maillage. Lorsque vous spécifiez cet argument, la fonction poseplot trace le maillage au lieu de la boîte d'orientation.

Facteur d'échelle du tracé de pose, spécifié comme scalaire non négatif. Le facteur d'échelle contrôle la taille de la zone d'orientation. Lorsque vous spécifiez l'argument MeshFileName , le facteur d'échelle modifie également l'échelle du maillage.

Couleur de la face du patch, spécifiée sous la forme d'un triplet RVB, d'un code couleur hexadécimal, d'un nom de couleur ou d'un nom court.

  • Un triplet RVB est un vecteur de ligne à trois éléments dont les éléments spécifient les intensités des composantes rouge, verte et bleue de la couleur. Les intensités doivent être comprises dans la fourchette [0, 1]; par exemple, [0.4 0.6 0.7].

  • Un code couleur hexadécimal est un vecteur de caractères ou une chaîne scalaire qui commence par un symbole dièse (#) suivi de trois ou six chiffres hexadécimaux, qui peuvent aller de 0 à F. Les valeurs ne sont pas sensibles à la casse. Ainsi, les codes couleurs "#FF8800", "#ff8800", "#F80", et "#f80" sont équivalents.

Voici une liste des couleurs couramment utilisées et leurs valeurs correspondantes.

Nom de la couleurNom courtTriplet RVBCode couleur hexadécimalApparence
"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

Transparence de la face du patch, spécifiée sous forme scalaire dans la plage [0, 1]. Une valeur de 1 est entièrement opaque et 0 est complètement transparente.

Arguments de sortie

réduire tout

Objet de patch de pose, renvoyé sous la forme d'un objet PosePatch . Vous pouvez utiliser l'objet renvoyé pour interroger et modifier les propriétés de la pose tracée. Pour une liste des propriétés, voir Propriétés PosePatch.

Historique des versions

Introduit dans R2021b